The best way to learn a new technology is to try it out in a small sample project. With web development being my weak spot I decided to give jQuery UI a try. The only thing missing was the objectives of the sample project. I decided to try to make a small game for my 5 year old daughter. This also gave an opportunity to introduce my wife into software design and development. We wanted a game that doesn’t require reading, is free from ads and has no time restrictions.
The result is a simple math game.
We had some initial requirements for a good game for small kids:
- No reading required to play the game. Letters can be part of the game for the purpose of learning, but it should never be required for playing and handling the game. It should be possible to start, play and restart the game without reading anything.
- Not tied to knowing a specific language.
- No complex navigation possibilities. We wanted the game to be free from links to other sites on the Internet, to be sure that no inappropriate pages are displayed.
- No commercials that distracts and possibly shows strange images.
- No time pressure. Loosing because of timing restrictions while struggling with mastering the mouse doesn’t make the playing fun.
Involving my Wife
My wife is an ordinary computer user, but has never done any kind of programming. I thought this would be an excellent opportunity to show her what development could be like. We started by looking at the jQuery UI page and the sample widgets that are available there to get some inspiration. Then she started sketching on ideas. She quickly came up with 5 or 6 different, realistic ideas. We picked one to start with, discussed in a bit more detailed and then I started coding.
The impression if jQuery is that it is really powerful, quite simple and possible to make a decent structure of the code. With all code relying on the css class names, some disciplined naming conventions is needed. The controls I tried out was the tab control (to make space for more games later) and a button. For the math problems themselves I first started with an accordion, but gave up as I found out that I didn’t want the built in handling but rather control it myself.
I think that client side scripts will become more and more important. We are in the middle of a transition from using the web browser for displaying pre-rendered created on the server into using the web browser as a general application platform. I believe that web pages more and more will become rich client applications, calling web services on the server to retrieve and update data.