Okom

Smallhalla - Halo Infinite Level

Smallhalla

Teamwork focused project of a Halo 3 8v8 map layout reimagined for a fast-paced 4v4 CTF gamemode.

  • Reimagined
  • Teamwork
  • 4v4 CTF
  • Forge
  • Blender
  • Map
  • 343 Recommended
  • Matchmaking

Smallhalla is a reimagination of the Halo 3 map Valhalla, but at 1/3 the size. The reimagined map built in Halo Infinite with the Forge tool is designed for Husky Raid, a chaotic 4v4 CTF mode with random starting weapons and equipment.

Bookmark the map here to play it in Halo Infinite.

Project details:

  • Engine: Slipspace Engine, Halo Forge
  • Mode: Chaotic 4v4 CTF
  • Contributors: 9 people
  • Forge blockout
  • Blender blockout
  • Scripting
  • Technical implementation
  • Community feedback

Image 1 thumbnail
Image 2 thumbnail
Image 3 thumbnail
YouTube embed 1 thumbnail

I worked with a large team and against a deadline. We brought the map from a concept to a matchmaking-ready state in just a month, which I am proud of. We worked with Halo's developer 343 Industries to find any remaining issues on the map after it got chosen to go into official matchmaking.

I mainly contributed to the blockout, scripting and technical implementation of the map and guided the 9-person team with different tasks including art and lighting to deliver a commendable product. Smallhalla was more of a technical challenge as opposed to a design one since the design is a reimagination of an existing layout, but the gameplay is totally different.


Eagle Base Cobra Base and Waterfall Paper Airplane Forerunner Wall
Image 1 thumbnail
Image 2 thumbnail
Image 3 thumbnail
Image 4 thumbnail

Smallhalla got added to Halo Infinite's "343 Recommended" maps section on 13th June, 2023 and ultimately chosen into the Husky Raid playlist for Halo Infinite matchmaking on 29th Aug, 2023 as one of the playlist's launch maps. Since then Smallhalla has become a favorite amongst Husky Raid players.


My contributions:

Image of an explosion in Smallhalla Top Mid

Project lead and task management

I worked as the lead for this project after the original creator, nkdape asked at an early stage if I wanted to continue the project due to him being busy and me already having taken some initiative regarding the project.

Smallhalla in a blockout stage

Blockout

The improved blockout for the map was done by me and nkdape. We used Halo Infinite assets within Blender to trace out the original geometry of the map "Valhalla" from Halo 3. Later on the blockout would be imported to Halo Infinite's Forge using a separate tool.

Image of Smallhalla in Forge with all of the gamemode objects visible

Gameplay and technical setup

Before the initial playtest and improved blockout, I set up the map for all Halo Infinite's gamemodes and made sure the map was up to the correct gameplay standards. Later on after the art was completed, I conducted more gameplay passes and QA testing for the map to make sure it was matchmaking ready.

Scripting

Some scripting had to be done to alleviate an exploit where the flag could get stuck inside the Bottom Base. I identified the issue, troubleshooted it and found a scripted solution. I also made a script to bring up a pedestal to a tiny turret.

Minor art

I created the Paper Airplane, the HFT Confetti Logo, the HFT Intern Bot sticky note and the Hidden Reach logo easter eggs. I also had the idea to expand the skybox of the map and include a glacial lake to explain where the waterfall was coming from.

Image of the three trailers made of Smallhalla

Marketing and video trailers

A total of three video trailers were created for Smallhalla. Each video took about half a day to concept, record, edit and publicize.

Playable Blockout Trailer, Preview Trailer & Release Trailer

A Forge Monitor overlooking Smallhalla

Post-release maintenance

As issues were found after Smallhalla hit matchmaking I was the main person responsible for receiving the feedback and implementing necessary solutions. Sometimes just asking for ordinary players' opinions after a match led me to find out some balance issues.



Full development:

Original idea

The idea for the map came from nkdape (nakedape) which was just a scaled down Valhalla intended as a Husky Raid map for the 343 Husky Raid submission. He heard about 343 looking for Husky Raid maps and had done a rough sketch blockout on 27th May, 2023 to get a feel for the map and to pitch the idea for others in the HFT community.

The original map name was “Fenrir” meaning a Viking wolf, which in a way referenced Valhalla and Husky Raid. One could then make the connection of how Valhalla is meant to be a Husky Raid map and then realize that it's scaled down to suit the gamemode. His vision for the map was a fun whacky map specifically for this submission.

Original sketch blockout of Smallhalla by nkdape
Original sketch blockout by nkdape

Playable blockout

