HBOHBO Forum
glyphstrip  
Halo.bungie.org
glyphstrip
Frequently Asked Forum Questions
 Search the HBO News Archives

Any All Exact 
Search the Halo Updates DBs

BWU Halo Halo2 
Search Older Posts on This Forum:
Posts on Current Forum | Archived Posts

View Thread Reply Return to Index Set Prefs Previous Next
Re: How does the Halo 3 and Reach theater mode wor
By:uberfoop
Date: 6/5/23 10:02 pm

: Doing an ongoing project about Halo, and I'm moving on to one of the best
: parts of the whole series: Theater mode. However, there isn't a lot of
: good information about how the system actually works. I know that David
: Aldridge and Luke Timmins have some sort of special relevance to its
: development, but they don't seem to have any sort of interviews that do a
: deep dive on the system... If anybody here knows where to start looking,
: I'd appreciate it!

Replay modes in games generally work by running the game mostly-as-normal. The difference is, instead of reacting to player inputs and to data coming in from the internet or wherever, it pulls all that stuff from a log (the theater/replay/whatever file) that was built as the game was being played.

This is very closely related to networking.

A simple way of implementing online play in games is to report player actions to all computers on the network. If all of the computers input the same actions into the game simulation, they get the same result. A challenge with this is that the timing of the actions needs to be consistent across all computers, or else the simulations will diverge and desynchronization occurs. The typical solution to this problem is to require all computers to send their actions to the host before executing them, and the host assigns a timestamp to the action, and sends it back out to the all clients.
This is mostly what Halo's 3 and Reach do for campaign networking, and it's why player actions (such as movement, shooting, or performing melees) are delayed for players other than the host.
However, Bungie threw a bit of additional nuance to the mix. Although most actions for non-host players in Halo 3 and Reach campaign are delayed, looking around is not. In fact, when the game freezes during a network hangup, you can still look around while everything is frozen. I'm not sure of the exact details of how this gets fudged under the hood, but it implies that the game simulation doesn't really use *the direction the player currently thinks that they're looking* when calculating the results of events.

CEA is a good counterexample to this behavior. Halo CE was not originally built with this decoupling of camera direction and game mechanics, and the networking is forced to behave simpler as a result. In the 360 version of CEA, all actions - including looking around - have latency for the client. The MCC version of CEA is a bit weirder (at least when it launched; I haven't played MCC CEA coop in some years and it's possible that they've changed it): the underlying behavior is the same as the 360 version, but they tried to make looking feel more responsive by having the player's camera visually respond instantly to their prompts. Which seems like an improvement, right up until you try firing and you realize that your reticle doesn't necessarily point in the same direction as where your bullets are going.

Another way of having games work online is to allow the simulations on the different computers to be a little out of sync, and keep things roughly consistent by sending updates about more aspects of the game state. For example, if the host thinks that a rocket hit a warthog and blew it up, but a client's console thinks that the rocket missed, this gets resolved by just having the host's console tell the client's console that the warthog and the rocket exploded and the rocket killed everyone on the warthog.
The advantage of this sort of networking model is that slight disagreements between computers won't catastrophically break the game, so you can allow players to perform game-affecting actions without waiting for a response from the network*. A major drawback with this approach is that, because the host is forced to send tons of game state updates at a very rapid pace to all of the clients, it can require a high network bandwidth, particularly if you're trying to make a game work with peer-to-peer networking rather than use capable dedicated servers.

While Halo's 3 and Reach use the former synchronous approach for campaign, they use this latter asynchronous approach for competitive multiplayer.
This is why campaign theatre files between different players will mostly agree with each other, while multiplayer theatre files can have some overt mechanical discrepancies, i.e. one player thinks they shot another player while the latter thinks they'd been shot through a wall. Ultimately the theatre mode is just playing back the things that your console was aware of during the game, so any disagreements between consoles during the game are still there in theatre.

*At least to a point. Even in game contexts where most actions can be initiated instantly on a client's end, some mechanics can produce weird or unreasonable results if there's no synchronization. It's a nuanced issue and there's often a lot of compromise.


Messages In This Thread

How does the Halo 3 and Reach theater mode work?Ty Lancan6/4/23 8:18 pm
     Re: How does the Halo 3 and Reach theater mode worJoe Duplessie (SNIPE 316)6/5/23 8:38 am
           Re: How does the Halo 3 and Reach theater mode wordavidfuchs6/5/23 1:57 pm
                 Re: How does the Halo 3 and Reach theater mode worJoe Duplessie (SNIPE 316)6/5/23 9:09 pm
     Re: How does the Halo 3 and Reach theater mode worTy Lancan6/5/23 5:54 pm
     Re: How does the Halo 3 and Reach theater mode woruberfoop6/5/23 10:02 pm

Sign up to post.

You will only be able to post to the forum if you first create a user profile.
If, however, you already have a user profile, please follow the "Set Preferences" link on the main index page and enter your user name to log in to post.