News

MCC Development Update #4

By -

Welcome back MCC friends! For our latest update blog, we’re getting ready to pull the trigger on our second public flight and we’ve got some various odds and ends to catch up on including The Scoop from the engineering trenches. You’ve been patiently awaiting more details and we’ve got ‘em, so let’s get to it! 

MCC Insider Program

While I assume most who are reading this have already joined the MCC Insider Program, I wanted to make sure everyone else knows that sign-ups are once again open and ready for business. Due to some internal maintenance we had to temporarily disable new member sign-ups but that work is complete and we’re ready and eager to get even more people into the MCC Insider Program!

What does the MCC Insider Program entail? How does one sign-up (or opt-out)? Get the answers to these and many more frequently asked questions in this handy blog post.

In addition, if you haven’t been following our previous updates, I highly encourage you to take a few minutes and get caught up for some important background info about the MCC Insider Program, public flighting, and the overall project itself. Consider this a pre-requisite and required reading before you get any further in today’s blog:

Ok, all caught up? Cool, let’s get into some new goodness.

Flight #2 - Now Boarding All Rows

As you likely know by now, a critical component of the MCC update project is partnering closely with the community to get hands-on play, testing, and feedback for in-progress builds via the Xbox Insider app.

Following the conclusion of our first MCC Insider public flight (which went really well thanks to your help!) the team has been working on the next release. Today we’re happy to confirm that the second public flight is taking place this week!  

Participants

For flight #2 the team is looking to roughly double the size of the participant pool that helped out in the first flight. This means that everyone who was invited to flight #1 will receive an invite again in addition to several thousand new MCC Insider Program members who have been patiently waiting on the sidelines.

This also means that most of the overall MCC Insider Program population will still not be included quite yet. As we’ve discussed before, this is a gradual ramp up that will eventually include more and more players until anyone and everyone who wants to participate is given the opportunity. For flight #2 though, we’re still keeping things intentionally limited in scope albeit double that of the last release. We still sincerely appreciate your interest and eagerness to help and we do need your support – please hang in there a little bit longer, the call will come.

MCC Insider Program members should keep an eye on their inboxes for the account they used to sign-up – invites started going out yesterday (6/4). Please note it could take up to 24-36 hours for the email to appear so please give it some time. 

scope

This flight will be similar to the first in that it will once again focus on multiplayer. However, where flight #1 centered around Halo 2: Anniversary content and peer-to-peer networking, flight #2 will feature Halo 3 with the goal of validating MCC’s matchmaking dedicated servers.

As with all flights, keep in mind that this represents a snapshot of an in-progress build at a specific moment in time – which is not as current as what’s being actively developed at this very moment. This is also clearly limited in scope which means many of MCC’s features and broader offerings are not included. Participants will want check out the “Known Issues” post within the Xbox Insider App for the latest and greatest details to be aware of.

Since this flight focuses on dedicated servers, we also anticipate that some players may experience suboptimal latency or performance due to low or unpredictable regional population. Also, for the purposes of this flight, the team will be using a subset of the dedicated server data centers around the world to help keep things focused and manageable. While the flight participant lists were built with locale in mind, we’re still at the mercy of people actually having time and inclination to participate in each play session. Your mileage may vary if you live outside of North America but please do let us know if you encounter unusual performance.

Schedule

Following flight #1 we received a good deal of feedback from participants who desired more content and more variety. This time around we’re happy to report that we’ve heard you loud and clear and have built out a rotating content offering to mix things up over the duration of the flight. We’ve also added more sessions, particularly to try and accommodate players in Europe, but also because some of you just wanted to play even more.

Here are the official play times and content offerings for flight #2:

Thursday, June 7

  • Halo 3 4v4
  • 11:00AM PDT - 2:00PM PDT
  • 7:00PM PDT - 10:00PM PDT

Friday, June 8

  • Halo 3 BTB
  • 11:00AM PDT - 2:00PM PDT
  • 7:00PM PDT - 10:00PM PDT

Saturday, June 9

  • Halo 3 4v4 & Halo 3 FFA
  • 11:00AM PDT - 2:00PM PDT
  • 4:00PM PDT - 7:00PM PDT

confidentiality & FEEDBACK

Another area we received a lot of feedback around was the constraints imposed by the flight’s confidentiality requirements. For flight #2 we’re lifting the confidential barrier some which should allow participants to share feedback easier while also allowing the team to better communicate with players during the three day window.

Please note that participants are still responsible for following the rules and confidentiality restrictions outlined in the invitation email. Official surveys and email communications are still considered confidential.

