News

MCC Development Update - November 2019

By -

Hey Friends,

Welcome back to the latest development blog! If you are new to these, we have been providing monthly updates covering the development cycle for Halo: Reach coming to Halo: The Master Chief Collection (MCC) and MCC coming to PC. Today’s update is a quite lengthy one that goes over some important details as we rapidly approach the release date for Halo: Reach for Xbox One, the Microsoft Store, and Steam platforms.

If you haven’t been paying close attention this November, a lot has happened! We plan to recap these bits as well as discuss what the future holds. Today, we touch on the X019 announcement, chat a bit about Flight Three and the latest status updates for issues reported by players, discuss PC features that are coming later next year, take an expanded look at the new progression system coming at launch, and offer several technical breakdowns on bloom, future Forge updates, and input. To close out the blog, we look ahead to discussions around flighting that will start up early next year for the next titles coming to PC. But before we go any further, here is some of the visual goodness that awaits y’all when Halo: Reach comes arrives on December 3rd.

Alright, since this is one of our longer blogs, please make sure you have adequate hydration and snack foods for its duration. If you are all set, let’s start by recapping our announcement last week!

Halo: Reach Falls December 3

Last week ske7ch shared with the world at X019 that Halo: Reach drops on December 3, 2019. To be brief in this blog, I’m going to link you to the standalone blog that accompanied the announce containing the nitty gritty details HERE. Be sure to check it out and you can Pre-Order Now! But enough from me, let's just pass the reigns over to him so he can highlight all the fun times that were had over in London at X019 in conjunction with our release date announcement!

Thanks, Postums! It’s good to be back after a whirlwind exciting week sharing Halo: Reach at X019 in London! If you were in the most recent PC flight, then you already have a great idea of what we had on display as we quite literally had the same build setup on LAN for attendees. Over the course of three action-packed days, attendees got a chance to get hands-on with some 4-player co-op PC Firefight (with a few folks opting to instead dish out some trash talk in heated 2v2 MP matches or take a solo run through the “Winter Contingency” Campaign Mission).

Of course, that wasn’t the only reason I was there – you no doubt also already saw and/or heard the news we shared on Inside Xbox that Halo: Reach is arriving on December 3rd. If you missed the info, you can check out our announce blog HERE or catch the trailer HERE.

It’s always awesome hanging out at these shows and just getting to chat with members of the community and hear their thoughts on all things Halo. This is especially true in the rare cases when I get to branch out beyond North America. I want to give a huge thank you and shout out to everyone who came by, everyone who waited in line to play, and everyone who shared their excitement and passion for Halo! I also need to give a shout out to our marketing partners Noah, Mark, and Katie for their help and for our two partners from Splash Damage, Jesse and Tom who helped us keep things running smoothly throughout the show.

If you weren’t in the flight or didn’t get to attend X019 fret not – Halo: Reach is right around the corner and you’ll be able to play all the Firefight you want without standing in line (and with better snacks). With any luck I’ll have slept off this jet lag by then – see you online! Back to you, Postums…

Thank you ske7ch! Even before you went across the pond for X019, the Publishing Team here at 343 Industries was conducting the longest PC flight to date. Let’s get right into our recap of this month’s Halo: Reach flight.

Flight Three Recap

Over most of the month for November, we flighted Halo: Reach on PC. This flight began all the way back on October 29th and ended earlier this week on November 18th and we learned a lot from this flight. We met all of our goals we targeted at the beginning, as well as the additional ones put in place with our extensions, during this flight.

Participants helped us in more ways than they can imagine. From checking the fixes we implemented, to stress testing our underlying systems, to helping validate updating a live product in all the ways we can on the backend – Flight Three was a success!

Since the announcement of the release date for Halo: Reach there has been a lot of discussion in the community around topics of interest from this flight. Specifically, there are several key areas where players would like to see improvements but we'd like to assure everyone that the core Halo: Reach experience is shaping up great for both Xbox One and PC. The team has been working hard on these areas and is aiming to bring additional updates and features to the game post launch as we continue to improve MCC over time.

We want to thank the community who helped by participating in our flights. Over the course of the entire flight, users submitted the better part of 3,000 individual tickets via the Halo Support Site! Because of the reports provided on the Halo Support site we've been able to pinpoint bugs encountered ahead of launch.

