Since 2004 I've taught myself, and others, in just about every discipline the Source engine offers.
Has it really been over a year since my last post here? Time for an update.
I've long since abandoned Enclave, as it began to demand too much re-engineering. Half-Life 2 is a linear rollercoaster and about as far away in design terms from Deus Ex as it is possible to be within the FPS genre. There were also issues with player motivation that would have to have been overcome were I to stick with Gordon "silent protagonist" Freeman.
Despite this, the biggest stumbling block proved to be animation. Promoting Valve's citizens to the foreground made their animation set look extremely pallid, and all my attempts at decompiling the models failed in one way or another. Even if I had succeeded, XSI's SMD importer only half works.
I'd go so far as to call the pre-compiled nature of models one of the fundamental problems with the Source SDK at the moment, at least for those of us working on narrative projects. Valve are releasing the TF2 model sources, and I sincerely hope they follow them up with Half-Life 2's citizens, metrocops and soldiers. Just not in SMD, please!
After shelving Enclave I drifted away from modding until I discovered Jailbreak: Source. Jailbreak UT2004 is still my favourite multiplayer mod and I inevitably didn't find its Source counterpart quite to my tastes, it being slow and unwieldy, with most games entering a stalemate where each team occupies the other's base. The tug-of-war feel I loved in JB:UT, where releases happened so often that each game became more tense as you came closer and closer to incarcerating the entire enemy team, isn't there.
Instead of moaning on the forums I started on a map that would fix the problems I saw. Unlike the official arenas, jb_openday is small, circular, and has wide open "bases" that are impossible to lock down — each element intended to make matches ebb and flow faster. The speed of each round made escapes pointless, so to keep captured players engaged I removed the ceiling of each jail instead: those inside can shoot out at anyone who tries to walk along the top of the walls (once thrown a gun), and the other team can shoot back in, which with the minigun in hand never fails to entertain.
(A lot of the criticisms here are addressed by Jailbreak 0.6. Guess I'm not the only one who feels this way.)
The biggest problem with Openday is actually its small size, which limits the number of players it can support and makes a lot of matches too quick. But a larger map would have broken down entirely, as player movement is simply dog slow in JB:S. It's part of another malaise with the SDK: that its multiplayer component, HL2DM, is literally HL2 with networking and respawning, and despite its name isn't balanced for the pace of deathmatch play at all.
This is what I'm trying to change with my "pure deathmatch" mod. I want to release, with a Creative Commons license, a simple codebase from which other mod teams can start Quake/UT-like multiplayer projects with fast movement, walljumping, classic DM weapons and hopefully proper gibs — and unlike anything else out there I can think of, blessed lag compensation at the same time. (Shortly after posting this, Tremor appeared on the site.)
At the moment I'm ploughing through creating weapons. The VDC wiki's documentation on the process is either missing or utter crud, which if you're me means writing it anew...and that means laying all the groundwork first!
Here’s the thing about silent protagonists: they don’t have a personality. Their blank slate eases a player into their role by removing any possible disagreements with their decisions or dislikes of their characterisation — by removing the middle man.
But as I have recently discovered, this great strength is also a great weakness. You can’t reliably motivate a silent protagonist with anything other than survival. Anything else is a stab in the dark, a blind prayer that the person playing your game has a personal interest in what you are presenting to them.
This problem of sophisticated motivation isn’t an easy one to solve. Half-Life 2 was criticised in some quarters for the relative weakness of Gordon Freeman’s motivations, which swung away from the struggle for survival at Black Mesa to a presumed desire to fight a rebellion with sheer brute force. Similar criticisms were levied against the second half of Bioshock, even with it giving its silent protagonist some back-story at the point of transition to prop things up.
The immediate solution of a strong story (if you can create one in the first place!) can only go so far. Parts of your audience will always become involved and fall in line with your requirements, but even with the best story in the world there will be another portion of your audience, probably quite larger, which remains disconnected and doesn’t ‘get’ why they’re meant to be doing something, or, god forbid, what they’re meant to be doing. Perhaps because they aren’t paying attention, perhaps because they can only play for half an hour a week, perhaps because things simply don’t click with them; the reason is immaterial. With only a silent protagonist to work with, these players aren't able to invest in the world or its characters.
Yet a silent protagonist combined with a first-person perspective is a remarkably powerful tool, and it would be a shame to abandon it when moving away from a survival dynamic. I see the problem as one of signal loss between the player and the game world – we only have mice, keyboards and gamepads to work with, remember – and a solution I’m going to be looking into is creating a companion character who acts as a semi-autonomous bridge between the two.
If it works, a companion will provide an identifiable character in the world who can express feelings and opinions without taking away from the player’s agency. A companion can say “let’s go in here”, and take the lead. A companion can have verbal, emotional conversations with other characters, potentially at the same time as the player is navigating restrictive dialogue trees. The player can disagree with a companion in a way that they cannot with a protagonist.
I work with Source, and here it pays off immensely. With Alyx in Episode One onwards Valve have already created a best-in-class player companion, the source code for which is included in the SDK. Shifting Alyx’s behaviours from combat to character interaction will be a drop in the ocean compared to the challenges of creating her in the first place.
But while I can use the Alyx’s code, I can’t use her content. It isn’t possible to add new skeletal animations to existing models in Source without the use of a third-party decompiling tool, which can’t handle the complexity the fully-articulated Alyx model without crashing. Voice is another issue, since text alone doesn't cut it and I, unfortunately, do not have Merle Dandridge’s agent on the line. And above all else, Alyx is such a well-defined character that I wouldn't want to fight against her image with my own what-if scenarios.
So I’m faced with the mod-killer, content. And not just any old content, but a walking, talking, 3D character of my own! Perhaps a robot would be achievable...
I finished reading Understanding Comics yesterday, and posted some thoughts on its application to games on the Soap Box earlier this afternoon. Only the article hasn't been put anywhere public by the admins, which somewhat defeats the objective of having Soap Box in the first place!
So here it is being linked to from my blog instead. It's been frontpaged. :)
It's about time I showed some of what I've been working on since the end of NightFall. These screens show the visual style I've settled on for the interior areas of 'Enclave':
Soft yellow and green tones, high-res lightmaps, and density. Enclave is getting closer to Deus Ex (and more specifically Hotel Carone) than Half-Life, and being able to spend days working on each room knowing that it'll get more than enough use to justify the time is wonderful.
The biggest visual problem so far is wall detail, since I'm avoiding those clichéd graffiti decals. On the one hand the walls in these places do tend to be quite bare, but on the other, far weightier hand players need landmarks. It's a tough call, but thankfully no other components rely on me making it.
Screenshots can't give you the sound of Enclave, so you'll have to trust me when I say it's getting just as much attention as the visuals. And now, a rant.
I'm sick and tired of hearing Valve's stock soundscapes in every mod I play! It is so easy to make one, and the results are fantastic. Just throw a playrandom filled with sounds that reflect the environment on top of a generic soundscape and you've made an instant impact. Take some extra time to mix your own base 'scapes from scratch and you've got something every bit as important as your textures and static props.
Why on earth does nobody seem to put much effort into this area?
AI code is another underexploited area I'm looking into. I don't think any mod has made a serious effort with regard to it yet (if you have, please get in touch!) and I definitely feel as if I'm treading virgin ground.
I've got my work cut out for me further still thanks to the fact that my NPCs will be sticking around unscripted for far, far longer than Valve's ever have. It's a matter of packing detail in again: like patrolling squads getting distracted, more and better reactions to the world, and, going against everything Valve have done, genuine aggression during combat.
It's all possible, but learning is a slow old process. Especially when you're writing the textbook at the same time...