Hi Tom.
Interesting.
While i take the points about interface, ability to update the game easily
and make it ultiplatform, my concern with the game being entirely online and
multiplayer is that it avoides the traps of focusing on pvp, guild wars,
power gaming and grinding which seem to dominate so many other web games.
How about hosting the game online and using that system, but having no
player interaction or comparison the way Sryth used to be.
I'm sorry, i was just very much looking forward to a really detailed story
driven single player game, ---- which actually doesn't exist on the internet
at the moment from what I can determine.
If people want pvp or party adventuring, ---- there are muds and rpgs
aplenty which offer those things.
Beware the Grue!
dark.
----- Original Message -----
From: "Thomas Ward" <[email protected]>
To: <[email protected]>
Sent: Thursday, July 16, 2009 12:24 AM
Subject: [Audyssey] Creating Roll Playing Games From Scratch
Creating Roll Playing Games
From Scratch
by Thomas Ward
Jul. 15, 2009
Like many modern game players I enjoy a well designed roll playing game
complete with grand adventures, lots of magic weapons, the ability to
learn and train new skills, a large game world to explore, etc. However,
it never occurred to me how much time and effort goes into creating a well
designed roll playing game from scratch. Most of the big name roll playing
games we know of such as Dungeons and Dragons, Heroes Might and Magic, and
final Fantasy have entire teams of people devoted to those projects.
Therefore it should come as no surprise why they are so addictive and
interesting to play. At times big name roll playing games such as Dungeons
and Dragons can seam near endless when it comes to new content and
adventures. Yet, what would it take to create a custom roll playing game
from scratch?
Well, I have discovered firsthand that creating a roll playing game from
scratch is no easy matter. At first I assumed that creating my own
Dungeons and Dragons style roll playing game should be fairly easy. After
all, i had lots of story ideas floating around in my mind, and it should
be easy enough to use them as a starting point for my custom roll playing
game. Plus, I have more than ten years experience as a software developer,
and I figured if I could create a FPS game engine, a side-scroller, a
racing game, etc writing a roll playing game adventure system would be a
piece of cake. That idea quickly was dispelled when I actually realized
what was involved in creating a full fledged roll playing adventure
system.
First, thing I discovered as a game developer I had to create a rather
comprehensive story for the game. Actually, more like several short
stories held together in the context of the main story. I had to put
considerable thought into the who, what, when, where, why, and how aspects
to draft the main story. Like any good story it requires supporting
people, places, and things of interest. That ends up being a very large
task in and of itself.
The next step was to convert the game's story and adventures into a paper
and pen game book. This was easy enough to do. Rather than create custom
rules, character classes, etc I decided to just go ahead and borrow the
official Dungeons and Dragons character classes, rules, spells, etc. This
saved a considerable amount of time and energy since the Dungeons and
Dragons rules are widely used by similar roll playing games anyway.
Finally, I was ready for the hard part. Converting the paper and pen game
into some kind of computer game. As I mentioned above at first I thought
this would be fairly straightforward and easy. As it turned out I grossly
under estimated the complexity involved in creating a fairly in depth roll
playing game. A roll playing game such as Sryth certainly is no small feet
for a single developer.
The first decision was weather or not to create the game as an internet
based game or as a stand alone game. Both options have their own
advantages and disadvantages. A lot depends on weather the developer
intends the game to support player verses player style game play, wishes
to use a central game server, store items and stats in a database, use
Sapi support, etc.
With a stand alone game it is certainly much easier to add sound effects,
background music, Sapi speech support, and other such features to the
game. Not to mention as a stand alone game it would not require a constant
high speed internet connection to play. However, by the same token that
would exclude features such as online adventure parties and player verses
player style game play which are quite popular in current online roll
playing games.
If I decided to build an internet based roll playing game I would then
have to decide between a web based game book style adventure such as
Sryth, or design the game as a mud. Given the two options a web based game
book style adventure would certainly seam more preferable as it would be
more user friendly. All of the options or choices could be standard
buttons, links, and would be easier to design using perl or php. While I
believe I could create a mud server from scratch it seams as though it
would be a lot more work, and I've never especially liked typing long
commands into mud style games anyway. Therefore I decided it definitely
wouldn't be a mud.
The next thing I had to do was decide on a programming language. Since I
wasn't overly concerned with multiplayer online style game play I chose to
create a rough draft of my ideas in C++. I used SDL for sound and input
support, and use Sapi for speaking menus, reading the adventure
introductions, etc. As it turned out again I grossly underestimated what I
needed to create a game world of any size.
My first problem was finding enough sounds to make the game sound
realistic. I needed sounds for swords, spears, daggers, knives, bow and
arrows, and various other weapons. Then, there were the sounds for each
enemy creature I planned in using in the game such as goblins, orcs,
skeletons, zombies, dragons, etc. Basically, I needed more sounds than I
could afford or find on the internet for free. If I were to actually pay
for all of the sounds I wanted or needed to use it could get extremely
expensive.
The second major issue I encountered was a logistical one. Almost
immediately after starting to convert my roll playing game to C++ I
realized I needed a realistic way to manage hundreds of pieces of weapons,
armor, and various other items found throughout the game world as well as
track the stats for each. That isn't exactly something that can be done
manually. If I took all of the time to code each piece of weapon or armor
into the game itself it would take months to complete. There are certainly
easier ways to do it.
Ordinarily, the way a programmer would handle this sort of logistical
problem is by storing all of the game's items in a database. I could
create a new table in the database for each store in the game listing all
of the items with their prices, stats, and quality. Then, have the game
query the database for that information as needed. However, most people
don't own and use databases such as MySQL, MS SQL, Postgresql, Oracle,
etc. So given the likelihood such software isn't even installed on the end
users computer that would require them to install that before even using
the game.
The alternative method is to create what is called a flat database.
Basically, it is a text file containing items separated by commas. While
this method would work it is, in a sense, rather crude. It lacks the ease
and power of using a real database system such as MySQL. Therefore I
didn't feel it was a practical solution either.
It soon became clear to me that there was a definite advantage in creating
an internet based game rather than a stand alone game for this reason.
With a commercial web account, such as mine, I have full access to an
online MySQL database. All I would need to do is use a php script to
access the MySQL database. Plus, if the game were online the end user's
would never have to download and install dependencies for the game to run.
All they would need is a web browser to play.
The third issue I encountered was in designing the user interface.
In a web based game like Sryth the game screen is divided into three
sections. One displays the action, the second displays the player's stats,
and the third contains a table of buttons to click on. However, since I
wasn't using a web page to display my game user interface I had to perform
the same thing by using hot keys, menus, and presenting the information to
the user via Sapi. As it turned out this was a serious pain to do. it
wasn't so much difficult as extremely time consuming. If I had 10,000 game
screens I'd have to program keyboard input, text messages, etc for all
10,000 game screens. With a web interface such as Sryth the task is much
easier by far since all of the interaction with the game is performed
through a web browser.
With all of this in mind I decided to put my ideas to the test. I
installed MySQL on my Linux PC, configured Apache web server, and wrote a
test application in php. Then, I created a simple MySQL database to keep
track of stats, items, and various other things. As it turned out the test
was a success. I was able to enter a shop and buy, sell, and trade weapons
and armor with relative ease. On a larger scale it would be very simple to
expand upon the entire store idea by simply adding more items to the
database and have the php script list them. The user interface problem was
solved since I only had to write the text messages in a script and I
didn't have to worry about presenting the same text via speech, all input
was handled by the web browser itself, and of course I could show both the
store and the items in my inventory at the same time on the screen.
In addition, since php is designed to be extremely modular it would make
expanding and building upon a game much easier. Instead of having to add
hundreds of new functions to a traditional C++ application, recompiling
it, redistributing it, etc none of that is necessary with a game written
in php. With a game written in php all the developer would really have to
do is create new php scripts and link them to the main game. This is
obviously a much easier solution than the alternative.
Finally, there is the issue of supporting operating systems besides
Windows. With traditional C++, Java, and .NET applications there is
always the issue of trying to develop a game using common libraries
between Linux, Windows, and Mac. That is certainly something easier said
than done. With a web based game, written in php, that problem is mute. If
you have a web browser like Safari, Firefox, or Internet Explorer you can
play regardless of what operating system you might be using at the time.
Which is another plus for web based gaming.
IN the end based on my research I have discovered designing a custom roll
playing adventure system along the lines of Dungeons and Dragons, Sryth,
etc is very challenging. In my opinion the only realistic way to do it is
to create an online web interface written in php, use a MySQL database for
tracking stats and items, and you can take advantage of html to present
your game's story with a high degree of professional presentation. Not
only will your roll playing game be accessible to sighted and blind game
players alike it will be fully multiplatform as well. It is easier to
maintain, and its online nature allows you to create either a single
player or multiplayer style roll playing game environment. It is even
possible to stream midi music in the background if you wish to supply
background music in your own custom roll playing games. This is what I
believe is what it takes to create a custom roll playing game from
scratch.
---
Gamers mailing list __ [email protected]
If you want to leave the list, send E-mail to
[email protected].
You can make changes or update your subscription via the web, at
http://audyssey.org/mailman/listinfo/gamers_audyssey.org.
All messages are archived and can be searched and read at
http://www.mail-archive.com/[email protected].
If you have any questions or concerns regarding the management of the
list,
please send E-mail to [email protected].
---
Gamers mailing list __ [email protected]
If you want to leave the list, send E-mail to [email protected].
You can make changes or update your subscription via the web, at
http://audyssey.org/mailman/listinfo/gamers_audyssey.org.
All messages are archived and can be searched and read at
http://www.mail-archive.com/[email protected].
If you have any questions or concerns regarding the management of the list,
please send E-mail to [email protected].