This project can be divided into two parts:
I will have obviously have to implement the system first before implementing
the game that uses the system. So why am I spending time doing this? Here
are the reasons (in approximate priority order):
Making a general system for tile-based internet roleplaying
Using that system to make a great fantasy-style roleplaying world
I like Java and object oriented design, and want to get good at it
I love gaming and roleplaying
I haven't found any other (good) graphical MUDs of this sort, except Ultima
Online. But Ultima Online is a game - not a generic gaming system.
I want to design a "next generation" internet roleplaying system, taking
advantage of the high level and ease of Java. I think I can make a good
MUD in short time compared to if I used C or C++
Creating and running a virtual world is very interesting from a philosophical
and psychological point of view - kind of like a social experiment. What
kind of people will play this MUD? How will they act?
Perhaps I could sell it (or make money from it somehow... who knows?),
but that's not a primary goal.
I expect to learn a lot from synchronizing a distributed software development
Learn about client/server communications and distributed systems
These are the fundamental game goals upon which I'm basing most design
No mindless killing of everthing in sight just to
In fact, there probably won't be any levels at all - or classes for
that matter. The "level" of a character will instead be defined by his
physical attributes (which will improve), skills, political influence,
economic power, and social respect.
Promote interaction between players
I'm aiming for a game with a proper social, political, and economic
environment in which players will want to interact in more ways than just
ganging up to fight bigger monsters.
Flexible and consistent code design
The program design should be as general and flexible as possible. Almost
anything should be modifyable without really disturbing other parts of
the programs. In that respect, the objected oriented nature of Java is
Players should be able to build and modify the world
Won't this lead to chaos? Well, that depends on the social constraints
that are added to the world (which is, of course, done last). One possibility
is, for example, allowing players to buy land in a feudalistic-type society,
and making building an expensive business. In the strictest case, of course,
it is always possible to resort having PCs apply for "building rights"
which is moderated by the "Gods" (ie us system designers and admins).
I also plan to allow players to define new types of objects, for example
a magic cursed bag that, when opened, summons the nearest dragon or perhaps
turns all weapons with a certain radius into tulips...
Self-regulated economy and resource system
If long swords are too cheap, many players will buy them and the prices
will go up. I plan to implement a supply/demand mechanism that automatically
regulates the price and availability of goods. Also I want to automate
resource management - so that the total number of items of different sort
available in the world is reasonably stable. It's no fun when one
type of object (like a dagger) completely litters a world just because
every new characters gets one and they never disappear. The same
goes for money and inflation control.
A world that is (reasonably) independent of it's
NPCs (computer controlled creatures) should have personalities and
plans that affect it's actions during different circumstances. Players
should be able to hire NPCs, buy NPC slaves (or mercenaries), and even
lead small NPC armies. One should be able to hire and NPC to, for example,
run around and look for someone in particular, etc. All this depends, of
course, on what the cost is (in terms of server capacity) of having the
server keeping track of lots of NPCs with wills of their own...
Long term dreams
So far this project has worked better than I ever expected (and I'm the
optimistic type so I had high expectations...). So now I'm starting
to believe that this will, in fact turn into a generic tile-based game
development system that game programmers can use to create fun games of
this sort without having to do the dirty work (and there is A LOT of dirty
work to be done, believe me...).
The idea is that the potential game developer downloads the White Orb
core classes in a single file called WhiteOrb.jar. This includes
everything you need, but no "world". Then the developer creates his
own Actions, Events, Items, Activities, NPC personalites, Icons, etc (although
we may provide a "world starter kit" for developer who want to start from
a default set of items, actions, and stuff).
When the world is complete, he starts the whole thing on a server somewhere
and invites players to join. Vóila.
BUT, here's where the really fun part starts. Let's say
a number of these White Orb servers are running on the net. Even
though they may be completely different worlds and will look completely
different, they are all based on the same core (we will make sure the core
can't be modified). That means they are basically compatible - so
I can make a portal in my fantasy world that leads to your science fiction
world! Basically this means that White Orb will be one big distributed
system. There are of course numerous complications to deal with,
but nothing that we shouldn't be able to deal with. As far as I know
there are currently no games that allow you to move characters between
different game systems, so maybe this will be a first!
But, as I stated above, these are long term dreams. First of all
we're just aiming to make a fun game that people will enjoy playing :o)