Me (Okom1) and Micheal B 2K8 jumped on to try it out in match and immediately felt that it was going to be a great map if we built it out properly.
We loaded up the map in Forge after nkdape agreed for us to collaborate on it and we improved the blockout with eyeballed geometry from looking at reference images that then better matched the original Valhalla. Quickly afterwards we got into playtesting to determine whether others thought the idea was as fun as we did.

When I was doing the sandbox setup for the map, I thought it would be a funny idea to setup the map for all gamemodes instead of just for Husky Raid due to thinking that people might not always want to play just Husky Raid on it and as well to explore what kind of other modes it could play well on. We published the playable blockout version of the map so it would be ready for an upcoming playtest during a HaloFunTime lobby.

Later that week we played regular Husky Raid and BTB:Total Control on it, of which the chaos and fun of the latter showed that it played surprisingly well even in an unintended gamemode. Early playtest video archive

Improved and playable blockout of an early Smallhalla
Improved and playable blockout

Blender and Halo Infinite

It was at this point that I realized what kind of an idea we were working with and made the decision to pursue blocking out the entire geometry of the original Valhalla layout in Blender with Forge assets provided by DerrikCreates (at the time) so we could have a map remake with nearly perfect geometry, just scaled down to 1/3 the original size.

Blocking out the map in Blender?

The act of creating Halo Infinite Forge maps in Blender is made possible by a tool now known as the "Halo Infinite: Blender 2 Forge Printer" (B2FP) TSG logo where Forge assets exported from Halo Infinite's game files are used in Blender to create geometry, just like one would in Halo Infinite Forge. This method majorly improves the accuracy of map remakes as users are able to trace the ripped map geometry with Forge assets that later on will be "imported" back into Halo Infinite Forge.

The process of importing the placed objects from Blender back to Halo Infinite now uses an input macro program that reads the exported data of the object placement in Blender and converts that into keystrokes that are use dto navigate to each object in the Forge Object Browser and to place the objects at the correct positions.

It is important to note that during the development of Smallhalla, the original "Blender bot" as many call it by DerrikCreates was broken (later on the tool was revived as B2FP), which meant that the process of importing the blockout from Blender had to be done manually instead of a macro program like we use now, or Derrik's bot earlier, which pasted values straight into the game's memory.

The Blender blockout process took about 15 hours and the whole process of importing the blocked out geo about 2 days with the help of nkdape. Keep in mind that we imported the entire map manually since the previous automatic bot method by DerrikCreates was broken.

Manual importing in this context means copying every positional value - being location, rotation and scale - from Blender into Halo Infinite. The fastest I was able to get per piece was about 25 seconds, but I couldn't hold that kind of speed for long. Looking at the Blender file now, there were initially 110 objects to import excluding the 375-object "cone point cloud", which only required the positional values to be imported so you can imagine what kind of a process it was to manually import all of that, but we did it and it paid off in the end.

With the B2FP method, it isn't uncommon to have prints of 4000+ objects, which takes about 5 hours to print with no errors, but manually doing all the work for even 100 objects is way more difficult as you have to do all the work and are prone to make mistakes, which can lead to further issues later on.

Player Scale Model objects scattered around on the scaled down Valhalla geo in Blender
Initial scale measurements in blender
Halo Infinite Forge assets placed in Blender following the geometry of Valhalla
Valhalla fully blocked out in Blender with simple Halo Infinite assets
A Husky Raid scale template prefab in Halo Infinite on a rough imported blockout geo of Smallhalla
Husky Raid scale test with rough imported Blender geo in Halo Infinite
Smallhalla blockout geometry imported from Blender to Halo Infinite
Initial Blender geo imported into Halo Infinite

Art comes in

With the geometry now in Infinite, I asked for help from the project collaborators to start working on the art. It first began with Virus11010 and Scrubulba's terrain work and continued with Mr Kwatz and MikRips' rock work. At the same time nkdape started working on the Forerunner Wall art and Cousin Tim on the Base art in separate copies of the map

With my task of importing the blockout done, I leaned a bit more into the sandbox setup for the other gamemodes while keeping the core mode - Husky Raid - playability in a solid state, as it was what the map was originally meant for, and still is. I put all of my knowledge into play with the sandbox setup for this map, adding variants of Weapons and Wquipment custom-fitted to each gamemode since I had decided that the map had to support all gamemodes and have a working and intuitive sandbox in each of them.

Overhead shot of a more colourful Smallhalla blockout in Halo Infinite
Trees arted, blockout geometry colored and more scenery blockout rocks imported
Image of Smallhalla in it's release state showcasing the gamemode object placement that remained largely unchanged until release
Sandbox and gamemode setup on the official release version of Smallhalla

