DEV Community

Bill Xiang
Bill Xiang

Posted on

My First School Project

I had just taken the bulk of an Introduction to Java course at the time, and there was this game project where the objective was centered around implementing a simple version of the Atari Centipede game.

My Final Project

I embarked on satisfying the basic requirements of the projects: getting the basic mechanics finished, having passable graphics assets, and gluing everything together. With the extra time and inclination, I strived to add a couple of new features that expanded on it, the most notable of which was the Millipede, hence the revised name, which were allied insects that assist you in clearing mushroom obstacles and enemy centipedes in demolition style.

Link to Code

GitHub logo element-sauce / MillipedeGame

Millipede is a spinoff of the classic Atari Centipede game and is a 2-D, 80s-arcade-style shooter game. Created using the Java Greenfoot development environment.


You control a sprite regulated to a bottom portion of the field, that can shoot lasers. The field starts covered with several mushrooms that act as obstacles.

Before the start of every level, more mushrooms spawn on the field, and a centipede starts at the top left corner of the field, moving in a gardual serpentine path towards the player.

The game progressively gets harder as more mushrooms spawn and the speed of the centipede can get faster.

Annotations have been made to each Java class explaining its use and design.

Title Page Gameplay Level 2

How I built it (what's the stack? did I run into issues or discover something new along the way?)

I used a special beginner-friendly Java integrated development environment called Greenfoot which had its own API by the same time, designed to get students on their feet quickly in creating their own games. I think I owe the relative simplicity of being able to add extensions to existing features as well as new features altogether firstly due to the implicit extensibility of the Greenfoot framework that simply allows me to add a World or Actor class when I want to add another creature, for example.

The second reason I think is my personal take on having class hierarchy as a design focus. One example where I did this was when I created a Mushroom class that contained all of the features that I wanted all Mushroom to share, but that all mushrooms can also built upon, such as CentipedeMushroom and MillipedeMushroom, both of which spawn the the respective creatures. Being able to test and run my game immediately after quickly compiling, all within a single screen due to the convenience of Greenfoot, also definitely helped with development velocity.

Additional Thoughts / Feelings / Stories

Upon reflection on the completion of this individual project, it was the first time that I created something that I was truly proud to a significant extent and deemed it presentable, meaning that I felt comfortable sharing it with my peers and letting them play a round or two of the game. One thing that I wish I could have done, (but don't regret at all because I didn't know how to at the time), would be to use Git to track my proejct, not because I was working in a team but that it would be useful at the time to employ version control, perhaps interesting to look back at the progress I made in increments over time.

Top comments (0)