After presenting the basics of the Forge mode of Halo Infinite 10 days ago, 343 Industries comes back to the charge today with a new video discussing the scripting system and level editor compatibility with bots.
For this second video, Michael Schorr (Forge Lead Designer) is back and is accompanied by Connor Kennelly (Technical Designer). To best illustrate the new scripting system and bot support in the Forge of Halo Infinite, 343 Industries used a card from a member of the Community, CertifiedChamp.
As a reminder, the saga’s scripting system had its first version in 2014, with the launch of Halo 2: Anniversary in the Master Chief Collection. It was later added to Halo 5: Guardians along with its Forge in 2015 and was treated to improvements throughout the life of the title.
Scripts allow you to integrate logic into your cards: you can thus trigger an action (eg moving a block) when a condition is met (eg activating a switch).
The first novelty is the addition of a new game mode in Forge: the game mode. It is in this mode that you will be able to navigate your maps as a Spartan as if you were in the middle of a match, with all the scripts active.
This Game mode will be added to the Editor mode (which allows you to create and edit your map as a Monitor) and to the Test mode (which lets you explore your map as a Spartan in order to test the layouts, but without activating the interactive elements of your level).
For the first example in this video, Connor Kennelly switched to Game mode and threw a grenade, following which a message appeared on his HUD: “Current objective: Survive” (referring to the last mission of Halo: Reach). The developer then switched to Editor mode in order to show the node graph corresponding to this script.
System of node graph
In Halo Infiniteall scripts use this system of node graph which allows visual programming and therefore more accessible than that available in Halo 2: Anniversary and Halo 5: Guardians. All the constituent elements of a node graph are blocks with a name displayed at the top and several pins either on the left (arrival of information) or on the right (sending of information) of the block.
Each node graph is built around a trigger block, which is an action or event that occurs during the game. If the action observed here is the throwing of a grenade from Connor Kennellythe Forge of Halo Infinite will allow you to monitor many and various player actions: the use of the marking system, the elimination of an enemy with a grenade, a weapon or a particular vehicle, the lack of ammo for a picked up weapon, the crouching of a player, etc.
The block corresponding to the event has several pins on the right side. The tile-shaped pin is the action pin. It is used to link the trigger block to the action block to be carried out thereafter. It is quite possible to chain several actions by linking the blocks via their pins.
Circular pins are pins allowing to process a particular piece of information (such as the type of grenade thrown), which can then be reused in conditional tests afterwards: the example given here is that the blacksmith can decide not to play his script only if the thrown grenade is a plasma grenade.
In this case, the script should only be triggered for the person who threw the grenade: the “player” pin of the “grenade thrown” trigger block is therefore linked to the “player” pin of the action block.
Once it was set that the action would only affect the player who fulfilled the condition of the trigger block, the developer notices that the message display duration has already been set but it is entirely possible to modify it.
Finally, to allow editing of the message to be displayed, the “message” pin of the action block is linked to the message creation block.
The message building block can be edited in order to create a message in several ways: using completely predefined messages, using messages created by the blacksmith, or by mixing these two types of messages.
Connor Kennelly also gives another example of message creation: words are created in independent “string” blocks, then these blocks are connected to the message creation block via circular pins. Finally, the message building block is modified to display each character string in order.
The new message displayed when throwing a grenade therefore becomes “Hello world”.
The developers indicate that their wish with the Forge is to give Community creators access to the tools they use as much as possible. In addition to displaying large messages on the players’ HUD, blacksmiths will therefore also have access to the elimination log to do the same.
Change of inventory
The scripting system of Halo Infinite will also allow you to modify the player’s kit: 343 Industries thus gives a second example of a script giving an Energy Sword to the player when throwing a grenade.
As for the display of the message, this action only concerns the player who threw the grenade: the “player” pins of the trigger block and the action block are therefore linked.
Once these blocks are linked, you have to take a closer look at the action block and configure it: the Energy Sword is entered as a weapon to be assigned to the player, and it will replace both the main and secondary weapon of the recipient.
The last parameter of the action block, not used in this example, is used to add a delay at the end of an action before executing any subsequent action blocks.
With the Forge of Halo Infinite, 343 Industries took it into his head to officially support the bug that allowed combining weapons in Halo 5: Guardians.
To illustrate this functionality, the developers are using a dedicated “Weapon type, combination” block that links to the weapon swap block via its “weapon type” pin.
In this block, the blacksmith chooses the basic weapon which will be used to define the weapon held by the players and which will set some basic characteristics such as the rate of fire of the final weapon or its quantity of additional ammunition.
Then, the configuration replaces the projectiles usually fired by the basic weapon with those of another weapon, here the Tracker variant of the Rocket Launcher.
Once back in Game mode, the developer throws a grenade and recovers as expected an Assault Rifle with the usual appearance, but which fires rockets!
To demonstrate the game mode customization capabilities that come from scripts, 343 Industries prepared an example, that of the Juggernaut mode introduced in Halo 2. In this mode, a player is chosen to become the Juggernaut and become faster and more powerful. The player who eliminates the Mastodon becomes a Mastodon in turn.
The developers have therefore reproduced the logic corresponding to this mode in the Forge of Halo Infiniterenaming it Doomfruit for the occasion and using 4 node graphs :
- The first manages the choice of the Juggernaut;
- The second deals with the logic applied to the death of a player;
- A third is used in the event that a player leaves the game while in Juggernaut;
- The last one is used to set up the variables used by the other node graphs as well as the characteristics of the players.
Michael Schorr highlights the addition of the scope of variables: by designating a variable as “global”, it is possible to reuse it in other node graphs.
This global property is immediately tested by Connor Kennelly since it details the logic followed when assigning the role of Mastodon, logic that only starts once the player who will occupy this role has been designated by the first node graph : this is a “global” event.
Once the Juggernaut has been chosen, the characteristics linked to this role (stored in the fourth node graph) will be collected and then applied to the target player until he dies. Then, the Juggernaut’s weapon (also defined in the fourth graph node) is assigned to the player.
Once the Juggernaut has its special characteristics and its weapon, the game displays its status with a message on its HUD.
Finally, once this is done, a marker is added above the Juggernaut so that it is visible to all other players in the game. The appearance of this marker is managed in the same node graphbut on a sequence of distinct logical blocks: the block below therefore launches the execution of this other logical tree.
As indicated by 343 Industries in the intro video to the level editor, the Forge of Halo Infinite support them nav meshes : This is a set of data that allows the game’s multiplayer bots to understand how to move around your map.
Visibility setting of the nav mesh in the Forge menu
the nav-mesh of a map is generated automatically by the game (or manually by the player during a Forge session) and can be studied by making it visible via the Forge menu.
Preview of the nav mesh of a map (arrows and blue areas)
Once the nav-mesh of an activated map, it is possible to modify it with zones to be placed via the Editor mode of the Forge. These zones can prohibit bots from accessing a place on your map or, conversely, allow them to cross a space in one direction only (for example in the case of manual cannons) or in both directions.
When it comes to picking up weapons and objectives, the bots of Halo Infinite are already totally autonomous on these points and will therefore adapt to your cards, as long as the nav-mesh correspondent allows them to access these objects.
You will be able to experiment with the scripts of the Forge of Halo Infinite since its launch with the winter update, on November 8. Until then, 343 Industries intends to speak again in order to present the rest of the features of the level editor in the coming weeks:
- Part 1: Construction Basics – What can I build and how do I do it?
- Part 2: Scripts and Bots – What are scripts, how can I use them, and how can I test my map with bots? [vous êtes ici !]
- Part 3: Lighting and audio – What visual, lighting, and sound tools can help me improve the look and sound of my maps?
- Part 4: Canvas and sharing its files – Where can I create my maps and how can players discover them?
What do you think of the Forge scripting system in Halo Infinite? Which development caught your attention the most?
We wish to give thanks to the writer of this article for this remarkable content
Halo Infinite talks about its Forge scripts and bots | Halo.com
Our social media pages here and other pages on related topics here.https://metfabtech.com/related-pages/