From this flight the team was able to build improvements to our feedback pipeline and further streamline how we can iterate and build patches to hotfix items mid-flight. This is something we are working to constantly improve – we’re continually striving to be quicker and more efficient to respond to issues raised by the community as we move more and more to a "live service" model. As we approach launch and look towards the future game updates the team is planning to release, we want to discuss the status of some of the hot topics and share some insights into what you can expect.

Mouse Input Issues

The flight we just completed was behind our current release code base, so many of improvements have already been implemented and should address a lot of the feedback here. That said, the team is currently investigating and iterating on multiple ways to further improve mouse and keyboard input between now and launch. Our early results from initial testing from Rings 1 & 2 are very promising and the team has confidence in how these investigations are progressing. We’re committed to making this a great PC experience and will continue iterating on mouse & keyboard changes – and flighting them post-launch – if needed. As we look towards launch on December 3rd, we feel that overall mouse input will be greatly improved over what many experienced in Flight Three.

Controller Aim Assist on PC

We are not currently planning to make changes to auto-aim when using a controller on PC. The team is currently investigating the best way to handle input types (keyboard & mouse, controller, or both) when playing. If we make any changes to magnetism and aim-assist values for controller, it will close some doors and create a new set of challenges to work through.

We have heard from the community about a suggested “opt-in” option and are discussing the impacts this would have on matchmaking by splitting the population and increasing search times. If we do choose to pursue an “opt-in” feature after launch, it will require a good bit of time to design, implement, and test. And of course, if any such changes are made, it would also need to go through flighting for additional feedback and validation.

Halo has been on PC before and looking back to the CE and Halo 2 PC titles, both shipped with a similar level of controller and mouse magnetism and aim assist. Players on these titles could play with a controller or a mouse and keyboard against each other just like what’s offered in Reach today.

There are two key design mechanics at play depending on which method of input a player uses in Halo: Reach. Player magnetism is what gives the reticule a gentle nudge to stick to a hit location. Pretty much every shooter on the market has some degree of magnetism to assist players. This code only applies to controllers because it is substantially harder to aim with a controller relative to the precision offered by a mouse. Aim assist is a degree of “bullet bending” that is applied when players shoot at opponents to ensure a shot that is close enough registers as a hit and is core to how Halo weapons like the Needler work. This code is the same across both controller and mouse and keyboard inputs.

Variable Frame Rate

In the last PC flight, we were able to further test our experimental implementation of variable frame rate (VFR) and the feature does not meet our quality expectations. We always knew and stated that some of these features would be a bit dicey given that the underlying games are old (9 years in this case) and were designed to run at 30FPS on a fixed platform (Xbox 360). The way VFR was built for Halo: Reach on PC created a variety of negative side effects and issues ranging from increased mouse input delay (which is the opposite of what should happen) to instability. The team has been hard at work on fundamental improvements which are showing very promising results in Ring 1/2 flighting.

We know this is a very important feature for the community, and with some recent refinements, VFR will be included at launch. Based on the recent improvements receiving positive feedback, we wanted players to have the option to use the experimental VFR option on Day 1. We look forward to your feedback and will continue to monitor this closely post-launch.

Audio Issues

To update Halo: Reach for Xbox One and PC required entirely changing the encoding for the game’s audio which has resulted in it sounding different from the original release. We are aware that areas of the title don’t sound like what you or we ideally want them to. It will take some time to work through solutions to improve the overall experience for audio and that work is already underway. When it is ready, we will flight to test the fixes we can make prior to updating the title. We also plan to go into more detail on our Reach audio journey in a later blog.

We did recently fix an issue with dynamic audio that we also saw some of the community report, this fix will be in for launch and has been reported to be improved in our Ring 1/2 flights.

Server Latency Issues

This was a topic that we received many tickets on over the duration of the last flight. To help address players having poor matchmaking experiences we are planning to upgrade the servers in the data centers for our launch. We also are continuing to investigate and make improvements based on reports surrounding server latency, delays, and various network related issues before launch. We intend to have several improvements made before December 3, but since we feel this is an area that can always be improved on, we’ll continue listening and chasing down reports and doing additional work as needed. We are also planning to speak more on this subject in a later blog.

Server Selection

We understand that players from all over the world want to compete on equal footing, and we have work to do to improve the server experience for players in some of the regions that Halo is played in. Beyond the improvements listed above, we also want to offer more choices in how players connect to servers in Halo: MCC and will look to offer ways for players to specify preferences. We need to find a good balance between load balancing servers, ensuring a healthy matchmaking population, and giving players more ways to choose where they want to play. We will continue to listen and explore options for improving the multiplayer experience in Halo: MCC month over month.

