monarch-engine
v0.4.0-dev.72
Published
concept game engine
Downloads
7
Readme
monarch-engine
🔧 web game engine of chase moskal's dreams
- [x] open source game engine
- [x] mobile first
- [x] built on babylonjs
- [x] json game state system
- [x] entity class instancing system
- [x] basic fps control for flying editor
- [ ] achieve satisfaction with architecture fundamentals
- [ ] multiplayer
- [ ] collaborative map editor
🎮 play engine demo now
- wasd and the mouse to fly around
- shift to sprint, c and space to sink and rise
- hold e key and click to place cubes
- remove them by looking at them and pressing x
🔫 nanoshooter will be the first monarch game
- we're making this 3d tank game to demonstrate the engine's capabilities
- this game is open source
📦 npm install monarch-engine
- build your own games on monarch-engine
- written in typescript
- can work with any other engine (monarch supports babylonjs out of the box)
engine development instructions
these are instructions for working on monarch engine itself —
if instead you want to build your own game using monarch engine, you want to fork nanoshooter
- install prerequisites
- remember to set up your github account ssh keys
- clone and build the engine project
git clone [email protected]:monarch-games/engine.git
npm install
- start local dev server and launch the demo
npm start
- launch http://localhost:8080/
- install the babylon blender exporter to create 3d assets
command line routines
npm install
"production build"
optimal production build and a test run
also installs any missing project dependencies
available as task in vs codenpm run build-debug
"debug build"
produces fat debuggable bundle (source maps included)
available as task in vs code (ctrl+shift+b)
technical goals, future features, notes
asset preview system
load engine demo page with#preview="assets/powercube.babylon"
and it will load the asset into a preview scene
should be easy to implement in downstream games like nanoshooteruser-interface system
2d overlay ui, slideout panel
for settings menus, map editor functionality, and more
powered by preact components and mobx storesuniversal game settings
game settings like mouse sensitivity, volume, resolution, anything like thatbasic prop editing
mobile-friendly interface for adding and deleting various props
ui work involves selection from a listing of available props
and organizing their proposal meshesenhance state entry definitions
use observable mobx store classes and mobx serializrmanager method to add an entity to the game world
returns a promise which resolves with the replicated entity instancewebrtc datachannel multiplayer collaborative editing
rig up a shared multiplayer game state
allow multiple editors to fly around and see each other
represented by a flying cone or something
no work on data optimization yet, just sending large json chunksdraw up an 'engine theory' diagram
to make clear how monarch is lean, flexible, extensible