harrisonvanderbyl / ships.io

A ship io game using sockets.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Neutronic

// https://github.com/Samuel-Clarke123/ships.io.git

A simple web game, hosted on nodeJS using Sockets.io.

TODO / RoadMap

  • Ship, sea, base code, actors, etc implemented (proj init)
  • Boundaries implemented
  • Timestep implemented
  • 'Attraction' implemented (like traditional velocity, gets added to the force of an actor in update(), it's a 2dVec)
  • 'Attraction' also effects angle
  • Possibly even split the actor into two classes: simple actors, and dynamic actors (dynamic actors inherit from simple actors), but have more physics stuff implemented, like boundaries, drag, attraction, collision.
  • Collision code implemented for actors (just detecting collision, for now)
  • BlackHole can spawn, exist, and be drawn.
  • BlackHole can attract Actors
  • BlackHole gets activation timer
  • BlackHole gets different drawings/colors for activated/deactivated
  • Ship spits out actors parented to the ship
  • Ship spits out BlackHoles parented to the ship
  • <<< play test >>>
  • Ship death function implemented (goes invisible (except for death anim) and collision/shooting gets disabled)
  • Ship dies on collision with activated BlackHoles
  • <<< play test >>>
  • Decay code for BlackHoles
  • Merge code for BlackHoles
  • <<< play test >>>
  • Un-interactable stars get generated for drawing (just on the client side!)
  • Un-interactable stars get better decoration and drawing
  • Pulse effects for BlackHoles
  • More particle effects
  • Fix up the HTML
  • Fix up the game rendering (its just 500x500, static rn)
  • <<< play test >>>
  • Revise the velocity system
  • Add a menu system
  • Track player names
  • Add support for name selection to the menu system
  • Add support for room selection to the menu system
  • Start tracking "invisJumps".
  • Start displaying "invisJumps".
  • Start tracking power presses / actually using invisJumps
  • Change how a ship is displayed whilst invis
  • Make invis players ignore physics / death
  • Award invisJumps to players when they kill other players
  • Add a scoreboard to the game
  • <<< Consider other options for this README, and consider the lasers, and if we want that to be a thing >>>

Sea

Main refers to either server.js or client.js, they both control the game, only client.js draws. Server.js consistently receives updates, and sends those updates out to the clients. Main controls a sea object, which holds the majority of the game. Sea holds boats, and islands. Boats hold missiles

Actors, in general, assume a vel and an ang. An update func, and a draw func. An importState, and an exportState

\ ゜o゜)ノ

About

A ship io game using sockets.io

License:GNU General Public License v3.0


Languages

Language:JavaScript 86.9%Language:HTML 7.7%Language:CSS 4.0%Language:Shell 1.4%