Current mood: Hopeful
The project has been progressing very slowly since my earlier 'fist pump' post of finally being able to display the gaming window. Although progress has been slow, it has not been fruitless. I have added all sorts of exception (error) handling and reporting so I will get detailed descriptions of the errors when they occur. Documentation needs some serious updates as well. I was keeping up with it early in the project but I have been progressing and updating so fast that updating the documentation during that stage would have been a waste of time.
Display programming, in general, is far more complicated than I initially conceptualized. There are many components that are involved in bringing a 3D model to the display. If I were working from a premade engine none of this would be too much of an issue because the engine would be programmed to handle all of these components for me. Of course, I am creating my own engine, therefore I am responsible for initializing game windows, setting width and height, callbacks, updates, buffers, rendering, and input handling to name a few things. A daunting list to be sure. I am not completely crazy, however. I have found a lightweight library that allows me to communicate with the computers hardware pretty directly and use resources that are not available otherwise.
OpenGL has been my graphics library of choice. Direct X11 is available for me to use, which is a library that many people may be familiar with because it is used in modern gaming today. I chose OpenGL over DX11 because I am very new to this and OpenGL seemed the more user-friendly and from my reading OpenGL is preferred among smaller developers. DX11 is also not very java friendly. There are many programming work arounds that would be necessary for DX11 to function efficiently in different hardware environments. I have already run into issues with having to program around some Mac OS differences so that the game can run on a Mac. I am hoping that using OpenGL and Java will eliminate the need for too much of this special coding per different operating systems.
Documentation is so important especially when you are knocking stuff out. Stop take a few minutes or seconds one or two words to remind you what you are doing will help later when you backtrack to clarify that information. - Mom
ReplyDelete