When we purchased a home computer in 1998, I was consumed by PC video games. Particularly first-person shooters Quake II, SiN, and Unreal Tournament. Out of all of them, my favorite was Half-Life. The gameplay felt solid. The ambiance of the environment was immersive. The weapons felt heavy and responsive. The cast was engaging — Marc Laidlaw’s plausible scenario where theoretical scientists open a portal to an alien universe was believable.
In my opinion, Half-Life’s online multiplayer battle mode felt realistic and fast-paced. HLDM (Half-Life Deathmatch) was a place where online strangers compete to obtain “frags.”
At about the same time I engaged with others in these online matches, the company that developed the game, Valve, released an SDK (software development kit) in April 1999. The SDK enabled the community to modify the game to their liking. This helped the game’s popularity surge.
“My first memory of HLDM was joining a server running a map called “Stalkyard”. The things that sucked were the dial-up connection… and the game’s awful netcode.”
Before discovering Half-Life, I dabbled in custom configuration changes in games like Red Alert and Rainbow Six. But Half-Life was my gateway to real customization with computer programming — modding to a community.
“I remember Dad buying a copy of Microsoft Visual Studio Professional from Circuit City. He looked at me, 'What is this for?' I shrugged, 'I want to mod games.'”
My curiosity engaged. How could I modify the weapons in the game to play differently? Then, without any prior programming knowledge, I started a modification later to be called Cold Ice.
Cold Ice was fueled by changing the mechanics and “skins” (textures) of the weapons. I harnessed the digital echo-chamber of a clan — a group of people playing on the same team. The experience overtook my game consumption into a leading mod maker, an accidental producer/creator.
“Cold Ice was unique, immature, violent, provocative, and rather…odd. But I didn’t care.”
Over time, Cold Ice became popular. Its concept was simple. Fast play, lots of explosions, unearth concept weapons, then apply a unique winter ambiance to have a good time.
The mod’s origin was discovered by accident. I found the “invert” functionality of Paint Shop Pro. After extracting the player’s texture, Gordon Freeman, I recompiled it and placed it back into the pack file (a zip file the game uses to load resources).
It just so happened that the inverted texture looked cold. And hence, the mod name was born.
When I first picked up the SDK, I knew nothing about game concepts and how to produce results. With research, I found the instruments to make the modifications. This included a toolchain of applications and 3D modeling software. What assisted my discovery was the investigation of other’s modification project structures. I would download, unpack, and review their materials.
“And in some cases, creative liberty was taken to "borrow" others' project artifacts. In fact, I borrowed everything.”
Tools like Microsoft Visual Studio Professional 6.0, Paint Shop Pro 5.0, 3D Studio Max, and Valve’s Hammer were learning curves for me. Still, I was determined to deliver an experience.
“That experience was a crazy good time with lots of explosive devices. And those sound effects were hot as they were lifted from other pak0 files.”
I wore many different "hats" while experimenting with modding. One day I'd develop a web page to market the modification, the following day, I'd plug a vbsp ray trace "leak" to compile a map. The next day I'd code new game mechanics. The intensity of the exploration sapped a majority of hours away from socializing in High School.
"I stayed up late for many nights at a time. The grit to discover was immensely awesome. Nothing else mattered."
The tooling for Half-Life was a disparate toolchain. It was a grab-bag from various companies and modding teams. Since Half-Life’s tech incremented off John Carmack’s (inventor of the core technology for Half-Life) brilliance in design decisions and logical organization, Quake's tools were useful. They were implements to look deeper in detail.
I was driven by the discovery of making things different. At that time, I was involved online with a team of players who wanted to see what we could do. This is what fueled me to keep going.
Understanding how to build things that were required at the time was intense. Building websites, modeling new weapons, coding game logic, 2D art, finding and creating sound effects, and building levels were unique challenges to be discovered.
“It was a vast playground of learning while being surrounded by invisible nerds doing the same.”
As time went by, I learned of community resources that healed my knowledge gaps. Conversations happened through forums and mailing lists. The best example was the Wavelength board, pictured below. Wavelength was a community watering hole, a place where we asked questions and got correct answers.
“There were absolutely no wikis at that time, and no Lycos or Excite search worth its salt in finding what needed to be found. Everything was bookmarked in the mind.”
Players of Cold Ice highly appreciated the sound effects. The explosive sounds, the blaring of the multiple rockets, and the new weapon effects made Cold Ice what it was at the time. Crafting an experience was the result of finding resources that added value to the play.
Finding knowledge and interacting with a community was a part of that toolchain. And after finding that community, my skill set could only go so far. There is a point at which specialization was needed. I had to scale myself. This is what happened next.
“What was this place? It was intoxicating with creative pleasure that nights, weekends, and summers would simply disappear.”
As Cold Ice’s development went on, individuals came forward to usher the mod’s development. If I had to count, it was thirty contributors over its short lifespan. People liked the mod and wanted to add new value. This included level makers, modelers, and other artists to create an experience.
This enabled me to concentrate on my expertise area. For me, it was about game mechanics and improving the gameplay, making it balanced. I really liked the programming aspect and building the libraries called .dlls. The libraries contained logic to make the weapons act differently. Every time I changed gaming behavior, it would have to be recompiled, and the game relaunched. This loop took at least three minutes for every change — a time before hot-swappable code.
2D art was also of interest. I enjoyed fiddling with the HUD (heads up display), the information printed on the screen. I spent hours developing a “smart hud notification system,” experimenting with mapping sprites (varying-transparency graphics). The goal was to improve real-time information and to enhance the play experience.
“I went through this code, compile, launch, test loop thousands of times. It was like being a magician where things kept changing to my will. It was fascinating as it was frustratingly slow.”
At the time, the people I met were centrally located on a popular chat messenger called ICQ and Internet Relay Chat, a chatroom agent. And, of course, the ubiquitous email. There wasn’t anywhere near the video chat and tooling we have today.
“And what is odd is that the identities of the individuals remain hidden. Probably for good reason; the acne was boiling over."
I only knew the names of one or two individuals, but we never once spoke on video in all that time. Besides, the cameras were too grainy on NetMeeting. I was on dial-up.
“The disreputable team was global. From Germany, Canada, Austria, UK, Finland, the USA, Australia, and other countries, we worked together to deliver something cool.”
Contributors poured in from all channels. Whether it be voice-overs, writing documentation and READMEs, 3D modeling experts, and numerous map makers. They all taught me how to become better at each skill set. Their gifts were appreciated and leveraged.
And sharing assets also went the other way. See above and below. We were invited to contribute code and artistry in the community, which we did. The mods were popular at the time. In fact, both modifications, Trinity Command and Wasteland HL (WHL), were associated with early contributors of Cold Ice.
I personally loved WHL and Trinity Command because of their dedicated art direction. The feel of the gameplay was fantastic. When I had the chance to contribute to the weapons, HUD, and gameplay code, I had a lot of fun — I contributed to something larger than what we originally founded. And these founders were intensely good at the artwork, creating an atmospheric experience.
“These contributors spearheaded other mods later, a testament to growing obnoxious leaders in digital cabals. And I was too obtuse to stay with them. Drama was shared between individuals and mod teams.”
Mod making was collaborative at that time — in the summer of 1999, we were invited to alpha test Counter-Strike with the map cs_siege. I gave notes back to the “test party.” Unfortunately, these notes are lost, but I remember that the mod was absolutely excellent. Counter-Strike became quite popular. So popular...that Valve eventually acquired them, and the mod became a globally recognized household brand.
Cold Ice rarely used version control, unit tests and product testing that would remotely resemble a modern development shop.
However, we launched the modification versions anyway, and when things broke, we launched patches where they were needed (which happened frequently). It was a real research and development setup.
“Craftsmanship is a new business we buy into; which didn’t exist at this time in software. Clean wasn’t in the vernacular. But we all needed serious personal linting.”
Between developers and artists, the process was libertarian. We shared files through private FTP’s (file transfer protocol) and sparingly used patch files. We furiously messaged each other when changes occurred. We appreciated the quickness of the releases. Nothing ever stopped the team from delivering an update due to quality concerns.
"We listened to the community. We recklessly launched, in a way that promoted chaos."
The outcomes of the modification were never completely validated. But what is certain is that in developing software, craftsmanship was never a crutch we used to validate our software existence. I didn’t know at the time, nor did the community.
“This is not to say we didn’t have discipline. That practice was harnessing the pureist form of autodidactic exploration. The discipline was to ship. It was a Holy Land of craft, a geek Nirvana, a Mecca of maximum return on discovery.”
There is a lot to be said about software quality in association with predictability. To think, after writing tens of thousands of tests over my career and nudging others to do the same, we launched software without the automatic checks. We celebrated our beta testers, and that was refreshing, liberating, and free.
After several versions, Cold Ice made it to the Mod of the Week located at Kevin "Fragmaster" Bowen’s Planet Half-Life (PHL). PHL was the central community hub located on the defunct Gamespy network.
Others in the community noticed. I remember being invited to Valve’s 1999 Mod Expo in San Francisco, which I declined the invite.
“I never pushed my parents to fly to SF, nor was extroverted enough to go through such a frightening social event — I was acutely introverted.”
And then there was the regular PHL mailbag, which the community railled around. The replies were positive, and the trolls abrasive as ever.
“At that time, being a troll was normal fanfare. Everyone was doing it. Memes were the middle finger made in MS Paint.”
Having our mod on the mail list was like being number one on an app store in a major category and receiving tens of thousands of downloads an hour. This was validation that we were doing things correctly and that the community was receptive.
Lots of people liked the play. Version 1.75, our beloved version, was the golden master build (GM) — a time when the software was burned to CDs and marked as 1.0 for manufacturing.
Cold Ice launched the beta 1 2.x update that changed how the game was played. This version visually improved the weapons and skins and experimented with an exchange system. The new version wasn’t receptive, as noted in the poll.
After a time, we paused the development of Cold Ice as I contributed to other modifications and started to branch out, learning about pure deathmatch play. Half-Life Pro was an experiment inspired by Oz Deathmatch. HLPro contained a mountain of configurable cvars (console variables) that included game modes, mutators (rules that change the way the game is played), and a redesigned heads up display.
In mid-2000, while work was going on HLPro, we launched a “Cold Ice SDK” of our own. It appeared we “shut-down” Cold Ice, but that wasn’t actually the case. We attempted something bigger.
As we grew, we realized that the production version was highly naive. We wanted to improve. As we were working on features, Valve broke the ecosystem by launching a non-backward compatible 1.1.0.0 update to the game. This caused labor for modders. Unless a non-trivial patch was attempted, the full crop of mods — up to Spring 2000 — crashed on loading.
“Valve fixed the netcode by optimizing server messaging, which was welcomed. But in the process, the patch created an unwashed caste of mods that would forever be locked in the 1990’s.”
And then we made a decision. Fix forward 1.75/2.x Cold Ice or attempt bigger changes? So we went with the latter and started our rewrite. We called it Cold Ice Resurrection (CIR). I’ll share some of that work now, as it’s never been seen.
The work was of higher quality than the first versions, and the maturity of the approach was light-years ahead than when we started. We grew as developers. The evolution was tangible.
Hundreds of hours of work were labored over the project between contributors.
![images/34-71.jpeg] ![images/34-72.png]
The resurrection was an amalgam of many themes: Counter-Strike, Action Half-Life, WHL, Trinity Command, and core elements of original Cold Ice. The direction was unclear, but we focused on fun gameplay and lots of mutators like Iceman Cometh.
We kept the rewrite to ourselves, reverting our original approach to feed the community. We informed PHL of the incoming work, and they gave us a hosting spot, but we held back from sharing. This was a mistake.
“There wasn’t a feedback loop like we had with the original versions. That was the mistake that screwed us. The resurrection was directionless in its visual beauty. I was an ineffective newb for not pushing it out the door.”
Over time, the project became heavy, and motivation dipped to zero. We stopped work and left the project unreleased. The project artifacts began to decay into the digital ether. No one saw the update that we worked so hard on.
“Without a community jeering us on, we failed to grind through and ship. “When it’s done” never came.”
After the beta 1 source code was lost due to a hard-drive failure, we briefly started a beta 2. My last memory of CIR was that I wanted to modify the engine to make it snow — and then we gave up. The project was shelved in 2002, becoming our failed rewrite.
"I was pissed off. We restarted the work on a second beta with Infinity (lead contributor), but that fizzled out — and just like that, we were gibs all over the floor."
Unfortunately, there isn’t a fairytale ending like what happened to other modifications. The biggest was that of Counter-Strike and Day of Defeat, which we were a part of their community.
And that of Valve with Gabe Newell's vision. They grew the gaming ecosystem pie by creating the massive Steam Network.
What I can say is that for those who participated, we used Cold Ice to hone our skills and to grow as developers and artists. It was a great experience that I always thought shaped me as a person but left me questioning my understanding of what all had happened, quietly in my bedroom.
"The experience was like a cold night in a 'digital' football game where we won on the High-School Internet. But no one was there, the bleachers were empty. Mom kept calling me for dinner."
My interesting lesson as a new software engineer was even in failure; I grew a vast skill set. I wanted to see what may happen next, what I could learn. I would not surrender to solving a problem — a shower or a walk helped with unlocking a solution.
The larger observation was for a project to survive; it is surrounded by a community betting the team to succeed and feeding off the releases. And if the cheering is absent, projects die.
“There was no money in any of this. I left wondering where will I go — work somewhere and code with real people?”
The road to developing, launching, growing, and maintaining game modifications in the community had taught me lessons. As I moved forward and started my career, these experiences were not forgotten. I had a unique and valuable perspective on building things.
My curiosity led to a determination to achieve something interesting. And critical afterthoughts — not to plan projects as “big-bang” releases unless there is a commitment to a Valve time scale, and to support backward compatibility where possible.
“And while all of the above is in the trash bin of gaming, the skill set is valid and memorialized for meatspace to come get me. I’d be stuck in a ch3wz0r map to be devoured like everyone else — but know better.”
After another pause, we had the energy to craft something elegant. We soft-launched a mod called HL Advanced (HLA), a competitor to Adrenaline Gamer (AG), which was popular at the tail end of the golden time of modding in Half-Life. HLA included all of the game modes, like one-on-one arena matches. As it was a pure server-sided mod, no download was required.
“I performed a solid 10,000 hours of being a troll and building things. My skill set was ready for whatever a company would throw at me. Except people skills — I had zero hours in that business.”
But HLA suffered the same fate as the resurrection; it was a failure. We repeated the mistake above, hiding in an unaccountable state over the brashness of launching — surrounded by trolls’ feedback. But the real fear was I’d receive no feedback at all.
With all my creative energy expended, Half-Life 2 launched in 2004. I walked away.
“In a golden era of mod making, Valve forever changed the scene. This wasn’t the plain old piping data in databases, it was an exploration of a new digital art form.”
Others picked up Cold Ice’s development. A small team launched a 2.5 version. But over the years, it’s been inactive. Interestingly, Cold Ice remains a small group of people on the vast internet asking how to set up the mod decades later.
The years have rolled by — I have much gratitude to those I modded with and to Valve. See my Github for those interested in contributing to the project material. The code, files, and screenshots above were located on an old hard-drive I found in storage. Unfortunately, artifacts are permanently missing. Maybe you have something to share to make it complete on Github? Leave a comment below; or contact above.
After this post was published, the rewrite Cold Ice Remastered was launched.
After 100,000 and thousands of downloads, the old modification was back—finalizing the vision that I held in my head.
The Internet remains a fascinating place of creation. And I learned the lesson—whatever you put your mind to, can be done.
Cold Ice Remastered can be found on ModDB at moddb.com/mods/cold-ice-remastered
Telling the story of Half-Life modifcation development.
#valve #gaming #half-life #mods #programming
I started to explore and make things work, ideas emerged. These truisms were validated many years after the mod was shelved back in late-2001. These lessons seem to replay when discovering and developing software in teams.
Thanks to Danielle Arcuri, and James Burns
- r/halflife
- r/quake
- r/programming
- https://www.facebook.com/groups/363474493735643
- lobste.rs