It has been a little longer than expected for the wait for update 18. After completing what I first had in mind for update 18 I decided to undertake the first steps into a huge optimization process, Streaming Levels. Up until now the world of Windstone and everything that it encompasses belonged to one ginourmous “level”. This is the main reason why RAM usage has been so high. No matter where you were in the world, everything was loaded into memory, from things just out of render range in your area to trees, rocks and loot on the complete opposite side of the map. This was a starting point to keep the entire world seamless, a rule I’ve wanted to stick to from the beginning since I don’t enjoy loading screens any more than you. This is why I have not and most likely will not ever even implement any loading bars for things like crafting. The closest I have come is waiting for your thirst meter to replenish when drinking actively from a water source, but that feels natural to me. Staring at a loading icon during a game for something as simple as eating or crafting a tool, especially when you cannot do anything else while it is happening, and especially when it is frequent is something that I am surprised so many players accept as normal.
The world of Windstone and the number of things in it has grown to a proportion where I can no longer justify keeping it in one massive “level” all loaded in RAM at the same time. Not everyone has a shit ton of RAM and I eventually want the game to be reasonably optimized for lower end systems without having to decrease the graphics options. Probably not quite mobile optimization, but at least acceptable on most mid to low range gaming computers. As of now some people cannot even load the game because of the RAM requirements and this makes me sad. But this should change in Update 18
The answer to this is Level Streaming, the Unreal 4 Engine’s way to make large open worlds like ARK seamless. The simple definition of level streaming is that instead of waiting for a loading screen when entering new areas, only what is within the player’s view is loaded into the game and as the player moves throughout the world, new areas are loaded in and areas that you are no longer in are loaded out, so much less of the game world is loaded into RAM at any given time. When optimized well the player doesn’t even know this is happening.
I’m happy to say that I have finally implemented the first iteration of level streaming into Windstone and it is relatively stable. I’m not going to say “it just works” because it hasn’t been extensively tested yet, but it’s stable on my end. The world is now divided into 25 sections that load and unload automatically while you traverse the map. For the most part, the player will not even notice this change except for the lower RAM usage if they keep an eye on their Windows Task Manager. If the player is flying a dragon high in the sky, some pop-in of trees and rocks may be noticed in the distance and some areas with more stuff in them may cause the game to stall for a few frames as the streaming level is loaded or unloaded. This can all be optimized now that the system is in place after further testing to ensure the system I have implemented is as stable as I think it is.
The level streaming system also needed extensive changes to the save game system, so all 25 streamed levels are exactly how you left them when you turn off the game and resume from a loaded saved. This is also implemented and seemingly stable.
After more testing, I will optimize the level streaming system even more as there is still much room for improvement. About 65% of the assets are currently included in the level streaming (so only about 35% of the world is loaded into RAM) but this can be increased into the high 90% so only a few percent of what was previously loaded into RAM before I implemented the level streaming system will be necessary.
What else can you expect from Update 18 besides the Level Streaming optimization? Everything listed below is already done and ready to go:
Female player character
Region selection when starting a new game
Dozens of dynamic POI discovery around the world marked on the map
Equipped weapons and tools visible on the proxy character in the inventory menu
New building pieces including a triangle shaped floor piece
Dozens of new buildings with loot all around the map
2x more wildlife
Oasis and Pyramid added to the desert with labyrinthine tunnels
A few other minor additions including a couple NPCs that cannot yet be interacted with but are the first step in the NPC system. These NPCs currently just stand in one spot and have a “idle” animation. In the near future they will give quests with text dialogue like old school rpg quest givers. This will be expanded on in the future to included NPCs that will attack hostile wildlife in range and companions that will follow you and help fight. This is a priority, but small steps first.
Thanks for your patience and thanks for playing Windstone!
Originally posted @ itch.io.