Push to Talk

We will have an initial implementation of this for launch on PC with plans to expand on this later. For now, this will be hard bound to the V key and pressing and holding the V key will enable the mic to talk, releasing turns your mic off. On console, your mic will be always on, but we are looking to expand push to talk to console as part of our post launch work.

VSync

Based on user reports associated with settings options we identified an issue with VSync in some scenarios where it was not functioning appropriately. In some cases, it was not appropriately being turned off and added additional input latency because of it. We believe to have fixed this issue and will discuss it more again in the future. We will continue to monitor feedback after launch and address concerns/bugs that may come up with this feature.

Getting Stuck in Menus / Misc. Crashes

We believe these known issues reported during the flight have been fixed for launch. The team has spent a significant amount of time investigating and resolving issues related to this over the past two weeks. Many of these were resolved in the most recent mid-flight update, but the ones we have investigated and were able to reproduce have been fixed at this time. 

Important recap of things to know before launch

Over the past few months we have discussed things that are coming online at the time of launch or that are features we are bringing online after the fact. There are a handful of key topics we wanted to touch on and remind folks about.

  • PC Forge and Theater are coming online for Halo: Reach later next year (Forge and Theater will be available on Xbox One as of 12/3).
  • PC Files share uploads will not be active at launch
  • UGC migration over 6.2 million maps and modes happened this year and that content will be accessible in game as of 12/3.
  • There are some improvements coming to Forge next year, but you need to read below in our technical deep dive for all of the spoilers.

As stated previously, PC’s Forge and Theater require a lot of heavy lifting to make functional and feel good on PC. This work is extensive, and something the teams are hard at work on making right. To do so, this required these two features come to PC later in the game’s life cycle next year. This also includes the ability to upload to file shares on PC, which will not be available at launch. Instead, this will be brought online once some security feature work is done.

A really cool feature that will be available Day 1 includes the roughly 6.2 million maps and modes from legacy file shares on Halo 3, Halo: Reach, and Halo 4. All maps and modes from these legacy title file shares will be brought over to the file shares for players on MCC when Halo: Reach joins MCC on December 3rd. For Xbox users this will happen when you launch the title after the game update and move past the initial start screen. The update will queue up the process so you can access your updated file share and migrate your local maps to the new systems. So although you won’t be able to build initially in Forge on PC for Reach, you will be able to access and enjoy all the content users created for Halo: Reach on file shares from the Xbox community!

For those wanting to know more about Forge changes, an in-depth breakdown on some of these can be found further down the blog in the technical discussions section. But before we get there, let’s talk Seasonal Progression.

Max’s Musings – Seasonal Progression

Last week I was able to talk with Max Szlagor, the Design Director for the Publishing Team here at 343, about the Progression system and some key questions that the community had. He wanted to share the team’s learnings from our flight and touch on feedback we have heard on the progression system. Take it away, Max!

Progressing

Thank you to everyone who has given us feedback on the new progression systems in MCC. When we looked at adding in a progression system, we knew that we needed to deliver something that preserved the spirit of Halo: Reach while laying the foundation for a modern system that will grow and support multiple games. Unfortunately, we couldn't reuse any of the work from the Halo: Reach progression UI and services on Xbox 360 in terms of technology as it was optimized and designed for the Xbox 360 hardware and ecosystem. We also wanted to improve aspects of the original system by separating player XP and currency, promoting gameplay in line with team goals (so Grifball can return to greatness, among other playlists), reducing the grind to unlock customization, and making it clearer what the unlock path is along with centralizing where all the unlocks come from. We recognize that the current implementation doesn’t deliver on one aspect people liked about the old system – greater choice in the unlock order, and we will look at ways to address this in the future.

An early version of our progression system went live in the recent flight and we’ve been analyzing the feedback and data ever since. In the early days of the flight, we noticed that even players who were playing a lot of games were not advancing through ranks as quickly as we expected. We dug into the data further and discussed what could be done. We made an update to the XP values awarded in each game mode and for each medal, and things are looking closer to where we hope XP progression to be.

We are now analyzing the full flight data and making our final launch adjustments. Thank you to everyone who played and offered feedback on the earn rate of XP in the flight. Our goal is for players to unlock all the Halo: Reach season items within a reasonable time frame and in far less time than it took to earn them all in Halo: Reach on the 360. With respect to unlocks, we have ensured that Halo: MCC includes all content that was ever playable in Halo: Reach on the 360, including the ones that were previously tied to preorders, limited editions, and limited time grants. We are even digging through the vault to see what else could possibly be offered at a later time.

