Monday, November 12, 2007

FYI: Computer Scientists Are NOT Artists

Everyone expects, and should expect, programs to look nice, to have User Interface elements arranged in ways that make it easy to use, to include cool images that match the general color theme (taking for granted the program will have a "general color theme" and not all the colors of the rainbow used inconsistently over the different screens).

Of course this is the case if you use a computer game. The company that produced it spent tens of thousands of dollars, perhaps even more, in the game presentation and art. However, when you try to develop a mobile game in your garage (or in your bedroom as in my case), spending as much as $100 in the art of your game can be very painful.

I think the first consideration you have to make is whether you are developing the game just for the fun of doing it or you're actually considering to publish it either free or not. Even if you don't plan to charge for the game, if you publish the game it should look professional. I've downloaded dozens of poorly developed games and I always make sure not to go back to that site. I'm sure you don't want your name in the credits of a game that looks like a 5 year old drawing.

But then, who do you get your game to look professional without spending a lot of money? ... well, my first advice is to emulate professionally developed games. You can download hundreds of free games and trials and look for the characteristics you want for your game. Playing lots of different games will help you determine how you game should look and behave and, even more important, how your game should NOT look and behave. WARNING: of course I'm not suggesting you copy other games! It's not only immoral and illegal, It'll make you look like a loser. What I'm suggesting is to look at the distribution of user interface items, the flow of the screens, the usage of forms, etc. and then implement your game using those elements as guidelines.

The second advice comes from the subject of the post. Ask for help from a non-it person. Hopefully from a graphics designer or someone in a similar industry, but at least from a very well tasted and innovative person. You'll find that even if the person you talk to doesn't suggest color schemes and graphics you like, discussing the subject with them will let yourself identify the type of look and feel you want for your game.

Friday, November 9, 2007

Trial And Error, Not Precisely The Best Alternative

All right, trying to learn a new technology all by yourself may not be the easiest thing in the world, but when you've developed java applications of almost any kind, learning to use a new API isn't really complicated. What actually makes it complicated is not taking a few hours to RTFM!!!

Once I realized I had the ability to write some code, compile it and run it in the Wireless Toolkit simulator I just jumped right into the development stage. Wrong idea !!!

MIDP is not a huge/complicated API. However, I strongly recommend reading as much information about the usage of the basic classes and specially about the best practices involved. Getting a good idea of when to use separate threads; when to use a Canvas, a Game Canvas or a Form; when to implement CommandListener and where... these are all things you should know about before starting your project.

I ended up writing a complete mess, then wisely decided to start over, managed to write another mess even bigger, once again wisely decided to start over and finally came up with a decent implementation. The first two attempts did work, they showed the game and allowed you to play, but moving from one Canvas to another or handling user commands was a complete pain. The third attempt on the other hand was very very clean, with very few lines of code and allowed me to add features and change the behavior of the game very easily.

There's just one thing I still don't understand... Why haven't I read about the things I'm suggesting to read?

Thursday, November 8, 2007

The Tools

No programmer can call himself a real programmer if he/she can't program without a fancy IDE that points out syntax errors, provides code templates and code completition, compiles (and links if it applies) automatically, and so on. Once you can write your program in notepad or vi and create your executable files through command line compilation you can say you really know the language and the tools... but dang it's annoying!!!

Since I had never programmed using MIDP, I didn't even know what libraries and tools were necessary, so I went to the first place that comes to everyone's mind... Google. I was bound to be directed to the java.sun.com site anyway, but Google can take you to the right page with fewer clicks.

At the java site I found out about the Sun Java Wireless Toolkit (version 2.5.1) at that moment. The current version at the time of this writing is already 2.5.2. So I downloaded it, installed it, compiled and ran a couple examples and I knew I was pretty much set... Yeah right!

Even though I was able to start the project, create a couple Canvas and implement the basic human vs human game, having to edit your java files in notepad is not the easiest way. After some days programming that way I thought it was time to get a decent IDE. So I downloaded NetBeans 5.5.1 and the Mobility Pack which allows you to create MIDP projects.

Now that's what I'm talking about! With all the bells and whistles you can ask for, and then some, you can comfortably develop your project with absolute integration with the Wireless Toolkit for compilation, execution and debugging. I'm so glad I took the time to research about IDEs for wireless development. I definitely recommend the combination of NetBeans and its Mobility Pack to anyone that wishes to develop mobile applications.

Wednesday, November 7, 2007

How It All Got Started

I've always liked cell phone games. The first mobile phone I had was a Nokia 952 and I loved snake. It was a great help when you arrived too early to a meeting and had to wait for a while.

Now, I know cell phones started supporting java based games several years ago, but I never thought on making one. However, about a couple weeks ago, a co-worker told me he had been looking for a free Backgammon for his cell phone and had not found any. I figured I could do one fairly easily and, with some luck, even make some money out of it.

Why I'm I writing about this? ... well, I don't really know. I guess you guys can suggest great features for the games I end up developing and can even buy some of the games. I think it can help other people overcome the obstacles I find along the way too. So far, I'm concerned of how I will send the end product to the customer in a secure way and without allowing piracy to eat my business. I'm also concerned of how to charge the customer and receive the money. Since I'm from and live in El Salvador, getting money online to my bank account can be quite difficult.

Anyway, if everything works out as planned, I will end up having a set of fully functional, first quality, fun packed mobile games. I will also have everything set up for them to be sold online (hopefully without spending more money than I get in the process). Even if it doesn't work quite as planned, I know it'll be a lot of fun.