Participants are encouraged to pay close attention to the MCC message-of-the-day (“Meld”) and to check to the MCC Insider Program Hub within the Xbox Insider App regularly for important info. In addition, we’ll have official pinned threads here in the Halo Waypoint forum for each day of the flight to gather player feedback, answer questions, and share timely information.

Inside Xbox

On May 17, I had the honor of joining Major Nelson and 343’s James Monosmith for a special segment on Inside Xbox, Episode 3. For the most part the conversation was very high level, consisting of an overall recap of the MCC update project and a summary of some of the key improvements and features headed to game. While most of you no doubt already know all of that stuff, if you missed the show you missed out on some fresh new game footage we captured a few days prior during an afternoon playtest.

Keen observers noticed a few things like the new menu in action, the new HDR settings (more on that below), and a quick peek of some glorious 4K Halo 2: Anniversary and Halo 3 multiplayer footage.

Check out our Inside Xbox Halo segment via on-demand right HERE

HDR Settings

Players in the first public flight who were using an Xbox One X and a 4K/HDR compatible monitor likely already saw this sweet new addition to MCC. This is still considered work in progress but here’s a screenshot of what the new video settings configuration screen looks like:

No, Lorem ipsum dolor... isn't a new video setting. It's work in progress placeholder! 

When the update lands later this year, Xbox One X players will be able to fine-tune MCC's HDR and visual settings to their personal preferences.

Intelligent Delivery

We’ve discussed this feature a bit in the past, but “Intelligent Delivery” allows the individual facets of the overall MCC package to be selectively installed by players. MCC is a large game, jam packed with content (and it could even grow more in the future), so this really is a great quality of life improvement to give players more control over the experience and their console’s storage. If you don’t care to play Halo 2 Anniversary MP or Halo 4 MP, you don’t have to install those components. Another nice bonus of Intelligent Delivery is that it will also allow players to install languages other than what their console is natively set to.

It's important to note that choosing not to install game components is an “opt out” process. This ensures most players have the needed content for co-op and multiplayer scenarios while giving everyone control over their hard drive usage and which content they want to keep installed. Once the initial launch chunk is installed, players can begin customizing which components of MCC to include or exclude, and these can be adjusted at any time.

Here’s a few work in progress screenshots of how the Intelligent Delivery system is looking in MCC right now:

 This is the default configuration, with all games and components installed.  

 This is an example of a selective installation, with only a few game components installed.

   Above is an example of default MCC language options.   

  This is an example of the new player-customizable language options coming to MCC.

Someone asked, “what happens if you don’t have a specific component installed but you try to join a matchmaking playlist that requires it?” One big change coming with the update is a shift away from multi-game playlists in favor of per-game playlists. If a player doesn’t have Halo 3 MP installed but joins their friend’s party who wants to jump into some H3 matchmaking, that player will get a message letting them know they don’t have the required content installed (pretty much how it used to work when a player didn’t have a specific DLC map that was required for a playlist). As a special bonus, all players will be made aware of which specific players are missing content so the host and party members can make the best decision about what kind of game to play.

Multiplayer Musings w/ Max

Many of you have had a lot of questions about the future of MCC’s multiplayer experiences and systems so MCC Design Director Max Szlagor gave us a few answers.

There have been a lot of questions about “dodging,” “party matching,” “bans,” “skill matching,” “ranking systems,” and similar aspects of the multiplayer matchmaking experience. How is the team thinking about these areas?

Max:  We would like to improve the overall MCC multiplayer ecosystem, including skill matching, banning, and overall match quality.

For skill matching, we are evaluating the way ranks are computed. We will also be updating multiplayer playlists and monitoring population so we can keep a healthy range of players in each playlist. At the moment, some of the playlists in Halo: MCC such as Team Hardcore have a very low population day over day and this leads to large ranges of player skills matching together. Please note that when we adjust playlists, ranks are reset in those playlists as the content changes. Once we deliver our full update, we expect to rotate playlists more often based on keeping a healthy population and providing ongoing variety in maps and modes.

For bans, we are updating the system to include more authoritative rules and we will be applying stricter penalties for quitting. We are also looking to add more cases where we can track bad behaviors. Overall, we are making matchmaking a stricter commitment going forward, where backing out will be less likely and will carry stiffer penalties. We will also be masking player names and ranks until further into the matchmaking process.

To improve match quality, we are investigating rules for matching parties with parties and we will evaluate the impact this has on matchmaking times.

Beyond our update, we will evaluate player progression systems and will consider whether the current rank system is the best one to user for player facing lobbies. We intend to preserve classic ranks as part of the player profile.

Will ranks be reset?

