I know that this is a difficult question and I hope I can convey my meaning. Over time I've used many different engines from XNA over Unity to Panda3d and even tried native directX once. My final impression is that an engine basically serves to do this:
- implement a scene graph
- offer classes like actor to add them to the scene graph
- implement an asset pipeline that exports to actors or something similar
- allow for custom logic scripts that hook onto the engine and are called at the right times. In Unity you can override update() in panda3d you can add methods to the taskmanager that are then called repeatedly. In Jmonkey they are called controls. It's basically the same. Additionally you can listen to physics events and the like.
- then there's work done under the hood: physics, rendering and networking.
I appreciate all of these points very much and acknowledge the comfort a good engine can offer. The problem is: I'd like to create a game in a comparably young language (Google's Go) and there's no engine out there yet. Bindings for OpenGL exist and I figure I could easily hack a little engine of my own together.
The points one, two and four are not too difficult. I'd do the rendering with custom shaders anyways so that's work that has to be done in any case. For now I don't need complex physics and the standard raycast and collision check wouldn't be too hard for me. The only problem is an asset pipeline because I've got no experience in processing 3d data at all. I've only lived on the programmatical side up to now and the 3d models I've used were admittedly ugly. In the end it will probably add up to a weekend of coding and ongoing maintaining work.
The bottom-line is: I don't have to use go but then again there's no deadline for the project and I figured it might be fun to use this language. Is anyone out there still using "pure" OpenGL and can tell me about the work that lies ahead? Have you ever done this before?
Do you think that low-level OpenGL is a too complex choice for a one-man team or does the work to hack together something of my own pay off in the end ?
EDIT: You might want to read the comments below Nicol Bolas post since they explain the question a little better.