In addition, we have heard feedback about the all new season panel we have added into Halo: MCC, and we are continuing to polish and improve the presentation and interactions on this screen. In particular, we are looking to add a unique preview for each item in the season panel so it’s easier to understand what exactly you will receive at each tier. On the customization front, we will look to make further improvements to navigation and preview of the character armors and models in coming updates.

Another important point to keep in mind is that our first season is focused on Halo: Reach, but we will have more seasons in the future. When a season changes, you will not lose progress, season points, or unlocks. You will be able to earn season points across multiple titles, even if the season is not themed for that title. What we have shown in the flight is our initial implementation of the progression systems in Halo: MCC, and we will be bringing in more ways to earn season points via challenges along with all new items in Halo: MCC in the future.

We have also heard feedback that players miss the ability to choose unlock items or order. In addition to future seasons offering more ways to spend season currency, the team is investigating additional ways to offer choices in how content unlocks going forward. Please note that ranks will not correspond to item unlocks in a 1:1 fashion. Season points are currently awarded for the first 100 rank increases, and future season currency will be earned via the challenge system. Please continue to share your feedback once Halo: Reach launches on December 3 and we’ll keep you updated as work continues the progression system and future updates.

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!

Bloom

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.

Future Forge

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.

  • Vehicles
    • Civilian vehicles (forklifts, trucks, etc.)
    • Space vehicles (Sabres and Seraphs)
    • Vehicle variants (Troop Warthog, Heavy Falcon, Heavy Shade)
  • Gadgets
    • Ammo crates and ammo pickups
    • Additional grav lift variants
    • Additional shield door and one-way shield variants
  • Scenery
    • Dropship props
    • Destroyed vehicles
    • A variety of crates and other props
    • Carts, destructible palettes, driftwood, and other set dressing
  • Structure
    • 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.

Input

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.

  • V-sync
    • 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

Closing Time

Thank you to Dana and the Publishing Team's members for that serious technical breakdown! 

The time is almost here. Well, two of them: one to end this blog, but the second and most important of them all; there is less than two weeks to go between now and December 3 when Halo: Reach is out on both Xbox One and PC. We have lots of work to do before and after. This is the first step in the journey of bringing Halo to PC. We are also on the cusp of flighting for Halo: Combat Evolved Anniversary early next year. This is my time to remind folks that now is the time to update your Halo Insider profile! If you haven’t updated your profile in some time, upgraded or changed your PC over the holidays, maybe picked up an Xbox One, or just want to make sure you are all setup and ready to go, please head over to your Halo Insider profile to make sure it's up-to-date. And for those of you new to all of this, if you want to have a chance to participate in the Halo Insider program, you can register right HERE! Please make sure your email is verified, you have selected the platforms you own, and have opted into communications. We can’t invite you if we don’t have your permission to unfortunately.

I wanted to take some time and give everyone who has come along our studio on this adventure my sincere thanks. There has been so much awesomeness. Y’all have helped shape not only Halo: Reach from participating in flights, but honestly how I write these blogs. From speaking up and telling me what topics you want discussed to answering polls, dropping comments on threads, and everything in between. This year has been one of the most rewarding years I’ve had in the industry and it’s been a fun one because of working with all of y’all.

You can be sure that we are going to continue building and growing this relationship with everyone, new and old, in the coming months as each title rolls out across 2020. But for now, I’m signing off for the rest of 2019 as far as Development Update Blogs go as Development blogs will resume in 2020. We can assure you that our teams will still be online watching, listening, and making sure all is well in the world. Until then, we will catch y’all online in Halo: Reach come December 3rd!

Cheers,

Postums

Related


Accessibility in Halo: The Master Chief Collection

Halo: The Master Chief Collection

Accessibility in Halo: The Master Chief Collection

By 343 Industries -

Halo: The Master Chief Collection brings a variety of features across both PC and Console which provide an accessible experience for multiple users in our universe.

MCC Development Update - September 2019

MCC Development Update - September 2019

MCC Development Update - September 2019

By Postums -

This month we are covering a project update, providing clarification on UGC migration, showing off some sweet customization images, giving a flighting update, and much more. Dive on in!

MCC Development Update - July 2019

Halo: The Master Chief Collection

MCC Development Update - July 2019

By Postums -

Back at it again with a Halo Insider MCC Flighting update, answering more community questions, an Outpost Discovery recap, migration details for legacy content, and an all new Duck Tales.