Sponsored By

Games to Go: The PalmPilot Series

The next installment in our ongoing series about handheld game development focuses on the 3Com PalmPilot. See what makes this family of devices tick, find out what game development tools are available, and see what games are currently under development and shipping for the Palm.

Jim Williams, Blogger

March 26, 1999

20 Min Read

It's generally agreed that the PalmPilot is a phenomenal device. Available in a number of different versions now from 3Com, these devices resemble a Nintendo Game Boy Pocket more than anything else, including in popularity and success. Everyone has an opinion as to what makes the PalmPilot so successful, and no two opinions are the same. It could be the convenience; it could be its desktop integration; it could simply be the "neat" factor. I think one of the factors must be the variety of software available for the PalmPilot, including entertainment software (see http://www.zdnet.com/swlib/pilotsoftware/cat/games.html); and the reason for that is the wealth of development tools. With the development of the tools, the development of games for the Pilot as easy as for any desktop platform. I was more than a little taken aback at just how much support for development there is out there, as well as the size of the PalmPilot market. For today, at least, PalmPilot is the handheld market.

In the Beginning

The original 128k Pilot 1000, while modest by today's standards, was quite a revolution among personal organizers. Powered by the impressive Motorola 68328 Dragonball processor at 16.6 MHz, it had 4GB RAM addressability. Because of the Dragonball’s dynamic memory addressing, the original Pilots had an 8-bit data bus (see http://www.mot.com/SPS/
WIRELESS/products/MC68328.html for more information on this remarkable processor). Shortly thereafter (or perhaps concurrently), US Robotics came out with the Pilot 5000; essentially this was a Pilot 1000 with 512KB of RAM. A replacement RAM/ROM module provided an upgrade path for Pilot 1000 owners, which both increased the RAM and revised the operating system at the same time.

figure1.gif These initial units were soon followed by the PalmPilot Personal and Professional, which was a major upgrade (the name was changed to PalmPilot due to copyright problems.) The formfactor of 4.7" x 3.2" x .7" and weight of 5.7 ounces remained constant, but the operating system was improved and a backlight added. While the Personal had the same 512KB memory as the 5000, the Professional came with 1MB. Earlier models could be upgraded to the 1MB, which was a greater difference than merely memory size; by increasing the memory, the Dragonball switched from the 8-bit bus to the 16-bit bus, resulting in a major increase in speed. Another difference in the Professional model was the inclusion of Internet support. All of the newer units up to the Professional include the replaceable RAM/ROM module design of the earlier versions, making upgrades quite easy.

TRG took advantage of this, and produced their own third-party ROM replacement. It included up to 8MB of RAM, and 2MB of flash ROM, so that the operating system could be upgraded in the future more easily, and so that some commonly used, read-only applications and data could be stored in the larger ROM size. Other companies came out with pager and other upgrade cards to take advantage of the module.

Breaking from their habit of dual releases, 3COM/US Robotics next released the Palm III. This added IRDA support to the unit, as well as increased the base memory to 2MB, with the operating system now up to version 3.0. Other than these changes, the only other evident upgrade was the more ergonomically designed case and increased weight to 6 ounces. The Palm III was the line’s flagship machine for about eight months.

"Back to the Future"

With the advent of the Windows CE-based "PalmPCs", it was expected that the next generation of PalmPilots would make a quantum leap in the technology; perhaps with higher resolution, and/or color. To the disappointment of some, 3Com/US Robotics chose to stick with what was working for the company, perhaps wisely. The new machines, the Palm IIIx and the Palm V, seem to address two different audiences; I think of them as the "power user" and the "productive user".

The Palm IIIx, the "power user" machine, retains the basic formfactor of the PalmIII, but increases the base memory to 4MB, and is not compatible with earlier RAM/ROM upgrade modules (however, TRG has developed a memory module specifically for the IIIx; their website is http://www.trgnet.com/Palm/Products/
palmaddon.htm ) The IIIx now also comes with the operating system on flash, upgradeable via the Internet. There is an upgrade bay inside the machine, for such future enhancements as pager cards. This unit has changed little from its predecessor, but this is consistent with its maker’s aim of a personal information device. It appears to be aimed at gadget lovers, like myself, who wish to do more than store contact lists and notes.