Max: Whenever we adjust playlists, ranks are reset in those playlists as the content changes.

Will you be implementing a post game carnage report lobby where both teams can talk before the next search begins?

Max: The Post Game Carnage Report has been converted to a lobby where players can chat and will be automatically queued back into matchmaking. Please note that only parties will stay together once matchmaking begins again.

The new splash/title screen looks fantastic but the UI preview has me worried. I LOVED the animated background that was unique to each title in the collection that came up when you selected that game’s campaign in the menu. Are those still in?

Max: Yes, The old campaign backgrounds are still available. The new menu screens replace the existing main menu screens with the planet in the background.

With MCC moving away from combined playlists and towards game-specific playlists, will the option to have cross-game playlists still be available / something the team is considering?

Max: We can definitely include multiple modes in a playlist and technically nothing prevents us from including multiple games. We’ll have to see how playlist adjustments affect population, and see what Intelligent Delivery means for overall availability of content within the active population, and go from there.

And speaking of multiplayer, let’s jump over to another hot topic – what’s on tap for the revamped playlists when the first MCC update lands? Read on!

UPDATED Playlist Spec

Tyler “Postums” Davis has been out in the trenches gathering feedback and working closely across the MCC and community teams to drive the spec for the first major playlist refresh. As we’ve stated prior, one of the biggest changes coming to MCC playlists are the switch to per-game playlists (compared to the cross-game playlists we have today). Here’s Tyler with the latest details:

Your friendly neighborhood Postums here. We have been combing the internet and reading through all of the feedback that so many of you have provided. We have been gathering and listening to as much as possible in regards to the playlists and gametypes you all want to play in MCC. Based on that feedback and supporting data, we have generated an overall initial playlist spec that we are looking to launch once the update lands.

Naturally many of you are going to immediately exclaim, “Well wait a minute, where did my favorite playlist go!?” Don’t worry - this is why we want to share this initial spec with you today. We want your feedback around what playlists you want and why! So, please examine the list below, think about what you want, then please go here and tell us what nine playlists you want and why!

Halo CE

  • Ranked 2v2
  • Social 4v4

Halo 2

  • Ranked Team Hardcore
  • Social 4v4

Halo 2: Anniversary

  • Ranked 4v4

Halo 3

  • Ranked Team Hardcore
  • Social 4v4
  • Social Big Team Battle

Halo 4

  • Social 4v4

“But Postums, why are you only giving us 9? I want 20!” Well, there are several reasons we’re trying to limit things to nine. But before we dive into that, I want everyone to know that the team's goal is for everyone to have an enjoyable experience playing MCC. This initial list is based on what we have heard from the community and have had numerous discussions about internally.

One of the most important reasons we are reducing the available playlists to nine is so players can see all playlists when viewing the matchmaking UI screen (you can see nine before you have to scroll!). This will not only help make it easier to navigate, but by limiting the number of playlists, it’ll help focus the population and make it easier for players to find matches. Also, this gives us a chance to make some playlists we rotate even more meaningful, with a greater population, when they show up.

Of the playlists above, two of them will rotate on a regular basis. We are still working out the timing of how often this will happen, but they will definitely change more frequently than once every 3 years. It’ll most likely be along the lines of months or even weeks, but we are still hammering out how frequently we’ll rotate playlists.

One playlist we are currently wanting to rotate is Big Team Battle. The plan is to rotate this across different games so one month it will be Halo Combat Evolved, then Halo 2, then Halo 3, then Halo 4, and rotate back through to HCE. This will also include more “Heavy” variants in BTB and when we get to H3 – there will be Elephants on Sandtrap for CTF!

The other rotational playlist will be Social Arena. The plan here is to rotate it back and forth between Halo 2, Halo 2 Anniversary, and Halo 3 while keeping Halo: CE 4v4 permanent for the time being. The HCE players have not had a 4v4 playlist for a very, very long time and we feel they’re long overdue. The Social Arena that rotates will be filled with many gametypes and will rotate through to more specialized ones based on feedback and wants from the community. However, to start it will be a grab bag of Team Slayer, Swat, Snipers, and objective gametypes in this list. We hear the FFA crowd as well and we plan to rotate that into this slot on a regular cadence based on usage and feedback.

All of these ideas are subject to change and aren’t final. Please, go to the feedback forum page located HERE. We look forward to hearing what you have to say and discussing this with the community.

Once we lock on the final spec, we can then get more into the weeds on specific map/mode/settings within each playlist. Thanks again for all of the feedback thus far and please keep it coming!

The ScoopTM

