Git Product home page Git Product logo

richrd.github.io's Introduction

endlessvoid

.     .        .    
   '     /\  .      '
.    .  /  \  .  +  .
 '     /    \     '
   +  /  ..  \  .   '
'    / .'  '. \    .
  . /_/  '   \_\
.    .    .      .   .

Infinite space to explore with a space ship on a HTML5 Canvas. The idea is to develope this into a game like direction. The ultimate goal is making it multi player.

TODO

  • Fix stars and add parallax effect. TODO: reposition all stars on hit
  • Optimize rendering and pre-render common graphics (pickups, etc.)
  • Clean up code and refactor it into proper modern js
  • Improve planet generation Design sun, planet and moon generation.
  • Different looking planets with more variation in size (planet colors and possibly craters etc)
  • Different looking ships
  • Asteroids with polygons
  • Some other flying stuff?!
  • Create proper game logic
    • Scale all movement by fps to get consistent speeds across platforms
    • Spawn on a planet (and respawn on previously visited planet on death)
    • Collision detection (space ships, bullets, planets)
      • Simple circle and rectangle based collisions to improve performance
      • Point collision for bullets
    • HUD displaying ship health, upgrades
    • Pickups for ship upgrades, points etc
    • Stars with orbiting planets (and planets with moons?)
    • Players (Ships)
      • Name
      • Health
      • Upgrades
        • Shields
          • Lighter shields against bullets
          • Harder shields to survive crashing into planets
        • Weapons
          • Minigun
          • Spread gun
          • Cannon
          • Bullet Ring
          • Missiles
          • Heat seeking missiles
          • Bombs (that are 'dropped')
          • Laser
          • Force field or pulse to bump other ships away from you
          • ...
          • Mines?
          • Turrets?
    • Bullets (weapons fire different kinds of bullets)
      • Name
      • Radius
      • Fire selay
      • Damage amount
      • Bullet 'ownership' (who is dealing the damage)
      • Lifetime (prevent stray bullets from never disappearing if followed etc)
      • Blast/Hit velocity (add directional velocity to target)
      • Color?
  • Separate update and render operations
  • Pause game feature (Only in single player mode)

Multiplayer implementation

  • Connection
    • UDP would be best, WebRTC not widely supperted
    • Try WebSockets first instead
    • If latency is a problem try to migrate to WebRTC
  • Model
    • Server tracks the game model
    • Server syncs the model state for only visible changes
  • Implement a proper timestep (ticks per second)
  • Player state:
    • Position, angle and speed
    • Turning direction and acceleration

WISHLIST! (Comming some time 2015!)

  1. Learn node.js (io.js)
  2. Create multi player server
  3. Implement game model at server
  4. And input and rendering on the client side

Bugs

[ ] Ship explosion (and resetting stars) should happen at the end of next frame. Currently stars positions are not properly reset.

Brainstorming!

  • Different ambient soundscapes based on location
  • Currency for buying and building things etc.
  • Big distances after which new areas occur
  • 3 worlds: one for mining (inhabited by neutral AI), one for building, one for fighting against the evil (inhabited by STI aka Solid State Intelligence and where player against player combat is possible)
  • Evil space worms
  • Black holes: different ones (for example: random teleport -blackhole)
  • Home base which you can change and teleport to (possibly last planet that you landed on)
  • Different kind of techologies: for attacking, for mining and gathering other resources, for defence, for navigation (maps etc.) and for traveling
  • Portals
  • Missiles (can only detonate themselves) and spy vehicles (invisible) which you can control. Defence tech for detechting spies and destroying missiles)
  • Fuel: you cant travel forever fast --> better fuel as you build your base and dig deeper --> super tech later (teleporting etc)
  • Allianced which start building their cities from zero (newcomers can build their own or join ones already existing)
  • Different kind of alliances: anarchist, hierarchial, capitalist etc. For example: anarchist-communist alliance has no private owning of resources, no central leadership, can swap the space ship they fly [no-one own ships, but they can require skill which must be personally acquired], and no central resources, lots of negotiance etc.
  • Different game strategies: individual vs collective and centralized against noncentralized --> both strategies are good in their own ways
  • Different kind of politics (depending on kind of the alliance) which affect the way you make decisions between co-players (discussion and voting, consensus or despotic)
  • You can dig and find precious metals and minerals inside planets
  • Trick s: you can for example travel without fuel by using storm currents and gravity force of planets
  • UFO's: which can bring messages from unknown galaxies and new technology or sudden destruction (which can also be caused by meteorites)
  • Epic lore!!!11111
    • For history of humans and different alliances
    • Already existing kindoms! which you can join (or then be an anarchist): all new players start as people who are exploring unkown frontiers which still have plenty minerals
    • History and explanations for different UFO-races, STI etc.
    • References to Tesla and Reich
  • Comm tech to inform and command own bases.
  • Technology which makes mining richer planets, which enables mining more valuable resources
  • AI-Kindoms: you can communicate with them, trade with them, join them, be in war with them (if you are an anarchist) --> different options when communicating
  • Possibility to build ships on owned planets, and to control desired ship at any time.

richrd.github.io's People

Contributors

richrd avatar

Watchers

 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.