Posted by: Xalthorn | September 10, 2007

Mondestia ‘shell’ design

The main part of the Mondestia website is a shell or framework into which other parts (environments) of the site fit into.  Each environment, although functionally separate may well be linked to other environments and the main shell must always be accessible so that the visitor can easily move around the site.

Privilege system

The site uses a privilege system to control access to each environment and is granular enough to cover individual aspects of each one.

Default privileges exist for guest users so that they can browse the site and see if it is something they are interested in.  Each game will have an overview and screenshots available to guests.

Registered users will have more privileges.  The ability to play the games, post on forums, send messages to each other, and so on.  They have a login username and in-game avatar username which must be different.  The login username and password is used to log into the site and from that point on, every reference to the player will be by their avatar username.  This will help to keep their account secure as not only does someone have to find their password, they also have to find their username.

In the case of games that require characters to be created, the characters will be listed along with the player’s avatar name.  This will allow players to identify their friends easily.

Trust

The site doesn’t trust any user input and assumes it is malicous or an attempt to hack the site.  The games not only check input for code bombs but also ensure that the input is appropriate for the players position or state in the game.  This is to prevent other attempts to cheat in games.

Technology

To make the games as compatible as possible, the site will be using the following technologies.

  • PHP
  • MySQL
  • JavaScript
  • CSS

Presentation

Content, Structure, and Presentation are strictly separated.  This not only reduces the size of the PHP code, but also removes any need to hard code HTML into the PHP.  It also allows for the look and feel of the site to be changed without changing any code.

There is a default layout style for the site, but each registered user can select a different style from a range of provided options.

Local Processing

The only processing that will be done by the client using JavaScript is the building of a page, the initial checking of form data, and any other things that a dumb terminal would be expected to do.  In no way is the client allowed to process game data and throw a result back to the server.

Form data is checked again by the server.  The client checks will be very basic and usually checking field lengths or missing fields. 

Navigation

Navigation menus are dynamically built based on the user privileges, the current environment, and the state in that environment.

Environment states

Each environment must remember its state.  This state, whether reading messages, fighting in combat, or whatever needs to be preserved so that it can survive a browser close, environment change, or logout.

When the player returns to the environment it will remember exactly where it was.  There is no excuse for having to make a player navigate through screens to simply get back to where they were.

In multiplayer games, the design will remember the state that the player was in, but will check that the state is still valid when the player returns.  For example, in multiplayer games where combat is involved, if the player leaves the game whilst in the middle of combat, they may not be alive when they return.

This is because in single player games, the game always waits for the player to progress.  In multiplayer games the game cannot wait indefinitely for a given player unless all players have agreed to a strict turn based game.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Categories

%d bloggers like this: