Entries in games (2)

Sunday
Mar272011

My First "Serious" Project  :)

Last week started with changes in SimpleBeat web-site design (I changed the background from plain brown color to simple "wooden" texture), and it continued with making the header for the web-site, original typography art-work, rendering "SimpleBeat" in bold white letters with outline effect.  It may seem a bit out of style, and I am going to fine-tune it this week.
 
As far as my programming and studies go, I've learned a couple new concepts:  HashMaps and Layouts.  These concepts are Java-specific (at least Layouts scheme), so I am not spending much time on it.  My Java course should be over by mid-April (which is in three weeks), and I'll be starting C++ as my second course.
 

To practice Arrays and Layouts I am going to do a few practice exercises.  And here's a brief overview of my first exercise, a variation of Hangman game, which I call "Harakiri", and which is styled and related to Japanese culture.  In traditional Hangman player guesses the letters of a word, and if he makes a mistake the picture gets updated with new details of the hangman.  In my variation the hangman is samurai (Japanese warrior) ready to perform harakiri (ritual suicide), and the only way to prevent samurai from doing it is to guess the word correctly making the least of the mistakes possible.  The word list will contain English words originated in Japan, or famous places in Japan (some well-known and not so much entities like "tsunami", "Tokio", "banzai", "kimono", etc).

This is going to be a "serious" projest, involving writing/reading files (dictionary), displaying rich graphics (I am on a zero budget, so do not expect anything too advanced), music & sounds.

I am treating this project as a prototype for my future iOS development process, and will be testing out various techniques and approaches to see what works and what doesn't.  I plan to finish with the game by the end of the week, and will post various details and follow up next Sunday.

Sunday
Feb202011

Building Skills in Programming and Design

It was a wonderful and intense week for me (in a good way).  Minutes after posting my last note one week ago I decided to change the design of the web-site.  Again…  So, I spent a couple of hours tweaking a completely new template to better suit my needs.  I’ve also added tags cloud, changed appearance of Twitter feed a bit, and… that’s it for now.  :)  It still is in a ‘beta’ stage though, I will definitely change the colors (I liked the previous color scheme better), and the icons, and will pay special attention to the header.  I plan to make a collage of my working environment in Eclipse and have it as the header image.  Basically, that’s my goal for the week ahead in terms of the web-site design.

My programming skills are also improving.  I’ve completed, debugged, and polished ‘BreakOut’ game.  Even though it’s a very simple game, it turned out to be a valuable experience in programming.  I’ve learned how to program mouse and keyboard events, and also how to make many things to happen all at the same time.

This was also a great experience in debugging.  I had three major bugs.  One was that the ball may get stuck inside the puddle, another — the puddle might in some cases disappear when hit by the ball, and the last one (which I got rid of very quickly) — the ball could become invisible if the initial direction of movement was to the left and not to the right.  So, the major problem for me was not to identify the bug, but to actually come up with a fix.  And to my surprise the two bugs I had no clue to fix got worked out relatively fast once I started thinking about possible solutions.  Thus, the first lesson: 

Even if you don’t seem to know how to fix a bug, keep trying, it may be easier to fix than it looks! 

Another game (it’s even less complicated than ‘BreakOut’) I’ve implemented just yesterday is ‘UFO’.  I’ve coded it from scratch in two hours, then eliminated the bugs (which took me roughly another two hours), and implemented an advanced feature:  when the bullet hits the UFO there is a little green alien falling down from it and bouncing away.  :)

I’ve implemented a separate class for the alien named… well, GAlien, which I designed to be a separate class extending GCompound class.  It allowed me to do various things with it in simple and convenient ways.  By the way, this is how the alien looks like:      and here's the code for the GAlien class:


Next week I’ll continue my study by reviewing the lectures, reading on the book, doing the exercises.  I hope to complete the course by mid March and start with the next one immediately!  And now back to work, blog-time is over!  :)