Tuesday, September 10, 2019

architecture - Is "pure" OpenGL productive enough?


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.



Answer



Whether or not writing directly to OpenGL is "too complex" for a one-man team depends almost exclusively on who that one developer is.


Whether or not the work to hack something together will "pay off in the end" depends almost exclusively on what that one developer considers to be an acceptable payoff.


I've built my own game engine using raw OpenGL (including cross-platform support, sound, physics, memory management, etc). It took a lot of time. I never completed a major game with it. It certainly never "paid for itself" in monetary terms, but I learned a lot of things in the process. Did the choice pay off in the end?



Well, that depends on your point of view. And it's really not a question which anyone else can answer for you.


No comments:

Post a Comment

Simple past, Present perfect Past perfect

Can you tell me which form of the following sentences is the correct one please? Imagine two friends discussing the gym... I was in a good s...