figure2.gif On the other hand, the Palm V appears to be aimed directly at the latter category. With only 2MB of memory and a sealed case making upgrades virtually impossible (the only handheld computer I know of other than the Siena with this limitation,), the Palm V seems to be targeted at those who are interested in little more than note-taking and contact lists. More portable than the IIIx, if that’s possible, it measures 4.5" x 3.1" x .4" and weighs only 4 ounces. Its design is even more sleek, and has added a second pen-holder on the left side of the case. Even though it has half the memory of the IIIx, and it is non-expandable, it runs version 3.1 of PalmOS, just as the IIIx does. This consistency and upgradeability in the operating system is important, in that it makes development for the various PalmPilot machines easier than for the competing, Windows CE-based devices which require you to recompile your application for each processor.

IBM has produced a series of PalmPilot clones called "Workpads". Essentially, these are PalmIIIx and PalmV machines in "Big Blue" clothing. I haven’t heard any reports of price or quality differences in these machines, but if you want something that looks a litle different, you can give your money to IBM rather than 3Com.

The Little OS that Can

figure3.gif I mentioned the impressive Dragonball processor, but it’s the operating system that makes the PalmPilot what it is. And in a word, that is "remarkable". PalmOS features a "run-in-place" software architecture, which basically means that every application runs from where it is stored. Unlike the Psion or Windows CE-based machines, the PalmPilots do not copy programs from where they are stored into a "main" memory for execution. This makes the most of whatever storage the machine may have.

PalmOS also features an iconic, graphical user interface which is intuitive to use, especially if you’re used to the Windows desktop. The PalmPilot communicates with the desktop via "conduits"; basically a communications protocol that updates and syncronizes the data on your desktop PC with the data on your PalmPilot, and vice versa.

Having gone through three major revisions so far, PalmOS appears to be rather stable. Backward compatibility has resulted in few applications breaking with newer revisions of the operating system, which is good news for developers.

Yet another remarkable feature of this machine is its input system. Handwriting recognition was almost an afterthought in the PalmPC line, it seems, but in the usual unusual nature of the PalmPilot, handwriting recognition was included from the vary beginning. Taking a bass-ackward approach, instead of trying to teach the PalmPilot to understand handwritten English, US Robotics developed their own handwriting style, which the user must learn. Fortunately, it’s both intuitive and easy to learn. A game, called Giraffe, comes with every PalmPilot, which teaches the user how to write in Graffiti (the PalmPilot’s alphabet.) Also included is a quick reference card, and for those in a hurry or who just don’t get it, a built-in virtual keyboard is also supplied.

Fortunately for gameplay, you’re not restricted to pen events or Graffiti to give directions to the PalmPilot. It has six buttons on the lower front of the case, as well as four silk-screened virtual buttons incorporated into the display. Their location at the bottom of the screen can sometimes make it difficult to use them while holding the Pilot at the same time. But they do give you greater options for controls than you’ll find on a Game Boy. The PalmPilot, in addition to its Irda support, also has a proprietary rs232 connector, used for docking to your desktop computer. Some folks have used this to connect the Pilot to a Newton keyboard. This requires custom software, and may require a custom cable.

If you are for some bizarre reason unhappy with PalmOS, there is a project afoot to port a subset of Linux to the PalmPilot. I suspect this is more a case of "doing it because you can" rather than any distaste for PalmOS or love of Linux.

"Rolling Your Own"

As I mentioned in the beginning, There is a plethora of tools out there to help you write games for the PalmPilot. The Pilot application framework is based around the "form", and is very component-oriented. So naturally the tools range from simple user interface design kits, to conduit creation and management tools, to full-fledged integrated development environments.

The primary tool you’d need for PalmOS development is the SDK available from 3Com. It provides the headers and libraries necessary for writing C code. It works in conjunction with the "official" Metroworks for PalmOS compiler, or the Gnu Gcc compiler. The SDK can be obtained at the 3Com developer site, http://palm.3com.com/devzone . In addition to the programming SDK, there’s a Conduit SDK (for developing applications to sync data with the desktop computer,) as well as POSE – the PalmOS Emulator (the emulator formerly known as CoPilot). With the debug roms (also available on the 3Com developer site) you can test and debug your applications without first downloading them to a PalmPilot.

