September 25th, 2016
I have some great news to share with you all! We’ve upgraded the networking code! We were using the native Unet for Unity, but Emrys90 has had to fight with it from day one to get it to do what we needed it to do. Updates to improve it were promised several times, but they always failed to deliver for us. So after a lot of research, Brax approved a switch over to Photon Bolt.
If you are unfamiliar with the importance of the networking side of things, I will explain it a bit. Networking code is what allows a player’s client to interact with the server and other players connected to the server. As a multiplayer online game, ToA: Exile relies heavily on the server to manage all features of the game. The client on the player’s side holds very little data for the features, instead it is built to offer character controls, receive data from the server and display that information graphically on the screen. Most online games handle things this way because allowing the client to contain the features and send that data to the server is a recipe for hacking and rampant cheating.
Since so much information has to travel back and forth from the client and the server, the network code is vital to the performance of the game and to give a smooth, immersive experience to the player. Bad network code results in rubberbanding, unresponsive controls, and lag. Good network code is practically unseen and unnoticed as the game experience is as good as if it were run by your own computer.
We’re in the process of getting all of our existing features networked again using the new middleware, and there is already a massive improvement in the performance. It has drastically reduced the amount of information that has to go back and forth between the client and server, so much so that for the first time I was able to connect to Emrys90’s server with my laptop for our testing this week. If you recall from a previous blog, I could not connect and was left to record bugs for the rest of the team. My laptop and DSL connection can now be used as our baseline for internal testing to help us determine future minimum system requirements.
We’ve made progress in other areas as well! AI is progressing nicely and Yevi is almost ready to add networking to it. He has been working on a pack of wolves to not only add moving fauna to the world, but to start development on the group AI we want to have for when creatures of the same type interact with one another. We want the world to be alive and flowing, even when a player isn’t present to witness it.
We’ve figured out some of the issues we encountered with our weather asset that were preventing it from working properly on the island. Brax also took the time to redo all of our lighting and it has drastically improved the texture of the landscape. These changes inspired him to make a few choice alterations to the island to bring greater interest to it. He gave me many screenshots to share with you all to show off both the new lighting and the weather effects. These include various speedtree default trees and not the ones of our own design, because they were taken during the land-sculpting and not while the island was “live”.
The Norhaven structure pieces are finished and have been added to the game, with an entire home built in for us to explore. Construction itself is still a long ways off, but It is amazing to see Rugnar’s beautiful work brought to life on the testing island. We were able to test the collision of the structure pieces and the tightness of the seams to ensure that no raknar will be able to sneak in through any cracks, no matter how small. Witnessing torch light diffuse from the windows as we observed the house from a distance at night really drove home just how dark the night is, even with the faint stars overhead.
In addition to progress in everyone’s current work, Brax has also been busy interviewing animators to bring Altar’s modelling to life. It is becoming more and more clear to us that animation is going to be our greatest bottleneck. Screenshots and videos have been scarce lately simply because we do not wish to include the temporary placeholders in our content. We know that our fans would understand that they were only temporary and that we would replace them before early access. However new people who are encountering our work for the first time might be turned off by it and dismiss the project based on a placeholder in a video or screenshot.
Have you ever played an online game with bad networking code? How did it impact your play experience? Share with us over at http://trialsofascension.com/forum/threads/dev-blog-36.5890/.