Chris Roberts on Instancing, Zoning, Player Counts, & Technological Hurdles
Posted on March 7, 2015
We always manage to include the site's technology-driven coverage spectrum in conversations with Star Citizen visionary Chris Roberts. This has been true since the very beginning of our Star Citizen coverage, which heavily [focused on the technology] of the colossal space sim. Our hardware content greatly benefits from these conversations with game systems engineers, too: Such discussions lend a basic understanding of engine architecture, assisting in the development of GPU, I/O, and CPU test methodology as it pertains to real-world gaming use cases.
In this case, the CIG CEO joined us for an extensive discussion on Star Citizen's great engineering challenges, to include the recently-discussed zone system and instancing mechanics.
(We strongly encourage watching at least the first few minutes of the video, as they greatly assist in understanding the top-level concepts).
Star Citizen has grown beyond what anyone could have believed. With more than $70 million of funding now backing the game, Roberts has managed the funding to recruit CryEngine alumni to assist in architecting some of the game's most complicated systems. The depth and complexity of Star Citizen's design elements has demanded custom systems solutions that extend beyond what is natively available in CryEngine or externally available from third parties. The game's inherent high-end demands also necessitate that CIG customize CryEngine for optimization reasons, collapsing as many underlying systems into single-solution hierarchy as possible.
At PAX East 2015, we went in-depth with Chris Roberts on Star Citizen's zone system and how it handles instancing, spatial partitioning, hurdles, and the system's impact on player-count and large scale battles. The above video admittedly went long, but we were unable to easily cut it shorter without eliminating critical information to the content. Excerpts and an overview can be found in text below.
Our Previous Star Citizen Content
- Star Citizen Procedural Generation Explored.
- Star Citizen Character & Ship Customization.
- Star Citizen FPS Mechanics Interview.
- Star Citizen Espionage & Hardware Interview.
- Star Citizen - Arena Commander Unveil Interview.
- Technology of Star Citizen.
- Star Citizen Persistent Universe Detailed.
- Star Citizen Alpha Benchmark.
Traditional Spatial Partitioning Systems & Star Citizen
Roberts didn't waste any time getting started. Starting at around the two-minute mark, he dives into unique challenges faced by games like space sims. Roberts explains that a game like Star Citizen will exhibit "areas of huge emptiness and areas of a lot of density," like ships and stations that house players. The inside of a ship alone could resemble a more traditional FPS level, but then there's everything outside of it -- other ships, asteroids, stations, and various geometry detail.
Educating us on game engines, Roberts noted that traditional game engines have what are called "spatial partitioning systems," or a means through which data can be isolated into more easily rendered chunks. FPS games may spatially partition levels every couple of feet given the density of geometry and objects, making for an efficient stream of data that ensures more rapid data relay to the client (user) system; this also impacts network efficiency and server load, minimizing the amount of content required simultaneously by players.
Although this system is efficient and stable for FPS games, it doesn't work well for a space simulator. The vast emptiness of space means that such solutions are inefficient and sub-optimized for the content.
Moving into 2:50, Roberts makes note of his team's architected solution:
"The zone system is the best way that we've come up with to do good spatially partitioning of our data and updates. We're trying to unify [many systems] into one system, because in most engines, there's a separate partitioning system for the rendering and then a different one for entity updates and a different one for network traffic. The idea of [ours] is to put it all in one zone system that can be used for rendering, for visibility occlusion, for updating, for network updates. The content zones break things into containers that are logical, so a zone could be 'orbit around Terra,' and that could be the zone that contains Terra the planet and the stations and the ships around it."
To this end, Roberts continued, zones within ships, stations, and surrounding a planet will create hierarchical data structures that aren't limited to standard sizes and dimensions. This affords greater flexibility within the engine, ultimately aiding in streaming data for large swathes of space.
It's also more flexible. The zone system allows CIG to move space ships -- which contain numerous rooms, PCs, NPCs, and objects -- around as a single "master" item. "You just update the master," Roberts explained, "not the children."
A bit later in the video, Roberts provides use case scenarios that explain the updates. The game will spatially partition a segment of space that may contain, say, ten ships. This data is streamed to and from the client, with each ship updating as a single entity; another five ships may be immediately adjacent, resolving their own conflict that's outside of the engagement range for our first ten players. The players and ship components -- turrets, shield batteries, and so forth -- are contained in individually partitioned zones, further reducing load on any single server or client.
We asked if the zone system introduced new challenges for the team, having heard all the positives. Roberts indicated that just building such a system is a big challenge because it isn't natively in CryEngine, so the CIG team has to build it and engineer it from scratch. They're adding-on to what is natively feasible with CryEngine. The Frankfurt, Germany office has grown from twenty to approximately forty artists and engine architects, hopefully ensuring smooth implementation of the zone system.
Around nine minutes, Roberts discusses player load and player count as it pertains to the zone systems. The engineer expanded his discussion to explain the numerous server deployments and how each spins-up or down as load demands. Gesturing and speeding up in his demonstration of a largely unseen component of game development, Roberts almost took on the appearance of an excited, imaginative kid explaining his grand adventures: From this point, the content only gets deeper, spiders to technical challenges, and presents a firm, comprehensible understanding of zoning.
A Quick Note on Crowd-Funded Games, As Always
We believe that, as journalists, it’s critical to remind gamers that Star Citizen is a crowd-funded game which is not yet released. The team – although very competent developers who are capable of delivery – is skilled at generating buzz, and it’s easy to get heavily invested in Star Citizen. We urge our readers to research all games heavily prior to any pre-release investment.
More to Come
We have more content featuring Chris Roberts forthcoming, including a fun, non-interview video of Roberts and long-time friend and developer Richard Garriott goofing off together. A video of the Future of MMOs panel will be published later today. Our time with Roberts also afforded discussion of some exploration content (and retrieval of a long-awaited answer for a vocal community member), all of which will be published after PAX East concludes.
We extend our thanks to the /r/starcitizen reddit community for assistance in topic selection.
Editorial & Interview: Steve "Lelldorianx" Burke.
Film & Video Editing: Keegan "HornetSting" Gallick.