Cookies Disclaimer

I agree Our site saves small pieces of text information (cookies) on your device in order to authenticate logins, deliver better content and provide statistical analysis. You can adjust your browser settings to prevent our site from using cookies, but doing so will prevent some aspects of the site from functioning properly.

Unity'd States

The Middlewares Are A-Changin'

I'm excited to finally tell the story of how we progressed from the Tech Demo to the current game on Unity. As Ryan mentioned in his blog, we looked at several engines early during Technology Demo development. We ended up settling on BigWorld because it has a great reputation as a solid server technology. BigWorld allows for dynamic 'cells' which distribute the server load across many machines, and helps games scale quickly to very large numbers of players. We already had friends at Wargaming, who developed World of Tanks using BigWorld technology, and they were enthusiastic about BigWorld.

We dove in and implemented the Tech Demo entirely with BigWorld. It was solid, and we were very happy with it. The advanced server technology is a great boon; we were happy with the development environment, and didn't have much difficulty implementing everything we needed to for the Tech Demo.

No single middleware solution does everything, and that's true of BigWorld as well. The client engine is not as advanced as the server. It does not have a DirectX 11 pipeline yet (although I believe they are working on this). It would take time and money to update the renderer to get the sort of look and feel we wanted for Pathfinder Online, so we planned to budget in full-time graphics programming to solve that problem.

By the end of the Tech Demo, we were ready to ink a deal with BigWorld and start rolling into full production. But at the last moment, they were bought by those enthusiastic friends at Wargaming!

We know people at both companies and are comfortable working with them. But the BigWorld team is now necessarily focused on integration with Wargaming and supporting the upcoming World of Warships and World of Warplanes. It was unclear that they would have the capacity to fully support us as much as we'd like during our initial startup phase with Pathfinder Online, so we went back to our list of potential engines, and decided to examine Unity in more detail.

Examining Unity

We know quite a few folks who are using Unity and are productive with it. While it doesn't have the server-side architecture needed by MMOs, there are several MMOs now using Unity, including Battlestar Galactica and Shadowrun Online.

Unity is in many ways the opposite of BigWorld from our planning perspective. The client is more advanced and includes a number of tools that aren't included in BigWorld. It crucially already includes a full DirectX 11 renderer, and we can immediately tell the difference in the rendering quality of our Tech Demo environment. And though it does not include an MMO server out of the box, several third-party solutions have been created to fill that void. When we started adding up the numbers, it looked like we'd need about the same level of investment to implement the server side with Unity as we'd planned for updating the renderer of BigWorld.

We have a few other reasons for choosing Unity. We get to ship with a Mac client, which was a very highly requested feature both from our fans and from Paizo. We can even investigate putting some extra features using web browsers or on mobile devices, like the Environment Walkthough we just posted, which lets users with high-end graphics cards walk through the environment we built for the Tech Demo using a web browser. And the overall strategy is a better fit with our existing team's skill set: I have never been a graphics programmer, and we were going to need to hire that expertise. But I've developed several server technologies, and feel very comfortable on that side of the house. I am confident in my ability to direct the server technologies we need and produce them on time.

Proceeding with Unity

We've moved most of the Tech Demo assets into Unity and have became comfortable with it. We're still working on the server side, but we're excited to show off our initial landscape and dungeon area within Unity. If you compare the Environment Walkthrough with the Tech Demo (which you can see in the Kickstarter video), you'll notice that the lighting model is more advanced, and we're able to show off the environment to better effect. Because we did this in Unity, we're very excited to be able to simply upload the environment and let you walk through it with any web browser! Note that we haven't done any performance tuning, and obviously native (non-browser) clients will have better performance. But it's still fun to show off our work at such an early stage of the project.

In the office, we already have a basic server running with the built-in Unity networking. Over the next year, we will be further developing our technology and evaluating third-party networking solutions including uLink, Photon, and Raknet. Our main goal is to have very stable networking technology, and to that end we will be doing fuzz testing on several of these in order to find the most solid experience. We have several friends working on Unity projects currently, and we'll be seeking input from them to decrease our risk. Implementing the MMO server will be a good amount of work, but it's predictable, and I feel confident that we can deliver a great MMO on this platform.

Despite losing some time porting assets to the new engine, our transition to Unity has been very smooth. This is what the preproduction stage of a project this large is for: finalizing middleware choices and making careful decisions for the production stage of the project. The project could have been completed on BigWorld, but we are excited to be working on Unity. I think it's ultimately the right direction for the product, helps lower the project risk, and allows us to do fantastic things.

Discuss this blog on paizo.com.