Around this time on 13th June, 2023, after he map had been published for only 15 days we were pleased to see Smallhalla get included in the "343 Recommended" maps section of Halo Infinite. Maps in this category are creations endorsed and hand-picked by 343 for inlcusion in a spotlight-like section from the community maps. A day later nkdape made a Tweet celebrating the fact.

Keep in mind that the published version of the map was still just that playable blockout that only resembled Valhalla, yet it was still enough to get noticed by 343. Needless to say, the community wasn't ready for what we were cooking internally.

Valhalla Base Nav Mesh

Setting up Stockpile really tested my Nav Mesh setup knowledge since I wanted the sockets to be in the bottom of the Bases, which were crouch-only areas.
What led after the idea was a long day of trial and error on a test map trying to figure out how to make the Bots crouch into bottom base, be able to plug the Power Seeds and know how to exit.

The Bottom Base Bot accessibility wasn't solely for Stockpile either since in almost all other gamemodes the Sniper Rifle spawns in Bottom Base, where without a working Nav Mesh down there, bots wouldn't know how to get to it, or in the worst case would get stuck around that area trying to reach the Sniper Rifle

Player crouching in Eagle Bottom Base holding a Power Seed in the Stockpile gamemode
Player crouching in Eagle Bottom Base in the Stockpile gamemode

Crouch-only Nav Mesh

One might not realize what kind of a challenge getting Nav Mesh to generate correctly in Bottom Base was, but you've first got to understand that you can't generate Nav Mesh in an area where a player cannot stand in. In this case, a crouch-only area.

In short, custom temporary geometry and the hiding of some original geometry was required to make Nav Mesh data generate in the crouched area and Bots had to specifically be ordered to take precise turns to get to the core of Bottom Base. The Top Base also had to stay accessible and have Nav Mesh data which required some creative solutions to make work.

What I had to do was hide the ceiling of the Bottom Base so players could stand on the bottom floor geometry, then create custom temporary geometry for the ceiling/Top Base floor piece that was just high enough so players could still stand in the bottom area. This allowed enough Nav Mesh data to generate there, as long as a Nav Seed Point TSG logo was placed there first since that area was not connected to any default Nav Mesh Data.

The whole Bottom Base floor did not require full Nav Mesh coverage as it was only needed for the area where the Stockpile sockets were and for the corners, where Bots would be ordered to change their movement direction while traversing under the Base.

I used multiple "Bot Crouch Two Way" Nav helpers to get the Bots to crouch under the Base. Starting from just outside the doorway connecting to the inside, a separate helper to turn left/right just after the doorway had been cleared and then one last turn to get to the main Bottom Base area.

A curved floor on the Smallhalla Base used to generate Nav Mesh in both Bottom- and Top Base simultaneously
Temporary geometry for generating Nav Mesh in Bottom- and Top Base

Getting these built took some time since Nav Mesh doesn't want to generate in very tight areas that easily, and I even had to hide some Bottom Base wall geometry to make the area temporarily wider so Nav Mesh data would generate, allowing me to connect the Nav helper between two Nav Mesh data points

Movement issues

What I also didn't realize at the start was that Bots cannot plug in Power Seeds to the Sockets if the Bot is currently traversing a Nav helper. This meant that I had to shorten the boundary of the last "Bot Crouch Two Way" helper that led up to the Stockpile Sockets, so when the Bots arrived at the end, they wouldn't be inside any Nav helper. At the end, the Bots would just be on generic Nav Mesh data, but still be forced to crouch since they are in a low enough space

Since the crouch Nav helpers are two-way, the Bots can just exit out the same way they came in, but there was still the Back Base exit that had to be addressed. I first tried making that accessible using a "Bot Crouch Two Way" helper as well, but that led to extensive issues where Bots entering from the outside would stop crouching too early and thus would get stuck at the entrance, thinking they did nothing wrong so they would continuously run in place while trying to reach some ambition.

Following that discovery and subsequent debugging attempts, I gave up on the two-way functionality for the Back Base option and settled for a one-way exit from Bottom Base to Back Base, which didn't lead to any issues. I also explored a possibility of having a one-way jump-up from Back Base to mid Top Base using jump helpers, but that failed too often with Bots and there were confusing overlapping helper volumes, so I scrapped it.

A test concept of Bots using a jump-up from Back Base to mid Top Base
Bots using a one-way jump-up Nav helper to Top Base

Top Base Nav Mesh

Once I was happy with how the Bottom Base area functioned, I had to then figure out how to generate accurate data on the Top Base floor to be able to make a helper for the Bots to use the launchers. After some bad attempts, I landed on a curved wall solution, that would leave enough room in the Bottom Base area to be able to stand in and generate Nav Mesh, while still generating Nav Mesh right on top of it. This solution is a very unusual and difficult thing to do, but it just about worked for this.

