Origin Engine – A full and flexible 3D game engine

Inspired by my JSQuake2 project I’ve decided to work on my own game and render engine, which is more optimized for the capabilities and performance of modern day browsers. A lot of lessons in the path NOT to take have been learned from the JSQuake2 project which I worked on before.

This project is aimed at providing a complete solution for 3D gaming, and will provide you with everything you will need to quickly build a game and get it published to the web. The full scope of game engines I will implement I something that is still to be determined at a later stage, but two game types to be certainly implemented are FPS (first person shooter) and RPG (role playing game) style games. More details will be published as I am working on the project and things get implemented.

At this point I’m at a stage where I’m mostly experimenting with the set-up and implementation style I will use for realising the Origin engine. This means playing with various methods of creating a modular system, which is not too complex, but doesn’t restrict you in what you can do either.

The current stage of implementation is focussing on getting the 3D rendering part going, this includes loading and handling of various data types. The engine will rely on WebGL, which is currently available in Chrome, Firefox and the new Opera 12 alpha release, as well as in Safari for Mac (note that you do need to manually enable it).

List of planned features:

  • A high quality, high performance WebGL render engine
  • A highly modular design, allowing you to pick the modules you will need as well as allowing you to create your own modules which you can plug into the Origin Engine.
  • Systems for AI, physics, networking (which would allow multi player games) and many more.
  • Game-play engines for various styles of games, these will include FPS and RPG styles and probably more.

Features considered:

  • A tool-kit for creating resources for the game engine, this will include map builders, model editors, etc. This will be either web based or a Windows application, or maybe even both.