Since the last update I have done a number of things. First off, the physics is 100% working, entities are more well defined, and basic controls are functioning. You can now fly around empty space no-problem. I also defined some basic spawning functions as ease-of-use utilities. Nothing fancy there. One last small thing I did was created a bit more of the resource loader so that I could start adding ships with the aid of the developer mode I mentioned previously.
The two more interesting things that I have done include figuring out how to procedurally generate the galaxy and using shaders to create a simply parallax effect for the space background...
In the past I created the space background by rendering a bunch of polygons and shifting them depending on the player's coordinates. To create a parallax effect (see here) I rendered a couple different layers with different offsets. However, now that I have added support for GLSL shaders, I realized that I could simplify things. With only one polygon and one texture, by retrieving texels of two different parts of the image each offset by the players position differently I was able to create the same effect. The shader is super basic with excellent results. Already using shaders has paid off!
Now the fun stuff. I explored the web a bit for equations to graph the curve of a galaxy. I found just the equation:
a=angle or amount of spin
Notice that each star is represented by a 2px by 2px dot, while each planet around it is represented by a 1px by 1px dot. You may be wondering why star systems are overlapping. "WHAT THE HELL!?" It would be ridiculously big if I represented the galaxy at its actual scale in the browser, so for the visual representation I scaled it down and scaled up the star system size a bit. The final product, once I convert it to C, will be far larger with systems highly spaced out.
Finally, I would like to note that galaxies consist of billions to trillions of stars. OOK is not that big of a game. I will not be generating a trillion stars. This will have to suffice.