The temporary ceiling/Top Base floor geometry was higher than the original geometry, but due to the bots following the Nav Mesh data just loosely enough, they accepted that the Nav Mesh data was floating a bit above the original geometry that they were walking on and still agreed to use it.

With Nav Mesh data on the Top Base geo, I was able to make the launchers functional with a "Bot Movement One Way" helper, which started at the launcher and ended at the landing spot of the launcher's trajectory. This way the Bots could make the connection that by entering said helper volume, they can expect to get to the other end, which is precisely what the launcher does in this case. This way the Bots understand it as well and can make further decisions based on that information such as getting to Top Mid faster by taking the launcher

Multiple Nav helpers precisely positioned in Bottom Base
Nav helper setup for Bottom Base
Multiple Nav helpers precisely positioned in Bottom Base with the Nav Mesh Visualization debug option turned on
Nav helper setup for Bottom Base, Nav Mesh Visualization on
Temporary red geometry in place on the Smallhalla Base that makes the Nav Mesh generate correctly
Temporary geometry for generating Nav Mesh on top of the Base and for connecting the launcher Nav helpers

Some minor adjustments to the Nav Mesh also had to be made near the Paper Airplane and Top Mid rock edge to make Nav Mesh data generate there smoothly. These additions were also achieved by using custom temporary geometry, which was brought up in a prefab from under the map just for the duration of generating Nav Mesh.

The Nav Mesh data of a map in Halo Infinite is stored in a separate file that is downloaded alongside the map file. As this file has no dynamically updating relation to the map geometry, it can be made to look different than the actual final geometry of the map, allowing for tricks like this to be done.

Working on separate copies

The art and layout were strictly built based on the original Valhalla map and we had multiple talented forgers working on different parts of the map in their own separate temporary copies of the map. This way undo issues weren't a problem since they were forging in a session by themselves.

In Halo Infinite the undo-functionality is disabled if you are in a Forge session with more than one player. Forging with multiple players at the same time also leads to concerns of something being accidentally displaced without the other Forger knowing.

Some collaborators worked on the main file, when there wasn't other traffic on it, but the bulk of the art was done on separate copies. Once the work they had set out to do in said copy was done, I went into the copy and prefabbed the changes to be able to import them into the main file.

I did this by making the origin object of the prefab be in a known coordinate location on the map. This way when importing the prefab to the main map file, I could just place it at the same coordinate location and it would be perfectly in place just like it was in the copy map.

Season 3 end crunch

With the geo starting to take final shape, people were assigned to do polishing up work like adding foliage, audio, FX and temporary water for the map (still in Season 3 where there was no placable "Water Plane" object). I also did the player containment, which was a whacky 15-degree tilted design instead of a straight wall and it extended all the way to the Forge canvas ceiling, allowing for Banshee exploration in BTB modes for example.

Oh yeah about the vehicles: They are only present in BTB modes and when a player enters them, they shrink with a custom script. Same with the mountable turret, gaining a tiny pedestal under it to support the tiny turret that also had to be raised up in the air upon wielding, otherwise sinking your spartan into the ground while trying to grab the shrunken turret.

A Spartan mounting a tiny turret next to a tiny Banshee and Gungoose
A Spartan mounting a tiny turret next to a tiny Banshee and Gungoose

At this point in time we are nearing the end of Season 3 and we just about remembered to do some last minute safety copies of the map without any dynamic objects present due to having other collaborators on the map nearly losing work on their personal map projects after a new season presumably due to some invalid data being associated with said dynamic objects. Luckily that didn't happen for Smallhalla, but we weren't going to take the risk either way.

As the Halo Infinite servers went on a maintenance break on June 20th, 2023 at 17:00 UTC (10:00 PDT), players couldn't join new forge sessions anymore. But nkdapde was still on an already existing Forge session hard at work placing foliage on a copy of the original map file and continued to do so for about an hour after the servers went down for maintenance; long after everyone else had already updated their builds to Season 4. Surprisingly all of the map saves worked fine, even though he was on an old build of the game after the servers had gone into maintenance mode.

Season 4

Season 4 drops and multiple collaborators are hard at work mainly updating the map to include the new "Water Plane" and waterfall-like effects. Luckily the map faced no loading issues caused by Season 4 so we didn't have to resort to nkdape's backup copy. We also had an impromptu playtest scheduled one day after Season 4 launched and we got some crucial information from that. At this point there were 9 days remaining for the main deadline for the project, June 30th, 2023.

The playtest revealed some game-breaking issues like overlooked areas in the player containment and a discovery that the Flag can get stuck inside geo if dropped in Bottom Base. That way the Flag was not able to be picked up anymore and players were forced to let it return.

