Wishing I never sold my NES right about now.
Developer for Upcoming NES Release, Armed for Battle, Answers Our Questions
Time to replace that 72-pin connector.
If you’ve still got an NES kicking around your entertainment center, chances are it’s been a long time since it’s had a brand new cartridge popped in. Lucky for you and your forlorn, reliable console, there’s a fresh game slated for release early next year. Although there have been a smattering of games released for the NES recently, Armed for Battle is pretty unique. Not only was the project put together by a solitary programmer, but Frank Westphal is giving us something the king of ‘80s consoles never had before: a real time strategy game. Frank was nice enough to take some questions about his development process, his game, and what he expects from Armed for Battle. Budding homebrew developers and fans of the NES will learn a lot from my conversation with Frank.
PixlBit: How many games have you created in the past? Is this your first project for the NES?
Frank Westphal: I have not created any full games in the past. A friend, who I have programming history with, introduced me to Nerdy Nights (NES programming tutorials) at NintendoAge, and he also showed me what he had produced. Seeing his title screen and map scrolling, I really got interested, so I read through the tutorials, and also read plenty of other sources I found online. We began working together on a new NES project. After a fair amount of progress, we decided to take a break from our joint effort, and I went ahead and started up Armed for Battle. This was around August of 2011.
PB: Two and a half years seems like a pretty quick development time on a platform that isn't very simple to program for. Are you a programmer by trade?
FW: I studied video game programming for two years in the late ‘90s, and worked as a programmer for two years. I was quite rusty when I began coding, but my background definitely helped when going through the NES documentation and tutorials. Over the course of the game, my coding efficiency definitely improved, and it had to, because I ran out of room in the available memory. The development time would have been reduced if I didn't have to rework the code to make room.
PB: Running out of room certainly seems understandable considering the genre you are working with. Were there existing NES games you looked to for ideas about how to fit the game within the limitations of the hardware?
FW: No, I pretty much kept coding full speed ahead, and hoped that it would all fit. If I would have run into size problems, I would have had to start cutting things out of the game, but it seems that it all worked out OK.
One thing I did in the middle of coding was change mappers. A mapper allows more code and/or graphics to be included in the game. With no mapper, your maximum space for code is 32KB. Early NES games like Super Mario Bros. are impressive, because they fit in the whole game with 32KB. I am using the UNROM mapper, and it gives me 128KB to work with.
Mappers take big chunks of code (16KB in my case) and swap them in and out of the game while it's being played. In my game, things are happening in real time while a player is building their kingdom, accessing an upgrade sub-screen, and exploring the overworld. All the code for that is within 32KB (2 code banks that are each 16KB). When a battle starts, 16KB of code that runs the battle is swapped in and replaces code that was running the part of the game where the player builds. So, if a building was in the middle of construction, or an upgrade was being researched, it is put on hold during the battle. When a battle is done, the code switches back, and the player resumes their building.
PB: RTS is one of the more complex genres out there, and making one work on the NES had to have been somewhat limiting from what people are now used to. Which gameplay elements did you want to make sure could be squeezed into the game? Which ones did you have to cut that you were sorry to see go?
FW: Several years ago, I played a browser game called Travian. It is a slow paced strategy game, with typical strategy gameplay (build up your village, make troops, and send them off to battle). I found it to be quite addicting, and it didn't even feature battles with action. Once your troops arrived for an attack on an enemy village, you simply got a battle report which calculated the outcome.
I had this type of game in mind when I started Armed for Battle, but it evolved as it went. When I loaded my first trailer on YouTube, which showed the building aspect of the game, I did a little announcement on various websites. I was getting a number of positive comments that mentioned "I can't wait to see what the battles look like." From those comments, I discarded the plan of a battle report, and started thinking of what I could do for an actual battle. A number of ideas came to mind, but I settled on what I have today, where a player loads up their side with troops, and then the troops automatically enter the battlefield to fight. From there, you have control of your troop movement in the battlefield and targeting enemies, and you also have to keep adding more troops into the battle queue.
I'm happy to say that I squeezed in everything that mattered to me most. Something that was cut was the use of walls in the overworld view. I was going to make it necessary for a player to take down walls with catapults in the overworld to get to fortified enemies. While I was in the middle of a bunch of code that would incorporate this idea, I decided that it was kind of turning into a pain, and I didn't feel like it added fun to the game, so it was scrapped. Getting rid of the code and the whole concept was actually a big relief.
PB: Are you a big RTS player? Do you think this game will appeal to fans of the genre that can get pretty deep into the mechanics of these games?
FW: Yes, Warcraft 2 was my first RTS, and I was hooked from the start. The genre was brand new to me, and it was so fun. I've also enjoyed Starcraft, Age of Empires, Stronghold Crusader, Rise of Nations, Supreme Commander 2, etc. I play some sequels as well, but I still go back to the classics at times.
Some people don't like strategy games because they are too complex, but I think Armed for Battle can be learned pretty quickly. The game has messages that pop up, such as "Train Swordsman" when a player has the cursor on a Swordsman Barracks. And it will warn the player with messages like "Not Enough Iron" if you don't have the necessary resources. An experienced strategy game player should have fun developing a fast pattern for building up their kingdom, and researching upgrades. I should also mention that the game has various types of levels, so a different building pattern might work better. On one level, you might be defeating all enemies, but on another level, you might have to seek out items in the overworld.
PB: What are your hopes for your game? Do you expect to make any money or will this just be a success when it's done and people are playing it?
FW: I hope that people will enjoy playing it. It is thrilling to be making a game for the NES, the system I loved as a kid, and also thrilling to think that people will be playing my creation. I also hope that everyone will like it enough to keep tabs on future games I develop (it's too bad that new games take a while, but with experience comes efficiency).
I do expect to make some money on the project, but it will be a small amount compared to the time that is required to put into something like this. Making homebrew games has to be a fun hobby to a person if they are going to stick with a game from start to finish, and I personally get really excited when I see my code coming to life in a game.
PB: Sounds like you had a lot of fun and are already planning on doing another project after Armed for Battle. Any big lessons learned for yourself or for someone else thinking about developing for the NES today?
FW: The main thing would be to point out that writing games in assembly takes time. If you happen to have some experience with programming or hex and binary number systems, it will definitely help. There is plenty of online information that a person can find if they want to get started.
PB: Thanks so much for your time. I’m personally looking forward to trying out Armed for Battle when it’s done.
If you’re interested in finding out more about the development of Armed for Battle, visit Frank’s development blog. The game is expected to release next year and a deal to print cartridges is in the works.
Comments