An open letter to 343 Industries
It is clear by now that there has never been a Halo title that employed Respawn Zones of any kind that impacted the spawning of players based upon whether an enemy or an ally was in the zone, near the zone, or in a neighboring zone. All of those claims were mere forge lore. But as erroneous as those claims may have been, they describe what I have come to believe could very well be the better spawning model for Halo.
This post is my open letter to 343 Industries, to propose a new Spawn Model for the Halo 5 game, should 343 Industries wish to retain the engine selected Respawn Point paradigm. The intent is to show how a new approach to zones can potentially simplify the coding within the engine, simplify the understanding of the spawn engine for forgers, and make spawning much more safe and robust during game play. To that end, all suggestions in this blog post are made freely available to 343 Industries and Microsoft Corporation, and I place into the public domain all of the materials, ideas, inventions, or anything else that this blog post presents.
Today’s Spawn Engine
Up until now, Halo spawn engines employed algorithms to select points for spawning based upon a “best choice by total influence”. Each dynamic event, each players’ position, each players’ LOS cone, each static influence (zones) would have a weight value that were added together, and the point with the highest weight would be chosen for spawning. The problems I found with this approach were (a) the influencers are too numerous in their effects for forgers to fully understand, (2) the influencers on the forge canvases were set and thus provide a one size fits all maps, and (3) the schedule of influencers (their sizes, weights, decays, etc.) are just too complicated to tune – we still haven’t found the sweet spot.
Halo’s Next Generation Spawn Engine
Recently I have been thinking about the forge lore of how a zone changes its influence based upon players being in the zone. The more I thought about how it could work the simpler the entire spawn model seems to get. So I wanted to start from a blank slate, essentially designing the spawn engine from scratch, The following are the key elements of the new model.
1. A Respawn Point creates a point of spawn.
2. Respawn Zones can disable Respawn Points that are in them when the zones go hot.
3. A Respawn Zone goes hot if an enemy is in the zone or any munitions enters or explosive arms within the zone.
4. The spawn engine can select a Respawn Zone first by a priority label (primary, backup, and emergency), then by random tie breaker.
5. An ally in a zone favors that zone over others zones of same priority label but not over a higher priority label.
6. A random value is used to select the Respawn Point within the chosen Respawn Zone.
7. Respawn Zones and/or Respawn Points can be assigned to teams, game types, and other properties as they can in today’s current model.
Notice that if someone dies within a zone there is no impact on the ability of the player to spawn in that zone. Indeed, it would be considered safer because there are no enemies present in the zone despite the very recent death that occurred there.
Notice that I did not mention Line Of Sight having any impact on Respawn Point selection, because the Respawn Zones define the lack of danger from LOS.
Spawning Out Of Sight
Based upon this spawn model, the forger can then create zones that guarantee spawning out of sight of an enemy. Instead of the PE Primary being used to determine if an enemy is “too close”, a zone that covers the room’s interior can be used to determine if an enemy can see the Respawn Points in the room by virtue of being in the room themselves?
This also applies to outdoor spawning. Imagine placing a spawn in the open field. From that position you forge a zone so that wherever you see the edge of the zone you cannot see beyond it. Therefore, if an enemy is in the zone, they can see the Respawn Points. Using hill tops and other natural elevation, the sizes of these zones do not need to be overwhelming. But being customized, they make spawning in the open much safer and much more efficient than a PE Primary ever can.
This new model should have the impact of eliminating one team’s ability to push the other team into a spawn trap. Instead of pushing the enemy back against their edge of the map, this new model would allow forgers to provide safe spawns anywhere, even within a few units between two enemies – so long as no enemy is in the zone itself (in the room, cave, corridor, etc.). The forger can decide if the wall between a spawn point and an enemy is sufficient protection.
Spawn Engine Software Benefits
The current model requires iterating through various influencers for each Respawn Point and calculate a weight for each Respawn Point. In the proposed model, the software should simplify in the following ways.
1. Calculating the distances between each enemy and each Respawn Point is eliminated. Instead, the intersection of each enemy and each zone is performed (faster than calculating three dimensional distance, and less number of calculations to perform).
2. Integral weight calculations for each Respawn Point are reduced to a boolean status calculation for each Respawn Zone.
3. Associations between Respawn Points and Respawn Zones can be pre determined and cached either at the start of game or when the map is saved in forge.
4. All influencers drop away.
5. Respawn Points are not included into the selection process until a Respawn Zone has been chosen. And then the selection of a Respawn Point is simply a random pick out of the hat. So the bulk of the iterative process involves only Respawn Zones.
The current model requires a deep understanding of how the influencers affect the spawn engine. The proposed model simplifies that entire design to one of either a Respawn Zone is hot or it is safe.
1. A map of literally any size can be created with safe spawning.
2. The forger defines areas that can be spawned in that the forger guarantees are safe from enemy eyes if an enemy is not in the zone.
3. The forger can define which zones are intended as primary use zones, which are to be used as secondary or backup, and which zones are the emergency zones, by using a priority label. This allows for each zone further from their base having a lower priority value.
4. Knowing that an enemy cannot be in the room as a player that spawns in the room, the Respawn Points can safely be located anywhere in the room, including in the middle of the room. This offers more advantages to forgers who want to improve orientation during spawn.
Here are some examples showing how the zones would work. The first picture shows a basic room with an enemy just on the other side of a wall. The forger creates a zone that allows the player to spawn in safety out of sight of the enemy while also looking straight out the doorway for good orientation. The Halo 4 PE Primary of 9.5 units is shown as a reference only to demonstrate how close the spawn point is to the enemy and to demonstrate how the forger decided that the wall was sufficient protection by the way the zone stopped at the wall.
The next picture shows Monolith, a small, predominately outdoor map. I went into forge to locate the positions of the points and the zones. What is not immediately obvious is the elevations that block LOS to the points from outside their corresponding zones.
The third picture shows outdoor spawning in one section of Longbow. I used this to show how outdoor elevation can be used to shape the necessary zones to spawn out of sight using existing terrain and structures. And the point inside the structure is in a zone that need extend just a little beyond the doorway.
Keeping The Schedule Of Weights
If you decide to continue with the current schedule of weights, then I would recommend the following changes.
In the first picture I show the weights that we know of for Halo 4. In this picture, only the imminent danger and LOS influencers are known to be off the chart.
There are two problems that this schedule has demonstrated in Halo 4.
1. The PE Primary (the enemy proximity primary negative influencer) is too large. As a result, on small maps they can overlap and make their intended purpose of no use, because when all spawn points are driven equally low, some points can be chosen that are literally right next to an enemy player. There is no differentiation based upon distance any longer.
2. The respawn zone can be over powered by the PE Primary and force players to spawn away from their base for games like CTF. This was clearly recognized with the introduction of Ricochet as you gave the Respawn Zone a much higher weight for that game type.
In the next picture I present what I think would help refine the schedule for the next Halo.
In this proposed schedule, the weight axis is broken into four different magnitudes to show that some influencers cannot be overcome by any combination of those below in a lower magnitude. Here are some of the features:
1. All influencers are simplified into a straight line.
2. PE (enemy proximity) does not have a flat region, so no matter how far or near you are from an enemy you can know that you are always on a gradient slope. This is critical for small maps, because no matter how small the map, any two spawn points will always reflect a true difference in distance and therefore also an implied safer spawn by the further point. This is what was missing with Halo 4’s schedule and this is what prevented us from forging small maps with correct spawn behavior. The PE is also in a magnitude above most other influencers so that spawning away from the enemy remains a key priority in the schedule.
3. Imminent danger (tank shells, rockets, explosives, etc.) remain more dangerous than spawning near an enemy. I think you would agree that this is necessary.
4. The respawn zone takes the place as the unbreakable zone as it was in reach, providing absolutely solid game play for any static spawning games. With the PE being a slope instead of a flat region near the enemy, players will continue to spawn in their respective zones as far from the enemy as they can.
5. LOS remains off the charts and given adequate spawn points within a zone should not present a problem breaking the static spawn behavior. (This was also the case in Reach and it never presented a problem due to the numerous spawn points).