Letter to the HL2 Mod Community

I began modding Source in January of 2005. I spent just about every day of the next two years doing everything in my power, free time permitting, to help the amateur modders get accustomed to the drama and pure unadulterated bullshit that was lurking just out of their sight. I was there when the community came together and I have been here watching it dwindle into the dark corner of the room that no one dares look. There is no doubt in my mind that the Source Engine is feeling under used, under appreciated and sad. More shocking to me, even though I have more than devoted two years of my life to it, a dark portion of my heart is very glad to see it as such.

I was linked a little over an hour ago, to a very moving developer post from the Fortress Forever crew. The article brings some very important things out, shining the light on that elephant that was in the room that everyone has been struggling to deal with, and more often than not – ignoring. HL2 mod development is extremely difficult. Granted, I did not participate in the CS or FA movement back in the day, but I don’t think It’s too far off to assume that the new engine has changed and evolved. When things evolve there is bound to be added complexity. If you look back on gaming as a whole you will see that the development time has become nearly logarithmic. Pong and other seemingly archaic games were developed in weeks, now games take years to develop. HL itself evolved out of sloppy primordial ooze that was quake. As these games have become more and more complex it is increasingly more striking that folks like myself and the people I have worked with over the years have seen very little change in regards to tools. Building a mod for HL2 is about as easy as trying to build a skyscraper with nothing but thumbtacks, glue, sheets of paper and a pair of pliers.

My analogy is supposed to strike you as odd. Why the hell would I choose to give you something remedial when you need a jack hammer and cement and I beams and roofing nails. My god the drywall and its screws! How can I forget that? When I began screwing around with source I was amazed at the size of the community and the utter lack of assistance coming from anywhere. The tools were basically given to you in the SDK, yes, but documentation? How the fuck can there be no documentation? Sure there were the valve sites, but they sure as shit weren’t written in English. Open up the SDK code base and search for /* and prepare to be overwhelmed by the expanse of code with no commenting or documentation. Over the years I have been quoted quite a few times as saying that the code couldn’t be what they use at valve, or at least it better not be. There is not one lick of intelligent commenting explaining anything from their interfaces or templates to the way the health variables are networked. What does this mean to you? Quite simply it goes to show that things are continuing to evolve, and with UE3 and Crysis just around the corner you should be well prepared for things to get worse before they get better.

One point that I have yet to see anyone point out as yet is that the gamers of the HL1 & CS era are now the modders of today. There are a few that have sprouted up out of green pastures, but many of the 17 and 18 year olds are now 22 and CS majors trying to make a name for themselves and get out of school being paid thousands to build the next CS. In the Fortress Forever article, and from so many others – myself included, it is not at all significant to come up with the next CS. A day would not go by without some fifteen year old noob pwning fagz0rb joining a forum or IRC channel that I was present in and attempt to convey his idea for the greatest game ever. The odd thing is, they all sounded the same. The formula sucked the life out of many a noob, giving them a false ideal and having their ideas be dashed when they had only just begin to piece together their light saber, realizing how difficult things really were.

today’s modders are pock marked with this terrible formula and continue to drag it back to the surface, time and again, only to fail and be miserable for a while. I only wish that people would realize that building a game is not child’s play, It’s not simple and It’s not fun. Building a game takes hard work, more so now than in the days of HL1 or the original UT. Yes models have gone to thousands of polys; yes code is now numbering the hundreds of thousands of lines of code; yes there multiple ways to succeed. The trick is to slow down, plan your project and make sure you aren’t wasting your time, as I had to learn the hard way with my team. Months were lost to seemingly simple things like understanding the art pipeline and assholes who thought they weren’t expendable. I have vivid memories of discussions I had with the other two leads trying to get them to amp up their teams and in the end, the mod went the way of so many others.

One thing I have to say about the two roads that are proposed in the Fortress Forever article is that there are some serious morale issues that get addressed in teams of folks who are working over the net or other contribution based routes if you choose to release early and often. Something I saw just about everywhere I went was a dramatic change from the beginning when everyone thinks the game is just poof going to happen, and three months down the line when people realize that they are going to be working on this same project in a year. Some people are not up to that sort of commitment, so let’s just say they leave on their own accord. For those who choose to accept the futility of committing to a development project, my heart goes out to you. A juggling act will go on between your heart and your mind, and more often than not – hope that your heart wins. Your heart is what drives you, its what makes you get up in the morning and pledge to not sleep that night until you get a model in game; It’s the part that gives you the reason to continue trudging forward into the abyss of development, knowing that your ideas may not be revolutionary, but that they are your ideas, none the less. The difference between me and the noob is a very confusing and yet all true thing. I have the drive to stick to things, regardless of how much I may loathe it as long as I am able to see the benefit as being influential enough. It does not scare me in the slightest to think that my mod was a failure, because I know that if I hadn’t put the time into that I would not have the job I do today, nor would I be able to understand the importance of planning out your project. If I have pledged to do something it is important to me and I will succeed, because I have given myself no other option. I suggest you do the same.

If you at all doubt what I’m saying, I invite you to take a tour of my now infamous list of HL2 development links and count the number of active posts in any of the HL2 related forums, the number of emails over 6 week periods of time in the HLCoders mailing list, or for the most frightening effect go hop on an IRC channel that was associated with HL2 development. Would you believe that when I started there were 50+ people in the #HL2coding channel? How many are there currently – 5, myself excluded.

As I have promised myself, I am done with HL2. That is to say, I will no longer be developing in Source, although, I will still help the community where I can. I plan to finish up the PHP app that I’m working on, build a couple websites and get through to April, at which point I will begin development of my first game, probably on Ogre, unless someone offers me an engine or I become crazy and decide to build my own. Thank you to Valve for helping me realize that there are a great many things that are yet unattainable by the community, and more power to you for proving that modders really don’t have all of the power. Source is a great example of how a company can make mod development far too difficult to be truly attainable.

You can find the interview i took part in with Planet Half Life
The Fortress Forever Post from nearly a year ago

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.