|
Technical Information
Flint Server - V1.xx
For the technical heads out there, here is some information about the
server code used in Flint.
The admin on this game played mordor style muds as their preferred base,
starting on Isengard and Chaos. At the time we started this project
Isengard had been static for a while and being on the wrong side of the
atlantic, we normally suffered bad lag, so we decided to grow our own.
The code available at the time was version 4.06 which we decided to use
and immediately started modifying. Flint 1.00 was born! When this page
was last reviewd the server had reached version 1.32. The code has come
a long way but if you want to get a base mordor system then look at
Mordor V4.06 by Brooke Paul and
Brett Vickers.
Testing
The server has been tested extensively, and many, many modifications
made. The primary aims of any changes are to make the system more
reliable, to add new features to the game, to rationalise and simplify
the code. We do not add anything unless it meets these criteria and
has passed soak testing in a test system. Even so problems can occur
and we will resolve them as soon as is possible.
Major Differences from Mordor
We are not sure how different things are as each of the muds seem to
develop similar features over time, partially as players play on more
than one server and offer suggestions up on each one. We know that the
following have changed :
- Astral spell class - offensive spells that can hit groups of
creatures, players or both, some have additional effects.
- Player Managed clans - you create, amend, join etc, we just
watch the fun.
- Skill System - Many abilities are now skills and it is possible
to learn new ones. Rigid class structures are dissolving.
- Alignment and luck are not centred on 0 alignment, different
classes point to different places in the scales.
- Dark-Knights are a new class
- Many new spells
- Player killing is not allowed below level 6, this was done to
encourage beginners. There is no such thing as Lawful or Chaotic,
all players on reaching level 6 can be attacked by other players
that are level 6 or above, this was done because the authors of
"Lands of Stone" feel that it should only be one game being played,
not two sub-games.
- Outlaw status makes for an interesting life.
- Background world events are massively enriched, not just traps
There is a lot, lot more but those are some of the more obvious parts.
Flint Server - V2.xx
This is an all new design. The only code that has been inherited from
anywhere is GPL networking level code with respect to handling and
authenticating player connections.
The concept was influenced heavily by LambdaMOO, and some
investigative effort was made on whether a Mordor style MUD could be
created in
LambdaMOO.
We decided that there were too many difficulties to overcome and wiped
the slate clean.
Flint2 is a completely object orientated server, with every base
object declared as code in the database - the rooms, players,
monsters, objects, classes, skills, ... ARE ALL handled
by code in the database, the only things handled by the engine are
networking, memory management, tasks and interpreting the Flint
language.
Why is this "A Good Thing (tm)"? Well, it allows the scenario
designer to override behaviours for specific instances or subclasses of
an object - a monster could have a new ability, without having to
modify the existing code in any way. The scenario can be made to work
in a more realistic way, without bloating a complicated engine written
in "C".
Some examples of what could be done are:
- Rivers can be made active, with boats moving through the locations
up and down stream.
- Rooms can be given windows, allowing players to be aware of what
is happening outside. Room broadcast events can pass through
windows, so players can be told if something happens outside
without needing to look.
- Special exits are easier to implement, such as one that only allows
passage if the character is carrying a specific item, or a revolving
door, which sometimes spins a character around and places them back
outside! Other variations are random teleports, doors
that open for a fixed time when something happens elsewhere,
escalators, elevators and falling through several locations.
- Traps can be made more interesting, such as weight triggered ones
where they only fire if too much weight is in the room, like one
heavily loaded character, or several following each other - a funny
application of this trap by a player in to drop something fairly heavy
in the room, go elsewhere and await a victim to follow. Other trap
designs could include timed ones, such as rooms filling with water or
squashing walls.
- "Perms" could be made much more interesting, wandering around a
fixed area or responding to a characters behaviour in more
interactive ways - the engine design allows whole "AI-style"
programs to be created here.
The above examples are only to illustrate the engine philosophy, not
necessarily representing the content of the scenario. Originally we had
hoped to port to flint2 by now, but that was hopelessly optimistic. Other
commitments have meant that development is seriously slower than we would
otherwise had hoped for. To this end we are continuing to develop the
Flint 1.xx series engine in parallel and implement any features we deem
necessary.
|