The official development environment for the PalmPilot is Metrowerks CodeWarrior. Originally, Pilot development was exclusively Macintosh, but now CodeWarrior for the PalmPilot supports Windows. The Metrowerks package is, of course, far more expensive than the Gcc development environment, but you also get extensive documentation, a complete set of development tools (including those for interface design and conduit creation), and technical support from Metrowerks. You can find out more about CodeWarrior for the Pilot at Metrowerks site (www.metrowerks.com). Several online and offline sources for CodeWarrior are listed there; for example, Developer Depot offers CodeWarrior for the Pilot for $339 US, and bundles it with a Pilot for $499 (www.devdepot.com ).

The problem with third-party development tools is not their quality or availability, but their quantity. There are literally dozens of tools to help with interface design, application libraries, and development environments. There are probably a dozen integrated development environments alone: PilotADE, PilotMAG, and VFDIDE to name a few. The best two locations to begin searching for the development tools you want or need are Palm Central (formerly Ray’s PalmPilot Archive) at www.palmcentral.com and RoadCoders at www.roadcoders.com. Both of these sites have extensive lists of tools and links for everything from complete development environments, to button creation, to alternative languages. RoadCoders has development tools and information for Windows CE as well as PalmOS, although they’ve unfortunately dropped their Psion support.

Speaking of which, you’re not limited to just gcc or CodeWarrior for development. There is a version of PocketC available for the Pilot, as well as integrated development environments geared specifically to this version of C. Information about PocketC, which is available for Windows CE-based devices as well as PalmPilots, can be found on the OrbWorks website at http://orbworks.com. If you prefer assembly, the ASDK is a well-established assembly language development kit. Or, if you’re a devotee of Java programming, there are the Jump and Jet Pilot development environments. CASL (Compact Application Solution Language) comes with its own integrated development environment, and compiles into p-code or into the Pilot’s native .prc executaable format. This language boasts the ability to compile for either Windows or the Pilot, and will allow you to modify the same database information from either operating system. There’s even a version of Smalltalk available, called Pocket Smalltalk. If you have a Macintosh, you can develop Pilot applications in Pascal; a "how-to" can be found on the Palm Central site.

Perhaps you wish to write applications right on the PalmPilot itself. This is possible, thanks to CbasPad, an implementation of Chipmunk BASIC. Or, if you have a taste for assembly and/or Forth, you can use Quartus Forth, which incorporates ASM68K (a Motorola 68k assembler), that allows you to write either Forth or assembly language programs directly on the Pilot itself. I find the ability to write assembly directly on the Pilot a rather intriguing possibility, particularly for game development. And for C programmers, there’s a discontinued C compiler that runs on the Pilot, called OnBoard.

Ian Barclay has a good introductory tutorial on programming for the Pilot that’s worth a mention. It can be found on the web at the following address: http://www.exe.co.uk/articles/articlepull.asp?page=Feb98/
palmp.html&tf=uf &vad=1&had=1.

I’ve yet to go into PiloRC or any of the other button, or GUI development tools to any extent. There’s just so much out there, it’s almost mind-boggling. While the Metrowerks package provides all the tools necessary for application development for the PalmPilot, you might be happier tailoring your development environment to suit your tastes from the other options available. Whatever your tastes in development tools and environments, you can almost certainly find something to suit you for developing Pilot games. If PalmOS is to defeat the monolithic Windows CE, this variety and quantity of development tools, compared to the scarcity (and expense) of tools for Windows CE will make the difference.

"There's Plenty of There, There"