The player containment had another pass and the Flag issue was mitigated specifically only in Multi Flag CTF modes (which Husky Raid falls under) by blocking off access to the Bottom Base area. The Bottom Base would still be accessible in all other modes.

Smallhalla Eagle Base with the Bottom Base entrances blocked by a Shield Wall
Bottom Base accessibility initially blocked in Multi Flag CTF gamemodes

After some incredible detailing was done to the map, it was ready for a pre-release cinematic trailer, which was made with the intention to bring some general hype around the map. I believe good marketing for a map is a necessary step in a successful release and is an easily digestible way to showcase the map while generating interest nearing its release.

Nearing release

About 3 days later, more foliage work had been done by nkdape, Mr IncrediJON & Micheal B 2K8 and the now fully arted Forerunner Wall by nkdape was ready to be imported into the main file. I also started researching how to set up the new Infection gamemode on a map. It took the entire day for me to figure out how the mode works, how to set it up, what quirks there were and having to fully set up Smallhalla for Infection.

tsg infectionSetup prefab

Before setting up Smallhalla for the Infection gamemode support, I made a sharable prefab platform that housed all the necessary objects for a map to support Infection as there was no official documentation nor aid from 343 in that and it had to be figured out via trial and error by the Forge community.

Since we had the player containment extend to the Forge canvas ceiling and it was possible to fly all the way up there with a Banshee, I wanted to make sure the map didn't look out of place by floating in the middle of nowhere so I put out a request to the collaborators asking for help on the subject.

MikRips and nkdape agreed to help with doing some rough art for the skybox of the map and within a day, the results turned out great. No longer did the map look out of place if you happened to explore how it looked like way above the intended playspace

Smallhalla skybox art showcased in an aerial shot from outside the map
Skybox extending past the playable area

At this point Mr Kwatz agreed to help with some scripting for the map and started looking into getting the new Beam Emitter FX to fire based on the gamemode situation like a Flag capture. At the same time Cousin Tim had been hard at work on the art of the Bases and was just about done with them.

On June 27th, 2023 the arted Bases were imported to the main file and we were now nearing the deadline of the project. nkdape gave the Bases another art pass and Mr Kwatz got the Beam Emitter firing script to work correctly.

Happy accidents

Two days leading up to final release we had done some internal playtesting and bug-finding and I decided to join in on the Twitch stream of TheRedGear. I asked him whether he had played Smallhalla yet after which we jumped into a game of BTB:Fiesta CTF on Smallhalla with him and his viewers. Everyone seemed to have a great time which made me really happy and thankful for all the work that we had put into the map now finally paying off.

Little did I know that later on RedGear would make a Twitter post about the map that would gain MASSIVE attention from the Halo community including tweets from various 343 employees.

A compilation of Tweets by Halo developers regarding Smallhalla
A compilation of Tweets by Halo developers regarding Smallhalla

We didn't ride the high of positive attention for too long as the next day we were back at work, this time focusing on final touches and performance of the map while still monitoring the attention the map was getting.

I also spun up another cinematic trailer for the map as there was only one day before the 343 Husky Raid submission deadline which was also our internally agreed upon official release date for the map.

On the day of the deadline June 30th, 2023, we ran playtests and did finishing touches on the map, finally releasing the map along with an action trailer showcasing the map and different gamemodes that could be played on it.

There are some subtle Easter Eggs referencing HaloFunTime and also another classic HFT Easter Egg which shall remain a secret for each player to find themselves.

Post Release

After the release of Smallhalla we were really pleased with the response it got from the community members that stumbled upon it and we had some great fun playing it in many ways during some HaloFunTime lobbies.

On 27th July, 2023 I got contacted by the Playlist Designer at 343 Industries about my willingness of getting Smallhalla ready for inclusion in the Husky Raid playlist for Halo Infinite matchmaking. I happily agreed as that was our main goal for the project. It's difficult to put into words how excited and thankful I was for this opportunity.

We had already done our extensive playtesting on the map before the MM request to feel confident enough to release it to the public and even into matchmaking. None of us knew the process behind what goes into getting a map ready for Halo Infinite matchmaking so we wanted to release it in as playable- and as bug-free of a state as possible.

Bug fixing

Soon after writing an NDA with 343 Industries (343) and Microsoft, began the process of getting Smallhalla actually ready for matchmaking in collaboration with 343. Our team worked alongside 343 employees in a private Discord server where they reported issues about our map. The issues fell in one of three different categories: "Priority 1, Must fix", "Priority 2, Nice to fix" and "Priority 3, Notes" where Priorty 1 issues were the most severe and had to be solved before inclusion into Halo Infinite matchmaking.

