Contribute

Although THREE.BasicThirdPersonGame is stable and can be used as basis for your WebGL game, it's also work in progress. Currently the boilerplate is based on THREE.js r61 and a fork of Cannon.js 0.5.0. With these libraries everything works fine and you should stick to them if you want to make use of the boilerplate. A future release of THREE.BasicThirdPersonGame could be rewritten so that it will work with newer versions of the libraries. If you want to take this task, you can simply contribute by forking the GitHub repository.

The boilerplate is open for requests and also code improvements or new features are welcome. The maintenance of the JavaScript code should be an easy task since the framework itself is very compact. One difficulty could be the understanding of how Cannon.js works since the major work lies in the improvement of the Cannon.js parts. Below you will find incomplete lists for improvements and possible new features.

Some new features could include:

  • level components to build own levels easier
  • premade functionalities for procedural games
  • a sound module
  • some kind of enemy logic or AI components
  • an animation module to handle rigged characters
  • mouse, gamepad or Leap Motion controls
  • multiplayer support

This are some rough ideas and could be added to the micro-framework. However it's called BasicThirdPersonGame so it's still just a starting point for third-person WebGL games.

There could also be some improvements that may allow more complexity to your game or level design. Currently, those could be:

  • Remove or update _game.player.orientationConstraint since this is only a workaround to limit player's air-twisting
  • Advance _game.player.updateOrientation for a better slope support
  • Add a mechanism that prevents camera/player stuttering when driving against walls

These lists aren't meant to be complete but should give an overview of where the road of THREE.BasicThirdPersonGame could lead. The boilerplate is open-source so go ahead and just fork it.

You can also contribute to the documentation since it's also available on GitHub now.