- Ensure the latest version of the Java runtime environment is installed
- Open and run "SpaceInvaders.jar"
- On the "Server" tab, select a port of your choosing (or leave as default) and click "Start" to host a server
- Change to the "Client" tab, enter the server address (or leave default for localhost) and the previously chosen port, then click "Connect"
You may play with a friend by giving them your IP address and having them connect to your server! The game starts as soon as a player shoots for the first time, and newly connected clients can only have a ship created for them when a level is not active.
You can move horizontally by using either A/D or LeftArrow/RightArrow
You can shoot by using W, UpArrow, or SpaceBar
- The goal is simply to defeat the alien invaders before they reach the bottom of the screen.
- Aliens speed up when fewer are remaining, and they collectively change direction when any alien in the pack collides with the side of the screen.
- The aliens become 20% faster on each new level. The first level can be cleared by a single player but is quite challenging to do so.
- Language used: Java
- Software used: Eclipse
- Libraries used: Processing 2
This project was the final submission of a game engine class that I took in Fall 2015. Over the course of the semester I was tasked with developing my own game engine from scratch, with a focus on providing support for a multithreaded client-server network architecture. I developed a basic 2D platformer alongside it, and as part of the final project, I was asked to design a completely different game using the same engine. Due to the robust design and functionality of my original engine I was able to use it to create this multiplayer remake of Space Invaders in just two days.
This project should not be used as a resource by anyone tasked with a similar academic project. Otherwise, this project may be freely used and redistributed.
- Implement HUD support for: player lives, points, level tracking
- Background music, sound effects
- Explosion animations
- Special Alien mother ship (as in the original)
- Scale difficulty with client count
- Refactor ServerLogic and ClientLogic classes
- Determine cleaner way to handle initComponents and unregisterForAllEvents calls
- Cleaner event handling and/or switch to HashTable design
- Fix rare edge case where player can kill one of the new aliens during game reset
- Ensure consistent component execution order
- Laser beam art assets borrowed from Rawdanitsu
- Alien and player ship art are graphically modified versions of the original Space Invaders