Giter Club home page Giter Club logo

codingbeer-vertx's Introduction

codingbeer-vertx

A real-time web minigame demonstrating the use of server-side vert.x (java 8) and client-side Javascript. Used as an example at ERNI Coding beer session.

The server side consists of more Verticles. Main verticle is ConfigVerticle which initializes other verticles with default config values

Client side is made with Javascript http://www.html5quintus.com/#demo HTML5 engine.

NOTICE: This is by no means a complete fool-proof implementation of the game. Some topics that would require more attention in production-quality software:

  • Data efficiency: every frame is calculated on the server side and sent as a real-time update (every ~20ms). This may cause unnecessary lags on slower/high ping connections. More efficient way would be only to send change-state messages (ball has hit a wall, player has hit/missed the ball etc...) and let client-side javascript do the simple movement interpolation
  • Security: Current security implementation relies on clients not knowing other players' or games' GUID. GUID is supposed to be unique, so we assume there are no collisions (this is ok), but if someone finds out GUID of some other player, he could influence his games and act on his behalf. In a real world, authentication/authorization/"session" mechanisms would be needed
  • and some more I can't currently think of... :o)

codingbeer-vertx's People

Contributors

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