OpenGL with Java via LWJGL
Well, well, well.
Few weeks ago, I wrote about that I start using Unity3D instead of OpenGL to develop my first game, Intermetto. I advanced fast, learned a lot and here is what I’ve got:
Despite, my friend’s kids love the alpha version (the younger one was scared about the sphere :D ), I decided not to continue with Unity3D.
Here are the reasons why:
- I tried to do everything manually and read a lot about how Unity works under the hood, but got so strange situations where I realized that I miss something so important: learning the base. The math, the formulas, etc.
One of the situations was that the Unity’s fog system only applies on geometry shapes by default. Meaning that my terrain was foggy but the sky was not. That’s why I just turned the sky to a fixed black color, because it was easier. And this is the typical case of don’t solving the problem, just do it another way. That’s not a good habit though and sooooo easy to get used to it using Unity.
- I think, I only used the top of the features in Unity, but despite that I faced a lot strange behavior. For eg. you cannot find gameobjects that are inactive. Why? Just because.
- I tried to love C#, I really did. But OMG I hate it so much, and the Monodevelop editor… same story. The last thing was when I said “OMFG” when I learned delegating and creating Actions, events. The syntact how it should be used was just not OK for me.
- My alpha didn’t do so much. Actually it’s just a procedural terrain generation with basic player movement. Yet my game size was 200+ MB. That’s also unacceptable.
Switching “back” to OpenGL.
So I decided to give an another try to OpenGL and “hardcore” math.
Now I try not to skip something if I not understand fully. Good example was how your camera movement and rotation works. First I just searched on google and done. Next, I deleted all of the codes and did it by myself. Now I know how cameras work, and the math too.
Next thing is that developing in Java again was a relief. I do not care who love and what, but I love Java and love to do things in Java. I love Intellij’s products also. Hotswap is a must too.
Last thing I wanted to mention, what stuff I use to learn.
- ThinMatrix’s fantastic OpenGL/LWJGL tutorials (a little bit outdated), but not a problem: https://www.youtube.com/channel/UCUkRj4qoT1bsWpE_C8lZYoQ
- And ordered this book: OpenGL Programming Guide: The Official Guide to Learning OpenGL Version 4.5
So, good luck to me, here is my current “engine”: