chase's concept game engine
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.vscode
assets
source
types
.gitignore
.nojekyll
.npmrc
.travis.yml
CNAME
deploy
index.html
license
package-lock.json
package.json
readme.md
tsconfig.json
tslint.json

readme.md

monarch-engine build status

🔧 web game engine of chase moskal's dreams

  • open source game engine
  • mobile first
  • built on babylonjs
  • json game state system
  • entity class instancing system
  • 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

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 code

  • npm 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 nanoshooter

  • user-interface system
    2d overlay ui, slideout panel
    for settings menus, map editor functionality, and more
    powered by preact components and mobx stores

  • universal game settings
    game settings like mouse sensitivity, volume, resolution, anything like that

  • basic 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 meshes

  • enhance state entry definitions
    use observable mobx store classes and mobx serializr

  • manager method to add an entity to the game world
    returns a promise which resolves with the replicated entity instance

  • webrtc 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 chunks

  • draw up an 'engine theory' diagram
    to make clear how monarch is lean, flexible, extensible