Space Jet II

SpaceJet: II is a desktop-based 2D arcade shooter developed in Java for my Computer Science I course. The assignment was to build a program using core concepts like classes, loops, if statements, and event handling, so I chose to recreate a Galaga-inspired space game. Built using Java Swing, the game features smooth animation through double buffering and includes a player-controlled jet, waves of enemy ships, and escalating challenges with mini-boss encounters.

The game starts in an idle state, prompting the player to press any key to begin. Once started, the player can move and shoot using keyboard input while avoiding enemy fire. The spacebar toggles pause, allowing the player to stop and resume the game. Enemy ships spawn in timed intervals, and the player’s jet upgrades its bullets through power-ups. As the game progresses, mini-bosses are introduced with unique bullet patterns, increasing the difficulty and excitement. Score is tracked continuously and displayed on-screen alongside state-based messages such as “GAME PAUSE,” “GAME-OVER :(,” or “YOU ARE THE WINNER!”

The program uses clearly defined game states (start, playing, paused, win, and lose) and organizes all game elements—player, enemies, bullets, and bosses—through custom classes. Game logic is managed within a continuous loop that controls rendering, timing, and object spawning. SpaceJet: II reflects my understanding of event-driven programming and object-oriented design, and it marked my first experience developing a full interactive application in Java.

If you want to see the GitHub repository click here.