Now that you’re familiar with the platform, and know the tools exist to create games, the question remains, is there a market for PalmPilot-based games? The answer can be found at http://gartner12.gartnerweb.com /dq/static/ about/press/pr-b9904.html (thanks to Gabe Dalbec of PalmCreations for this info.) This web page is a breakdown of the handheld market for last year. It shows that PalmOS has 40% of the total market. This means if you’re going to write games for handhelds, then at least for the present, the PalmPilot is the machine to target. While Windows CE machines are close behind at roughly 36%, you can develop games for the PalmPilot with far less initial investment (you don’t even really need a PalmPilot of your own to do development, if you get the emulator, but I highly recommend it.)

Okay, so there are a lot of them out there – but does anyone really play games on them? Well, the Nintendo Game Boy has gone through three major incarnations since it first launched, only recently even acquiring a color display. And Game Boy development is tightly controlled, as well. Yet, despite these factors, Game Boy games still sell like hotcakes. And it’s only raison d’etre is to play games. You might think of the PalmPilot as a "Game Boy for Grown-ups". Its display resolution is the same as the Game Boy’s, its operating system is much more robust, and its CPU is far more powerful. So in between taking notes for the Big Meeting, recording the latest credit card transaction, or checking the email "in the field", a user can while away a few minutes killing monsters or exploring dungeons.

A Game Boy for Grown-ups

Palm Central has a rather extensive library of software, particularly games, for the PalmPilot. Its game section is divided into categories including general, action, adventure, board and card game categories. While board and card games may (perhaps) be easier to implement than action or adventure titles, the PalmPilot is fully capable of handling the latter. Card games from Patience to Freecell have already been written for the PalmPilot, as well as implementations of games as far ranging as poker and euchre. As for board games, people have created Pilot-specific vesions of everything from Backgammon to a version of Monopoly called Go To Jail! (catchy title) to an infrared two-player Battleship clone. As I said in my last article, these kinds of games lend themselves readily to the handheld platform, as they don’t require rapid calculations or screen refreshes.

figure6.gif

Dragon Hunter Pinball

The good news is that action games can be created almost as easily as board or card games. An example of what action-style games can be written is Dakota A, a side-scroller in the tradition of Commander Keen. Alternatively, arcade game ports such as Galaga, Pacman, or Asteroids are also quite possible, allowing for the refresh limitations of a liquid crystal display. Stand Alone has created Dragon Hunter Pinball, a pinball game for the PalmPilot.

Lest I give the impression that the screen refresh or cpu limitations are at all onerous, I have to mention Shadow Thief. This platformer reminded me most strongly of the old game, Dark Castle. Not only does it demonstrate just what the Pilot is capable of, it shows that the

figure7.gif

Shadow Thief

competition for the Pilot is going to be tough; no simple, character-based kludged-together hacks will be able to compete.

Of course, if a machine is to gain acceptance as a game platform, it must be able to play some form of Doom, and so as an example of this I give you Maze Wars Albeit a simplified Doom-esque game, first-person shooters are quite possible on the PalmPilot, though I don’t think these would be among the most popular as they are under Windows.

In my Psion article, I commented upon the dearth of RPG titles available. This is not the case with the Pilot. Perhaps the most popular (so far) of these is the Kyle’s Quest series, which most closely resembles the Zelda series of games for the Nintendo, most specifically, Link’s Awakening for the Game Boy.

figure9.gif

Kyle's Quest

Perhaps as unique for the handheld arena as the Dragon Hunter Pinball game, is Doktor Badura, a Sierra-style adventure in the style of Maniac Mansion and Simon the Sorceror. I had at first thought this style impractical for handhelds, particularly palmtops like the Pilot, but after seeing Doktor Badura, I’ve changed my mind. I’ve always enjoyed this style of puzzle game, and accounting for the limitations in the hardware, it shouldn’t suffer from the screen refresh or calculation intensity of action-arcade or first-person shooters.

The most impressive example of the power of the Pilot for playing games I came across was found on the Palm Creations web site (www.palmcreations.com ). In my Psion article, wherein I commented on the lack of RPGs, I also mentioned playing Might and Magic on an original PC just to see if I could do it. Well, Dragon Bane can be favorably compared to Might and Magic or even Dungeon Master.

figure11.gif

Dragon Bane

In 200KB of storage, it incorporates a complete RPG experience.

