Tamriel Foundry was given the opportunity to pose some questions to Dan Dunham, technical director at ZeniMax Online Studios. Dan was one of the founding members of the ZOS team, and his hard work on creating both the game engine and its megaserver technology are extremely important contributions to the development of The Elder Scrolls Online. I’d like to thank Dan for taking the time to answer some general questions about these two core features, and I hope you find his responses interesting.
Dan, thank you so much for agreeing to talk with us about some of ESO’s exciting tech features. You have a long history in the MMO genre, could you start off by telling us how you got into the business, and also what you do for ZeniMax Online?
I originally started out in the console side of the game industry, but my entry into the world of MMOs was joining Mythic Entertainment and working on Dark Age of Camelot and Warhammer Online. I left in 2007 to join ZeniMax. I worked briefly on Fallout 3, and then came over to found ZeniMax Online Studios as the Technical Director.
The megaserver is a very impressive technical innovation; can you give the fans a brief synopsis of the key features the megaserver is designed to provide, and perhaps your own perspective on the networking challenge of realizing that vision?
I love the concept of server identity. Some of my greatest MMO memories were of being on an underdog struggling realm (Hib Palo!), or fighting to be just the 2nd best raiding guild on our server (and still months behind anyone doing real progression raiding!). On the other hand, the player experience of being on an under-populated server sucks most of the time.
The world has changed a lot in the last decade of MMOs. Faction transfers, under- and over-populated realms, cross-realm chat, dungeon finders, cross-realm raids/battlegrounds – they have all changed that old-school concept of server culture. Those features have themselves revolutionized the MMO industry, and there is no going back.
So we took a hard look at what we were doing, what the rest of the industry was doing, and most importantly, what would be best for the players. You could have slapped on “just one big realm!” as a purely technical feature, but that isn’t how we approached it. How do you bring in communities to the new single-server reality? How do you meet new people and not just have a stream of anonymous faces? How do you still have a group identity in a game this big?
As a player, those are the interesting questions, and I can’t wait for you to play with some of our solutions. I’m most excited to get larger and larger communities into our game so we can extend and tweak those answers over the coming years. We’re focused on helping you strengthen your own communities and make new friends in this world.
Don’t get me wrong – as an engineer, the implementation is pretty awesome. Building a massively scaling service, especially software as unique as an MMO server, is terrifying and exciting. There has been a ton of great innovation in scaling and reliability all over the software industry in the last 5 years, and it has been great to take inspiration from those projects and apply them to my favorite type of game.
You guys made the call early on in the development process to develop an entirely new game engine for ESO. What were some of the shortcomings of existing licensable engines that inspired this decision? Can you mention any features that became cornerstone objectives in terms of functionality for the new engine? Also, have you named it yet?
Creating an MMO engine is different than many games: the lifespan of code we write is measured in decades. We did license portions as building blocks, but to make sure we could grow and support the game on that time scale, our engineering team built the essence of the engine together over the last few years, and we’ll continue to grow it in response to players for many years to come.
On the client, our core objective was to build an engine that would run great from exploring a dungeon solo, all the way to a battle with hundreds of characters on screen at the same time. On the server, we set out to build a massively scalable MegaServer infrastructure.
For a name… well, we just call it ESO. It grows and changes as the game needs, every day.
We have heard from several developers that ESO is designed to run smoothly on most PCs and Macs purchased within the last 4-5 years. That’s a pretty broad range of specifications to hit. Can you give any details about how the engine scales to compensate for lower (or higher) performance settings?
It was important to us from the beginning that it played on almost all reasonable machines. As expected, it doesn’t look exactly the same as it does on higher-end machines, but you can play it smoothly and have fun. We want everyone to be able to experience the game, even if you are on your laptop. On older systems, we still support DX9 for Windows XP.
For gaming enthusiasts who own cutting edge hardware, can you talk about what the ESO engine does to take advantage of multiple-core CPUs or linked graphics cards on Crossfire or SLI? Is it correct that ESO has full DirectX 11 support?
On Windows Vista, 7, and 8, we have a full Direct X 11 renderer. It was critical for us to have an engine that could grow and support the latest features, and that anyone with modern machines would get the best possible performance even on launch day.
Massive alliance war battles get a big boost from multiple cores – there is a ton of CPU work to deal with that much action. On the graphics hardware front, we work very closely with both nVidia and ATI on supporting their high-end parts.
There is a great deal of confusion within the community regarding the “200 players on-screen simultaneously” reference from E3 of last year. Many people have interpreted this as some sort of rigid cap on either campaign size or rendering capability, my interpretation was that it was more of an internal benchmark for engine performance. Could you clear this up for us, and demystify the issue a bit?
You’re reading it correctly: it is just our benchmark/target for “runs at full FPS.” We test every build with around 200 players having a massive fight to make sure that even in the thick of it, the frame-rate stays smooth and the experience is great.
There can and will be much larger battles than that, and the client will keep drawing, but our benchmark for running at optimal FPS is 200 characters on-screen at the same time. So while there is a cap on campaign size, it is beyond that “200 players on-screen simultaneously” number that has been referenced.
Once again, I’d like to thank Dan Dunham for volunteering to answer a couple questions about the technology powering The Elder Scrolls Online. We to have the chance to share more developer interviews in the future. As always, please share your thoughts and comments below!