Saturday, July 27, 2013

Tworenas Snapshot 003

So, here it is, again a couple of days too early. Next week I'll be going to the seaside to get my tan on, eat a lot of junk food, pick of women and have in depth conversations with them about shaders. So I won't manage to put out a very substantial snapshot. Instead it is going to be more about optimizing what I have.

And it sure needs optimizing! The new grass system is here and it works surprisingly well, but it is far from done. I just can't create a top notch grass system with extreme streaming capabilities and good view distance in a week. When I'm talking not optimized, I'm not kidding: grass is not frustum culled and it uses no hardware vertex buffers. Also memory leaks, snags from the GC shitting itself over the amount of data and other bugs are uncommon, but possible.

More than half of the development time was me fighting C#, the .Net runtime and the .Net GC. C# might be good for general use programming, but for streaming in tons of data fast and reliable you need to bring out every dirty hack in the book, and when that fails, invent some new hacks.

I uploaded a video showing the new grass.



So, a few things to keep in mind:
  • As said, grass is unoptimized and buggy. Don't expect stellar performance.
  • World generation takes a while. At maximum map size it will take you 30-45 minutes. I will optimize this someday, but for now avoid such worlds when possible or run the generator while doing something else. Also, world sizes on disk can be up to 4 GiB each at maximum size. If you run out of free disk space: crash! Loading such worlds is fast though, so once you have one, you can keep using it.
  • Since I did that video, I also added a few more grass distance options. It is not recommended going over 6 grass distance for now. It will kill your framerate.
  • No detailed changelog this time. Here's the short version: grass.
  • The new rendering profile is on by default to give it some more serious testing. You can switch back to the old one by pressing "l'.

BY AGREEING TO DOWNLOAD THIS SOFTWARE, YOU TAKE TOTAL RESPONSIBILITY FOR ANY CONSEQUENCE RESULTING FROM THE USE OR MISUSE OF THE SOFTWARE. I AM NOT TO BE HELD RESPONSIBLE FOR ANY POSSIBLE HARM THAT CAN BE CAUSED BY THE SOFTWARE NOR DO I GUARANTEE THAT IT IS FIT FOR ANY PARTICULAR PURPOSE OR THAT THE INTEGRITY OF THE SOFTWARE WILL BE PRESERVED WHILE BEING TRANSFERRED ON ANY AND ALL MEANS OF COMMUNICATION.

Link: Snapshot 03

2 comments:

  1. Do you still know where you're going with this engine?

    ReplyDelete
    Replies
    1. Well, this time I believe I do!

      I have a 20 week plan and if no unforeseen circumstances arise, by the end of this period the engine should be in pretty good shape, near finished and the game should also have more than the base features.

      I'll evaluate the exact status of the engine after the 20 weeks and decide what the next steps are.

      Delete