Dev Blog 2: The Road to the ODST Engine for Halo Legacies






Hello everyone! 


It’s been just about 2 months since we finally revealed this project and reactivated our social media accounts. If you missed that announcement and this is your first time hearing of this project, you can learn more in our first blog post from July. The feedback has been overwhelmingly positive and we are happy to bring some excitement to many of you who have been feeling down in the dumps about Halo. A lot has happened since then. The release of Campaign Evolved and the reception to it has certainly had a chilling effect on the entire Halo fanbase. We have conducted our own post-mortem on it and it has solidified our feelings that what Halo needs is some fresh new ideas and the direction we are taking this project.


Since the announcement in July, we’ve seen various people across our social media platforms and discord ask us questions, with the two most frequent ones being “Why did you chose the ODST engine” and “can you go deeper into the mechanics and sandbox”. With the release of Campaign Evolved and some of it’s notable AI issues, it’s also a good time to talk about how we are adapting CE style gameplay into an engine which has near identical backend systems to Reach and Campaign Evolved. All of these questions go together like PB&J, so with that, lets take a closer look at how we came to end up on the ODST engine. We originally wanted to cover more gameplay related things in this blog post as well, but that is going to have to be separated into Septembers blog update instead.


We’d also like to note, that Legacies is more than just a mod for MCC to be played, but it also is designed to be a framework for other developers in the Halo community . The entire project will be open sourced, so as we explain systems and features please keep in mind that what Legacies will offer isn’t just front end user features and content, but things useful to developers across multiple Halo titles. We’ll go more into this in the future as well, but for now our primary focus remains on the ODST engine. 


But back to talking about the choice of engine. This project originally started as a new SPV3 expansion, more or less our version of “Halo 3 ODST” in that it would be a new open world campaign as an expansion pack for what we had already accomplished. This work started in summer of 2020 during the pandemic, and just as we were making breakthroughs with certain systems and starting to get the first biome in a fully playable state, the MCC tools released in mid 2021, and were incompatible with what we had previously designed. 



Legacies Development 2020-2021




Then in late 2021 the Halo 3 tools came out, and we started preparing to eventually use the Halo 4 tools when they released, which happened in late 2022. At this point, we still weren't entirely sure what paths the project would take, as custom sound importing was not yet available for the later Halo games.










However we realized Reach would be faster and easier to work with and provided us with enough of the features of 4 with less of the challenges, only then to run into issues with the Reach tools at that time, which resulted in our change to ODST in early 2024 after just over a year in development. 


Please excuse the state of the HUD in this screenshots, we will be doing an in depth detailed look at the development of the HUD for Legacies in a future blog post.


Legacies Development 2023



So why ODST? And why not use Reach now that the tools are better? We probably could get all the world geometry working in Reach again (and we one day may do that to work with the standard sandbox so Invasion makers can have some new forge opportunities), but as we started working with ODST, it provided us with several very powerful features and forms of cross compatibility across multiple games. This made it ideal for us to work in, but also provided an extra benefit in allowing our content to be developed in ODST, and easily deployed in all the other titles, with CE and 4 being outliers in compatibility.  




The first big feature of ODST, is it’s global progression system which is unique to this version of the Halo engine. Its global progression system is central to how the campaign operates. We can track all sorts of things across different maps. Did you find this item to boost your shields? Well it will be remembered in every map you visit. Did you kill a powerful Covenant leader? Well then he won’t appear again and encounters in that area the next time you visit can change. Did you encounter a new enemy in one map? Well the next map can remember that.  We can track a nearly infinite amount of completion activities, upgrades to the players, data pads, etc with the global progression. We could even allow new areas to be added to the campaign, or a set of episodic missions so what you do in one mission, can effect what happens in another mission. It’s very powerful stuff, and if you were a fan of the SPV3 cross map unlocks (like if your tank survived on Attack on the Control Room, you could use it on 2 Betrayals) this is that on a much larger scale. Things you may find on one playthrough later into it, you may want to get earlier in the next time you start a new campaign which can reshape how you interact with the rest of the game next time. If you find the machete equipment in the last few hours of the game, then on the next play through you can aim to get it earlier on and that is remembered across all maps you go to throughout the game. 


The other great thing about ODST, is how easily it can accept content from the other Halo titles, including Halo CE and Reach. In fact, we have a tool for CE content that pretty much lets us port things such as animations with a few clicks, so any weapon or animation can be brought into ODST in anywhere from 10 minutes for a weapon, to an afternoon for a character in a near finished state. There is still manual work that has to be done, but we can get 90% of the way there extremely quickly. We had a massive amount of custom weapons and animation in SPV3, and that is now easily able to be brought into this project where appropriate. Our end goal with Legacies is to have the majority of first person animations be custom, which involves us upgrading some of our existing animation to support things like dual wielding, and creating hundreds of new animations for all the new content we are introducing. This also means that content we author for ODST can be easily ported back into CE and H2 for any individuals who want to build off of Legacies.


