The detail levels in the textures are possible thanks mainly to the high bandwidth available from the hard disk. Expect a considerable install for MAG, but it's worth bearing in mind that there's a strong chance that the game wouldn't look half as good without it.
"Coming up with a streaming scheme that provided the greatest amount of savings in an environment with long sight lines (meaning a lot of the world needs to stay resident in memory most of the time) was a bit tricky and required a few iterations, but is now working quite solidly," explains Jason Tartaglia. "MAG will continue to rely on this solution even after the beta period has ended. In order to accommodate the large-scale environments while still providing a high level of fidelity in both geometry and texture detail, we need to stream in content on demand. The best way to do this is via the PS3's hard drive."
Those long sight lines are a core part of the MAG experience, and a huge technical challenge. There no shortcuts here if you're looking to maintain the coherency of MAG's in-game world.
"This is not a matter of cheap distant facades out of the play area, but is instead all part of the active modelled world in which you play," continues Tartaglia. "This required tech that would not only support a significant amount of streaming of assets and textures, but also a rendering engine capable of pushing a large number of polygons. Much of the work that goes on behind the scenes is in determining at runtime, exactly what you can and cannot see from your perspective in the world. MAG is an open-world environment that did not allow us to leverage any pre-calculated occlusion systems, this is all on-the-fly culling and [it comes] compliments largely of the PS3's SPUs. And in the end that probably sums it up quite nicely, we just kept throwing it all at the SPUs. It was the one magic bullet during the development of MAG. If it doesn't run fast enough, you put it on the SPUs. If it still doesn't run fast enough, you optimise it on the SPUs. Now it will run fast enough."
MAG's extended testing period began with a limited closed beta, before expanding to a larger, invite-only scheme. Unlike many so-called betas, which are effectively stress-tests on final code, or simply demos, Zipper's continual testing is all about increasing the amount of concurrent players, keeping the servers stable and rolling out new content. One of the coolest elements of the beta has been the continual presence of Zipper staff talking to the players in-game, gauging responses and discussing improvements.
"From a technical standpoint, the beta period has provided us with the opportunity to slowly ramp up the amount of simultaneous players attempting to connect and login into games," says Tartaglia. "This provides us with enough lead time to address any issues that might occur only when at scale and could not have been caught during internal testing. In the case of MAG, the extended time over which the beta has been conducted also provided us with the ability to actively address feedback from players and address balance issues."
Server-side, the MAG technology is running on standard PC architecture, albeit with pretty meaty specs. This is in contrast to previous Sony online titles like Warhawk, which used banks of conventional PS3s installed at server centres. In the case of MAG, dual quad-core CPUs (eight physical processors) are deployed in a system that features 16GB of RAM, dual gigabit LAN sockets and a single 80GB SATA hard disk drive. "We can run multiple 256 player games on each server," says SCEA's director of development Seth Luisi. "The final server configuration will be determined as a result of the MAG public beta."
"We have placed a great deal of resources into developing our server-side code including significant performance optimisations and memory packing to reduce the overall load on these machines," adds Tartaglia. "Our initial specs were all developed with worst-case scenarios in mind, meaning that with the progress that has been made over the course of development, these servers will easily handle the game loads we intend to host on them. We constantly monitor server game frame-rate to ensure that it meets the demands of the clients."
Right from the off, Zipper concentrated on the massively multiplayer angle for its debut PS3 outing: 256 players was the stated aim, and this presented considerable challenges both server and client-side.
"Initially, most of our development effort was focused on the networking architecture that would be vital to satisfying the technical requirements associated with an online game the size of MAG," explains Jason Tartaglia. "But with some significant early progress and a demonstration of a working 256-player networking model, the focus soon shifted to the requirements of actually creating the visuals for a world large enough to accommodate all these players. Simply animating 256 players can prove to be quite a strain. While some titles have opted to simply billboard, or provide some form of actor facades, we made the choice early on that we would not take the easy way out. While this might suffice for some hack-and-slash games, when you are zoomed in and focused on a single character in MAG, we wanted you to be able to savour and enjoy every bone-jarring moment as characters, limbs flailing, come crashing down from that perfectly placed bit of lead."
With minimal latency in mind, it can be assumed that the netcode only supplies the player with the core information required to maintain the game world client-side. So what happens when you deliberately aim to overflow the client with colossal amounts of data? What happens if you decide to mass all 256 players in one area? Zipper has it covered.
"From the first day of development it was always assumed that you could, and most certainly would (think group photos), have all 256 players in the same area," says Jason Tartaglia. "MAG is an open environment game; players are not shut off from entering common play spaces. In order to facilitate this, be it design-driven or player-induced, the tech would need to deliver enough performance to handle this worst-case scenario. Toward this goal we benchmarked our progress against 256 automated clients, in a grid, at one metre spacing, and all firing continuously, throughout development. This allowed us to keep a close eye on these potential conditions. Additionally, we used in-house replays of large 256-player battles to profile our code against the most common real-world situations. Players of MAG will not detect any differences from the start of a game to the culminating moments at the centre of a 256-player level with everyone in close proximity."