HazardGems

I have been wanting to develop games for Android mobile phones for long time. So, finally I decided to develop a simple variant of the casual match-3 game. But, I was very new to game development. I am a hardcore java developer and I am very good at programming and was very new to graphic designing.
However, I was able to finally pull out a very polished and addictive game thanks to the various tools and frameworks that are available. So, I thought it might be nice to share it with everyone.
1) IDE:- Since I am a java developer, an I use eclipse IDE everyday at work. I Used Eclipse itself as the IDE for developing my Android Game. Google provides free eclipse plugins for android development called Android Development Tools (ADT).
2) SDK:- To develop any app or game for Android one needs to download the Android SDK. The SDK came with various examples and a good documentation which helped me to quickly learn the platform.
3) Game Engine:- To develop a game, I needed to perform lot of animations and rendering. I could have done it with the basic opengl stuff provided by android, but I thought it would be more faster if I could find a free game engine for Android. Luckly, I found an extremely good and opensource game engine called AndEngine.
AndEngine comes with many good samples which demonstrate all its features and its also very stable and very easy to use.
4) Graphics and Artwork:- Here comes the most difficult part. I was very new to this and didn’t know how to make my game good looking. So I started out with a sketch on windows paint on roughly how my game should look and decided on a meaningful theme which in the current situation is all the Hazards that surround us :- Radioactive, Chemical, Fire etc…
Then I searched on Google for royalty free Photoshop artwork using relevant keywords for my theme. I then used Photoshop to put together the images which I got for free according to the game layout which I had planned. Then I replaced and modified some of the images to make the game more visually appealing.
5) Sounds:-  Games also need sounds. I searched for required sounds on  http://www.freesound.org/. They have a very vast collection of good sounds some of which I used in the game. I also used an opensource software called Audacity to modify the temp pitch etc to suit my needs.
Since, I am employed as a System Architect at a Company, I could spend only about 2 hours per day and  it took me about three weeks and Finally, I was able to put together this game.
I published the game yesterday night to the android market and was surpised to see that within 8 hours there were more than 600 downloads and a rating of 3.5 with many good comments.
If you would like to try out the game, here is the link.
https://market.android.com/details?id=com.vimtec
Some Snapshots of the game:

10 comments - What do you think?  Posted by vimal - March 16, 2011 at 4:06 pm

Categories: games   Tags:

It’s Official Now: Software cannot be patented in NZ

Last week I was reading an article posted in Dzone about an innocent developer being threatened for patent infringements. If this becomes common then we all software developers would be unknowingly violating thousands of patents just because some one  has patented a very common idea.I just wanted to check if someone has patented applications of hashing. So, I just searched on google patents just to find thousands of patents related to hashing . No one can prevent the same idea from coming to another person’s mind. In case some one thought of the same thing that another person has already thought of and patented is that person doing a crime. Moreover, it has also become habit for large corporations to use their money power to patent trivial ideas which puts many small companies at risk as they will be unknowingly violating several patents and have to constantly live with the fear if a patent infringement law suite on their head.

I hope that there are many people like me who feel that software patents should not be allowed or should be very strict to prevent trivial ideas from being patented.

According to this news posted on reddit, recently, The commerce Minister Simon Power has instructed the Intellectual Property Office of New Zealand (IPONZ) to develop guidelines to allow inventions that contain embedded software to be patented. These guidelines have now included a clause to disallow computer programs from being patented.

However, no patents for software does not mean that anyone can steal another person’s idea. I think copyright provides significant protection from such cases.

http://www.google.com/patents?q=hash&btnG=Search+Patents

Be the first to comment - What do you think?  Posted by vimal - July 15, 2010 at 5:25 pm

Categories: General   Tags:

Understanding Java Memory Structure

One strength of the java platform is that it shields the developer from the complexity of memory allocation and garbage collection.  We all know that java stores objects in a Heap memory.  Internally Java partitions the heap memory space logically into three areas called generations.

  1. The Young Generation
  2. The Tenured Generation
  3. The Permanent Generation

Out if these three partitions, only the young and tenured generation spaces are used for allocating memory to objects. The permanent generation space is used for holding the data needed by the virtual machine to describe objects that do not have equivalence at the Java language level.

This partitioning is done in order to improve the performance of garbage collection as performing garbage collection on the entire heap will be very expensive. Instead the architects of java decided to partition the heap space into three parts.

The Young Generation

The young generation is where space is allocated for newly created objects.  In most applications, most of the objects created are used and referenced only for a very short span of time (high infant mortality rate), for example an iterator instance is discarded as soon as the loop is complete.

The purpose of having a separate space of young generation is to maximize promptness (the time between when an object becomes dead and when the memory becomes available) and to reduce the overhead of scanning the entire heap during every garbage collection process.

Garbage collection in the young generation happens when the space in this generation fills up and is called the minor collection. Minor collections can be optimized assuming a high infant mortality rate.  It is well-tuned in the sense that the young generation is large enough (and thus the period between minor collections long enough) that the minor collection can take advantage of the high infant mortality rate. The time required for garbage collection is directly proportional to the number of live objects.  A young generation full of dead objects is collected very quickly. Some surviving objects are moved to a tenured generation.

The Tenured Generation

Objects which survive the young generation are eventually moved into the tenured generation. Garbage collection in the tenured generation happens when the space in the tenured generation fills up and is called the major collection. Since the tenured generation usually have a large number of alive objects, the time required for garbage collecting the tenured generation is much higher than that for the young generation. Hence, garbage collection of the tenured generation is done at a much lesser rate than the young generation.

The Permanent Generation

The permanent generation is not used for allocating objects. Instead it is used for holding the data needed by the virtual machine to describe objects that do not have equivalence at the Java language level. For example objects describing classes and methods are stored in the permanent generation.

8 comments - What do you think?  Posted by vimal - May 24, 2010 at 5:53 pm

Categories: Memory Management   Tags: