Code Monkey home page Code Monkey logo

warx's People

Contributors

rorykoehein avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

warx's Issues

Proper sync/render

  • work with steps/game loop on the server
  • server to collect all client input for a step, don't process yet
  • server to process all client input for each loop (calculate new game state)
  • server to send new game state (or diff?) to client every ~50ms
  • client to render every 16ms, render ~75ms in the past
  • client to ignore any message that arrives after a newer message
  • use linear interpolation to position the object along the path (could possibly use css transitions for this)

https://www.slideshare.net/MarioGonzalez15/realtime-html5-multiplayergameswithnodejs-7868336/22-ulliSo_we_set_up_a
https://github.com/lance-gg/lance/blob/master/src/ServerEngine.js

Add bomb

  • drop bomb at the position of the player
  • make radius so that player can just escape
  • high reload time or as power-up

Add admin/command prompt

  • how to determine admin user?
    • save hashed admin password in ENV
    • create command line tool to generate password hash

features:

  • kick players
  • add/remove bots
  • send messages
  • reset game
  • change rules

fix sending actions to client/server (prevent cheating, share actions, make simpler)

This application shares some actions between server and client, actions can be
marked as any of these:

  • client-to-client actions (i.e. opening a panel)
  • client-to-server actions (i.e. connect-request, move request)
  • server-to-client actions (i.e. new connection, player moved)
  • server-to-server actions: update server state without directly sending to client(s)

The server should dictate these types to the client somehow.

Actions which are client-to-server or server-to-client will also be dispatched
at its origin. This means actions must be unique between client and server.
This should be tested somehow (todo), possibly at runtime.

Central hub

Make servers call home to central hub, so players can join different servers with different rules/config

Better movement

  • only listen to keydown and keyup
  • fire START_MOVE on keydown and END_MOVE on key up, with direction
  • let a timer on the server and client take take of the individual steps
  • possibly on END_MOVE let the server correct the clients position (in case out of sync)

Add power ups

  • temp invisibility
  • faster reloads until dead
  • fast movement?
  • larger explosions?

0.1 cleanup

  • general cleanup before publishing
  • make sure no api keys (circleci?) or other stuff is public

Add scoreboard

  • toggle scoreboard on top of screen
  • show username, kills, deaths, time on server

Add rocket

  • fire rockets which explode on impact of player, bomb or impact of walls

Mobile support

  • fix positioning/layout (login, game, info, choose server screens, score screens)
  • full screen mode
  • mobile controls
  • info/score buttons
  • PWA: service worker, add to home screen

Add sounds

turn on/off

sounds:

  • shoot
  • spawn
  • dead/hit
  • enter game?
  • move?
  • first place?

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.