RSS

Those good ol’ coding days …

10 Jun

I haven’t written a line of code for some years now … I think the last time I wrote code was in 2004 or so. Not something I’m proud of, just something that happened due to the career path I chose. But anyway, I kept surrounded by techies and coders for a while and always enjoyed their conversation! Now, despite these eight years without coding, it wasn’t always like this … I used to code a lot, not only for professional reasons, but also for fun! Recently, I’ve come across some old Pocket Viewer games  (a vintage Casio PDA) I wrote, and decided to write a post on the subject … and here it is!

In 2000 or so, PDAs were as hot as tablets are today! Back then, Palm’s III and m100 were the most common choice … For some reason, I decided to buy another PDA, a Casio Pocket Viewer.

The Pocket Viewer was a little 2 MB / 4 MB machine with a z80 inside (yes, the legend!), very similar to a Palm in most senses. It featured a black and white screen, a stylus, some personal applications, etc. The PVs (as they were known) were at first non-programmable machines, but after a while, Casio releases the “X” series which allowed application development. Soon, many application programmers appeared for the little beast … and of course, I wanted to join the party. I downloaded the SDK, printed the manual (a dreadful thousand pages describing the API and not much else) and started trying to make something work on this thing …

After some hacking, I managed to put some sprites (yep, ol’ term) on the screen and make them move. These early proofs of concept soon turned into a primitive yet fun game for the PV … I named it “UFO” and uploaded it as freeware to the most popular PV site at the time (http://www.pocketviewer.de/). See a screenshot from UFO below (this is actually UFO 2.0, which featured improved graphics and sound).

To my surprise, UFO was very well received and encouraged me to build something else … something a bit more professional (to PDA standards, of course). So I delved into a coding marathon that started on friday night and ended by late sunday … after many cigarettes (I smoked by then), beers and apologies to my girlfriend. I wanted something to look good by PDA standards (I used to look at Palm OS games for inspiration), I wanted something fun and I wanted something that somewhat recreated the spirit of the 80’s 8-bit games. Somewhat inspired by Mastertronic ZX Spectrum’s classic Molecule Man, I created Toxin Panic, which I uploaded to http://www.pocketviewer.de at the end of that coding weekend. You can see a screenshot from Toxin Panic below. 

Toxin Panic was a hit! … The morning after uploading this little game, I started receiving thank-you e-mails from people who had quickly become addicted to the little game. I remember that http://www.pocketviewer.de run a survey on “what do you like most from your PV?” and a guy answered “playing Toxin Panic”. I was really enjoying this thing!

It was by mid 2001 that Casio Germany released a series of competition named “Casio Developers League”, aimed at raising the enthusiasm of PV coders out there. There were three categories, from “Rookie” to “Professional”, and interesting prizes too … from PV accessories to expensive high-end Casio wrist watches. I decided to give it a try!

My first attempt at the Developer’s League was with UFO, which awarded me a prize in the beginner’s category. Casio sent me a nice leather sleeve for my PV, a set of styluses and some other goodies. This was before I sent Toxin Panic to the contest …

Toxin Panic was ranked at the Advanced Level, one class below the “Professional” level … this time, Casio sent no sleeves, but a high-end steel watch! I was amazed! I kept sending games to the Developer’s League for a while, and among other prices, I won a Casio Watch with integrated BW Digital Camera … way cool back then!

My PV coding days didn’t finish with Toxin Panic. Soon after, I reused the design of Toxin Panic and released Relic Quest, which was similar in some ways, but also featured enemies, several levels, keys, doors, weapons, etc.  

Then, I wanted a bit more than maze games, and started working on a breakout style of game. There was only one breakout game for the PV and it was quite primitive. I wanted something good, similar to the breakout you had for the Palm OS. So after another coding marathon, I released Brick Panic.

Brick Panic featured the “Spherical Man”, the character I created for Toxin Panic … this time, the spherical man was holding a paddle with which it kept a ball from falling from the bottom on the screen … and kept blasting brick walls in the classic breakout style. Of course, Brick Panic was very well received and awarded me a prize in the Developer’s League. 

I kept looking for more coding challenges, and decided to do a Donkey Kong style of game, since there was none for the PV. Actually, I always liked Donkey Kong clones … I even coded a simple clone for my ol’ CZ Spectrum Plus (an argentinean version of the ZX Spectrum +) back in the mid 80s.

So I got back to coding and released Kong Panic, a simple Donkey Kong clone, again featuring the spherical man. Actually, I originally planned Kong Panic to be a bit more complex and challenging, but got a bit bored of programming it … and finally released a single screen game (variations were in the different nasties you faced in every level). Kong Panic was not that fun, I must admit, but it looked cool by PV standards. See a screenshot of Kong Panic on the right, below.

But the greatest challenge was yet to come … The Palm OS had a Role Playing Game engine called Kyle’s Quest, which allowed to develop very entertaining “portable” RPGs … it was great by the time! Playing RPGs just everywhere! I wanted the same for the PV. The games were “tile-style” RPGs, a kind of RPG very popular in the 80s, used by Lord British’s Ultima Series, among others.

I wanted a Kyle Quest like game for the PV. I wanted it to have a story upon which I would code a trilogy. I wanted it to have items, enemies, big maps. And finally, I wanted it to be based in an application framework I could use to code the trilogy and later release to the PV community to develop its own games. I accomplished several of these goals when I ended coding Knight’s Quest.

Knight Quest was an Adventure Role Playing Game very similar to the ones you could develop on Palm OS’ Kyle’s Quest. The name of my own RPG was inspired in King’s Quest, a classic adventure game saga (though not an RPG). In the game, you controlled a character through a big map, collecting and using items, fighting enemies, acquiring experience, etc. The engine was menu-based and inspired in Mastertronic’s Magic Knight series of games of the mid 80s (in case you are curious, google the following: Finders Keepers, Spellbound, Knight’s Tyme and Stormbringer). See several screenshots of the game below. The other screenshots I’ve shown up to now were taken from instructions booklets. But since I didn’t have a screenshot of Knight’s Quest, I had to download the PV SDK and load it … brought back many good memories!

Knight’s Quest was a big hit! I got a mail from a guy who told me he played it for some hours straight and finished it. I asked him how did he find the game …and he was so enthusiastic about it that he send me a complete walkthrough of the game!

But then, something happened! I had an opportunity to change jobs to the Software Process Improvement field and get into a great consulting firm I had long wanted to work to. The opportunity implied establishing in Santiago, Chile, for 6 months. I had no laptop at the time, so instead I decided to but a Pocket PC … thus leaving the Pocket Viewer behind.

My new job was more of a consulting type, and though I wrote some code for some specific purposes in my early engagements, soon I left coding completely. Working in something different from coding and moving to a different (more complex) OS imposed a barrier … so I left PDA coding (and coding in general). My coding days finished something by mid 2004 or so …

But coding left me several very useful lessons that prove to be very useful even today. On one hand, it allows  me to talk to coders and, though I’m rusty in current versions of programming languages I once knew well, understand each other well. But besides this obvious advantage, coding has provided me with several abilities that I find useful beyond programming, such as …

  • Designing business process’ activities in a way that they fit together logically (the same way a compiler forces you to match methods formal and actual parameters).
  • Structuring documents and presentations so they follow a logical pattern and are easy to maintain and upgrade (that is, applying maintainability to deliverables other than code).
  • Structuring excel spreadsheets so they are easy to understand to users beyond myself, separating constants from formulas and variable fields, etc (the same principles you apply when you code meant to be generic, such as application frameworks).
  • Problem solving in a divide-and-conquer fashion (in the same way most programmers approach debugging).

And of course, these are just a few. Software programming allows you to put in practice algorithm development and logic in a way that it just sticks to you naturally. So, eight years later I have a lot to thank to programming.

And so, to those good ol’ coding days … THANK YOU! And to this blog … WELCOME BACK!

 
 

One response to “Those good ol’ coding days …

  1. migsic98

    August 19, 2012 at 4:38 pm

    Qué recuerdos!! Yo tenía esas aplicaciones en mi antigua Pocket Viewer! 😀

     

Leave a comment