Interviews:The World Behind The World: mmolecule Interviews Conan Brink
From Stargate Worlds Wiki (SGW)
Interview at mmolecule
Recently, mmolecule had the opportunity to talk with Conan Brink, the Lead Server and Tools Programmer for Stargate Worlds. Conan gave us a peek into the world behind Stargate Worlds, what’s going on with the network infrastructure, the platform that Stargate Worlds will be running on, and some of the custom-built tools the developers use to actually create the game.
Hello, Conan. Thanks for taking the time to speak with us today. Before we get going, can you introduce yourself to our readers and give a brief overview of your job function? Conan: My name is Conan Brink and I am the Lead Server and Tools Programmer here. I am responsible for the server infrastructure and technology, as well as the group that helps develop the tools that the content developers use to do their work.
Excellent, let’s get started. At what point in the overall game development process does your team get involved? Conan: I personally have been here from the beginning. The design team meets with us very frequently to see if their designs can be implemented, how hard it may be, and what the ramifications of the design choices are. So if the design team is asking for a specific feature, we come back to them and explain the pros and cons of that path. At that point, the design team can make a better decision about which path to go down. So it’s a very close hand-in-hand relationship throughout the development process.
Basically we work together so that we can get their design implemented. We don’t tell them to go off, make a game, and come back to us in six months, and that we will do what we can to make it happen. We are definitely involved from the very beginning of the process.
What kinds of challenges does your team face on a daily basis? Conan: A lot of what I have been encountering lately is [asking]: Does what we have scale up to the size it needs to be? Some things work really great in a four-player game, but really badly in a four thousand-player game.
What can you tell us about any of the custom tools you have developed? Conan: On the server code side of things, I work almost exclusively in C++. Occasionally it helps to read Assembly language, but I don’t have to write any of it. As far as the content developer tools, they are mostly built in C#. The content developer tools are in a very different sphere of influence than the server tools. It’s one of those things I just picked up to help out.
Can you elaborate more on the types of tools the content developers use? Conan: Sure. The mission designers need to able to say this: Here is my mission set, here is the mob that gives the mission, here are the conditions to get the mission, here is what it takes to complete this step of the mission, here is the next step of the mission.
They need to be able to complete all of those types of actions. That is one of things that our custom tool suite allows them to accomplish.
There is also a mob creation tool that a content designer can use to create a mob. They use it to create everything from the mob’s appearance and stats to where it spawns in the world.
And the mob creation tool gives them the ability to do this fairly quickly? Conan: Yes, it gives them the ability to do that very fast and it is integrated into our world editing tools that came with our client pipeline. So content developers can actually see what they are describing when they create the mob and say how it looks. That information is then stored in the database so that the server can spawn that mob and tell the client what it looks like.
What can you tell us about the overall server and network architecture that Stargate Worlds will run on? Conan: Well, our servers are running on Linux and we have purchased the middle-ware platform BigWorld, which we are using as the foundation of the game. On top of BigWorld, there has been a variety of custom development components added, to really leverage the platform and get the game that we want.
BigWorld is a Client-Server MMO middleware product that is used for running server and client pieces, but we are only using the server side portion.
Can you provide some insight into the makeup of a “realm”? Are there plans to host realms by region, i.e., North America, Europe, etc.? Conan: Well, as far as what a shard (the Stargate Worlds version of a "realm") looks like, it looks like a rack full of Linux boxes. In regards to regions, we are currently looking at performance right now to determine if we need to open up data centers elsewhere in the world.
How many realms do you anticipate being live on launch day? How many players per realm are you expecting? Conan: I can’t tell you how many shards we are anticipating starting up with on launch day, but I can say that we are looking at over 3,000 simultaneous players logged in per shard on launch day.
Without revealing anything confidential, what can you tell us about some of the security concerns you have to look out for during the development process? Conan: We really need to be careful about any information we send down to the client software. We have to assume that a less-than-honest player [can know if certain information is sent to the client], even if we did not reveal it to him in the game. So, we have to keep that to a minimum. Also, just because we get a message that looks like it’s from [a player’s client], that doesn’t mean that it is. So we have to use encryption to make sure that nobody else is sending us false packets claiming to be [someone else]. We also have to protect ourselves against replay attacks, where someone can take old packets that they sent us before and send them to us again.
Let’s talk about some of the code that you work on. What level of involvement do you have with the different layers of code? Conan: I deal with everything from the data transport all the way up to the Python scripting on the server side.
Obviously, there will be a huge volume of data moving through the system. What are some of the things you have had to take into account in terms of performance, compression, etc.? Conan: There are some large amounts of data that get sent around frequently and we need to keep track of whether a player’s client already knew about it or not, so that we can avoid sending it more times than necessary.
So, for lack of a better term, it’s more of a peer-to-peer style system? Conan: It’s really a server authoritative system because as any of us who ran ShowEQ knows you cannot trust a client.
When the game is actually live in some form of beta, what are the main things your team will be looking to improve upon? Conan: We’re going to make sure the system is stable and will be checking performance to make sure that it is acceptable. We want to eliminate lag and server overcrowding, make sure the database can keep up, and things of that nature.
Can you provide any tips for people who may be looking to get into this side of MMO development? Conan: Well, you would really need to study networking protocols, threading models, and general system architecture and networking. You need a really solid foundation in architecture and network.
Finally, can you describe your overall experience of building an MMO from the infrastructure side of things? Conan: Well, it’s just like the guys who make the highways you drive on - if I do my job right, you can’t tell. The only time my side of things really becomes visible is when there is a problem.
Thanks for your time today. We appreciate getting some insights into areas of the development process that people may be less familiar with. Conan: No problem, thank you.
