MCC Development & Flighting Update

Hey Friends,

Welcome to the running thread for Halo: The Master Chief Collection’s Development & Flighting Updates! Below from time to time, we will be bringing you the latest news as it relates to development and flighting updates around MCC. Be sure to check back regularly! These updates when posted will land on Fridays.

Cheers,
Postums

32 Likes

Hey Friends,

Welcome back for another MCC Development & Flighting Update! This month is all about the celebration of Halo’s 20th Anniversary. It really is mind boggling to me seeing as I grew up on the sticks playing Halo: Combat Evolved and here we all are, 20 years later, still getting down with the Master Chief. Speaking of the MC, the MCC recently got an update to celebrate this monumental occasion in the form of all new customization content across the title.

Celebrating 20 Years in MCC
If you weren’t aware, MCC had an update last week on November 3, that brought in loads of all new cosmetics. Complete the weekly challenges and use your Season points in the Exchange to unlock the full suite of content. Every week on Wednesday, between now and early January, both Challenges and the Exchange will be updated with new offerings. The full blog breaking down these additions can be found HERE.

Timeline Asset 1 contains the schedule from November 3rd to December 1st:

Timeline Asset 2 contains the schedule from December 8th to January 5th:

Players will be able to get their hands on full armor sets, Xbox themed weapon skins, and some pretty creative back accessories and shoulder pads as well as a Utility Item through the Exchange. Make sure to complete your weekly challenges as well to unlock some spiffy new nameplates too to unlock them all!

If you have feedback around this update, please make sure to stop by our forums and let us know what you think! The pinned thread can be found HERE.

Thank you everyone for stopping in, and as always – we will see y’all online Spartans!

Cheers,

Postums

30 Likes

Hello Friends,

Welcome back to another MCC Dev & Flighting Update! This time around, we have a special guest joining us to talk through some of the updates that have come to MCC. More specifically we’ll be focusing on the improvements to better mirror legacy titles for both Halo: Combat Evolved and Halo 2.

A Living Legacy

In working on MCC, we partnered very closely with a couple studios over the years. This includes Saber Interactive, where a good friend, Roman Levedev, has been knee deep in the code across the collection. Today, we get a chance to hear about his work over the past few years in bringing many impactful changes to MCC. Let’s dive on in!

Postums: Thanks, Roman, for joining me today. First off, tell me a little bit about yourself.

Roman: Hello Tyler, my name is Roman Levedev and I am the Tech Lead from Saber Interactive who worked as Lead Project Programmer on Halo: Combat Evolved Anniversary (H:CEA) for x360, Halo 2: Anniversary (H2A) for the Xbox One and Halo Online for PC before rejoining MCC in 2019 to help bring the collection to PC.

Tell me a little bit about what helped you decide where to start first in bringing MCC closer to parity with legacy?

Scoops (Sean Cooper) mentioned in an interview that there is a branch of the Halo: Combat Evolved (H:CE) code where prototyping was started for the legacy visual fixes. I took transparent_generic and fog shader from there and ported to H:CEA code base. While going through the bug list from our bug tracking system, I saw several videos made by the Halo community on YouTube about legacy graphics issues and knew that not all bugs were covered yet. I was really impressed by the depth of analysis in one video authored by a guy who seems to be a fan of Pokémon :blush: There were videos about Halo 2 (H2) issues as well, and other fans had created a huge list of issues in Google Sheets with image comparisons. It really drove home how passionate the community is.

What were some of the early challenges when trying to mirror MCC versions of these games with the legacy ones?

I had to find original Xbox dev kit docs and become familiar with low level assembler and all technical details of Xbox Nvidia GPU. Luckily, a couple of weeks later we found an Xbox devkit, however setup of an ancient pipeline to build the game and tools was a challenge.

Picture1

Scoops really helped to find docs and different XDK versions. But still It was hard to find the correct version of Visual Studio and service packs for H2.

Having H:CE/H2 debug builds on original hardware made bug fixing a lot easier. It also helped to prove that fixes were correct. When making videos and screenshots by connecting Xbox to capture-cards, it technically isn’t actually correct. There is a transformation of digital data to analog and then back. Every capture-device makes it differently. For example, there was a bug where the Arbiter appeared dull during cutscenes. Here is the screenshot that specular, bloom, colors, shadows look very similar.

When fixing these bugs, were there ever opportunities to port the original source code over that you tried and worked or failed?

Most fixes required us to restore original high-level code and make correct DX11 implementation, for example H:CE active camo, sun, water, fog and some other effects. I made a list of all shaders and fixed them one by one, since all shaders were written in c code. H2 shaders on the other side mostly were data driven and generation of shaders for PC was mostly correct, that’s why H2 looked very similar to original. If shader generation has been totally broken, then it would be noticeable everywhere. But this also was a problem, some tags were changed for original H2 multiplayer DLC maps and hundreds of tags were changed later during port to Windows Vista. So, I had to dig through the issues one by one. While some fixes uncovered bugs in shader generation that helped to fix several bugs at once, it was not even close to H:CE, where shading fixes covered 99% of graphical issues.

