Wherein Apoch becomes a mobile developer
I've had my eye on the Android platform for a while now, largely out of the same kind of vague half-interest that lightly glues me to everything remotely technological that might have a game written for it. A few years ago I procured some random spare parts from GPS units, a microcontroller, and some other goodies, and had the idea of building myself a tiny "portable" game console from scratch. Writing games on modern platforms is fun in its own right, but there's a charm to working on highly restricted systems. Maybe it's largely nostalgic for me (I first learned to program on one of these) but I always enjoy building games under tight technical constraints; God knows I spent far too much of my high school career hacking my beloved Casio CFX-9850GB+.
Although I never managed to learn enough electronics wizardry to build the console myself, I kept the idea (and parts) handy, and I've still occasionally had the itch to write something for a smaller platform. Hold that thought - it'll become relevant again in a minute.
A few weeks ago, in the depths of near-terminal boredom, a friend and I dropped by the Verizon store to browse around and look at phones. I was eligible for some pretty nice upgrade discounts, and my old dumb-phone handset was starting to act really quirky, so I figured what the hell and bought a Droid on impulse. The slide-out keyboard really appealed to me (I can survive with touch-screen keyboards but really prefer the tactile feedback of a real keypad), the hardware specs are pretty good as far as Android phones go, and given the choice between Motorola (who I like and respect as a hardware manufacturer) and HTC (whom I don't quite loathe as much as deride humorously as often as possible), the Droid was a pretty clear winner.
Of course, being a programmer, the first thing that entered my head when I started playing with the phone was "I really want Feature X. I'm gonna write an app for that." And thus it is that I've nearly finished off my first app for sending SMS texts to multiple contacts in a batch; nothing fancy or sophisticated, but slightly more convenient than having to do a lot of copy/paste as is necessary with the off-the-shelf SMS app. The UI is all done and polished up, and I just need to actually wire it up to the SMS functionality, and I'll probably deploy it to the Market as a freebie.
Once I get Project Number One shipped, the obvious question is, what next? This being GameDev.Net, you might think the answer is also pretty obvious, but I'm seriously debating digging into some lower-level hackery and building a way to use the phone as a webcam. (I've encountered an existing solution for that very purpose, but it's pretty slow and glitchy, so of course being an arrogant ass my main reaction is "I'll just write a better one.")
So barring me wasting all my time making silly faces at a telephone, my thought is to start writing a game project for the Android platform. Nothing terribly complex or graphically sophisticated - in fact, I was kind of hoping to go back to my old (very old) text-only roots and write something akin to Kroz or even Nethack. My thinking is that I'm going to want something to occupy me when I don't have a bunch of development tools wired up to the phone, which means it'll actually have to be fun to play, and highly replayable at that. Stupid goals for a game, I know.
A (moderately) long time ago, I had a side project going for some kind of adventure/RPG game - Monkey Island meets Final Fantasy. It was originally intended to be a text adventure in the vein of ADVENT and some of those classics; maybe updated with a little colour and some ASCII art, but largely the kind of stuff that I could do by myself as an artistically sterile programmer geek.
Over time that morphed into a graphical point-and-click adventure with a realtime combat system, and then into a giant pile of neglected code with a bunch of cheesy hacks bolted on every few weeks to try and make myself feel like I was still making forward progress. That concoction deteriorated fairly quickly into abandonware, and has been gathering dust on a CD-R someplace for years now.
In the first, text-only incarnation of the game, the idea was to generate the mythical Caverns of Hylm using a procedural content generation system, back before "procedural content" was a sexy buzzword, and back before I was educated or old enough to pronounce "procedural." You would then quest through these caverns in search of legendary weapons and treasures, eventually encountering an otherworldly metallic hovering sphere that teleported you into the lair of an evil half-demon knight who you had to battle for access to the epic enchanted loot.
Now, many years later, endowed with the ability to speak multisyllabic words and actually consider trivial issues like proper game design, I think it's time to go back and reincarnate the Hylm universe.
I'm big on the procedural content thing, for two reasons: it saves me the time of sitting around designing and building a massive game world to roam around in, and it provides me a way to be entertained and surprised by my own game. Exploration is something I really enjoy in games, but it's hard to have that sense of adventure and mystery when you "explore" a map you just spend four days meticulously laying out on graph paper.
I'm also big on remaining almost entirely text-based. This eliminates the need for me to find someone who can actually draw, drops the resource requirements of the game substantially, and makes procedural content creation vastly easier to do nicely. It also tickles my nostalgic itch a bit and takes me back to the Days of Yore when pretty much everything I did was text based or ASCII art.
Another decision I made early on was to stick to something turn-based to some degree; realtime games are fun and all, but I'm envisioning something I can play in the middle of a busy environment, when I have 30 seconds at a stop light or waiting for the plane or whatever. Stop-and-go support is critical here; the game should be something that is essentially a background task. To me it just doesn't make sense to demand continuous, full attention; I'm just messing around on my phone, after all. This reduces a lot of concerns like how to deal with saving state when swapping out to other apps, how to handle sudden power loss, battery consumption, and so on.
No audio. I hate listening to other people's stupid little noises when they play Bejewelled or whatever the hell it is people play on cell phones these days. I also suck at audio effects and I hate stock audio samples, so that solves a content creation issue right out of the gate.
Last but very much not least, I want to see what I can do as far as exploiting the Droid's semi-multitouch interface to do things like spell glyph recognition and other cool input forms. I think it'd be pretty sweet to cast a fireball by drawing some runic stuff on my screen.
Of course I'm still waffling a bit about what I actually want the core dungeon exploration mechanics to feel like, but hey, I have a real job to do and plenty of time to waffle until next weekend when I get another chance to hack.
Until then, viva le Droid, and Java sucks. Brush your teeth, kiddies.