Skip to content

Web based game group project for web programming course

License

Notifications You must be signed in to change notification settings

kymckay/f28wp-project

Repository files navigation

F28WP-Project

Web based game group project for web programming course.

Branch master automatically deployed to: https://steak-game.herokuapp.com

Check out CONTRIBUTING.md for instructions on setting up for development as well as details on testing, deployment and style standards.

Our Game

Our initial game idea was an asteroids-inspired deathmatch in which players pilot a ship with a cannon and try to destroy each other and avoid asteroids.

Features:

  • Rolling lobby system to manage amount of players in a game instance and reduce networking load per game.
  • World generation/scaling based on number of players in a lobby.
  • Collision interactions between player ships, asteroids and projectiles.
  • AJAX login/registration system.
  • Backend MySQL database to store users, passwords and statistics.

Implementation Overview

  • Simulation: On the server the World class handles simulating all entities in the game (using recieved player inputs for ships).
  • Networking: The server and client communicate via socket.io which uses TCP. On the client-side only relevant player inputs are sent to the server. On the server side, all networking is done via the Lobby class which sends client's simulation frames/snapshots from the World for rendering as well as significant events (e.g. game start, game end). This approach has some limitations, see issue #33 for details.
  • Rendering: The client renders all recieved simulation frames/snapshots from the server. Each client sees only the region of space around their ship and so this entails converting from the World coordinates used by the server-side simulation to screen space coordinates (both coordinate systems are measured in pixels). The background stars are generated hourly on the server-side and injected into the served HTML files (so everyone conected will see the same starfield).
  • Game-logic: WIP
  • Database: Our backend data storage is using MySQL via the "mysql" module.

About

Web based game group project for web programming course

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •