By ske7ch -
Hey folks, with the new year well underway and January quickly coming to a close, I want to share an update on the status of the Master Chief Collection update project. As you know, last Fall, Bonnie joined me on our Halo live stream to share the news that we’d be cracking open MCC to perform some critical updates and fixes to improve the experience for everyone, as well as enhance the title for Xbox One X.
We’re excited to officially kick off what will be an ongoing conversation with our community for the duration of this project. Today’s inaugural post will cover a few key items – how we’re thinking about MCC and the community, where the MCC project fits into 343 Industries, how the team plans to pull this off, and a quick look at some of the progress that’s already been made since last year’s announcement.
Beginning last October, the 343 team made a public commitment to Halo fans to update and improve MCC. The conversation Bonnie and I had during the live stream also ushered in the beginning new era for the studio as a whole in terms of how we want to engage and interact with our community.
With this project in particular we are excited to foster a new relationship with our fans – one that is built on transparency, honesty, and consistency. We’ve been working to change how we communicate externally as well as internally, while also improving how we listen and process feedback. This is a partnership built on two-way communication and throughout this project you can expect regular updates straight from the trenches with an open, honest look at the successes and challenges of a project as ambitious and complicated as MCC. Likewise we’ll be actively seeking your input and feedback throughout – including hands-on help once we move into public flighting (more on that in a bit).
Being transparent isn’t always going to be easy – this does mean that there might be times we’ll need to have some hard conversations with answers that not everyone will like. It also means we might say things one day that change the next. We’d rather share as much as we can up front, even if we veer off course later. We ask that you come with a positive mindset and assume positive intent. We can’t undo the past, nor will we dwell on what could’ve/should’ve been. Instead, we are keenly focused on what’s in front of us – an exciting, brand new opportunity to deliver the ultimate experience for Halo fans past, present and future.
I’m personally excited to embark on this journey together and I know the team is eager to invite you into their world while also better understanding yours. We’re all in this together and our goal is to make MCC the best it can possibly be with your help.
Division of Labor
A small but experienced team here within 343 has taken on the charter of supporting many of Halo’s “legacy” titles, with MCC currently being their number one priority. There’s a wealth of experience and expertise on the team including engineers, designers, and test leads who are intimately familiar with what’s good, and not so good, with the Master Chief Collection.
This team is completely separate from the broader 343 team working on the next Halo FPS title. There’s zero overlap or shared resources to ensure that the larger game team can remain laser focused on the future. I’ve read some posts from fans who are concerned that we’re cracking open MCC at the expense of the next Halo FPS title - rest assured that while MCC is incredibly important to the studio, in no way is this work interfering or taking away from the next big thing. We are committing the necessary resources to do both projects right.
As awesome as our legacy strike force team is, the MCC update is a big ambitious project – there’s a lot of work to be done addressing bugs, updating old systems, adding visual enhancements, improving playlists, and even potentially working in some bona fide new features.
So, how do we commit the necessary resources and deliver on ambitious MCC goals with a “small but experienced team?” Well, we’re going to need a little bit of backup. We already have plans to mobilize our community for hands-on testing (more on that below) but unfortunately, that model isn’t really viable when it comes to working on development tasks with the code base itself.
To help us achieve these goals, we’ve tapped some external support to partner with us through this project. We’re currently in the process of working through various milestones like getting processes and tools in place, getting familiarized with the many code bases, working through scope and schedules, and generally getting all the foundation elements locked so there’s a clear and realistic plan of attack.
Taking Flight Together
The second key partner in this relationship is you – our fan community. For starters, we already have a wealth of feedback spanning years of bug reports and feature requests. This info informed much of what’s already in our internal databases and has been very valuable informing priorities and production plans for the project.
Initial feedback is half of the equation – the other is getting ongoing builds of MCC into your hands via a public flighting program. This will be a new process for our team here, but if you’re already a member of the Xbox Insider program, it’ll be familiar to you. This will be a separate “version” of MCC that’s released into the wild for public testing of updates and patches during development. There’s a lot to learn here about how to effectively utilize these tools and what best practices we can gleam from other partners around the Xbox family but we’re very excited to get this rolling.
Currently, the thought is that flighting will roll out in incremental stages with a larger potential audience being added with each new update. Initially we’re going to start out very small – in fact, the internal team already has a flight ring setup for just them to test out early updates and get familiarized with the process. Eventually this will start to expand and we’ll look at a mix of both hand selected participants (i.e. community members who have a good amount of experience and prior engagement with MCC) and then eventually a more open model that anyone can opt-in to join. I know everyone is eager to get going (and trust us, we are too), but we don’t yet have a date locked for the first phase of the public flighting. The latest plans are looking like public flighting will kickoff in a meaningful way sometime in the March timeframe but we'll definitely keep you updated as details are locked.
If you want to be a part of the MCC public testing process, I highly encourage you to go ahead and join the Xbox Insider Program now so you’re ready to go when things get rolling. While you’re at it, I also recommend joining the Halo Community Feedback Program if you haven’t already – not only will we likely use this as a means of gathering periodic feedback during MCC testing, it also offers regular chances to share input on numerous facets of the present and future Halo games and franchise.
Laying the Foundation
Lastly, before we close, I wanted to share a few updates on just some of the big-ticket items the team has been working on for the past few months. The 343 Legacy Team’s Technical Directors – Greg Hermann and Andrew Schnickel – have both been hard at work shoring up MCC’s foundations and updating out-of-date systems, services and technologies.
While I’m certainly no engineer, Greg and Andrew did take some time to explain a few things to me in terms they hoped I could understand. On the technical side there’s been several milestones of note that will pay huge dividends when you play MCC again later this Spring:
Updated Matchmaking APIs
MCC launched back in November of 2014 and there have been a ton of improvements and changes to how Xbox Live matchmaking functions since then. Greg and Andrew systematically updated MCC with the latest and greatest matchmaking APIs that brings forth many welcome improvements. What exactly does this mean?
“Overall this results in big improvements to reliability,” explains Greg Hermann. “The older system used outdated methods which sometimes resulted in instances of parties disappearing randomly and lost notifications between clients and the matchmaking services.”
“Xbox Matchmaking services would find you a match but the notification might get lost on the way to the system and then the game title itself would never see it.”
Greg continues, “Under the old model the system software was the authority on who was connected to who and how… and now, the game title itself takes responsibility for that and gets to decide what the party composition is. This gives the title (and us) a lot more control over party management.”
The big takeaway here is that the overall matchmaking experience, especially with parties, will work much more reliably following this modernization of MCC’s online systems.
updated platform XDKs
In order to take advantage of the latest and greatest matchmaking systems the underlying platform XDK/APIs also needed updating. That means that all eight of the game engines running in MCC needed to go through this update process. Yes, that’s right, eight separate engines: H1 Classic, H1 Anniversary, H2 Classic, H2 Anniversary, H3, H3: ODST, H4, and H2A MP.
Andrew Schnickel explains what this means:
“One of the major implications of this work is that the XDK upgrades now allow us to support Xbox One X features such as increased resolution and visual enhancements. We can also use platform advancements such as the ‘social manager’, which simplifies a lot of our code around friends and presence management. And foundationally, this update opens the possibility for other things we’d like to explore like custom game session browsing, Xbox Arena or Mixer support.”
According to Greg, updating all eight game engines includes fully retiling textures, recompiling shaders, etc. which is why MCC will eventually require a sizable re-download when it launches. It’ll definitely be worth it.
"Appmodel / Reboot"
In the original MCC, you’d have the unified UI running and then depending on which game you launched, one of the eight separate engines would run and then upon completion, the software would fully reboot. This is one of the underlying challenges MCC had when it came to “reconstructing the network session” after each discrete reboot.
So what do these new changes mean? Here’s Greg again with an explanation:
“Now instead of doing a reboot of the entire process, we just unload the .DLL and cleanly shut down each game engine. This means there’s less chance of your network session breaking down. You’ll also notice a much faster game-to-game transition time, greater overall UI consistency, and it also makes it easier for us to manage MP experiences and get players back into matchmaking quicker after a game session ends.”
One of the last items Greg and Andrew walked me through is a pretty significant overhaul of the underlying network code in MCC. The Xbox Platform provides a baseline mechanism for “NAT Traversal” and network encryption but in practice the internet ecosystem doesn’t always support it as well as we’d like. If you’ve ever had difficulty connecting behind a company or business firewall you might’ve experienced some of these challenges.
We’ve updated to a new code base that does a lot of what the Xbox infrastructure does but also allows us to add in relays to work around NAT settings issues. What does this mean for the player? Here’s Greg with the technical takeaway:
“We can route packets through separate UDP packet relay servers regardless of your NAT settings. This should result in a lot less ‘I can’t join this person’ problems.”
"Additionally, with the original MCC, peer hosting was used for matchmade games as a fallback if dedicated servers weren’t available for whatever reason. We’re moving to a model where dedicated servers will now be guaranteed for all matchmade games."
This is by no means everything that’s been done so far but with this great foundational refresh complete, the team has been able to start on a number of other big ticket items including general bug fixing, visual enhancements for Xbox One X, and more.
In the coming weeks, we’ll be sharing more updates from the trenches of development. In the meantime, if you have questions for the team, please post them over in the MCC forum and I’ll see about getting some answered for future updates.
We want to thank everyone for the support and for all of the passionate feedback on MCC. We’re excited to start ramping up this project and look forward to partnering with our community on this journey.