Has anyone here ever built their own engine or worked on one? Perhaps even peeked behind the scenes of one and know what it is like bare-bones wise?
Yes i have, sort of.. allthough they were quite integrated with the target games (So it really depends on your definition of "engine"). It might be more accurate to say that i made heavily datadriven games rather than engines.
The hardest part with making an engine is not really the low level details (That is reasonably easy and there are tons of information out there on how to implement <insert feature/function X here> in an efficient way), The hard part when you make engines (rather than games) is that engines has to be flexible and easy to use in order to have any real value.
To make a game without using an engine you really only need to know how to write a game loop, check the time check for input, update the simulation and generate some output. (generating output and checking time and input is done differently on different platforms, the rest is essentially the same).
We would like our engine to be multi-platform, that is to say write once and deploy on multiple platforms (android, iphone, tablets for both respectively). How do you think this will fare when building an engine? Is it more along the lines of a library where you build the application in it's native environment but the engine we build is used for certain functions to save time/coding?
Thank you for your reply, btw
a library with time saving game related functions tend to be called a framework rather than an engine. (Engine isn't something that is very strictly defined though), Most modern engines however draw the line between engine and game at a very high level.
Most engines are platforms of their own, the game essentially becomes a bunch of data and scripts(or in some engines, native code(often dynamically linked as a .dll or .so) that run inside the engine. I'd recommend looking at games like Starcraft2 or The Elder Scrolls (3+) for an idea of where high level engines draw the line. (Everything that belongs to those games can be modified using the editor that ships with them, the rest is pretty much the engine).
Lower level engines such as Unity3D draws the line at the GameObject level, (The game consist of GameObjects(With various components attached) and scripts controlling their behaviour, while the engine is responsible for executing those scripts, rendering the scene, etc)
Edited by SimonForsman, 04 December 2012 - 11:37 AM.