We’ve created our own culling system that, along with Unity’s, should prove it's worth. We’ve included a screen of it below with a shot of just a part of the island. We’ve dedicated a lot of time to this. Our main hope is that the game will be enjoyable to a wider group of gamers, not just those with high-end rigs! At the same time we’re constantly keeping graphic settings in mind, assuring people can’t cheat simply by turning their graphic options down. Unity’s culling system isn’t specifically built for large worlds. We’ve also figured out a work around to the engines floating point precision issues, something that has plagued us in older builds.
(Full update here - https://community.survivethenights.net/threads/quick-update-where-we-are-and-the-future.3579/)
A visual representation of our custom culling system, this is only a small chunk of our island
As mentioned above, we decided to spend some time working on internal tools which would help speed up and make development quicker and easier for everyone involved in the project. We already had a whole bunch of tools that we have made through the development of STN. Most of them were fragmented and individual in their design. It was a time waster and pain to find what you’re looking for and use it efficiently. Getting all these features into a single utility window with simple navigation and controls that made sense to everyone working with them was a huge priority. I’ll list some of the bigger issues we had and how we’ve managed to get around them.
The problem - One of the biggest issues developers face when using Unity is the lack of ability for multiple people to edit scene files at the same time. This results in multiple edits of the same files and a whole bunch of overwriting each other by accident. The stress test area was manageable although it was fair to say that everyone was pretty fed up with it. This was something that we felt needed time dedicating to since there would now be another person in addition to Andre and Joe working in the scenes on a daily basis.
The Solution - I decided to develop a tool which allows the “world” to be edited in bite sized pieces (1km x 1km pieces to be exact). This new tool as seen in the picture below allows people to assign themselves chunks, load them efficiently, work on them and then save and submit them to source control as normal.
The problem - This issue was kinda two things rolled into one but they were resolved using the same utility so we’ll call it one for the sake of this write up. The lack of ability to place props and general design in a really efficient and quick manner was a big problem. Also Unity doesn’t support nested prefabs which we desperately required since the implementation of more complicated interactable objects like doors with locks. Nesting prefabs is very crucial due to the need to be able to edit each object on mass individually from their “master” object. Without the ability to do this, it meant that we had to nest some objects inside prefabs. This meant that the link to the original master item was gone. Small things like this cause huge headaches when you find something needs editing in multiple places. It leads to inconsistencies and lots of time trying to put things right. Since we’re a small team, we try to focus on spending our time in the most efficient way possible and spending hours going over things that will undoubtedly need changing again just isn’t scaleable.
The Solution - The first thing here was fixing the whole nesting dilemma. I did this by working around some of Unity’s built in features while still being able to utilise their awesome prefab system. The short of it is that we can now have nested, individual prefabs which can retain their links and be grouped together with ease. The second part of the tool is the ability to quickly search for, preview and “paint” on these new items onto the terrain with random rotations and auto snapping to the curvature of the surface being placed on. With the addition of a few other little mistake preventing features, this tool takes the complexity out of level design and just allows the designer to focus on designing an awesome world without having to worry too much about anything else.