Development of Cruz: A Retrospective
There are people out there who have thanked me greatly for creating a retro game remake
and publishing it in a free, no-obligation fashion for all to play. Some questions that
have come my way are, "Did you consult the original author?" or, "Are you ALWAYS going
to keep it going?" or, "When are you going to publish the game to the site _______?"
Well, I can't really do every question justice, but I can tell something of a narrative.
Here, then, is the story behind the development of Cruz.
What Every Fan Wants
Every decent game starts with a decent idea. Kroz was a decent idea, which is how it
got seven individual episodes, from 1987 to 1991. And then, inexplicably, the series
stopped cold. It just quit, and no more game content would become available for nearly
20 years.
I have looked at the source code, and I can understand why this would be. Old game
engine code is something that software engineers are loathe to revisit. As programmers,
we want to look forward, and move on to bigger and better things. Apogee certainly
managed to do that. And who on earth wants to go back to a game engine with primitive
timing, graphics, and sound, when the later programming projects (Duke Nukem,
Wolfenstein 3D, Commander Keen, etc.) were far superior in virtually every quarter?
That's only the developer's view, though. Fans are different personalities entirely:
incorrigible, impatient, demanding, unforgiving. They do not care about how convenient
or expensive things are for the developers--they want content, and they want it NOW.
Fans don't always need to wait. Sometimes, they have no need to ask permission to
develop their own content for a game, especially if an in-game level editor is provided
gratis. Some good examples of this would be Jetpack, Lode Runner, and of course the
Build engine, first used to create the level maps for Duke Nukem 3D.
But the closest-to-home parallel of custom game creators to Kroz is a very
similar-looking game, released by Epic in 1991: ZZT. This tiny download was simply
amazing in terms of the number of third-party total conversions it spawned, and for
no other reason than the ease of doing so. Everything for development is right there
in the ready-to-use package: game, level editor, script editor, and documentation.
To Mod or Not to Mod
For a game creator to become popular, it must have decent gameplay mechanics. If the
game is decent, and enough of the content is "modular" enough to warrant an editor, fans
just -demand- more content, one way or another. Games that aren't that great do not
have anyone demanding the ability to edit content, because, who would want to?
Furthermore, if game content is not modular (almost uniquely graphics- and story-
driven), who would spend that much time using another's game engine, when one could
easily create a novel one and have it be that much better?
Kroz, on the surface, seems like the kind of game that would be tailor-made for modding,
like ZZT. But no custom editor had ever existed, and there were no obvious "hackable"
data file formats either. To obtain user-generated content would mean to fetch the
apples directly from the tree (the source code).
Here is where things get somewhat strange. ZZT always came with an editor, but Kroz did
not. ZZT's editor was simple to pick up and use, but Kroz required source code
assignment-statement implementation in order to modify level design (completely rebuilt
source). And most odd of all, the Kroz source code, when available at one point, cost
several hundred dollars, while the ZZT source code was apparently lost...!
The last we heard of the Kroz storyline (if you can say it had one) was in the last
published adventure, Lost Adventures of Kroz, in 1991. The game content naturally leads
into a new story with a new dungeon, to be discovered and explored in the next game in
the series, called "The Underground Empire of Kroz." But the project was cancelled,
leaving fans with a permanent advertisement for a game that would never be made.
Fans would grudgingly have to accept that the series was over. They moved on to other
games, as did the developers. Not everyone forgot, but quite a few people stopped
caring.
2009: The Year That Changed It All
There are always people who don't forget, -AND- they don't stop caring. By any measure,
I fall into that category. But one very important roadblock stopped me: the source
code was no longer available.
In 2009, 3D Realms released the source code for free. Not a bad idea, if you think
the gains outweigh the losses. And, in my quite humble opinion, the gains were HUGE.
I quickly learned why no easy modding had occurred, even for people who had purchased
the source code in the 1990s. The modders would have to face old compilers, outdated
timing algorithms, and a rigid game engine with poor modularity. Most people's
assessment would have been that it just wasn't worth it.
My assessment was that trying was the least I could do.
Building the Cruz Engine
Embarking on the project was easier said than done. In late 2009, I managed to extract
all the metadata using a special "universal data formatter" application I had been
developing.
The result was a great success, even though the product (BARfly) did not succeed
commercially. I sat on the results of that project for many months, my mind elsewhere
with (terrible) things going on in the economy at the time. But eventually, my thoughts
would return.
The metadata for all levels, in all episodes, was now in XML, which is much easier to
read than the original Pascal. With fewer barriers, the project could truly begin.
In mid-2010, I began a new Flash project, which I called CruzEditor, which would act as
a new stand-alone, universal editor for Kroz game content. The best way to get this out
to the masses, I figured, was an avenue of least resistance: play it in a web browser
at your own convenience.
Why the name "Cruz?"
If I had known that surname would become a household word in the last few years (the
Texas politician Ted Cruz), I might have picked a different word. I just didn't want it
to be called "Kroz" because the game, and its engine, were clearly different than the
original inception, even if the gameplay, sound, and overall look-and-feel were similar.
The word "cruz" is of course the Spanish word for "cross." I meant no religious
symbolism; it just formed a convenient talisman-like shape for the individual letters.
Whether the letters spell "C.R.U.Z." or "K.R.O.Z.", it works when put together
graphically.
The other reason for choosing "cruz" was that the game is an exotic adventure in its own
right. Despite the text-mode appearance, Kroz looks and sounds like only itself: Kroz.
The zipping through each unique level of the adventure is a "cruise" of sorts, an
ongoing journey. Perhaps this is a stretch, but it sounds nice, and besides, the name
was not taken.
By the end of 2010, I had created a fully-functional editor, and I had integrated most
of the graphics, gameplay, and sound effects. Only a few "tablet" effects had yet to be
programmed.
Consulting the Author
This section is short, because I didn't.
I did not talk to Scott Miller about this game. But was this really necessary? If a
company decides to dump their source code on others and let the fans run wild, no one
should be surprised that the fans will decide to do what they want. Freedom to code
means freedom to do things that much better, or worse, original concept be damned.
Getting the author's "OK" would have been nice, but it would have proved nothing, and
possibly changed little or nothing.
Others, like John Wilson or Talon-Designs, have made their own versions of Flash Kroz
games. These present a different "take" on Kroz. I present my own "take." If everyone
bent over backwards to please the authors (or other source material inspiration),
nothing unique would ever be created.
Of course, there is another dimension to this: the GNU GPL terms of the source code
release. This prevents source code usage in ways that would limit others' rights in
derivative works. Cruz, in this light, falls into a rather peculiar gray area, with
partially converted metadata, and inspired (but NOT copied) source code. If I wanted to
make money off the Cruz engine, then yes, likely, I would want to talk to the author.
But all of this just gets in the way of the game. In the start of 2011, the main focus
would be that.
Finishing the Job
In 2011, I polished the engine and made it work with the eight episodes (the seven
originals plus the Kingdom re-release). It looked good, it played good, and it sounded
good (unless you couldn't stand the original sound effects).
But that wasn't enough. It goes without saying that if people want a GENUINE Kroz
experience, they have to go back and play it on the original hardware, or in DosBox, if
old IBM PC 5150 or PCJr hardware is too hard to come by. The real point of this
project was not to reproduce, but to enhance.
I wanted to deliver the BEST experience. Consistent timing, smoothed and shortened
sounds, improved graphics, more solid controls, enhanced control modes, better saving,
more accessibility, and numerous other odds and ends that make any game worth playing.
The two major things I offered that the original series never had were Diablo-style
mouse controls, and a musical score. Both of these things I spent a lot of time on in
early 2011, even though it could be argued that they were totally unnecessary, given
that Kroz games never even approached that kind of capability.
Mouse Controls
The main reason Diablo was revolutionary was because it took the classic dungeon-crawler
formula, presented it in a new form, and removed virtually all of the annoyances.
Diablo II removed even more, and in the process, gained even more fans. It all but made
certain that Blizzard would remain A-list for that kind of game for decades. And it all
began with simplifying the controls: click to move, attack, shoot, or do pretty much
anything.
The old Roguelike games took an opposite approach: you can't get through the game
unless you KNOW all the hot keys. Kroz falls somewhere between the two philosophies:
it had Roguelike keyboard controls, but few keys that actually needed to be used. This
makes it easy to simplify.
I have been asked which algorithm I used to implement the "smart" player movement, but
it's totally original. It had to be original, because there were too many independent
variables to consider.
First of all, does the player want to get hurt, or not? Two movement modes, then.
Reveal invisibles? Can't do that. Confusion mist ease? Can't allow that. Boulder
pushing? Tricky, but workable. Sideways levels? Never done before...!
I tweaked the mouse click-to-move controls considerably. Eventually, I was satisfied
with the main overhead levels, but never the sideways levels. Maybe someone will, one
day, invent a better "universal" platformer-based movement control scheme using mouse
clicks, but I think that mode doesn't work all that well for sideways levels. I tried,
of course, but platformers really need arrows, a D-pad, etc.
The Music
Music in a game is something I had wanted to do for some time, but put off doing for
fear of failure. I will be blunt: composing makes me into a first-class nervous wreck.
The soundtrack is okay, but I certainly doubt it would ever be award-worthy. The
reason it was made, to be sure, was that it needed to exist.
People want background music; no two ways about it. In the early 1980s, developers
could get away with just jingles at key points in a game, but not anymore. The game
NEEDED music.
But what kind? How can anyone make "Kroz-sounding" music when Kroz never sounded like
any kind of music?
I decided on some conditions. First, all the tracks would be upbeat, since the gameplay
was also. Second, the music would have many different themes based on context, since
Kroz levels had a wide range of appearances and styles. Third, the music must be simple
(MIDI only), since "too" well-done music would stretch the original concept beyond its
roots, making it seem out-of-place and pretentious.
So, I made the tracks in Anvil Studio: lively, varied, and cheap. Some are more
easygoing, while others are not. Peaceful tracks work well for puzzles and diary
entries. I normally saved the metal track for those levels that have insane numbers of
enemies.
It is disingenuous that the Cruz Corridor Theme got a higher rating on NewGrounds.com
than the game itself did. I doubt, however, that I have missed my true calling in life.
But we'll get to that next.
The Release
I published the game to my own site, naturally. But I was too new to cross-domain
loading issues to fully understand what it meant to dynamically load content from Flash
applications...which meant that the release to NewGrounds.com was a complete disaster.
The title page and music loaded correctly, but none of the levels did. This was despite
external testing that revealed no issues. The low rating came in within the first 10
MINUTES of publishing, before I could frantically identify the problem and engineer a
fix.
Maybe it is beside the point to mention it now, but when it comes to development and
publishing of game content, things haven't changed much over the years in terms of
tolerance for mistakes. It's all "get everything right the first time, including all
things you know, and 100 things you didn't know, or else." The publishing mediums,
technology, and people involved are all different, but it's just as unforgiving as it
was at the beginning.
I continued to refine the game, eventually making the version playable today. The one
missing piece was the "unofficial sequel," the game idea that prompted the entire
project.
The Underground Empire of Cruz
That I would make it as a sequel to the original "Lost Adventures of Kroz" episode was
known from the start. It was massive, truly massive unfinished business on the part of
Scott Miller: the last episode leads into a story, which seems okay as a premise, but
then it doesn't exist all of a sudden. Thanks a lot, Scott. (Note: I am being
tongue-in-cheek.)
Not to be stopped by such hurdles, I made the sequel myself. I had thought up many new
variations on the "Kroz" game world, which moved the game engine farther than what an
8086 could have ever supported. But I still needed to have all the content fit within
the general "look" of the series, or else it would no longer resemble Kroz anymore.
The gameplay mechanics would remain the same, but there were many new items, monster
types, and puzzle possibilities. Designing new levels comes intuitively and quickly, at
first. But this was only part of the effort. There needed to be a story.
I didn't stick -incredibly- true to the story as mentioned in Lost Adventures, but I
figured this would have been pointless anyway. A good story is an entertaining one, and
I absolutely -had- to deliver on that.
In Lost Adventures, there was a new dynamic to the writing: diary entries. While they
advanced the story in that game, something about them was uncomfortable: they all
described the content of the story in the second person, like the narration typical of a
Roguelike game. Fine when describing what is happening NOW, but these were diary
entries--who writes diary entries in the second person!
I modified the diary entries to be in the first person, to occur with somewhat
reasonable frequency (every 10 levels), and to have enough intrinsic entertainment value
that their appearance wouldn't be completely mundane or inconsequential. This last
point was an issue for the diary entries for Lost Adventures: some of them seemed a bit
too "bland."
In comparison, the adventurer's character truly comes out in this new story: an Indiana
Jones-like "rogue archaeologist" motivated by glory, avarice, and sheer cajones. George
Lucas and Steven Spielberg wanted their own character to come across this way in the
movies. For my character, not much was different (maybe a bit more in the avarice
department). He is reckless but endearing, brave but foolhardy, gallant but misguided.
Writing the Kroz World's Magnum Opus
The overall length of the story made for a challenge. It taxed my creativity and
resources to make 160 levels. It is fortunately easy to come up with an idea for a Kroz
level. What isn't so easy is coming up with X number of levels, containing specific-
to-theme items and monsters, at Y difficulty level, sorted in just the right order.
The progression of levels in this game is hopefully much more to the liking of modern
gamers, who want to be told how to play the game before getting thrown into the worst of
the challenges. Lots of "tutorial-like" levels at the start, and very easy (by Kroz
standards) levels in the first 15 or so. But the levels get harder--oh, do they get
harder. For the last 20 or 30 of them, the typical Kroz difficulty really comes out.
By this point, players should have gotten used to it.
Also, that damnable type of screw-you trap that was omnipresent in 1980s games, which is,
"You walk into a random spot and you're dead," is almost nonexistent in The Underground
Empire of Cruz. I want you to play this game, not piss you off. Much.
The new characters in the game had to be considered carefully. Dungeon-crawler games
have a fundamental advantage when it comes to writing: you're allowed to do pretty much
anything, since people can suspend belief to a large extent when dealing with
underground enemies that nobody has ever seen before. You can pull enemies from any
story ever written, and creatures from any time period in existence. But something
about the Kroz story seemed a bit too..."modern." Your character is not a warrior out
of time or a fantasy land, but an explorer, confined to the trappings of civilization
when not adventuring.
But how can one explain the original nondescript Kroz ASCII-character monsters, let
alone any new ones? I imagined that a lost world would account for everything (the
entire series, not just this game), which is an easy enough assumption. But this game
has a twist: we're not talking about the Jurassic or Triassic periods, which most
people seem to focus on when they talk about lost worlds. I went back much further, all
the way to the Permian period. This was handy when telling the story, as well, because
the Permian extinction was the worst in Earth's history. It's easier to imagine that
mass extinctions on that level would wipe out the "Kroz" monsters from the surface, but
not underground.
After such a long trek in the game, I considered having there be a boss fight...but then
I quickly decided against it. Kroz is not a game that really favors boss fights; it's
more like a John Carter novel, representing a raging battle with one man against an
entire army. In any case, exploration was the better part of the story. Without giving
anything away, I'll just say that people should really reflect on what it means to call
just any adventurer a hero.
I also felt that as Kroz was the capstone launch title of Apogee (no Kroz financial
success, no other Apogee games), it deserved some references to several other early
Apogee games. There are nods to Arctic Adventure, Paganitzu, and Blood. I also
threw in a few tributes to other Kroz episodes, Doom I and II, and even the early
Atari trackball game Crystal Castles. I considered also putting in more references to
Apogee's platformers, but most of them didn't seem to work well with the Kroz
screen-at-once level configuration.
The Aftermath
This is where things took a hard turn. In late 2011, the game had been built up to the
full extent I had thought reasonable, and so additional publishing efforts seemed like
the best thing to do. But game developers are human beings--and rarely live in a
vacuum. If you wonder why I didn't try to promote the game further, here is a side you
probably didn't know.
In mid-2011, I had been laid off from my day job. I had always done creative work on
the side as a hobbyist, which includes Cruz (one person, no budget, part-time). But
a lot changed with the new job I got soon afterwards: complete move to new state,
more responsibility, more intellectual fullfillment, and (this is important) very little
spare time.
It is too soon to say I have "retired" from game development; I likely have not. But
when you lose a job, you must re-focus on what matters, and be willing to forgo those
things that matter less. Having talents that are useful, but not respected by one's
employer, leaves a bitter taste in one's mouth.
Publish Cruz on site ________? Why? Indie game development has always been a
sink-or-swim business, and it has gotten more difficult as time has gone on. There are
more players in the business, and the quality expectations continue to go up.
Many game developers have been discouraged over time, not because they are out of ideas
or funding, but because they are temperamental. Much of game development happens not
because of monetary gain as much as simple audacity. If not for the great ideas and the
wherewithal to pull off such hare-brained projects, very few games would be made.
The Fair Deal
The fairest possible deal is what you have now: Cruz is free for as long as I maintain
my own website, but not widely published elsewhere unless someone thinks this is
worthwhile. Because, after all, it is what others think that determines a game's
popularity.
Cruz is free now.
Free forever?
We'll see.
|