Screenshot from devkit, H:CE fog example:
Picture3

What was the most difficult task for Halo: CE? For Halo 2?

I think water, sound and cinematic interpolation for both legacy and remastered graphics were the most difficult tasks for H:CE. I kept fixing audio for several seasons. Environment audio was a hard topic, since every system has its own I3DL2 implementation with a huge list of different parameters, and some features not fully implemented. Matching fmod with Xbox implementation was hard. Even original code messed with occlusion and obstruction, and they were passed incorrectly to the audio subsystem. But most annoying were bugs with looping sounds, which appeared as noticeable clicks during music playback.

It took a lot of time to fix H2 shadows, but the overall impact on image quality is huge. Interesting thing is that only H2 shadows used traditional z-buffer for rendering, w-buffer was used for everything else. That’s why there were a lot of z-fighting issues. They were so bad on Elites that during initial PC port lights were removed for the multiplayer model. To fix all these issues I had to implement something like w-buffer.

In general, it was much easier to fix H:CE visuals, I managed to handle it by myself, while H2 required more hands and more time.

What areas are you still working on to bring closer to parity?

I don’t have H:CE visual issues on my plate. Some bugs that are present in Season 8 like plasma pistol tint, frame-dependent particle physics are already fixed. But H2 still needs attention, we are still working on the correct implementation of depth of field effect, water ripples, there are still some issues with particle effects.

If you could fix one bug in all of MCC, what would it be?

I’m a simple man. I see bug, I fix it :slightly_smiling_face:

What is your favorite bug you have fixed thus far around these legacy titles?

There was a famous bug about the ‘wrong Captain Keyes model’, the reason for this bug is that source art wasn’t submitted with updated tags. During PC port all textures were reconverted, and we got this old look.

Picture4

A similar thing happened to bump maps for H:CE/H2. Sources were mostly ok, but target format was p8-bump (palletized 8-bit per pixel), which involved an additional post process that gives different results from uncompressed import. As you can see, it makes a huge difference.

Picture5

Do you have any fun stories you want to share? The community always loves hearing about awesome things developers are working on behind-the-scenes.

I have couple fun stories to share!

#1 - Just a fun fact, that for H:CE when I was stitching s3d engine with H:CE engine I’ve created two windows, one for the remastered view and one for the original with legacy view. First step was to show them side-by-side and second step was to show/hide window to make sure that camera settings, first person weapon size and position were identical to legacy render. On the screenshot you can see that the camera fov was different at that time. Guys from 343 saw this feature and realized that it’s cool :slight_smile: Who knows, maybe without this there would be no legacy render and I would not have to fix it now.

#2 - There was a fun bug that I had to fix for H1A Xbox 360 project. There is a known glitch:

“When the level starts, if the player continues to rapidly press the enter/exit vehicle button, the player will hop out of the Pelican and then hop back in. After a few moments, the Pelican will fly back into the shaft room. After a few seconds, the player will mysteriously be ejected from the Pelican and die almost instantly when the Pelican hits the third of three large spinning disks approximately halfway down the shaft.” Source: Halopedia

The issue on Xbox was that the disk didn’t hit pelican and player was able to stay alive and walk in the shaft forever. QA marked this bug as TCR failure, non-progression. The PC build worked fine with the same maps. The reason for this difference was in the start phase of spinning ring animation; it used its object index as random seed. And Xbox 360 is a big-endian system, and you get 0x87654321 instead of 0x12345678. The Pelican was able to pass the first ring without being hit.

#3 - Bug introduced in Halo 2 Vista, “Zealot Reinforcements do not follow player after spawning”. The reason for this bug is that path-finding generation algorithm created a link between tree and stone that prevented elites to go further. It happened because bounding radius for the tree near Elites was increased from 9 to 11 to avoid some LOD issues.

Thanks so much Roman for stopping on by and sharing all the fun details for this update! It’s very appreciated.

Anytime!

Such cool stuff, I always love it when we get to talk with our partner teams and see some of the amazing things they are working on to make Halo that much better!

Well, that will do it for this edition of the MCC Development and Flighting Update. Thanks for stopping in friends. As always, we will see you online!

Cheers,

Postums

53 Likes

Hey Friends,

Welcome to the last MCC Friday Development and Flighting Update for 2021! This has been a busy year to say the least and we’ve had one of these update across nearly all 52 weeks of this year. MCC has had several flights, updates, and so much new content added to it that players helped provide feedback on. We aren’t done just quite yet though even if it feels there has been a lull as that other game has been released.

As we talked about earlier this year in the September Development Update, there’s more on the way:

  • New content is still on the way for MCC in 2022! There’ll be more info on that in the new year.

  • Of course, to continue 20-year celebration of Halo, we’ve got plenty of content still ready for you to check out in the Exchange each week.

Be sure to check in each week in MCC to check out what’s new in the Exchange, see our regular playlist updates, and relive the legacy games that started it all!

Thanks so much everyone for being a part of another fun filled year of MCC and we can’t wait to see you back here next year with more content, features, and surprises coming online!

Cheers,

Postums

13 Likes