Lands of stone

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.

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.

Webmaster: Shihan


Page last changed: Thu Aug 28 22:37:26 BST 2003