Halo CE through Reach also use a very similar texture setup, so any asset can be brought over and implemented, with it’s full textures in minutes as well. That’s not to say we are mixing CE, 2 3 and Reach art style and assets together… because we are not. But for prototyping or having a placeholder to see if something warrants a new asset being made. This allows us to work fast and nimbly, and also allows us to have good compatibility with older engine versions as well if someone feels the urge to back port content from Legacies to an older title. It’s also extremely memory efficient to use this more traditional texture setup, which helps us pack more content into each biome than one would when using a more modern setup, while still raising the visual bar on what to expect from ODST. 


This includes character animation, the Legacies Grunts, Jackals, and Elites all use their CE animations, with a few enhancements made. ODST’s animation inheritance, allows us to use the CE animations for gameplay purposes, but also allows us to tap into the Halo 3 animations for things for vehicle animations, for boarding, entering and exiting dropships, driving and activities. Halo 2 animations can be called on as well. Our Slugmen were designed to use the Halo 2 elite animations giving them a wide variety of capabilities and behaviors. We also have a new type of brute, the Brute Cubs. The cubs are a new variant of the brutes that are a tuned version of the berserking brutes from Halo 2. These young Brutes are eager to prove themselves as warriors deserving of being given guns and armor. 


This also works backwards as well. Reach animation is less commonly used through the project, but enemies such as the Skirmishers, Sentinel Soldiers are able to tap into reach animations when needed as well. For the rest of the Promethean enemies who have been redesigned as Sentinel classes, Halo 4 animations with a bit more difficulty, also can transfer over into ODST as well. 





Third person animation is one of the most time consuming things to work on, so not only is it easy for us to repurpose 11 years of Halo Animation, but we also can choose what is best for the project’s needs and modify it accordingly. 


ODST’s scripting system is also a nice in between of CE and Reach as well. Certain backend systems literally can not only be copied from CE and used in ODST with minimal changes, but what we do in ODST can also be applied to Reach, and by extension Campaign Evolved once mod tools for that enable script recompiling. Why does that matter? Our Firefight scripts and framework are designed largely to be engine agnostic. The SPV3 Firefight scripts have been updated and reworked for ODST, and can also be easily ported into Halo 2, regular Halo 3, and Reach, and this scripting framework was built with Campaign Evolved support in mind so one day people could modify it into the PC version. In Legacies, we have built areas of the open world to contain firefight maps and scenarios, and it can be integrated into missions as well as served in a more traditional sense. This means we can build around the framework, to allow there to be a hot drop in via ODST pods, securing an area, and eventually having to extract. For those wanting a more simple Firefight experience, traditional one off maps can be built and shipped as well. 


So the short version here, is it has great cross compatibility with other Halo titles which allows us to work quickly and draw off a wide pool of content, as well as allow ourselves and others to bring elements of Legacies to other titles.


So what are the negatives of using ODST? Well, unfortunately level geometry density and level creation is far more frustrating, slow and restrictive than using a more modern Halo engine. Memory limits are more strict, as everything we include per map can not exceed a roughly 2GB file size (excluding sounds). There also are problems with how many areas of geometry can be loaded at once, which as one can imagine, creates some challenges when trying to create beautiful vistas and sightlines in an open world. Unfortunately this is just the reality of big ambitious products in engines that still are largely not understood and pushed. Few projects have tried to push the limits of these engines, and the lack of documentation means that things we think are simple can sometimes be more complicated in the end, and sometimes require scrapping good work that we couldn’t predict would run into issues. 


That said, we are confident the vision we have is still possible to be completed in ODST’s engine, even if we do have to box things into more canyons eventually in some biomes. All of this will be documented and made available as we continue to make progress, so future additional biomes and maps can avoid these pitfalls that unfortunately have added unneeded delays and lack of progress with aspects of the project.


With that, we will conclude this monthly update. As always, you can join us on our discord or social platforms, and we are always looking for more artists and people familiar with any of the Halo games tools. We are also looking for people to help further develop and expand the firefight mode across multiple engine titles. 


Next month we’ll focus more on gameplay related mechanics as the focus, such as the new equipment and modular upgrades for the Spartans, and overarching sandbox and gameplay mechanics. 



Connect with us on:

Discord

Bluesky

Reddit

Twitter





Comments

Popular posts from this blog

Halo Legacies: Project Announcement