An experimental game engine.
Java CSS JavaScript
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
src/main
.gitignore
.jscsrc
.jshintrc
.tern-project
LICENSE
README.md
config-sample.yml
config.yml
gulpfile.js
nb-configuration.xml
package.json
pom.xml

README.md

deconstruction-engine

An experiment in networked multiplayer game engine design. written primarily in Java (server-side) and JavaScript (client).

This is currently in pre-alpha state: basic networking is complete, but APIs and the overall engine design are still being decided on. Don't expect anything playable yet.

Building

Client

Building the client-side code requires Node and Gulp to be installed. Then:

npm install
gulp build

The file build.js should be written to src/main/webapp/build/build.js, and will be included in subsequent server builds.

Server

With Maven installed, run:

mvn war:war

A package will be written to target/deconstruction-engine-x.y.war, suitable for upload to a compatible webapp container (such as Tomcat). Make sure the client has been built as described above first.

FAQ

What is this?

It's an experiment to see how far some basic abstractions can be taken, and to see if some or all implicit restrictions of traditional game engines can be alleviated through design.

The essentials of the design:

  • Entity: some object in the game world, made up of:
  • Many Controllers: implement some behavior
  • Many Views: provide rendering instructions for an entity in a zone
  • Zone: a collection of Entities
  • World: a collection of Zones
  • Player: controls an Entity

The definitions above are more or less literal: a zone exists to do the best possible job of containing entities, and nothing more; an entity exists to provide behaviors and views. Specializations of these base classes exist, but are still composed primarily of these base concepts.

Why?

For fun, mostly.