Half-Life 2: Short Stories is a team working on a group of modifications that take place in the same realm. A lot of the focus is on the story and gameplay, new innovative set pieces and puzzles. After the release of the first episode of Human Error, the team is planning to release more episodes and expand the characters and the world.

Forum Thread
by member
"Human Error Coop" Test Mod (Mods : Human Error : Forum : Dev Diaries : "Human Error Coop" Test Mod) Locked
Thread Options
Mar 11 2010 Anchor

About a year ago I first started working on my own version of Left 4 Dead's AI Director. I posted a video called "DNS" back then, showing the "Dynamic NPC Spawner" action in a Single Player mod. After the release of Human Error Episode One, I decided to try it in Multiplayer code. It really wouldn't have been possible, without the Source SDK Documentation tutorial to fix the AI in Multiplayer. Without the patch, I wouldn't have even considered trying MP, or continue working on the DNS.

After getting the AI to work, I imported the metrocop, the citizen, the Vortigaunt, and the Alien Grunt from Human Error (SP), as well as the weapon dropping system, and some of the hud elements.

I also had to do a lot of tweaks to make the hlss_director work in multiplayer. The director is the entity that keeps all the data about how well the players are doing. It then calculates the Current Difficulty from things like player health, how many baddies there are in the map, how much ammo the players have, and so on. The other entities also ask the director what NPC or item needs to be spawned or if it can be spawned.

hlss_dynamic_npc_spawner is linked to a template NPC, which can be pretty much any NPC there is (including friendly metrocops and other friendly Combine NPCs). The NPC Difficulty tells the director how dangerous it should consider the NPC. For example, the more difficult a hostile NPC is, the more it increases the Current Difficulty of the Director. Other Properties include max number of the NPC, the maximum attack size, time delay of the first NPC to be spawned, and so on.

Dynamic Weapon/Item Points, Dynamic Ammo Crates are spawned when a player is visible to them. The entity Properties define on which Current Diffulty they can be spawned. The Director then decides what item or ammo should be spawned if any. hlss_item_crate is spawned during the map spawn with a probability that is defined in its Properties. When the crate is broken by a player, the director decides what item to spawn.

hlss_player_path is used to calculate how far in the intended path the players are. The player path is used to determine when the NPCs should do their next bigger attack. hlss_dropship_land entities are to determine where the Dropships can land. They have a link to a path_track for the Dropship to first fly into the land position, and a link to another path_track for the Dropship to fly away to be removed after spawning the metrocops. The Dropship itself is spawned by the Director (and does not require a spawner nor a template NPC). Each dropship land position is tied to a single player path brush entity. The players must have reached that path brush before that landing position can be used.

The Coop mode is currently designed as 4 player (huh, I wonder where I got the idea of four). Each player takes the role of one of the Human Error SP characters: Larson, Eloise, Noah, and Anders. If there's only two players, however, a NPC will spawned to replace that character. If a player joins later on, he will replace one of the characters. If one of the four characters die (NPC or player), a Dropship will spawn and fly to the nearest land position.

In the video I play as Larson, so when you hear Larson's voice, the voice is coming from the player. The NPCs and players also share Response Rules. Currently players are coded to speak during pain, reload, alert, and idle.

Thanks to another tutorial in the Source SDK Documentations (apparently written by the GoldenEye Source guys) I was also able to add the L4D glow effect on the characters and the dropship.

A new hud element on the top right corner tells the Current Difficulty, how far the players have walked the path (0-100), how long until the next dropship spawns, and the status of the four characters.

The whole mod is, of course, still simply for the fun of coding it, and to see if it could be made. Right now I haven't yet decided if I will seriously start to develope it. There's currently some problems that need to be solved. The patch already solved some problems in terms of lag with the NPCs, but it's still an open question, if the lag would be too much. There's also some bugs in the director and spawner codes, the mod crashes when the round is restarted, and some of the methods of spawning NPCs need rethinking. There isn't much pacing or different moods in the current Director's behavior.

Also, there needs to be a lot more ideas, as what would make Human Error Coop special and worthwhile. While I have some ideas how to make it better, and adding pacing should also improve it, the future of the mod really depends on what the team can come up with.

Mar 24 2010 Anchor

I never though you could locate another player like in L4D.


Bug are annoying.

Apr 2 2010 Anchor

Should have something very cool to show in month or two

Apr 12 2010 Anchor

Nuuuu, i can't wait. :D


Bug are annoying.

Reply to thread
click to sign in and post

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.