Time to get Technical Marines!
Thanks, Max! Below we are going to spend some time diving into technical explanations of a series of topics that we know the community would love to know a lot more about! These elaborate technical deep dives include conversations on bloom, updates that will happen in the future to Forge, and how input works in Halo: The Master Chief Collection. The information that follows has been put together with none other than our favorite fowl. Please put your hands together for our pleasantly plundering plumage of prosperity, Dana “The Psycho Duck” Jerpbak. A huge shout out to him and members of the Publishing Team for diving in and breaking down all these pieces. It’s time to hand the keys over for this deep dive!
What is bloom? To explain this concept, we need to first explore error cones.
No, not that type of cone…
In Halo, weapon projectiles are fired within an error cone. The error cone is a range which dictates a projectile’s trajectory; a projectile’s firing angle is randomly selected from within the cone. With an error cone of 0 degrees, each projectile would take the exact same trajectory (directly to the center of the reticule). Each weapon typically has a base error angle (rather than being perfectly accurate). The larger the cone, the wider the spread on where projectiles will land. Note that projectiles for some weapons are simulated instantly (this is called hitscan) while others have a travel time associated with them. Both are affected by the error cone.
Fun fact: the base error angle on the Reach DMR, Reach Needle Rifle, and Halo 3 BR is 0.15 degrees. The Reach Magnum is 0.6 degrees while the Halo 3 Magnum is 0.5 degrees.
When a weapon is fired, its error angle temporarily increases. A weapon has a fire recovery time as well as a firing error deceleration time. The fire recovery time sets the interval at which rounds can be fired. The error deceleration time defines the interval at which the weapon returns to its base error cone. On some weapons, the error deceleration interval is less than or equal to the fire recovery interval. On weapons where this is not the case, any round fired within the error deceleration interval will have a wider error angle and thus more potential spread. The latter can be observed prominently on the pistol in Halo: CE where firing at the maximum rate incurs significant spread. It’s also where the spread on subsequent projectiles within a Battle Rifle burst come from. This concept is the basis of bloom.
Rounds fired while allowing the error angle to reset vs rounds fired within the error deceleration angle
In Halo: Reach, the error cone expansion was visually communicated via the size of the reticule for the first time (where the reticule expands or “blooms”). Reach’s precision weapons also had a higher ratio between the error deceleration time and the fire recovery time. This resulted in a faster base fire rate (the fastest rate at which the weapon can be fired) relative to the optimal fire rate (the rate at which the weapon can be fired while maintaining a reasonable degree of accuracy). This approach was controversial as the artificial fire rate restriction encouraged by the error deceleration rate created some friction for players used to firing at or near a weapon’s base fire rate.
The reticule’s default state vs the reticule’s expanded “bloomed” state
Because of the aforementioned friction bloom introduced, two distinct attempts were made during Reach sustain to adjust it. These were the Title Update (TU) settings which reduced bloom (to 85% of the default) and the Zero Bloom No Sprint (ZBNS) settings which removed it altogether). Neither of these settings were ever applied universally, creating fragmentation in the game’s matchmaking playlist lineup. Depending on a player’s preferences and history with the game, they may have a very different idea of what the definitive Reach experience was.
For MCC, we aligned on TU being the core foundation for the game’s matchmaking settings. TU was built on learnings from the vanilla settings, but still retained the same core mechanics and balance the game shipped with; alterations were evolutionary rather than revolutionary. Aside from a reduction in bloom, TU settings also introduced bleedthrough where a hit can punch through a player’s shields and damage their health. There was a bug in legacy Reach exposed by bleedthrough where a player’s head took damage and was healed independently from their body which resulted in inconsistent time-to-kill (TTK) against players who had taken damage and then healed. We fixed this issue in MCC, so bleedthrough was the natural choice given that it brings more consistency with the other titles in MCC.
TU settings are the core settings across Reach matchmaking in MCC. This applies to all core Slayer and objective categories as well as niche categories like SWAT, Snipers, and Action Sack. The only exceptions are Infection, Grifball, Invasion, and Hardcore.
Q. Why does Infection use vanilla settings over TU?
A. TU settings removed the potential for Sword clanging (the ability for a player to block a sword hit with a well-timed melee). The reduction of bloom would have minimal benefit to survivors given that zombies have no shields and require only a single headshot to kill. As players’ use of precision weapons is limited in Infection, friction when switching from the core TU settings elsewhere to the vanilla settings in Infection will be minimal. Given all of this, we opted to preserve the vanilla experience in Infection.
Q. Why does Grifball use vanilla settings over TU?
A. There aren’t any precision weapons in Grifball, so bloom isn’t applicable. Bleedthrough, however, could be a more significant change. Grifball is a niche mode with its own rules. We again opted to preserve the vanilla experience here. If it ain’t broke, don’t fix it!
Q. Why does Invasion use vanilla settings over TU?
A. Invasion has a delicate balance between Spartans and Elites, particularly in the first phase where Spartans spawn with a precision weapon (the Magnum) and Elites do not. A reduction in bloom would greatly benefit Spartans in the first phase and skew this balance significantly. Invasion never had a TU variant created in legacy for this reason. In the future, we would like to experiment with a TU version of Invasion with some other tweaks introduced to retain this balance. This would mainly involve buffs to the accuracy and/or range of the Plasma Repeater. There are some technical dependencies which need to be resolved before we can support this, but we’d like to experiment in this area.
Q. Why does Hardcore use ZBNS over TU?
A. While TU is the core experience, we definitely wanted to provide a destination for players seeking a zero bloom experience. Bloom introduces an element of randomness which players understandably want to avoid in hyper-competitive situations. Like we’ve done in Halo 2 and Halo 3, we opted to align Reach’s hardcore offering with the most recent MLG setting (V7 in this case).
Q. Why not just remove bloom everywhere?
A. Zero bloom is a great experience for a subset of players, but it isn’t feasible for broad application beyond Hardcore. The entire sandbox was designed around bloom. This includes everything from the precision weapons’ TTK, to their effective range, to the relative effectiveness of other weapons. With bloom removed altogether, a large portion of that sandbox loses its utility. That’s not an issue in Hardcore where gameplay revolves primarily around rifle battles on a limited selection of maps, but it isn’t viable in the broader game. Imagine playing Big Team Battle on an open map like Hemorrhage, Highlands, or Ridgeline with zero bloom. The DMR has 3x zoom (compared to the BR’s 2x), making it effective at a much longer range out of the box. A removal of bloom compounds this significantly. Gameplay stagnates because players pin one another down from extreme range. Players can’t push out into the open, so they stay in and around their base. Close range engagements are exceedingly rare, and the only viable weapons to use are rifles. Vehicles aren’t viable either. Additionally, the experience becomes very inaccessible to new or less skilled players due to the enlarged skill gap. Zero bloom is also a major departure from Reach’s vanilla gameplay, alienating a portion of long-time players. Again, these are all elements which have a place in a hardcore environment, but not in the core social experience.
Q. What about Campaign and Firefight?
A. This is another area where we could experiment with introducing TU settings in the future (though we would also need to preserve the legacy experience). However, there are some technical limitations and design concerns. Reach PvP game types are built within the Megalo engine and TU settings are applied through overrides within the game variant scripts. Applying these settings outside of Megalo would require an entirely different implementation and wouldn’t offer the per-variant flexibility. The sandbox adjustments introduced in TU could also have unforeseen effects on enemy units and difficulty balance. This would be a big change with a lot of side effects which are difficult to predict and which have a high potential to alienate players, particularly those who prefer not to venture outside of PvE gameplay.
In summary, we’re delivering a more unified experience across our core matchmaking offerings, while respecting vanilla and zero bloom settings in the niche areas where they work best. We appreciate the feedback we’ve received so far during flighting and we will continue to make adjustments and improvements in the future.
At the beginning of the latest PC flight, a notorious pizza enthusiast assembled an exciting look at some new content he’d uncovered in Halo: Reach forge in MCC. “Thorage” is the codename for some pretty significant content additions we’re creating for Reach forge in MCC. This feature is still in development and will be finalized after launch and released to Xbox and PC simultaneously. Currently, this feature is planned for Forge World and Tempest, the two primary forge canvases in Reach.
A preview of some of the new objects we’re adding
Our additions here fall under two main categories. First, we’re peeling back some of the restrictions around budgets and object type quotas from the original release. We’re still dialing in on exactly how far we can push these boundaries without negatively impacting performance or stability and there are still hard limits on the total number of objects allowed. However, we want to enable forgers as much as possible in this area. With the ability to transfer legacy map variants to MCC coming online, we want forgers to be able to go back and make their old maps better than ever in addition to creating incredible new ones.
The second category is the addition of new objects. Each type of block, vehicle, weapon, etc. has its own quota. In legacy, Forge World had 89 quotas available. In MCC with Thorage, we currently have 141. Objects we’ve added fall under a few different categories and come from different areas of the game. Some are forge objects which were added to other maps while others are assets which appeared in Reach’s campaign or Firefight. The additions cover the full spectrum of forge object categories including vehicles, gadgets, scenery, and structure items. Some were added for their raw visual utility to broaden the palette available to forgers when creating their maps. Others were selected due to unique gameplay properties they offer to empower forgers to create new and unique experiences.
A quick list of some of the additions is below. We’re still finalizing these additions so there could be even more by the time we release the feature. We’ll of course share more details as we get a bit further along.
- Civilian vehicles (forklifts, trucks, etc.)
- Space vehicles (Sabres and Seraphs)
- Vehicle variants (Troop Warthog, Heavy Falcon, Heavy Shade)
- Ammo crates and ammo pickups
- Additional grav lift variants
- Additional shield door and one-way shield variants
- Dropship props
- Destroyed vehicles
- A variety of crates and other props
- Carts, destructible palettes, driftwood, and other set dressing
- A wide variety of Forerunner platforms, walls, doors, and more
- Large rocks and trees
- A variety of set dressing from multiple palettes
You may have seen some other videos and images floating around the internet of wacky contraptions: tanks with three turrets, falcons with truck trailers, etc. While many of these were built on a foundation laid by these new forge objects listed above, these were the handywork of our modding community. We will continue to enable these users to create and share this content, but this is not part of the new Forge content we’re adding. These contraptions inspire us every day and we can’t wait to see what else the community comes up with in the future. We’ll share more details as this feature gets closer to release. To me, the most exciting part of these additions is that the new content they enable forgers to create can be enjoyed by everyone and across platform boundaries. Over the past year, we’ve featured some incredible content from the forge community in matchmaking across MCC and this trend will absolutely continue with Reach.
Over the past few weeks of flighting, we’ve received a lot of feedback around input and feel on PC. It became evident pretty quickly that the fidelity of input required for players to feel empowered on mouse & keyboard in PvP was a great deal more than what was expected in our previous flights for Campaign and Firefight. We conducted an in-depth investigation in this area to identify any recent regressions and any more foundational shifts needed to meet our goals of delivering an experience which feels PC-native.
First, we identified an issue which resulted in input being deprioritized relative to other tasks on the CPU thread. This regression was introduced between the Fireflight and the PvP flight and we resolved it for the build update during the latter. This was a good step for input while playing in exclusive fullscreen, but more investigation was needed to identify other areas for improvement. Our resident Tech WizardTM headed up this effort and made the following improvements to input in borderless fullscreen view modes.
Before we dive in, let’s establish the basic problem we’re trying to solve. The goal is to minimize the delay between input (when the user performs an action) and present (when that action is represented in-game and on-screen). To show some of these recent improvements, we’ve included some GPUView captures.
In this first graph (Current Flight), we see MCC using a BLT mode transfer in its swap chain, which will present via the Desktop Window Manager (DWM). This adds a somewhat variable amount of latency from input to display as a separate process is ultimately responsible for putting the frame into the flip queue. Also note the stacked entries in the flip queue, this is a result of a Maximum Frame Latency greater than 1. While having a higher maximum frame latency is desirable for smoother presentation (the default is 3), it will introduce additional latency from input to present.
For more details on this flip model, refer to this DirectX dev blog. You can also find a presentation we did on this BLT mode and its shortcomings when building Halo: Spartan Assault. The performance and input discussion begins around 39:00.
In this trace, by reducing the maximum frame latency to 1, and moving to a flip model, you can see the MCC.exe game is now directly adding an entry into the flip queue when it calls present.
Here is a variation on the previous capture with V-sync disabled. While this did not work properly under BLT transfer modes, now we see the frame is displayed (and not queued) as quickly as possible after the frame render completes. We can check our work with PresentMon, which is now showing a clean hardware composed/flip mode (with a low MsUntilDisplayed value).
We will continue making improvements in this area well into the future. The team internally is split roughly 50 / 50 in preference between mouse & keyboard and controller and ensuring both feel natural and empowering to players is very important to us.
If you want the optimal experience, there are a few other factors which are known and expected to add some amount of input delay; these are not unique to MCC. Most players can happily play with one or more of these, but for a minimum-latency input experience, consider disabling or avoiding them.
- This can add multiple ticks of delay while it waits to sync frames and avoid screen tearing
- Running the game at higher-than-recommended settings for your hardware
- Poor performance can lead to delayed input
- Wireless mice
- These have several milliseconds of latency while encoding, sending, and then decoding the wireless signal
- Various background processes and overlays