Updates: Astral Realms MS2 (pics)

I haven't posted anything in a while, but I have been very busy on my projects. I have spent a huge amount of time modifying T3D's terrain system. I have managed to implement real-time terrain deformation and painting from script, as well as a custom terrain block paging system, that should give me the ability to create truly massive terrains.

T3D has a maximum terrain file size of 4096 x 4096, which is basically 4 KM x 4KM, adequate for nearly all games, but not online virtual world type games. I have developed a system which creates individual terrain blocks and stitches them together, creating, essentially, one huge terrain.
For optimisation reasons, the system will "page" or load in only the terrain close to the player, and delete terrains that are out of range.See my previous blog post on this for more information.

The terrain painter basically allows programmatic control over T3D's built in terrain painter. It sounds like a simple thing to do, but it proved to be extremely complex, I had to dig deep into the engine to get it to work, but, I succeeded.

The dynamic terrain deformation and painting took a huge amount of time to put in, but they are some of the essential building blocks of the next phase of the project.

I want Astral Realms to be a virtual world in it's truest sense, where the environment changes and adapts in a realistic way. Seeds grow into seedlings, then trees, which produce more seeds, which are scattered by the wind to produce more trees. Animals and birds eat fruit and leave behind seeds which grow into plants, etc.
The world should feature dynamic erosion (which I need the terrain deformation tools for) as well as texture changes using the terrain painter tools, for instance, snow during winter, grass during summer, mud after heavy rain, scorched earth after a forest fire.

The next goal is to create a concept demo of this ecosystem, just enough variables and elements to provide a foundation to build on. I will model a "wind" system, with a direction and a gust strength, and this wind will pick up pollen or seeds from germinating plants and move it to a different part of the world, where they will grow.

I will also model a small "Life cycle" for each plant, something like: Seed > Seedling > Plant > Germinating Plant > Death
The plant will only produce seeds in it's germination phase, which may also be linked to a time of the year. I can also model other variables, such as soil types (Certain types of seeds will only grow in certain soil types), moisture content of the soil (certain seeds need a lot of water, certain seeds don't) etc etc. 

The possibilities are endless, and by randomising just some of these variables it should be possible to create a completely unique, self-sufficient world. The variables will have cascading effects through the world as well. The length of the day, for example, would effect the amount of sunlight the plants receive, more sunlight equals a lush, vibrant world, insufficient sunlight results in a cold, barren world with very little able to grow.

Then we add the human players. Players will be able to interact with the world with the same depth and detail as the world editor. People can take fruit from trees and eat it, or plant the seeds. They can dig trenches to irrigate the soil and improve crops, or build dams to drain flooded areas.

They will begin with no tools, but will be able to use the world to create all they need. Breaking rocks will produce sharp stones for cutting and grinding, combined with vines and sticks to  make simple stone axes, which can be used to cut trees for building materials, etc.

It is an ambitious and unique project, but one I think will work well. It will be interesting to see what kind of world the players make, a paradise, or a wasteland? Will human actions in a simulated world have the same consequences for the environment as in the real world?

 In these pictures, you can still see the seaming between terrain blocks, as well as some holes in the circular texture, these are still issues I am working on.

 

 

You must be a member of this blog to see the comments. Log in now!