To our surprise, there were no Priority 1 issues with the map and only one Priority 2 issue! The sole issue was the fact that the Bottom Base areas were inaccessible in Multi Flag CTF modes, which was a bandaid fix to a bug that we had discovered in our playtesting as well. I took upon the challenge of figuring out how the issue could be solved as I too did not like the Bottom Base areas being blocked off.

Bottom Base Flag issue, initial fix

My idea of a fix for the Bottom Base Flag issue was as follows:

  1. Detect the Flag object
  2. If Flag object is dropped in a boundary covering the Bottom Base area
  3. Set the location of the Flag object to a predetermined spot outside of the Bottom Base area
The Flag dropped outside one of the entrances to Bottom Base on Smallhalla
Flag dropped outside one of the entrances to Bottom Base

On 29th July, 2023 I had gotten the rest of the logic to function how I wanted, but I was struggling with how to get an object reference to the Flag object. In Halo Infinite at the time of the issue there was no easy way like a drop-down option to reference the Flag object in scripting so I had to try to think of creative ways on obtaining an object reference of a Flag object on the map.

I tried covering the Flag object in a boundary that I would use as an Area Monitor to detect if it caught any objects, but surprisingly it didn't, so I wasn't able to get the Flag object reference from there. At the time I couldn't think of another universal way to detect the Flag object that wouldn't require any out-of-the-ordinary actions from players, so I was stuck.

At a loss, I opened up an open question on The Scripter's Guild TSG logo Discord server where seasoned Halo scripters could give their input on the issue.

I did notice that using the "Mark" feature which placed a marker on the location where a player was aiming based on a raycast check could be used to get the Flag object reference as one of the output pins of the node "On Player Mark" was "Target List", which output an Object List of all targets that the Mark had caught. But this couldn't be used as it was an out-of-the-ordinary action by a player that nobody in a regular match would know they had to do, so I scrapped it.

Player Marking the Flag on Smallhalla
Player Marking the Flag

Captain Punch, a known Halo scripter suggested basing the logic for the script on the "On Weapon Pickup" node as the Flag is considered a Weapon and it's pickup event could be tracked. At that point the idea was to exclude all other obtainable Weapon Types, which in theory would leave only the Flag object Weapon Type, but this proved to be way too cumbersome of a solution.

I then discovered a solution that seemed great at the time where if we filter out what Team the picked up Weapon belongs to, we can largely narrow down the list of Weapon Types needed to exclude. The only caveat I found then was that Weapons that a player spawned with had a Team value assigned to them. This meant that getting the Weapon Types of the starting Weapons for each player on an Object scope basis (in this case the Player) and excluding those Weapon Types from the eventual check that would be done when a Weapon is picked up, would leave us with just the Flag Weapon Type if a match was still found.

This was the solution that I proposed as the fix and was happy with, but deep down inside I still knew it was a relatively hacky fix and that it may break as I had not tested it in enough scenarios for it to be a bulletproof solution.

Image of the node graph script of the initial fix for the Flag object detection issue
The script for the initial fix

Bottom Base Flag issue, improved fix

On 17th Aug, 2023 we had a Husky Raid playtest on the map where one of the players had somehow gotten the flag stuck in the Bottom Base geo even with the script in place. After the playtest I requested any collaborators to help debug the issue of which Mr IncrediJON and MikRips obliged. As I now knew that there was a way of breaking the script, we tried dropping and picking up the Flag along with having all kinds of Weapons in Bottom Base at the same time just laying around. After a while, we were able to bypass the script and the Flag got stuck in geo.

It didn't take long for us to realize that the script was only excluding the Weapon Types that each player had spawned with, but if they picked up another player's starting weapon, which also had a Team value assigned to them, but weren't in the Object-based Weapon Type exclusion list, the script logic would deem that Weapon as the Flag reference and the script functionality would break.

At this point I knew that I couldn't branch off of this same script logic into another fix so a new logic base had to be figured out. I asked for more help again, this time getting a response from Mr Kwatz, a collaborator on the map who was also a seasoned scripter. His suggestion of a solution was to get the pickup coordinate at the moment of a Weapon pickup and compare it to a set of coordinates located right above each Flag Stand object where any Flag would always initially be picked up.

This immediately clicked for me as a potential solution and I got to figuring out the scpecifics of the fix. What I ended up doing was:

  1. On Weapon Pickup
  2. Compare location of picked up Weapon to a set list of coordinates located x units above each Flag Stand
  3. If the location is within x units of the coordinate, set the Weapon Type variable. This is the Flag Weapon Type.
Image of the node graph script of the improved fix for the Flag object detection issue
The script for the improved fix

This improved version of the script is the current solution that is on Smallhalla and it has worked correctly since. This solution was implemented before Smallhalla debuted in the Husky Raid playlist in matchmaking so players didn't have to suffer due to the initial script breaking nor did it cause excess stress for us to fix the issue after the map had already been released to the masses.

