Tiamat is an open source software framework to support the development of role-playing games
(RPGs). Tiamat contains specifications, code, libraries, and utilities
geared to provide the backbone of an RPG. This is not the same thing as a game engine or RPG
creator but may evolve into one over time. Tiamat is intended to be flexible enough that it can
provide the building blocks for many different styles of RPGs.
I've been interested in game programming for about as long as I can remember. Ever since I owned my first
Apple
][+ clone, I've been working on games whenever I've had the time. It
started with copying code from Family Computer magazine and writing some crude
choose-your-own-adventures from scratch. Over the years I'd get better
computers but also have much less time to pursue writing games. My
primary reason for getting into computer programming in the first place was to write games.
Somewhere along the way it became a college major and a job instead of a
hobby.
The extent of my
formal game industry experience is an
appearance as a background character in the less than memorable
Street
Fighter the Movie arcade game. I suppose I could just go work for a game
company, I've had offers.
The only thing holding me back is the thought of
toiling
85 hours a week
to crank out yet-another-game-based-on-the-half-life-or-quake-2-engine
(YAGBOTHLOQ2E for short) in time for the holidays. What I'd really like
to do is work on RPGs. So rather than go work for a game company and
hope one day I can squirm my way to being a game designer, I
decided to set-off on writing an RPG on my own.
In 1997 I learned Visual Basic (VB) over spring break. I started
working on a fan game based on the Ys Series. It didn't get very far. VB
turned out to be a poor language to write a game like that in. Although
I did make a wicked Pong clone that I hid as an Easter egg in some
overpriced EDI processing software. At that time VB programmers were in high demand so all the work with VB
paid off. I ended up working at a now-defunct software company while
still going for my Bachelor's degree.
I finished my Bachelor's degree in the fall of 1999 and started planning how to write an RPG in
early 2000. I initially used
Phantasy Star II as the model for how I wanted the game to look and
feel, minus the annoying random battles that haunt the entire Phantasy
Star series. I didn't make a ton of progress on this idea either. Over the
next few years I was working full-time, going to graduate school at
night, buying a house, getting married, having a kid, and so on. I
managed to write down a lot of the things I wanted to do but didn't get
a real design started.
In the spring of 2004 I finished my Master's in Computer
Science and decided to focus my newly found free time on writing an
RPG. I sat down one day and starting authoring a small demo based on the
ideas I assembled. It was a useful exercise in that it
got me to really think about how to break down a full-blown RPG into a
series of smaller components (the same way I've been writing
professional software for years). I started writing down requirements
and design for each of these components and was slowly assembling the building
blocks of an RPG. I took everything I had and began a design document
for what I was now calling an "RPG Framework". The name
"Tiamat" was something I'd been batting around in my head for
a while, maybe as far back as 1996. I just thought it would be a cool
name to use somewhere in a game title. As this "RPG Framework"
idea progressed I decided that Tiamat would be a perfect name for the
project. In Babylonian mythology, Tiamat was the dragon that gave birth
to the other gods. I can only
hope this project will give birth to many
RPGs. That might be a little overly optimistic. For now, Tiamat is
mostly a labor of love.
The Tiamat Framework now consists of four things: a specification
document, class implementations, utilities, and demos. It's being done
in an iterative process. I start with an idea for a demo, identify the components it
requires, write specifications for the new components, implement them,
and create editors or other tools as needed. The design for Tiamat is still largely
inspired by the original Phantasy Star series, although many other games have
influenced the long-term plans. The games I aim to write are somewhere
between an 8 and 16-bit console game. I'm not big into flashy effects in
RPGs, just a solid storyline and hours of adventure.
Now, I still have the job, wife, kid, and house so I don't have a ton of time
to commit to working on Tiamat. My personal goal is work 8-10 hours a
week on it, less than graduate school used to eat up. As a result I'll
likely be putting out many incremental
development releases of
Tiamat and not many
stable ones. Don't let the word
"stable" throw you off; an "unstable" release of
Tiamat just means "buggy" not "it'll crash your
system". All the implementation plans for Tiamat are in
"managed code" environments such as Java and eventually C#.
Even an "unstable" release won't be able to negatively impact
your system.
Tiamat is an open source project
so contribution is always welcome. Hey, while we're on the topic of contribution.. for some reason I can't
program graphics to save my life. In all the demos you'll notice a lot
of flicker and other graphical annoyances. I would be thrilled if
someone could fix that up. I'm also looking for people who can
contribute original graphics and sound for future demos and
full-blown games.