|
Jacko - What got you into
programming, and into RCT programming in particular?
Dr J - I'm
an Electrical Engineer. I have a Master's degree. I've
worked for a few companies and also had my own company.
Most of my professional work has not involved programming;
although one project involved writing ~27,000 lines of
code to control a piece of semiconductor processing
equipment. Since I've become a doctor, I don't get to use
my engineering skills much. I program for recreation and
to maintain some connection to my former career. I'll
discuss my history with RCT programming later on.
Jacko - What are you a doctor in?
Dr J - "Family
Practice" - which means I've spent three years in
Residency training after medical school. I treat children
and adults. I'm also trained in Obstetrics but that is a
"legally dangerous" field in the US so I don't
do that..
Jacko - How did you get into RCT?
Dr J - My first year
of Residency was from July '98 to June 99. It involved 36
hour shifts followed by mere 12 hour days...repeated for
what seemed like forever. When the new "class"
started in July 99, I continued to stay up all night with
them to teach them. So... it was about late September 99
before I had the luxury to do something as simple as
"go shopping". Naturally, I went to a computer
store. I saw "RollerCoaster Tycoon" and saw that
it was written by Chris Sawyer - who's "Transport
Tycoon" was a great game. I was a bit leery that a
roller coaster game would be fun. But since it was written
by Sawyer, I figured it would be worth the money
Jacko - What do you like best about RCT?
Dr J - The biggest
limitation of Transport Tycoon was the inability to have
stacked bridges. It simply was not a three dimensional
game. RCT is a true three dimensional game. The display is
a simple isometric view - but the internal data structure
is 3D. That lets you build the wonderfully tangled
coasters that everybody loves. I enjoy building; perhaps
because I'm an Engineer. RCT makes it easy to build
complicated structures such as coasters. The other great
feature of RCT is the little guests. Without them, the
game would be boring
Jacko - What do you dislike about RCT?
Dr J - I don't like
the scenario unlocking scheme (you have to finish one
before you get access to another). I don't like the fact
that you have to wait, and wait, and wait, after you
complete the objectives for a given scenario. And... I
don't like that there is no provision for adding objects
to the game
Jacko - Do you still have a great interest in RCT?
Dr J - As far as
playing the game, I like to build very small parks with
just a few coasters. My main interest is the coasters. I
actually spend more time programming utilities for the
game than playing the game itself. I've played several
other games lately; but when I finish, they go into
storage. None of them inspire me like RCT does. So, as
long as there are other folks interested in RCT utilities,
I'll stay interested in RCT.
Jacko - Would you call yourself a Coaster Enthusiast?
Dr J - I enjoy
coasters but rarely get the chance to go to an amusement
park. I don't get too excited about the steel behemoths -
I don't feel any sense of "danger". But woodies
- with all the creaking and shaking, and knowing that the
nails get looser each time - are still fun.
Jacko - What is your favourite theme park?
Dr J - I feel
deprived. The only park I've gone to in adult life is
Astroworld in Houston, Texas - and I haven't even been
since they were bought out by Six Flags. About 80% of the
park is different from when I last went there
Jacko - What's your favourite coaster?
Dr J - By default, I
have to say the "Texas Cyclone" at Astroworld.
Jacko - What programs/utilities have you made for
RCT; as I bet there are a lot we don't know about?
Dr J - Here are my RCT
related programs currently on my computer:
- RCTRLEdecode
- LL2CF
- RCTgraphicsInspector
- RCTexplorer
- RCTsaveGameModifier
- TD4changer
- TP4toBMP
- TD4viewer
- TD4mirror
- TD4speedup
- TD4viewer
- RCTtracks (never released)
- MazeViewer (never completed)
- TestTrn (for testing only)
- RCTsounds (never completed)
- RCTmapGenerator (not completed)
- SavedGameConverter (never completed)
- ScenarioManager (under development)
In addition, I've made several routines for special
applications. I put them in my personal version of the
RCTRLEdecode program. Then I delete them when I decide to
try something else.
Also, there have been several people who started
projects but did not finish them or release them. Some of
them contacted me at some point to share some information
about their projects. One really interesting program was
called RCT Phantom Builder. It would build a designated
track one piece at a time within the game. It was really
fun to watch a coaster being built that way.
Unfortunately, he never released it and I no longer have a
copy of his prototype. There was also a rather involved
flat map editor that was never finished.
Jacko - What inspired you to make all those RCT
add-ons?
Dr J - The game itself
is the main inspiration. Sawyer made an
"elegant" game. It's natural for an engineer to
be attracted to a well designed product. When I started
playing RCT, My first thought was: "wow! I wish I had
made this!" I also was drawn to the idea of a 3D
viewer for the parks. To even consider beginning on such a
thing, however, would require extensive knowledge of the
save game files. I decided to look at the track files
first, since they are much simpler. I saw that the TD4
files were encoded. I decided to look on the internet to
see if there was any information already available. I
looked around a little bit and came across RCTOA (RCT
Online America) and really liked that sight. I went to the
message board (first time I ever went to a message board)
and decided to post a question about the file format. I
picked the name "Doctor J", figuring that would
keep me anonymous.
Luke Harless answered that the TD4 file format was
described at his site. He had a copy of a newsgroup post
that described the format except for the track piece codes
and the checksum. I set about determining the track piece
codes and got some help from Jonathon Wilson who had done
some similar work. I began working on the checksum by
building a maximum length coaster which had a brake
section at the end. I could change the brake speed
settings and thereby change individual bits of the last
few bytes of the data. By observing the affect that had on
the checksum, I was eventually able to determine the
checksum method. I couldn't believe that the game used
such an odd method so I went back to the internet and
searched the newsgroups. Turns out that someone had
already posted the checksum method. That left me wishing
that there was a single web site that had all the known
information about the RCT file formats. Also, about this
time, several folks were pestering Henry Winkelstein to
publish his information on the file structures. When he
declined, that left me thinking that perhaps I would make
a site with the information that I had. I organized my
information into html files.
To inspect the files, I made a couple of programs. The
RCTtracks program (never released) allowed me to finalize
the information about the track files. The RCTRLEdecode
program is the "mother" of most of my other
programs. Since the RCT save files are encoded, general
purpose hex editors are of no use. This program performs
the decoding (and encoding) and allows simple hex editing.
It is a lousy program compared to the general purpose hex
editors - but it serves my purposes well! The overwhelming
majority of the information at my site was determined with
this program.
As I began building up more information, it became
possible to start making some programs which would use
that information. Some of the utilities were
"inspired" as I learned about the file
structure. For example: the ability to make roads, or
repair vandalized items. Once I learned how to do those
things, it was natural to make a utility which allowed
others to do the same thing. Some of the utilities were
inspired by wish lists. The mirror utility is a direct
result of someone posting a wish list which included that
idea. As soon as I read it, I thought "hey, that's an
interesting idea - and not too difficult to
implement!" Some of the items were the result of
direct requests. One person asked me if it was possible to
convert TP4 files to BMP files. I wanted to do some
programming with palettes so I went ahead and made that
program..
Jacko - Do you ever have any help when programming,
or are you on your own
Dr J - All of the code
is 100% mine. That's not the entire story when it comes to
programming, however. The simpler utilities could be
completely tested/debugged by me. The more complex
programs require multiple users to test them. Also,
suggestions and requests are important in shaping the more
complex programs. For example, I had thought about a file
management utility but did not think it would be useful; I
also saw that someone else had made a type of file utility
for RCT. However, "ALF" at Tycoon Planet then
asked me for a more elaborate file utility. He assured me
that it would be desirable. I was skeptical, but he kept
persuading me; he also tested the first crude versions and
provided valuable feedback. So...RCTexplorer is 100% coded
by me alone; but it would not exist if not for
"ALF". Version 3 of the Save Game Modifier (SGM)
is the result of a lot of people encouraging me to work on
it. In particular, "XuXus Petals" was invaluable
in the early testing. As my utilities get more elaborate,
more people are involved in testing and making
suggestions.
Jacko - What is your favorite program/utility that
you've made?
Dr J - This is
difficult to answer. I certainly use RCTRLEdecode
extensively. SGM is the most useful and most involved
(12,000 lines of code so far... and climbing). I believe
TD4mirror has been the most popular. But, for historical
reasons, I have the fondest regard for the TD4speedUp
program. It's the least useful program now - due to
special code Sawyer added to LL to detect its use. And,
it's the least useful program overall (after you've
crashed a few coasters, the thrill wears off). But it is
the program that "launched" a wave of more
elaborate utilities and trainers. TD4changer soon followed
as did the ride modification features of Techno's
trainers; and, eventually, DragonsIOA trainers.
Jacko - How long did it take you to make the SGM?
Dr J - Fortunately, I
don't keep track of the time I waste - err...make that
"spend" - on programming. Version 1 of the SGM
just did a few things. The real effort came in determining
enough of the file structure to make those functions
possible. It used an internal data structure for the game
map similar to that used in RCT. Version 2 of the SGM used
a true three dimensional array for the game map. That made
it easier to carry out some of the new functions. For
version 3, about half of the development time was spent
trying to work out a reasonable user interface for setting
the research items. I think it took about 6 weeks to get
it into "release" condition. Sometimes I'll
spend a whole weekend and every weeknight on programming.
Sometimes, I don't get to program anything for a week.
Obviously, the SGM is not the kind of program that can be
hacked out in a couple of hours. Many of the subcomponents
were already written for earlier programs. The random
terrain generator was already written and tested. Even so,
it took several weeks to finish the program.
Jacko - Have you ever thought about programming your
own rollercoaster game?
Dr J - That was a big
part of my original inspiration for getting involved with
RCT programming. But, in reality, it would take many
months to make a roller coaster simulator and two years or
more (full time) to make a decent theme park game. I just
don't have the time to try such a thing.
Jacko - What other games have you made
programs/patches for?
Dr J - None, really. I
mostly play strategy games. I play them through and when I
start to replay them, they are often boring. So I'll hack
something in the save game to give myself more money,
ammunition, etc. But those are "one-time"
modifications; not real programs that could be published.
One of the first games I messed around with was the
ancient "Adventure" game. I wanted to decode the
message strings to get clues. It used a conditional 3-to-2
byte compression via reduced character set and also had
rotating (sequential) XOR keys. That was harder to crack
than any of the encryptions used in RCT
Jacko - Do you have any advice to those who may want
to program their own utilities for RCT and other games?
Dr J - You have to be
a programmer to program. You don't have to be a
professional programmer - but you have to know something
about programming. I've encountered lots of folks who
don't know what a compiler is, but want to make a trainer
(in an hour or two) for RCT! Sure, you can use something
like "Trainer Maker Kit" to make a simple
utility. No, you can't make a better program that
DragonsIOA trainer without knowing why there are letters
mixed with numbers in hexadecimal notation! Know your
abilities; know what tools are available.
Start simple and build upon it. The current version of
SGM has about 12,000 lines of code. I spent several
tedious months collecting information about the file
structures in order to make the various utilities. I
published that information so that others could benefit as
well. If you want to program for a particular game, check
the internet to see what information is available.
There are two general approaches to game utilities:
"Memory Trainers" and "Save Game
Modifiers". Memory trainers are the most convenient
for users but they are the most difficult to implement.
And they are prone to crashing the game. Save game
modifiers are not as convenient and they cannot make as
many changes in the game. But they are very stable.
A last bit of advice… be aware of the legal issues.
Obviously, you should not engage in software piracy of any
form..
Jacko - What are your top 5 games of all time?
Dr J - You asked about
"all time"… so I'll start by going back >20
years…
- Zork : The first really successful game for personal
computers; and, after an ill advised bet… the most
popular cloned game ("Dungeon" on DecNet).
- SimCity : The first really good
"construction" game that I played.
- Xcom UFO : It was so much fun directing the
individual soldiers that it actually hurt when one of
them died.
- Transport Tycoon : I bought it from a bargain bin
for $5; best value I ever got! It’s the closest
thing to my notion of a perfect construction game.
- RollerCoaster Tycoon : I guess I don't have to say
anything about this one!
Jacko - What do you think of other
"tycoon" games? Especially "Zoo Tycoon?
Dr J - I would
say that adding "Tycoon" to a game is a cheap
rip-off. But that’s how RollerCoaster Tycoon got its
name! Obviously, you should not buy a game based on its
title. Look at the screenshots, read reviews on the
internet. And spend only your budgeted amount on games.
I received a preview disc of Zoo Tycoon. It crashed so
often I quickly quit trying to play it. The release
version is stable and the game is fun. Its more relaxing
than RCT. But there are still problems with game-play. It
also does not perform well with large zoos. If those
problems could be improved, it would be a nice game. They
released a tool for making your own animals and scenery
objects. That’s a great benefit. But the tool may be too
complex for most users. I haven't tried the tool. In fact,
I've put the game away for now. Its no fun to build a zoo
knowing that when it gets large, the game won't run
properly and I'll have to abandon it. Of course, if you
have a very powerful computer, it supposedly runs ok. I
have a 450 MHz machine. (hmmm… those old games were fun
with 10MHz processors and less than one MB of ram total.)
Jacko - What do you think of the current state of RCT and
its community?
Dr J - Clearly the
glory days of RCT have passed. I look around the message
boards and only a few folks remain from the days when I
started playing. Its amazing that the community is still
as strong as it is. There has been no community
support from the creator or distributor of the game. In
fact, Sawyer has worked against the fans in various ways
with the "anti-cheat" code in the game. The
distributor abandoned the official web site ages ago -
while the game was selling very well!
Jacko - What's your opinion on the official
site?
Dr J - Its a very
disappointing situation. It doesn't take much effort or
brains to update a site once a year - but that doesn't
happen there. The only good thing about the official site
is that it forces fans to go looking for fan-created
sites. And that keeps the community active.
Jacko - What RCT sites do you visit the most?
Dr J - It seems like I
never have the time to look at many sites. Plus, I don't
need to go looking for utilities. :)
RCTOA was my favorite site - but it died over a year ago. RCTUK
has been a long standing favorite - and hosts my
site! Danimation
has been popular but I rarely post there. Lately, I spend
most of my time at the RCT
Station boards. I spend a lot of time IM'ing with ALF
of TycoonPlanet.
I visit other sites, but not on a regular basis.
Jacko - What do you think of RCT Inc?
Dr J - It has a nice
layout. It is pleasant to look at. Good color schemes. A
friendly atmosphere. And, most importantly, no "bogus
cheats" like some web pages have. (When I see those,
I don't go back to that web page.)
Jacko - Do you have any messages for Chris
Sawyer if he ever reads this
Dr J - I would like
for Chris to understand that the very few people (such as
Henry and myself) who have made serious utilities for RCT
are experienced programmers themselves… not teenage
hackers with acne problems. We made these programs because
we admire the game and appreciate its elegance. We are
merely adding a few features that have been requested by
the consumers. We are trying to make the game even more
fun!
Jacko - What are you currently working on
Dr J - I'm making some
improvements to the SGM. Such as: a simple map viewer for
editing the park entry locations and boundaries; a
"scenario manager" for assigning which files
will be available as scenarios within the game; and, of
course, the ability to edit and save SC4 scenario files. I
have a routine for building coasters through terrain (and
automatically removing trees in the way) but it needs a
lot more work to make the terrain modifications
"correctly". I've played around with a 3D park
display - but the approach (software only) I tried was
much too slow. I don't know what else I'll do.
Jacko - Any final messages for everyone out
there
Dr J - Keep on having
fun with RollerCoaster Tycoon!!!
|