Matchmaking debut and reception

On 29th Aug, 2023, Smallhalla was added to Halo Infinite matchmaking with the debut of the Husky Raid playlist. nkdape, MikRips, Micheal B 2K8 and I jumped on the Husky Raid playlist in a squad of four in hopes of getting Smallhalla. After 13 games we finally got it and it was a very surreal experience and a huge joy for the entire team to finally see our work in an official playlist. We had a rough first game on our own map, losing it 3-1 which in hindsight set the tone for the unexpected discoveries that could only be experienced from letting all sorts of players play the map their own way, thousands of times.

The majority of the feedback for the map was overwhelmingly positive with some players calling the map their personal favorite from the Husky Raid playlist. Although this was great feedback that communicated to us that we had accomplished something great, I was still looking out for the singular, unnocited comments about things that felt off about the experience.

Reddit posts about Smallhalla

Mounted Turret

One of the major things that had not been caught in any of our team's internal playtests nor ones with 343 on the map was just how strong the Mounted Turret (M247 HMG) was. Players mounting the machine gun would have direct line of sight to one side of the Cobra team's spawn pocket and could easily spawn-kill players who tried to advance up on the map.

Players operating the Mounted Turret could also hit players spawning on the Eagle side after they had tried to advance on the map, even though there was no direct spawn-killing possibility. The Mounted Turret was just way too powerful for this size of a map and the Turret had just been ignored too much in our playtests.

It should be noted that detaching the Turret from it's stand majorly reduces it's effective range and makes the bullet spread larger, essentially majorly reducing the deadliness of the now handheld Weapon. I worked with Implied Skill, a friend specializing in the technicalities of Weapons in Halo Infinite to research the M247 HMG Turret in both its Mounted and Handheld variants. We set out to figure out the specifics of the Weapon and determine what kind of solutions we could come up with to potentially balance the Weapon for Smallhalla.

A player aiming the Mounted Turret towards a Cobra Base spawn
The Mounted Turret could be used to easily spawn-kill enemies

We realized that the Mounted variant of the M247 HMG is a laser beam and the Handheld is worse than an AR at most ranges unless controlled accurately. I was fine with the latter so I tried making the Handheld variant of the Turret have the same Spawning Properties as the Mounted variant, but it just didn't seem possible. After some trial and error, I resorted to just excluding the Mounted Turret from Multi Flag CTF gamemodes, which the Husky Raid:CTF gamemode falls under.

Pushing updates

Version 2230

As I was doing an update to the map, I went ahead and fixed up some other gripes I had with the map, the most notable of them being the updated lighting. The full patch notes for version 2230 of Smallhalla were:

  • Removed mounted turret from Husky Raid:CTF (label: BTB & Infection Include)
  • Updated lighting
  • Updated screenshots
  • Updated Wind Speed to follow the direction of the Flags
  • Updated Team Banner object labelling to have only the BTB Include label
  • Updated LSS Ordinance Pod labelling so they actually show up in LSS
  • Adjusted Total Control lettering so A is on Eagle and C is on Cobra side
  • Adjusted some Total Control Zone positionings slightly
  • Added two Breaker special event Equipment Pods

The lighting was made less vibrant and bright, which helped with the natural feel of the map. I compared the lighting and color settings with Valhalla on Halo: The Master Chief Collection (MCC) which I had open in the background on the same monitor, as using a different monitor could give a faulty assumption of the color.

I walked around Valhalla on MCC for a bit and then switched back to Smallhalla in Halo Infinite, which would expose the differences in the tone of the lighting. I did this back-and-forth until the change was as unnoticeable as possible.

I was so pleased with the new lighting settings that I did a simple comparison video for Twitter with FFMPEG, comparing the hero screenshot of Valhalla with the one of Smallhalla to show just how similar the two were, both in terms of geometry accuracy and now the improved lighting as well.

Version 2263

At HCS Worlds 2023 in Seattle I had met someone who goes by the name JSLund aka Spartan John who I had mentioned to that I was one of the main creators behind Smallhalla. He expressed gratitude towards Smallhalla, which was a special experience for me as meeting someone new face-to-face for the first time who had played on an experience I had been largely a part of in making had never happened to me before.

Back home I started playing Husky Raid with Spartan John on his Halo Infinite streams during which I had also gathered some opinions from him and his friends on the gripes they had with Smallhalla. There were opinions about a slight imbalance between the Bases, where the Cobra aka Waterfall Base was at a slight disadvantage.

