From Palm OS to Steam. A 15 year - developing & platform swapping odyssey.
This is a story about my recent remastering of Zeus Quest. An adventure game I originally build for Palm OS back in 2007 and I remade it with Unity just now. I think it will be fun to start my story from the beginning and see the history behind an indie Dev who was learning along the way (Learning the hard way…). After all, things changed dramatically the last 15 years in the industry.
All started in 2000, back then I had little experience in programming (to none) but I loved to buy all the new and exciting gadgets. Like my first PDA, the Handspring Prism. It was state of the art machinery with 3.0" 4-bit grayscale screen, 16Mhz ARM processor and 2MB Ram! You even had to put 4 AA batteries but they lasted almost 2 months! After I bought it, I had an enlightenment: Why not develop an app for this PDA, just for fun… that was the moment my ‘developing’ journey began.
My fist App, in Palm OS.
I didn’t know much about coding but that didn’t stop me, I decided to make a card App for Palm OS. I used visual basic and it worked. It took me almost 3 months but after a lot of reading I made it. The only drawback was that the app was slow because of visual basic. Then I thought, why not put it in the popular stores of the time like PalmGear.com and Handango.com and see if people like it?
The first bucks…
Back then the price tags were fantastic (for the developer!), you could charge 16$ for a simple app and it seemed normal. Indie Devs back then (..yes, indie Devs are not invented recently...) didn’t know what the word marketing meant and it didn’t matter! All we had to do was write the App and publish it, golden age indeed! Anyway, some cash started to come and this made me even more enthusiastic. So I decided to go to the next level, make my App faster, code with C++!
C++ and Codewarrior
Some of you might know the coding IDE Codewarrior. Its super simplistic for hard to learn. The learning curve was so hard for me it was a joke! It took me one full month to show a colored square on the device! C++ was hard, but after six months I finally learned it (due to pure stubbornness). I remade my card app and it was blazing fast now, 10 times faster than before and I made myself my first C++ App engine, I was ready for more!
After 2004 I started to release more games and apps. Business was going well and I left my job to be a full time Dev. Then I had to decide how to port my games to other popular platforms like Pocket PC (C++), Blackberry (Java) and Symbian (C++). I ended up re-writing my App engine in all new platforms, then drop the code and do a million corrections manually. This was a nightmare, each platform had variants also and I remade everything for each one and each aspect ratio. Endless variants: Pocket PC for touch, Windows mobile for non-touch, low res & high res. Symbian 3rd, 5th edition. Blackberry non-touch, touch, low and high res and all their resolution differences.
Later on things got even more complicated only because I wanted to support most of the platforms out there (was not a bad strategy in the long run). I rewritten my app engine into many other native SDKs like, Bada, early iOS, early Android, Symbian UIQ, Windows desktop and Mac. As you can all imagine it became super hard to maintain many apps and games like that. Devices, resolutions and platforms changed rapidly over the next years, many got deprecated and many new ones popped up. Even like that, this approach had one advantage, I always developed my apps first in these new markets because I didn’t have to wait for anything, I used only the SDK and my code. As the years passed it became to me amazingly clear that I have to find a way to develop into all resolutions at once (scalable) with OpenGL (at last I got it!) and easily convert my code to other platforms somehow. Are you thinking Unity3d? No, not yet...
In 2012 I decided to write a new game engine in C++ with the help of SDL which is a very popular library that helps a lot with audio, input and graphics. Its also multiplatform and free and it has a huge active community. It took me a while but it worked really well, I developed some games and apps with it and then it hit me again... I can’t compete with modern games, even in 2D. I need physics, rigging, animations, AI, you name it... That is when Unity3D came. This brings my near today.
About the original ‘Zeus Quest’ first made in 2007.
When I designed the original game it was fun times but I did many stupid things also. E.g.: when my graphics artist asked me what resolution I want the images done, I told him 480x480 (because 480 pixels are enough for anyone...)!?! That is why now for the remastering I needed new art (out of budget) or somehow remake the old one. So I chose the second option and with heavy Photoshop-ing and Vector-ing I managed to remake the art with a decent outcome. The character, music, sounds, animations, voiceovers, UI and some whole scenes are brand new.
Why remake it?
The main reason I decided to remake the game is that I truly believe its a nice silly adventure game. I would like to see it as a modern game with 60FPS, limited voice overs, FHD graphics and more. The old one had still static images (remember I made it for Palm OS) but the plot and texts were really funny and it was an overall great game at its time. Also It was huge (full length adventure game) and that caused me troubles in old platforms like Blackberry where all games were around 1mb and mine was 5mb! I remember it compiled it into hundreds of .cod files because of a 640kb limit... great times...
The remastering is done!
It took me much more time than I originally planned (10 months) only because Unity3D opened a whole new word for me and I wanted to try all the goodies like AI walking, 2d character rigging, voiceovers... you name it! Also its just me working on the game. I believe the outcome is nice and intentionally silly. I hope you all guys give it a shot, its just out internationally for Android, iOS and Mac. Soon all the other platforms too - thanks to Unity.
Android Full version: http://play.google.com/store/apps/details?id=com.crazysoft.zeusquestremastered