For our final piece of this development update blog I’m excited to introduce a brand new feature segment we’ve dubbed “The Scoop.” Not only are we giving you “the scoop” in terms of the latest MCC insider details, this also happens to come from software engineer Sean Cooper. Get it!? Prior to joining 343, Sean came from a long tenure in the Halo mod community and we featured him in a Team Spotlight  back in March. We’re lucky to have him working on MCC.

If you want to get REALLY into the engineering weeds of the MCC update project (and I mean really deep, this isn’t watered down), here are some of the things Sean has been working on since the last blog post:

H2 Co-Op

I’ve been working on a few bugs that relate to H2 co-op. Co-op was officially added during MCC development by sorta taking code from H3 and then doing some stuff (technical term). Well, in doing so it seems to have not taken into account the case of clients and/or the host failing to form a connection. This led to infinite loading screens. They had the logic to time out, but as far I could tell, it was just never exercised because it clearly wouldn’t stop the update loop and allow the game to exit to the main menu. Therefore, the host could fail, causing the client to time out and wanting to load to the main menu, but never actually get there. The host could possibly later recover (maybe the client loaded faster because it is a Xbox One X) but then it would spin waiting for all of its peer machines to join. 

We also made the decision to remove the support for H2 co-op allowing the host or the client to quit while the other user continued to play. H3 does not support this, and I think we were seeing problems for why (host could quit, client would host migrate, but certain systems would still be in a “I’m a client I can only do Y and Z” state). In the interest of stability, we decided to align to H3 for now.

While trying to help our partner investigate a de-sync in H2 co-op I came across code that dates back to legacy H2 (i.e., Bungie wrote it) that calculated some baked deterministic data incorrectly. While reviewing the code that determines what Collision Model nodes are render-only (the question came up as to WHY there would ever be collision nodes that are render only) I noticed it was only looking at the bsp-physics information. In H2, the only object-type that even has bsp-physics information in its Collision Model asset are the Scenery objects, as they don’t have a Physics Model asset.