One of the advantages of games like Dakota A, Kyle’s Quest, Dragon Hunt Pinball, and Dragon Bane is the opportunity for after-market products. Kyle Poole created and released a level editor for Kyle’s Quest, and at least a dozen third-party levels have sprung up as a result. In fact, the Kyle’s Quest engine has been ported to the Windows CE operating system. Dakota A also has a level editor available. The engine within Dragon Hunt can easily be used to create new pinball tables which you can sell without the expense and time required to develop a completely new game. With a new graphics set, new level maps, and only a few changes, the basic Dragon Bane engine could be reused for entirely different game storylines. In fact, Palm Creations is working on the sequel to Dragon Bane already. This is nothing new on the desktop scene, but with the leaps the technology is making in the handheld arena, minimizing development time can make the difference between making it or not.

"A Developer's Opinions"

In researching this article, I had a chance to converse via email with Gabe Dalbec of Palm Creations. It was he who gave me the statistics of the handheld market. From talking with him, I gathered that game development for the handheld market is just getting started, and will be growing rapidly. Palm Creations decided against a port of Dragon Bane for Windows CE because the market did not appear as robust as that for the PalmPilot. They are also discussing with another company the possibility of porting a classic game to the PalmPilot.

When discussing with Dalbec the Pilot versus Windows CE market, I mentioned the new HP Jornada 420, a color PalmPC running WinCE 2.11. He replied, "There are a lot of Palm-sized devices from tablets to handhelds to clamshells, and most of them are considered failures. The PalmPilot is the only clear winner. Before I invest a small amount of money and a huge amount of time to develop the ultimate videogame for Jornada, I need to see evidence that, in the game's lifetime, it will pay more than another game for the PalmPilot. Since media attention given to games is generally very short-lived, I wouldn't have time for Jordana to catch up to PalmPilot."

I asked Gabe what tools Palm Creations used to create Dragon Bane, and he said, "We used gcc and XCoPilot under Linux for Dragon Bane, but we kept running up against the 64KB code limit. In the end, we had to hand-optimize and assemblerize a lot of code, not for speed, but to reduce code size and get everything to fit. For DB2, we will use CodeWarrior because it doesn't have the 64KB code size limitation. Using CodeWarrior will be a big pain, and I don't suggest that anyone else use it unless they know they will run into the 64KB barrier (i.e., write an application that requires more code than Dragon Bane). CodeWarrior (with full optimization) bloats DB1 to 1.6 times its original gcc size, the interface is very clunky, and the debugger is buggy and obnoxiously slow. We are also using Visual C++ to create Dragon Bane development tools for the PC."

So there you have it from one of the PalmPilot game developers. It’s an unsual situation where the third-party, and in some instances free tools, are actually better than the official ones.

Options, Options Everywhere

There’s plenty of room for developers to create games in the action, arcade, card, board or adventure/rpg arenas. For those still wishing to forge new territory, the strategy and simulation game genres appear to be almost untouched. Certainly the market exists for shareware products, and retail sales might also be a possibility; there are already applications being sold though the retail channels. And the base of Pilot owners is expected to rise to two million by this year’s end, and to five million by the end of 2000.

All the tools you could possibly need are out there, and are about as affordable as you’ll find for any platform. The Roadcoders and Palm Central sites can guide you to a wealth of documentation, sample source code, and tutorials for Pilot development. Discussions of Pilot game development can be found on comp.palmtops.pilot, as well as the Gamasutra Handheld Game Programming discussion thread.

Jim has been involved in developing software since 1980, and has developed a taste for operating systems as esoteric as AmigaDOS and PalmOS. He's currently working on an RPG engine for Windows CE. His only advice for someone trying to program Windows is, "Punching the monitor hurts you more than Microsoft". He can be reached as [email protected].

Read more about:

Features

About the Author(s)

Jim Williams

Blogger

Jim has been involved in developing software since 1980, and has developed a taste for operating systems as esoteric as AmigaDOS and PalmOS. He's currently working on an RPG engine for Windows CE. His only advice for someone trying to program Windows is, "Punching the monitor hurts you more than Microsoft". He can be reached as [email protected].

Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like