Even though i really want to make ORR in vala, I won't. I've decided not to risk switching languages in the middle of the project, even when quite a bit of the code can be copy and pasted.
Anyway, I screwed around with many different things.
- 2D graphics stuff like optimization, effects, and plain doin' it better.
As the devlog points out, I'm done rewriting the engine. It's on to the worldsim!
I've already gotten the base classes setup.
- Template generate world functions. At the moment, it only generates a universe with a planet in it.
- Worldgen DNA. I added that in an hour ago (when I finished programming for the day).
What worldgen DNA does is make a worldsim playable on the average PC. Actually, Worldgen DNA is an incorrect term for it (since this DNA is forever useful even when the world is done and fully genned), but I am yet to come up with a better one. Compare 240 gigabytes for the inner core an Earth sized planet to the current 58 kilobytes of an entire planet.
This worldgen DNA is hierarchical. An existence has its DNA. Specifies how many universes to generate and whatnot. Universe have their DNA. Dictates how its genned, what dimensions it has, etc.
Dimensions have their DNA.
Clusters (A cluster is either a cluster of galaxies or a cluster of clusters. I allowed for it to be a cluster of clusters so that I don't have to explicitly program cluster, super clusters, megaclusters, etc) have theirs.
Solar systems theirs.
Celestial bodies (Stars, asteroids, etc) theirs.
Sectors (100x100x100 regions) theirs.
Regions (100x100x100) theirs.
Tiles don't get DNA, since they're the basic building block. Yes, more rudimentary than my dream game, but hey, I did that on purpose. Saves me the trouble of further programming "space" and getting into all that complicated stuff that I'm getting into for my dream game.
The magical thing about this DNA is that I only have to make the game initially generate the region your shuttle lands one after embarking from the LMS. The sky will still be full of stars. Galaxies know their composition, so the game is easily able to simulate the light produced. The game knows the entire planet already, due to its DNA, so even though the other regions may not be genned...If you drain an ocean here and it stretches offregion, the game will still simulate physics as if the entire planet were generated and loaded at once and flow in new water and remove it from the other region. Even seismic waves will be able to bounce around the planet allowing you to conduct structural imaging of the planet, since the DNA simulates stuff like that even though the regions are not generated.
This DNA concept is also very useful for creatures and objects.
I don't need to simulate every last atom. The axe knows its composition. It knows that when you strike it against adamantine the force will double back into the weak joint of the metal and the handle and break apart at that point, even though in memory it's one solid object rather than trillions of individual atoms.
That same thing applies to creatures. Chopping off the limb will have the proper bleeding effects because even though the blood vessels aren't explicitly being simulated, the game knows their there and is able to simulate blood flowing through them without actually simulating blood flowing through them. Eventually you'll leak out all your blood and die, if you don't fix that hole. Also, severing nerves will cut off access to the brain to the affected parts. Even though the nervous system, in the code, doesn't actually exist. This DNA still handles it.
Of course, it's still CPU consuming and RAM and storage space consuming, but compare 240 gigs of just the inner core (plus lots of lag) to 58 kilobytes and too many excess frames!
Of course, it'll grow bigger and bigger, but never as big as it would grow if I were actually simulating everything. This is a game. In my scientific simulation? Sure, every last atom is simulated. But in a game that is meant to be playable on more than just supercomputers? Nope.avi.
I doubt that my old desktop would be able to run the game as I'm programming it, which means most of you guys will have trouble running it, but my current computer is able to handle it just fine, and it's the coming generation of the standard household computer. Well, I'd better get to sleep or something. My body's starting to hate on me.