Description

This is an old school, Galaga-type shooter game but with a Star Wars themed twist. The menu screen greets you with three options and some (cryptic) hints from the legendary Jedi master, Yoda, to help you learn more about the game. Before you start the game, you can choose the ship that best suits your gameplay. The Millenium Falcon (left) is the sturdiest, with a lot more lives, but not so much speed. The X-Wing (right) is the fastest, with not too many lives but a boost in speed combined with a smaller hit box that makes it easier to dodge obstacles. The default ship is the middle ground between the two and probably the best choice for beginners. Maybe you would like to check the highscores and set a goal for yourself before you start the run. The highscores menu reads a text file that stores the players’ names and their respectives scores.

Now that you’ve chosen the ship that best suits you and set a goal to conquer, it's time to play the game! The objective of the game is simple; survive as long as possible by avoiding collisions with incoming obstacles. At the very top of the screen will be a HUD that displays your ammo, current level, lives, and your current score. The spaceship moves with your mouse cursor. Speed up and get a score multiplier by moving the spaceship up the screen, or slow down and play it safe by moving the spaceship down the screen. Left-click your mouse to shoot your ammo and destroy incoming enemy ships, but pay attention to your ammo count! If things start to look bleak and it feels like it might be game over, don’t worry, because you’re not alone! Look out for two power-ups that will help you keep fighting: the heart orb that grants you an extra life, and the shield orb that grants you invulnerability for a limited time.

Perhaps the difficulty caught up to you and now it really is game over. In that case, you’ll be taken to a screen where you can enter your name and save your high score, forever etching yourself into the records of time as one of the greatest players to ever play this game. Ok, maybe it's not that grand of a prize… Tell you what, if you can get a highscore above 10000, you’ll get a little surprise! Listen to Yoda’s words of encouragement and ‘do again’ to try and reach that score.

Images

The menu screen, read Yoda's words of wisdom!
Choose from three ships, all with different stats!
Set a goal for yourself and beat a highscore!
Watch out for all the obstacles!
Game over... Will you do again?

Video Demo

Notes

This is the project I submitted as my final assignment for my grade 12 computer science class. The class taught the Java language and was my first ever experience with programming. A lot of what I used in the project had to be self-taught or was a quick fix found on Stack Overflow. We weren’t taught about the importance of structure and modularity in code, which I later learned about that summer before 1st year. Despite the lack of programming knowledge and poorly written code, the game plays very well and to this day I'm proud of what I accomplished and so I wanted to share it with others.

The class also taught me about the simplicity of programming; how anybody can pick it up and create something amazing and personal to them. For me, that was creating my own video game. And now, 2 years later, I’ve worked on projects such as the 3D Mapper and the Spotiplayer that use different programming languages, their own libraries, have proper structure, modularity, and a lot of other programming principles I’ve learned since. This class is what set me on my path to study and become a computer engineer. To learn about the resources that are available to everyday people and be able to create things from those resources that I could only dream of.

Even though I haven’t worked on any major Java projects since, I’d still like to come back and do a complete overhaul of the game. Maybe with all new, clean, proper code and even a few additions to the gameplay- although that may not be happening for a while. I want to continue to learn about and experience more of the programming tools that are out there right now. Still, make sure you check every now and then for an update on the project in the future.

Visit my GitHub repo for the project’s code and more information.