Ophelia User friendly Network Multi-player game engine Albert Öhrling
Project Goals It will be possible to program games as if they were local multiplayer titles.
Project Goals A set of basic systems to create games from.
Project Goals Testing on a local host
Tools JavaScript Node.js Express Socket.io Pixi.js
Design Clients handle the game logic. Server is an Express app that distributes messages between clients.
Design Game modules communicate with events and callbacks. All custom scripts are invoked on events.
Design Game Objects are modular and malleable Make your own!
Design Invisible game state synchronization Achieved with custom setters Only update state in response to sync
Design An easy to use interface from which developers can access everything they need from the engine.
Results All design goals were met.
Results The dependancies were very powerful Integrating them was easy.
Results Most importantly; making games with the engine is easy.
Results No testing in real environment
Results But some changes had to be made to fullfill the goals!
Problem Developers have to pay attention to on which machines their scripts execute.
Solution New network model. The server handles the logic. Games are run on the server. Clients are shell applications that send input and receive data about what they should render.
Problem Sending messages at the same time does not guarantee that they arrive simultaneously.
Solution Batch state changes that occur in the same update tick. Distribute them to the clients as a single message when the next tick begins.
Evaluation When problems arose I was able to solve them with good tools.
Evaluation Testing in a real environment would have been nice.
Further work Developing for a real environment
Further Work More engine features.
Questions?