Long Live Serpentine... Serpentine Rest in Peace A
History of Serpentine
I've been programming in various languages for 15 years now,
including off and on professionally for the last eight. After
meeting Latham in 1991 and realizing shortly thereafter that we had
the same goals in what we wanted games to be like, we started trying
to write our own game. You've never heard of it, nor have you heard
of the 8 or 9 other titles that we built design docs for, and went
about implementing the WRONG way, with the youthful idealism that
hallmarks most startup development teams today.
When I picked up Unreal to try at our Memorial Day LAN party
(June 1998), we were blown away by the graphics, and the texturing
abilities and lighting that Unreal offered, but single player play
seemed to end about 6 levels in, and we were put off by the
ineffectual weapons which promoted spraying into a corridor and
praying that you -MIGHT- get a hit. After everyone had gone home, I
fired up UnrealED and started poking around to see what I could pull
up. After two really crappy levels I concluded (like I have with
every FPS in the past) that I am not a mapper. 8). Then I started
playing around poking through the UnrealScript that runs the game.
Right about that time, the very incomplete but hellaciously useful
nevertheless Unreal documentation appeared out at Tim Sweeneys
website.
Armed with the knowledge of how to create a new package,
compiling and loading it into the game, I began playing around with
a copy of the Automag, trying to fix all of the problems we had with
the way it had felt. When I demoed the new version to Latham there
was that spark of 'Kick Ass! We should go through and tweak all the
weapons to play how we want'. Latham picked up his copy of Unreal
the next day.
After another week or so, we had something that had most of the
basics that you see in Serpentine today, the only thing missing was
a new model. Latham built I don't know how many different versions
of the 1911 before we finally had one that worked with Unreal. Many
thanks go out to Ian Dacek who helped us get the finicky at best
3ds2unr working, and to Brandon "GreenMarine" Reinhart for
mentioning UNMIRROR=1 one day on irc. Of course unmirror is
undocumented, like all of the #exec commands that one uses to import
models and textures but it solved the last big problem Latham had.
It was now almost the middle of June, and there had only been 3
other weapons released for Unreal. The Quad Shotgun which used a
mesh that was left in Unreal but never used. The Double Automags,
which basically had two Automags, akimbo, and another Shotgun also
using the mesh from Unreal. Latham and I were looking at the then
budding scene and decided that instead of keeping our new gun to
ourselves, that we'd release it to the scene, and we went through
and picked out a handful of weapons which we thought would be
reasonably balanced, that we had decided we needed for LAN play, and
built the first Serpentine Website.
After looking around, we decided to ask Unreal.org (the hand
rules!) to host us... when Max and Morn saw the screenshots they
offered us a spot. We told them we didn't want to p1mp our site at
all until we had a download ready, because both Latham and I firmly
believe that without content, TC's, PC's and other mods, are all
vapour and should be working on their content, not p1mping their
egos with flashy websites and such. Somehow a link to our site got
out a couple days before our first release, and we were flooded with
email. We released at Midnight that Friday, and set a tradition of
Midnight releases with an accompanying release party in #unreal and
#unrealed on Gameslink IRC.
A few weeks later came SBeta2 with the Ithaca. Shortly after that
we picked up Arteris to do maps for us. One of my favorite maps
'SerpTemple' came out of that period in our development.
Unfortunately within a couple of months, due to some weasel-like
moves by one of the 'Corporate Style, Cookie Cutter Fan Sites' (You
know who you are), Morn (which IMO just cause) became disgusted with
how the scene was turning out, and closed Unreal.org. He gratiously
allowed us to keep our site there until we could find a new home for
it. After looking over the scene, and considering Latham's dislike
of one of the admins (no longer present) at UnrealNation, and my
dislike of the style of business that CriticalMass uses for its
PlanetXXX series of fan sites, we asked Greygore of Unrealized.com
if we could host with him. I offered to cover our bandwidth costs
(which at the time consisted of a regular 200-500 downloads a day
during the inbetween time of releases, and peaking at around 2000
downloads during the first four hours after the release of SBeta3.
At the time, our package was roughly a meg in size, you do the
math.) Greygore thought about it for a few days, since he doesn't
host sites normally. When we saw him next he had decided to let us
live there. We even had our own subdomain:
serpentine.unrealized.com. Life was good.
SBeta4, while never released was a major turning point in
Serpentine, at that stage I knew that in order to finish the project
(which was looking like we might be able to do, for the first time
in our history of working together) I'd have to redesign the way the
code functioned. Latham decided at the same time, that a graphics
overhaul was due, now that we were both immensely more comfortable
with the do's and don'ts of Unreal Editting. After almost two
months, we released SBeta5 and with it, the neverending gush of
fanmail increased in volume. Unrealized and Serpentine had outgrown
their hosting requirements, and due to some issues with the
different serverside programs available, unrealized.com (and us
along with it) switched hosts again, this time to besthost.net.
Unfortunately, though they offered a much better deal on bandwidth
and server space, and had all of the server apps we needed, they
didnt offer subdomains. So after just one short release
serpentine.unrealized.com was no more. We were back to plain old,
boring unrealized.com/serpentine.
Somewhere between SBeta5 and SBeta6, Arteris left the group after
a falling out over the future of Serpentine. Back down to just two
members, we began cranking away on Beta6. Beta6 was our best release
imo to date, because it showed that after 6 months in the scene, we
were still able to hold our own, and with all of the weapons in,
(the Aug was only a preview, and imo shouldn't have been left in the
replacer tables) the end was in sight. We had introduced realistic
ballistics to the gaming scene, and had pushed the emphasis finally
from HopRunStrafeHaHaIKilledYou, to one of thinking, taking cover,
reloading when you had time. In effect, what -we- thought an FPS
should be like.
Unreal 220 was released a few weeks after SBeta6, and with it,
broke Serpentine such that it was unplayable. Epic promised the
community a new version, 221 which would fix 220's bugs, but would
break compatibility again. We told our fans... 'Wait... What good
will it do for us to release a 220 compatible version, if Epic's
releasing 221 any time now, and it'll break again?' By February,
patience was growing thin, and I started fixing Serpentine to
function with 220, and again, the impending release of 221 was
close, so I put Serpentine aside to wait for the release. By the
middle of March, with 221 still very much vapourware, Latham and I
decided that with Serpentine -><- close to being finished, we
would go ahead and release a 220 version. After all... nobody
besides a select few alphatesters had been able to play Serpentine
since December. By this time, my disgust with the entire scene
peaked, and I wanted out... no matter what. Over a feverpitched
couple of days, I finished all of the changes for 220, fixed the
Augs behaviour, re-implemented the sound syncing and such for the
animations, and innumerable other changes. The results of that are
what you see in SerpFinal. There are a few changes I made after
sending it to the testers (splashes for brash, and cavitation trails
for grenade shrapnel and such underwater), but rather than delay the
release any longer, I am holding those features for the inevitable
maintenance release when Epic finally does release the next version,
which was to be called 221, and then 222, and now as of yesterday
(as I write this) 223.
Every version of Unreal, has broken the behaviour of Serpentine
in one manner or another, bot ai, walking while aimed, there are
lots of different little kludges we've had to pull, a lot of
inelegant code written, to make Serpentine play as it does, while
staying within the limits of Unreal. It could use another complete
code rewrite... but after ten months of continuous burn, ecstasy,
depression, withdrawal, repeat and the way the Unreal Scene has
gone, it is time for an end to it all.
Perhaps one day, I'll be enthused with Unreal again... but I
doubt I'll start another project using it, unless it is with a
commercially licensed copy of the engine, and financial backing.
That will probably never happen, so don't hold your breath.
If any of you would like to reach me, my address is below... I
probably won't answer any more email regarding Serpentine, no
offense. Also any requests for new weapons, or continuation of
Serpentine will be read amusedly, and then deleted. 8) Serpentine
has been a learning experience for me, and has finally given me the
confidence that I can see a design spec through to completion.
Hopefully it won't soon be forgotten.
cya! |