- worldspawn looks comparable from my memory of Hammer, with a few exceptions (VR compatibility settings)
- item_generic looks comparable, though maybe a bit more customizable?
CHelpEntry
{
string m_Id = "Attribute.item_generic.pickup_prevents_respawning"
string m_FriendlyName = "Pickup prevents respawning (HL3 only)"
string m_TooltipOverride = ""
string m_HelpText = ""
},
CHelpEntry
{
string m_Id = "Attribute.item_generic.associated_player_counter"
string m_FriendlyName = "Associated PlayerCounter Name (HL3 only)"
string m_TooltipOverride = ""
string m_HelpText = ""
},
This one is interesting to me. HL2 and Half-Life 2: Deathmatch already had a method to handle multiple players, Half-Life 3 has its own method? What for?
- prop_zipline
CHelpEntry
{
string m_Id = "Element.prop_zipline"
string m_FriendlyName = "prop_zipline"
string m_TooltipOverride = ""
string m_HelpText = "prop_zipline"
},
CHelpEntry
{
string m_Id = "Attribute.prop_zipline.model"
string m_FriendlyName = "Model"
string m_TooltipOverride = ""
string m_HelpText = ""
},
CHelpEntry
{
string m_Id = "Attribute.prop_zipline.max_ride_speed"
string m_FriendlyName = "Max Ride Speed"
string m_TooltipOverride = ""
string m_HelpText = ""
},
Interesting, especially because it specifies a use of a model and not an entity with dynamic length like the old rope entities. Used in a setpiece of a fixed size?
- shared_procedural_spawn_template_info
- shared_procedural_spawn_reuse_info
- info_procedural_spawn_template
- info_procedural_spawn_target
- info_procedural_spawn_manager
- info_procedural_spawn_subgroups
Suggests to me a variation of the L4D series' procedural spawning system, except controlled in Hammer entities and not in the nav meshes and scripts. Consistent with the way Counterstrike and HL2 differed in terms of navigation implementation, with HL2 using a node graph assembled in Hammer and Counterstrike using a navigation mesh assembled in-game.
A shared and non-shared procedural spawn template entity. Instanced enemies? Impossible for me to say. A flag for being on the ceiling? Barnacles? This is getting weird. Async spawning for a multiplayer environment. Engagement/reengagement failure conditions for NPCs. A ceiling flag (probably for ceiling entities such as barnacles and headcrabs). Spawn manager seems to attach a cost value to each spawn, somewhat like the old Antlion spawner's "pool". Burst spawning, "persist spawned template instances", "Avoid previous choices" (choices of spawn target), partial spawns, subgroups... this is a lot more involved than in HL2.
Antlions in HL2 had procedural spawner entities like this, but this could signal a move toward procedural spawners being used more increasingly for all sorts of NPCs. I've wanted the L4D procedural spawners in Half-Life for ages, and I would be pretty happy if I got my wish.
- shared_enable_disable
This? Complete mystery to me.
- func_procedural_spawn_volume
This is a really interesting entity, as it's a complete departure from the sort of procedural spawning L4D uses (which is tied to its nav mesh). It's a brush entity like ye olde func_brush or trigger_multiple that allows the spawning of NPCs anywhere within its bounds. Can move alongside a named entity (or NPC), which moves the spawn zone along with it.
- procspawn_var_volume
- procspawn_var_entity
- procspawn_constraint_volume_volume_distance
- procspawn_constraint_target_volume_distance
- procspawn_constraint_target_in_volume
- procspawn_constraint_target_near_entity
- procspawn_constraint_target_far_from_class
- procspawn_constraint_subgroup_distance
- procspawn_constraint_target_facing_player
- procspawn_modifier_rotation_traced
- procspawn_modifier_move_traced
- procspawn_modifier_2joint_traced
- procspawn_bias_linetoplayer
These are a little more opaque to me, perhaps entities for spawning and managing a volume at runtime (so not in the Hammer editor, in other words), and the accompanying constraint entities to customize it.
- npc_quest_citizen
Not an existing HL2 npc classname. It shares a large number of existing HL2 citizen NPC flags and properties, but a chunk of them do not exist in HL2:
CHelpEntry
{
string m_Id = "Attribute.npc_quest_citizen.is_quest_member"
string m_FriendlyName = "Quest Member\? (Neutral to Combine and doesn\'t take damage)"
string m_TooltipOverride = ""
string m_HelpText = ""
},
CHelpEntry
{
string m_Id = "Attribute.npc_quest_citizen.citizen_name"
string m_FriendlyName = "Citizen Name"
string m_TooltipOverride = ""
string m_HelpText = ""
},
CHelpEntry
{
string m_Id = "Attribute.npc_quest_citizen.starting_dialog"
string m_FriendlyName = "Initial dialog stage (info_quest_dialog)"
string m_TooltipOverride = ""
string m_HelpText = ""
},
CHelpEntry
{
string m_Id = "Attribute.npc_quest_citizen.beckon_approach_enabled"
string m_FriendlyName = "Beckon and approach the player"
string m_TooltipOverride = ""
string m_HelpText = ""
},
CHelpEntry
{
string m_Id = "Attribute.npc_quest_citizen.beckon_radius"
string m_FriendlyName = "Beckon the player if they come within this radius"
string m_TooltipOverride = ""
string m_HelpText = ""
},
CHelpEntry
{
string m_Id = "Attribute.npc_quest_citizen.approach_radius"
string m_FriendlyName = "Approach the player if they come within this radius"
string m_TooltipOverride = ""
string m_HelpText = ""
},
CHelpEntry
{
string m_Id = "Attribute.npc_quest_citizen.combat_enabled"
string m_FriendlyName = "Allow this citizen to participate in combat"
string m_TooltipOverride = ""
string m_HelpText = ""
},
Quest citizens do not take damage from any sources, are named in the editor, and have various flags for what looks like quest steps.
- npc_hunter_invincible
Probably a special variant for setpieces or scripted sequences, with perhaps a more detailed model or less aggressive LODs.
- npc_turret_ceiling_pulse
New ceiling turret! No, I dont know what it does other than apparently ripping phys objects off of the ground, out of the air, or out of the players hands. Cute gravity gun counter?
- info_quest_dialog
Hooks into the quest citizens. Not much to glean other than it looking like an entity for setting up quest dialogue chains.
- prop_fixed
The new prop_static? Beats me.
- point_quest_goal
Point entity that hooks into the apparent quest system. Involves a quest marker beam and a disc on the ground. Nothing beyond go here as a goal as yet?
- logic_player_volume_tracker
???
Entities are ones that are going to be shared between Source 2 games, so seeing something here is
not a confirmation that Half-Life 3 will necessarily make use of that functionality. My guess is a lot of these would also turn up in other Source 2 games.
Other than that, it should be noted that this FGD is
massively incomplete. Whoever released it released only a small excerpt of it. Nothing on existing NPCs like headcrabs, zombies, Combine soldiers or vehicles, citizens, vortigaunts, alyx, nor weapons, nor the countless other entities whose functions would be carried over into Source 2. This is only a fraction of what Half-Life 3s full FGD would reveal.