This disadvantage was mostly a fault of the overall layout design of Valhalla itself, but it was amplified by the fact that players were able to traverse on top of the slanted rock above Cobra Cave and essentially "head-glitch" while looking at Cobra Base. Head-glitching means to poke out of cover just enough that you can see the enemy while keeping as much of yourself covered. This method can be exploited easily in slanted ramps or areas above the enemy, both of which were apparent in this overpowered rock spot.

A player exploiting the head-glitch spot on top of the Cobra Cave on Smallhalla
The Cobra Cave top rock spot could easily be exploited by Eagle team players to gain an unfair advantage over the enemy team

I had felt this spot being too powerful myself too so after gathering some more feedback and also thinking of some refinements to the map that I had felt, I jumped on Forge and made a second set of fixes in bulk to the map post-release, that I would then submit to 343. The patch notes for version 2263 of Smallhalla are as follows:

  • Added soft kills to Top Base spires & Cobra Cave top rock as these areas were being abused too much (CTF Multi & Infection Only)
  • Moved Front Base launchers forward a bit to prevent a Flag pull that was possible by just jumping in the launcher from the front and holding the pickup key
  • Fixed sandbox spawners due to Season 5 object properties bug
  • Added Extraction support
  • Updated Stockpile support to be in line with the new Stockpile configuration
  • Fixed Cobra Launcher-class Weapon Rack that was hidden inside a rock wall
  • Made HFT sticky note No Collision physics
  • Swapped two Weapon Rack Weapons near both Bases

Base launcher exploit

The issue regarding the front Base launchers was something I had not realized could be done either, which is another reason why I think it's so important to monitor the reception of a map after it is given to such a varying audience such as the Halo Infinite's matchmaking playerbase. I was watching a skilled player play Smallhalla on a Twitch Stream who used this technique so I asked them about some more exploit strategies they had been using on Smallhalla. I could use that information to check out the concepts myself and determine whether those were issues or not.

As the Flags on Smallhalla are located on Top Base right behind the front launchers, an unintentional exploit was possible by jumping from Front Base into the launcher while holding the pickup key which would allow you to pick up the enemy Flag through the launcher due to you being just close enough to the Flag pickup radius. This was possible due to the launcher pulling you slightly more into itself if you entered it from the opposite side.

The fix for it was to ever so slightly move the launchers forward so that the player attempting the exploit would not get close enough to the Flag pickup radius and thus would just look like a fool doing it, usually just becoming a free target flying in a predictable trajectory in the air away from the enemy Base.

Season 5 object properties bug

Smallhalla also experienced the issue that I called the "Season 5 object properties bug" which - as a nice surprise to all Forgers - basically messed up nearly all sandbox spawners on every map that had not adjusted some default settings that the spawner objects had as default.

On 9th Jan, 2024 these updates were pushed to the matchmaking version of Smallhalla after a long hiatus of the matchmaking version not getting updates.

Version 22xx and the issues leading up to it

At this stage Smallhalla was very polished already and it had gone through multiple stages of feedack and balance improvements that I had gathered from the community by being engaged and interested in how the map is playing and the issues players are experiencing on it.

There were some buget optimization possibilities opened up by the addition of Scalable Blockers with the Season 5 update, which meant I could replace multiple Blocker objects with a single large one in a lot of areas. I replaced some of the areas with large Scalable Blockers and after lining everything up nicely, I had gained back 5% of the global simulation budget, which was a pretty big saving and everything looked good.

But right as I thought everything was ready to go, I started testing the new containment by throwing my Player at the invisible blockers of the map in an effort of finding any accidental mistakes in the blocker coverage, and it didn't take long to start finding major issues.

Visual model scaling issue

Closing

And this is where we are at currently. Smallhalla has been a very successful project in my eyes with it continuing to have a positive impact on the casual Halo playerbase, which ultimately was the goal for the map: for players to have fun on it. I have learned a lot of collaboration skills working with a team of nine Forgers on this ambitious project.

After seeing it first-hand myself, one piece of advice I could give to anyone creating a map experience for a large, varying audience is that you can not expect what the players will do on the map and you have got to stay humble towards even the most casual of players who play on your map.

Even though I have high standards of wanting my map experiences to play balanced, not have any exploits and be intuitive to play on, we still could not spot some of the exploits nor unbalanced factors on Smallhalla in our internal playtests. These issues were exposed only after the map saw the light of Halo Infinite matchmaking.

I love having been able to see how Smallhalla evolved from a whacky idea to a matchmaking product which had multiple different metas and how players found exploits and gameplay strategies on it that none of us on the team expected. I'm grateful for all of the people I've gotten to work with and know due to this project. I'm glad about the impact that map has had on the Halo community and that it is being enjoyed by all sorts of players to this day.

An action shot from a game of Husky Raid on Smallhalla in Halo Infinite matchmaking
Husky Raid played on Smallhalla in Halo Infinite matchmaking