Bringing Warlords II to the Pocket PC
Shortly after founding PocketPC Studios (http://www.ppcstudios.com), we acquired an exclusive license to bring the award-winning turn-based strategy game series Warlords to handheld devices. Warlords II – Pocket PC Edition is the product of 6 months of intense development, and the lessons learned in porting this successful desktop game to the Pocket PC will last a lifetime.
Created by Steve Fawkner and first appearing on the PC and Commodore Amiga in 1990, the Warlords series are strategy-based titles. Steve’s new company, Infinite Interactive (http://www.infinite-interactive.com), has just released Warlords IV, and their real-time strategy title Warlords Battlecry III is currently in mid-development.
Project management and staying on schedule
Effective project management is critical when the development team is small. Any slip in scheduling would be nearly impossible to make up for due to the lack of manpower, so scheduling reviews and refinements need to be done on an almost daily basis.
All of our project management tasks were performed using Microsoft Project. This provided me with a solid visual representation of the project tasks and available resources. Project made it easy to perform scheduling updates to accommodate changes and complications. This allowed me to focus much more time on developing our product line rather than finding creative ways to meet critical deadlines.
I also made daily progress reports on our online forums. Not only did this make me honestly assess my own progress, but the simple act of reporting frequently gave insight into potential problem areas, saving hours of redesign.
Wrestling with the code
When we received the Warlords II source code from Infinite Interactive, I was overwhelmed by the sheer amount of it. Little of the original project documentation existed, critical third-party library source code was missing, and to top it all off, this was a 16-bit DOS application.
So, I dove headfirst into the code trying to sort things out in a logical manner and gain an understanding of the game’s internals. My first, and worst, approach was to begin translating everything into a clean, well organized, C++ class structure. My intention was to create logical sections of self-supporting code and remove the wealth of global variables that existed. After over a month of development I had hardly made a dent in the code.
I then took a step back and applied the KISS (Keep It Simple Stupid) principle. I bundled the myriad of global variables into a single data structure for easy housekeeping, and moved each function into a single C++ class that could cleanly share data. While not a perfect object-oriented solution, development was simplified immensely, allowing me to focus on enhancing the game rather than just simply getting it working.
Using GapiDraw saves time
GapiDraw (http://www.gapidraw.com) is a graphics library (a tool for developing games and other graphical applications) for many mobile platforms including Pocket PCs and Smartphones. The brainchild of Johan Sanneblad, GapiDraw has been used in over 120 games and is considered the de facto standard for creating graphically demanding applications on mobile devices.
GapiDraw is simply an extraordinary product, providing an easy-to-use Application Programming Interface (API), top-notch performance, and flawless functionality on every Pocket PC platform we’ve ever tested. We’ve saved months of development time by not having to create our own graphics API, and because GapiDraw has been tested thoroughly on virtually every Pocket PC in existence, we don’t have to worry about incompatible hardware. If you want a solid start to your gaming project, GapiDraw should be the number-one tool on your list.
Overhauling the artwork