At the end of the day, the H2 co-op de-sync fix required all of our map files to need rebuilding. I ended up having to work on H2’s “Tool.exe” which performs a bunch of odd jobs like importing models, running lightmaps, and building map files. The program is 32-bit, and so by default can only access 2GB of memory, and up to 3GB if a certain flag is used when compiling the .exe. I bring all of this up because there were changes made to support MCC map file changes that caused this program to need that flag (which isn't optimal).

So, I then spent a day tracking down where the memory growth and usage was coming from. In total, I think I found 256MB+ of memory that was needlessly allocated. Then there was another 256MB allocation at the very start of map building that wasn’t used until the very end, during map compression. It had to be done at start up because by the very end, the app memory would be too fragmented to support a contiguous 256MB allocation. So, I changed another memory buffer basically used as a “scratch pad” and increased it to 256MB, and ended up saving an additional 128MB with the reshuffle. That’s a total of 384MB of memory reclaimed. I also ended up tracking down some memory leaks that were getting reported when Tool.exe shutdown. Only one of them were from legacy H2 code.

Then I found out that during the map build process, we were processing Portuguese sound data…except H2 has never shipped with Portuguese audio support. Internally, the Portuguese audio is just the English audio slowed down by 50% (like how the H1 elite is just Sgt Johnson slowed down by 50%, and then reversed). So I was able to add some checks to skip them, cutting down on map build time and, again, the tool’s memory usage.

So yeah, a bug assigned to someone else caused me to track down the root issue, and then address essentially four more (albeit, non-user-facing) problems while working on the fix.

30->60Hz

More recently, I committed a set of changes that I had shelved a few months ago with fixing issues with the 30->60Hz game tick change in the H2 engine that date back to H2 Vista. Namely, weapon firing rates being off. If you play H2V or MCC today and shoot the Carbine, it is a very, very different beast than in legacy H2. Well, if all goes well, the next MCC update will include these fixes. We’re going to further vet the changes in Flight 2.0 as of right now.

I can’t take all credit for the fixes. Another partner on the MCC project had originally fixed 30->60Hz issues in H3. I used their fixes as a base for solving the issues in H2.

Another task I’m still working on is verifying content changes from legacy H2 that went into H2V that. I want to make sure there were no gameplay changes to try and fix or otherwise “balance” for the 30->60Hz changes.

Elite Dual-Wielding

While watching this video, the first thing I noted is that Elites don’t dual wield anymore in Halo 2 Anniversary. I investigated this last week. It was due to the .character tag being changed to support campaign metagame bits, presumably without realizing the implications.

Here’s a snippit of the diff for the elite.character from H2V vs MCC:

Everything is fine here. Like say, MCC added new type+class fields for the campaign metagame features that were added. The H2V tag was dumped with MCC tools, so it has the default values of these fields due to how the tag versioning works. Note the “dual wields” flag is set.

Elite.character is the *base* definition for all elite specializations (elite honor guard, stealth, etc). Those specializations deviate from the base by defining their own set of properties. There’s discrete sets of properties for general information, vitality (health/shields), weapon usages, etc.

Now, here’s a snippit of the diff for elite_stealth.character from H2V vs MCC.

Elite_stealth was changed to correctly attribute what type+class it falls under in the metagame. Note how there are *no* flags set. Here lies the problem.

When the AI code goes to lookup the elite_stealth character’s general properties in MCC, it will find and use the bits in the elite_stealth character tag since it has its own values for that set of properties.

When in H2X/H2V, the AI code would see elite_stealth character doesn’t define its own set of general properties, so it will look at elite.character’s properties.

In case of the code for setting up AI actors, H2X/H2V will see the “dual wields” flag is set because it ended up digging into the Elite character data. But in MCC, the code won’t see this flag set because it dug up a different set of properties (ie, the set from elite_stealth character).

TL;DR: 99% of Elites don’t dual wield in Halo 2: Anniversary because the AI data was changed without regard to how the AI code uses that data.

The most straight forward fix would be to look at the character tag hierarchies and propagate the flags. Another way to fix it is to move the new fields to their own set of properties so legacy structures can remain unchanged - which is actually the data layout Bungie went with when developing Halo 3. I’m still deciding how I’ll go about fixing it, and whether or not I’ll get it into this first update, but I’m leaning towards the second method at this point.

The Man with the golden gun

While working on a bug in MCC's Halo CEA a couple months ago, I had a few developer cheats enabled to more quickly play the level. One of them was one shot kills. While waiting for E419 to gimme my Warthog, I wondered what would happen if I shot said Pelican. Death. Death happens. After, I reverted to last checkpoint since I wasn't sure if this would somehow cause progress to be halted (eg, due to a game script never completing) and I had a bug to fix. If I recall, it was related to the skull on this level (The Silent Cartographer). 

Looks tight down there

"Looks too tight down there" is the debug subtitle for the line that can be heard playing during this part of Halo 2's Outskirts mission. I feel that this Elite probably has the same thought as the Pelican's pilot, albeit in hindsight. Backstory: I was testing some fixes (maybe firing rate fixes or something) and I think a grenade I threw caused a dead elite's head to pass through the world geometry slightly, leading to its ragdoll bugging out. 

Until Next TIMe...

Whew, I still don’t really know exactly what I just read in The Scoop but can I just say again that it’s awesome to have Sean and team attacking this MCC update with so much attention to detail and a genuine desire to get each game as close to their originals as possible, in every single way?

On behalf the team, thank you to all of our MCC Insiders for your feedback and support. We know the wait has been long, but hopefully between these updates and public flights you’re all starting to see the great progress being made. None of this would’ve happened without the Halo community.

We hope to see our flight 2 participants online this week and to everyone else – please stay tuned and stay hyped, we’ve got more work to do and we will need your help.

Related


MCC Insider Flight 2 Recap

Halo: The Master Chief Collection

MCC Insider Flight 2 Recap

By ske7ch -

Public flights are an integral part of our MCC update plans as we roll out fixes, improvements, and features into work-in-progress builds so members of the MCC Insider Program can go hands-on to help validate all the great progress the team is making. Today, we’re looking back on the most recent flight to share some results and key takeaways from three action-packed days of MCC multiplayer mayhem. We’ll also hear from Dr. Jessie Thomas – our partner on the Xbox Research team – with a recap of...

MCC Insider Flight One Recap

Halo: The Master Chief Collection

MCC Insider Flight One Recap

By ske7ch -

As the dust settles and we look fondly back upon our inaugural flight for the MCC Insider Program, we wanted to circle back with our community and share some of the results and outcomes. Today we’re going to breakdown how it all went and go over some of the game team’s key takeaways and we’ll hear from Dr. Jessie Thomas - our partner in the Xbox Research team who’s driving the MCC Insider Program and helping to capture all of your great feedback. Let's go!

MCC Development Update #3

Halo: The Master Chief Collection

MCC Development Update #3

By ske7ch -

Time sure has flown by since our last MCC development update blog! We appreciate everyone’s patience (and excitement) as the team has been heads down working on fixes and improvements to MCC. Today we’re going to catch up on what the team has been focused on since our last blog and dig into some more details about what to expect with the first public flight – which is getting closer by the day.