Three.js Game Engine (three-game-engine)

Hi Everyone!

I’m excited to announce that over the last few years I’ve been developing a game engine based on Three.js, the Rapier physics engine, and three-mesh-ui (a UI building toolkit).

It’s still in a beta phase, but is already usable and am actively adding features, fixing issues. etc.

It provides an intuitive framework, that allows for using all the features of Three.js plus:

  • Allows for building apps/games consisting of scenes that you can control loading/switching between.
  • Scenes are created and initialised from JSON files, that allow for externally referencing and re-using game assets, and game object pre-fabs.
  • GameObjects take a component-based approach, allowing you to attach Three.JS objects like models, lights, sounds, Rapier.js rigid bodies (and their colliders), and more.
  • GameObjects can be generalised into types (pre-fabs) and can be controlled through scripting.
  • Comes with a scene editor you can run locally or access online.
  • Input aggregation and VR support
  • Examples and documentation on how to build mobile apps (using Cordova) and desktop apps (via Electron)
  • 100% free to use for both personal and commercial projects.
  • Open-source and very actively maintained, backed by a copy-left MIT license.

Am actively looking for feedback and welcome anyone who would like to contribute.

The plan for the next few months is to add more highly useful features like:

  • More improvements to the CharacterControllers
  • Nav mesh / path finding logic
  • Better, more attractive examples
  • and much more!

Check it out on Github:

https://github.com/WesUnwin/three-game-engine

Website & documentation:

https://wesunwin.github.io/three-game-engine/#/

Demos / Examples:

https://wesunwin.github.io/three-game-engine/#/examples

3 Likes

I switch to rapier two years ago, but i have to scrap the project because of so many unresolvable issues, also it doesn’t offer too much advantage over cannon.js, I still find cannon.js more practical, easy to use. I end up creating new cannon.js threeverse engine because rapier could deliver what it promised. I must admit some parts of rapiers has been absorbed helping over drive cannon.js making physics separate from the three.js main thread in a worker. The methods which over drives the cannon.js was actually taken directly from rapier allowing tri-mesh to be more usable that just using the canno.js traditional examples.

I have to say that the #threeverse cannon.js could be a hyrid rapier + cannon.js becoz it borrows methods from rapier allowing the cannon.js worker to overdrive, this over drive methods makes cannon.js tri-mesh bottleneck become usable. instantly suppressing clippings issues on tri-mesh.

Here are other new #Threeverse versions (two years ago). It was developed for d3Verse but the client terminated the project.

  1. Outpost
  2. Gallery
  3. Real-DDust
  4. Prototype
  5. Openworld
  6. Immersive

The project was to create a massive world which can become a virtual real estates to allow crypto economy to operate.

Read documentation