tl;dr

DayZ standalone will be based on a client-server architecture (more like an MMO), not the current ArmA2 architecture.

Full text

This blog post doesn’t contain any pictures, or videos, but I think it provides far more to be excited about. When I read many comments regarding the choice of engine, it can be very frustrating. Up there with the endless debates of what is or is not alpha, is the maddeningly uninformed arguments about what does or does not constitute a “new engine”. I see people say that DayZ is based on the ArmA2 engine, or Take on Engine, or even the ArmA3 engine. I have been joking with team members on the project, that if we were to focus on making shader updates and not change anything else, everyone would be proclaiming that it was a “new engine”.

This week saw our lead programmer outline a dramatic plan to change the face of DayZ and how it will hit the world at the end of this year. Simply put, the application will move into a traditional client-server relationship which the server makes most of the decisions. This is the common architecture behind virtually every MMO currently out there, and it will be DayZ’s architecture when it releases. How is this possible? Well, thanks to an extremely fortunate set of occurrences much thinking and some development had already occurred; the crack team of programmers behind Operation Flashpoint have been thinking about these things for many years. Combined, again, with the unique string of events putting me in the position to have the idea for DayZ, and everything to come together… one could be forgiven for thinking it sounds like fate!

Currently ArmA is running simulation calculations on all clients and on the server as well. Clients have the power to make changes to their world. When the world is as complex and changing as that which DayZ creates, it has created an environment where hacking and performance issues abound. This is not an issue with ArmA, this is an issue of the designer (me) making a design that far outreaches it’s foundations. It is a testament to the Real Virtuality engine that this is even possible. So, what we are doing right now is removing these operations completely from the clients and ensuring the server runs the world. DayZ does not require the complex array of player and AI interactions that ArmA does, so these are all gone. What we are left with is a very heavily optimized solution where the server “call’s the shots” so to speak.

For those with some understanding of such endeavours the significance of these changes will already be readily apparent. For those who do not, it is simple. we’re not just locking the application and data down any more, but we’re making the server the umpire. We’re ripping out everything not required and replacing it with an optimized solution that has players (the survivors) and AI (the zombies). Our zombies don’t need to conduct flanking maneuvers, they don’t need to reload their magazines. They are simple, and our architecture reflects that. Achieving this will be tough, as we are already crunching very hard. If this heavy optimization is as successful as it would rationally seem to be on paper, then we will be limited on player numbers not by performance, but map design. To ensure we are right, we will be running an architecture test at some point, soon.

(the title for this post is a quotation attributed to Alfred Korzybski, philosopher and scientist, and for those not able to understand the subtext - it is a light jab at those professing to know much about engines, and alpha’s, what exactly they all mean)