My fascination would not end only using simulation software or games with a strong simulation focus, but the idea to produce your own software got my attention already back in the 80’s. At that time the access to decent hardware and software was rather limited and the only viable option was to use a Commodore C64 (anyone older than 35 and with some techy genes should know this little grey-brown box). I cant remember any title with a simulation context other than subLOGIC’s FS II and the only software that would allow the creation of games without coding in Assembler was Garry Kitchen’s GameMaker.
Fast forward to present time (2012): There are dozen’s of graphic, physics and game engines – both commercial and opens source – available, ready for developers to jump into the field. It would be tedious to list them up and compare features, there are some other websites doing this better (please look at devmaster.net). I like to highlight a few engines that I am following for a few years and which (imo) have some impact in the industry.
A major challenge to the simulation and rendering topic is the steep learning curve. Not only you need to excel in programming but understand the concepts of 3D rendering and physics in order to get started. Most engines today are using C++, even with wrapper for other languages available, due to the higher performance you achieve(d) with native C (++) applications compared with Java.
We need to distinguish 3 types of engines here:
- Physics engine (does nothing but simulating physical systems with rigid body, soft body and fluid dynamics, inclusive of collision handling, without any graphical output)
- 3D Rendering engine (software framework to visualize 3D content, usually on top of OpenGL or Microsoft DirectX)
- Game (Simulation) Engine (combining the 2 features above and also offering GUI’s to create content and orchestrate flow and logic)
Remark: Game and Simulation engine in the context discussed here are interchangeable, we are not discussing industrial or scientific simulation. Still I believe the engines discussed here are accurate enough to simulate real life technical entities such as vehicles (driving physics).
- Bullet (bulletphysics.org)
Very active, well supported open source engine, the best I know. Even used for some movie rendering.
- Newton Game Dynamics (www.newtondynamics.com)
- ODE Open Dynamics Engine (www.ode.org)
3D Rendering Engines
- Blender Game Engine (www.blender.org)
Few people know that the free 3D software comes with an up-to-date game engine !
- JMonkey Engine (www.jmonkeyengine.com)
The only Java based Game engine with an active community, serious support and development progress is the JMonkey Engine.
I noticed a paradigm shift in this industry with software that was previously unavailable (as engine SDK), later only with expensive developer and distribution licenses, started to become available for free for development and some also free for Indie release. It is definitely worth to look at them, download it and play with them. Look at the license schemes in case you plan anything serious.
- Crytek CryEngine 3 (www.mycryengine.com)
- Epic Unreal Engine 3 (www.unrealengine.com)
- GarageGames Torque3D (www.garagegames.com)
- Unity3D (www.unity3d.com)
While CryEngine and Unreal are extremely powerful, CryEngine being the most exciting engine imo, giving you the full SDK, but limit you to non-commercial software only, do Unity and Torque3D have a bit more liberal license scheme, I recommend reading the license pages. If you don’t plan to go for a big time launch, all these tools are great to use, their offer GUI’s which are not part of eg. Ogre or Bullet.