I've been enjoying the OPERATION FLASHPOINT: DRAGON RISING campaign recently. In brief, the game is a large-scale open-world sandbox tactical combat simulation whose feature list would make programmers around the world whimper. The AI does a pretty impressive job considering the challenges!
My playthrough, however, has occasionally thrown unintended challenges at me — in particular reloading automatic checkpoints that end in disasters within 15 seconds. But rather than start the mission from scratch, this obviously seemed to me like an invitation to play around with the simulation and figure out its underlying mechanics...
In this short article, I'll look into a particular scene that ends in one of my rescue targets being shot at close range while I'm rushing away towards the pick-up zone like a coward. This raises interesting questions about determinism, level of detail and statistics — and makes a perfect topic for a developer discussion!
It Doesn't End Well (Mostly)...
Screenshot 1: In the full 3D game, the pilot (left) ends up being shot at close range by the enemy soldier (middle) and often shoots me trying to grab a good screenshot too!
OF:DR is not a deterministic game, like a majority of first-person shooters. Everytime I reload the checkpoint something slightly different happens, even when I don't move a muscle. When I move, obviously, things turn out even more differently. Due to the Sandbox nature of the game, this turns out to be much more interesting to play as you're forced to keep rethinking situations even after you reload...
However, in my situation, the pilot I was supposed to rescue almost always ends up being shot at close range by an enemy soldier. He occasionally escapes, but as you'd expect from an un-escorted target, he indeed bites the bullet a majority of the time — despite my best efforts to find creative solutions to this predicament!
Trying to make the most out of the ~15 seconds I had at my disposal to save the pilot, I tried various orders to my squad from the game, but switched to the map view when that failed. That's where things got interesting...
Safety in Map Mode
Screenshot 2: Switching to the map view, my squad (white) manages to shoot the enemy soldier (red) while moving around the center building, or the pilot (in blue) manages to sneak past without being harmed.
By switching to the top-down map view, the statistics of the outcome changed significantly. Most of the time, the pilot managed to escape from the building he was being ambushed in! The ratio of success to failure was reversed, now 80% to 20%.
Again, this wasn't guaranteed, but two new situations were the most common in map mode (that never happened otherwise while in 3D):
If I switched to the map instantly, my squad would manage to take out the enemy threat almost immediately while moving towards my position. Without switching the map view, they'd never deal with the enemy soldier and simply end up just following me.
When waiting a moment before switching to the map, the pilot managed to sneak past the enemy target in many situations. He did occasionally get hit but that was an exception rather than a rule, unlike it was previously...
The question arises, what could cause such a radical change in the outcome of this situation, at the mere press of the 'M' key to engage the map?
Combat Simulation Statistics...
There are two ways to interpret such a large deviation in the simulation:
There's a different simulation that kicks in when you enter map mode. This different simulation operates in such a simplified fashion (e.g. no animation) compared to the full detailed simulation that the two different encounters end up differently in practice.
The game's non-determinism is significantly affected by entering map mode. It's possible that disabling the 3D rendering allows more resources to be spent on AI. My squad responded better and the rescue target managed to deal with his threat more capably!
It's certain that OF:DR has a level of detail implementation. You couldn't build such a game without it, and in this developer commentary on Intel's site, they mention that the animation in particular is handled differently. However, it's unlikely that the simulation would be affected by the LOD just by the press of a key to switch into map mode.
Screenshot 3: My squad follows me around when I try to run to the target rendez-vous point like a coward rather than defend the pilot!
The Impact of Non-Determinism
This kind of in-game situation (and I guess this article too) raises more questions than it does answers.
Does it matter that the same situations play out significantly depending on the hardware configuration and rendering settings?
Assuming you want to preserve the performance benefits of non-determinism, how can you make sure your simulation behaves similarly everwhere?
How many developers treat different hardware configurations (PC) as different SKUs and balance each of them accordingly?
If the game's simulation statistics can be affected significantly at runtime (in different situations), will it even be noticed or is it a loophole?
Is determinism a solution to all of these problems, or does it just mean we implement a lowest common denominator for gameplay and AI?
If you have any thoughts on the subject, feel free to post a comment below!