Giter VIP home page Giter VIP logo

spaceinvaders's Introduction

Video Demo

http://www.youtube.com/watch?v=gwAct4jfT10

Play the Game!

  1. Ensure the latest version of the Java runtime environment is installed
  2. Open and run "SpaceInvaders.jar"
  3. On the "Server" tab, select a port of your choosing (or leave as default) and click "Start" to host a server
  4. 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.

Controls

You can move horizontally by using either A/D or LeftArrow/RightArrow
You can shoot by using W, UpArrow, or SpaceBar

Gameplay

  • 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.

Made With

  • Language used: Java
  • Software used: Eclipse
  • Libraries used: Processing 2

Project Notes

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.

Reuse Permissions

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.

To Do List

  • 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

Citations

  • Laser beam art assets borrowed from Rawdanitsu
  • Alien and player ship art are graphically modified versions of the original Space Invaders

spaceinvaders's People

Contributors

bennett-lynch avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.