The Right Man in the Wrong Place…
Anti-Citizen is a Half-Life 2 level mod that fits into the canon of the Half-Life universe. It follows an unnamed agent of the G-man, inserted into the middle of City 17 during the armed uprising against the Combine. This agent must aid the resistance in repelling Combine forces that are coming down hard on the citizens of City 17. This was the first project I developed using the Source engine, with two more chapters planned for development.
The mod is available on ModDB
- Engine: Source SDK
- Development time: 6 months in spare time
- Solo Project
- Primary goals
- Learn Source SDK
- Focus on strong level design
- Create a quality user experience
The most important practice was to keep firefights to a maximum of three enemies. Any more than three enemies in a given fight can quickly become overwhelming; especially in close quarters combat. This kept battles quick and exciting rather than overwhelming or drawn out.
It was also vital to vary the player’s moment to moment task often to keep combat and movement interesting. Little variations such as crawling through air vents, throwing switches to unlock doors and, breaking wooden barriers broke up the monotony and produced better pacing.
Given the mod’s placement in the Half-Life universe, I wanted to give the impression that Combine forces were cracking down hard on Resistance members in order to put an end to the uprising quickly. Enemies are seen everywhere, killing combatants and non-combatants alike. Some examples include a citizen killed by a sniper, a Metrocop running down the stairs after an unarmed civilian, and multiple firefights between rebels and soldiers.
Together, all of these practices built an interesting and believable scenario.
Here is the evolution of the courtyard section of Anti-Citizen. The yellow line shows the player’s path through the space (moving clockwise), and important changes are marked for each version.
- Entrance to courtyard area. The player enters here and move forward to take cover at the green car. This provides them cover from enemies at the raised platform of location B.
- Once the player had killed the enemies here, they turn toward enemies at location C.
- Players climb in the windows at location C and move through the house, exiting near the open sewer manhole at location D.
- Players climb down the manhole and enter the next area.
This version added more barriers, creating a much more defined path for the player. It also added a second barricade, which completed the circle of Combine dominance over the courtyard. The red area is initially controlled by the Combine, while the green area is held by the rebels.
- A fence was added here to force the player left through the garage and following air duct.
- This area became important for rebel NPC’s to occupy. It is the least defensible part of the map, making the Resistance effort seem like it is barely hanging on. It also kept enemy NPC’s in good locations for the player to attack.
- An enemy APC was to drive along the red arrow and come to a stop at this location, blocking the player path. This was to force them along the desired path instead of skipping the raised platform area. In the end, better solutions were found.
- A new way to get to the raised platform was added. This entrance made more sense as it was in direct line of sight for players and exposed them to less gunfire. It also feels like a subversion of established battle lines, making the player feel they are making a big move.
- The barricade was turned into a bridge between buildings. This replaced the need for the to jump through the blue building’s windows and was a much easier path for players to follow. The bridge itself also gave a feel of Combine domination over the area, as it is a highly defensible and powerful position.
At this point the courtyard is almost complete. Long straight lines of sight were reduced to force close quarters combat, and enemies continually streamed into areas that the player had not already passed through.
- A curve was added to the bridge. The straight bridge was uninteresting to cross since it had a long unbroken line of sight, It also created tedious long distance firefights between the raised platform on the left and the blue building on the right. Adding the curve blocked line of sight, forcing players to get in close for more exciting combat.
- Concrete barriers were place here for Combine soldiers on the ground to take cover at. In theory this would allow for soldiers to actively try to invade Rebel controlled territories. This didn’t work however as enemy AI did not react well to this position. Combine soldiers on the ground were scripted to later to make up for this.
- Stairs added to the back of this barricade allowed for enemies to continually respawn and hold this position. Otherwise the player could clear out the area before they even reached it.
- A shield wall was added to the entrance to the bridge. To disable it, players had to take a detour into the house and cut the power. This is a small puzzle, as players had to notice the boarded up window and break it before they enter and unplug the power cable. This gave players a short break from combat, and made them feel like they were dismantling Combine defenses as well as killing soldiers.
- Initially, this area was blocked off with immersion breaking invisible walls. Since the area is tricky to reach, I put a shield barrier further back and added health and armor dispensers as a reward for players who figure out how to reach it. Players were no longer punished for being clever, but rewarded.
- The location of the manhole cover no longer made sense given the new surroundings. It was moved inside the rightmost building behind a strong Combine door to prevented players from moving out of the courtyard too quickly.
- The switch to open the Combine door was placed in a room inside the bottommost building. As with deactivating the shield wall before the bridge, this gave the player a short non-combat task to give them a small rest.
Overall, Anti-Citizen has been a great learning experience, and a very successful project. The plan called for a short, high quality level using only assets that were provided freely with Source SDK. This kept development time relatively low, and still exposed all the inner working of the Source Engine. Learning all the tools slowed development initially, but thanks to the Valve Developer Community and several active forums there is plenty of help to be found online. This led to more time being spent on polishing the player experience and less on worrying about technical problems.
The largest problem faced was setting up the project for redistribution. The most recent version at the time (Source 2009) could not be used to make mods directly, and due to the engine’s age many tutorials were completely out of date. This led to a few days lost, but otherwise development went very smoothly.
Anti-Citizen has two more chapters planned, both of which can be completed in far less time now that I am familiar with the inner workings of the Source Engine.
In order to play Anti-Citizen, Half-Life 2: Episode 2 must be installed, and have run at least once. Once that is complete, follow the instructions below:
Note that you DO NOT need to install Desura to play Anti-Citizen despite what the banners on ModDB may say
1: Go to the ModDB page and click on the latest version
2: Click on the red “Download Now!” button (Ignoring the Desura “Install now” banner)
3: Extract .zip file to Steam’s ‘sourcemods’ folder (C:\Program Files (x86)\Steam\SteamApps\SourceMods)
4: Restart Steam
5: Launch the game from the Steam Library