summaryrefslogtreecommitdiff
path: root/docs/server.txt
diff options
context:
space:
mode:
Diffstat (limited to 'docs/server.txt')
-rw-r--r--docs/server.txt172
1 files changed, 0 insertions, 172 deletions
diff --git a/docs/server.txt b/docs/server.txt
deleted file mode 100644
index e2d506af..00000000
--- a/docs/server.txt
+++ /dev/null
@@ -1,172 +0,0 @@
------------------------------
-THE MANA WORLD SERVER PROJECT
------------------------------
-
-1. INTRODUCTION
-2. MAP
-3. OBJECT
-4. BEING
-5. ITEM
-6. CHAT
-7. AUTHENTICATION
-
-
-1. INTRODUCTION
-
-First let me show you a screen shot of TMW. From left to right it shows a
-player, an enemy, a tree and an apple. In this document the player and enemy
-will go as beings, and the tree and apple will go as objects. Finally, the
-thing they're on is a map.
-
- o O
- O : A Player <> : A monster | : A tree o : An Apple.
-
- ----------------- Fig. 1) screen shot of TMW showing three kind of objects
- | |
- | o O | MAP
- | O <> |o | OBJECT
- | | BEING
- -----------------
-
-Each of these types has its own set of properties and things it can do in the
-game. A number of messages in the protocol can be grouped on these types. We'll
-go through each of them separately. Objects can be picked up and change into
-items, we'll mention those too.
-
-The effects of using objects or items, talking to beings and attacking enemies
-are all calculated server side. It is interesting to think about approaches
-that allow a scripting language to be used in these areas.
-
-In the messages described the following data types are being used:
-
- A - char array (null terminated)
- C - char (1 byte)
- S - short (2 bytes)
- L - long (4 bytes)
-
-
-2. MAP
-
-- Stored as XML file (.tmx)
-- Refers to tile set images and potentially to music file(s) and objects
-- Beings can change from one map to another (probably using warp and spawn
- points)
-
-
-3. OBJECT
-
-- Most properties specified in XML file
-- Mostly static (at least doesn't move, but can change)
-- Has collision properties, which can change
-- Can be an item (allowing picking it up)
-- Can be animated and change animation (max 256 animations)
-- Can potentially be activated/used (door, chest, portal)
-
- Server to client:
-
- MSG_NEW_OBJECT { L objectTypeId, L objectId, L x, L y }
- MSG_REMOVE_OBJECT { L objectId }
- MSG_CHANGE_OBJECT { L objectId, L x, L y, C currAnim, S flags }
-
- Client to server:
-
- MSG_PICKUP { L beingId, L objectId }
- MSG_USE_OBJECT { L beingId, L objectId }
-
-
-4. BEING
-
-- Most properties specified in XML file.
-- Dynamic (can walk around)
-- Character animation, but could still show arbitrary animations.
-- Can equip stuff, which could change appearance (max 256 equipment slots)
-- Has inventory
-- Connects to questing system
-- Can fight other beings
-- Dispositions: friendly, neutral, enemy
-- Can be shop
-- Can be talked to, potentially to gain quests
-- Controlled either by player or AI, AI could be either server or client side.
-- Carries money
-- Can be associated with a client
-
- Server to client:
-
- MSG_NEW_BEING { L beingTypeId, L beingId, L clientId, L x, L y }
- MSG_REMOVE_BEING { L beingId }
- MSG_INVENTORY_UPD { L beingId, L itemTypeId, L amount }
- MSG_EQUIPMENT_UPD { L beingId, L itemTypeId, C slot }
- MSG_ATTACK { L beingId, L targetId, L damage, C damType }
- MSG_PATH { L beingId, A path }
-
- Client to server:
-
- MSG_TARGET { L beingId, L targetId }
- MSG_WALK { L beingId, L x, L y }
- MSG_START_TRADE { L beingId, L shopBeingId }
- MSG_START_TALK { L beingId, L talkBeingId }
- MSG_REQ_TRADE { L beingId, L playerBeingId }
-
-More messages are needed for the talking with NPCs and trading with shops and
-other players.
-
-
-5. ITEM
-
-- Properties specified in XML file
-- Beings can carry them around
-- Can be traded between beings
-- Can potentially be equipped (in a certain slot)
-- Can potentially be used
-
- Client to server:
-
- MSG_USE_ITEM { L beingId, L itemTypeId }
- MSG_EQUIP { L beingId, L itemTypeId, C slot }
-
-
-6. CHAT
-
-There are several channels in the chat system:
-
- Area - To players around you (default)
- Region - To players on the same map (default)
- Global - To all players in the game (default)
- Team - To players in the same team (when in team)
- Guild - To players in the same guild (when in guild)
-
-In addition to these there are also system messages, and announcements made
-by moderators / administrators.
-
- Server to client:
-
- MSG_CHAT { L beingId, A name, A message, S channel }
- MSG_SYSTEM { A message }
- MSG_ANNOUNCEMENT { A message }
-
- Client to server:
-
- MSG_SAY { L beingId, A message, S channel }
- MSG_ANNOUNCE { A message }
-
-
-7. AUTHENTICATION
-
-Of course before the client can send/receive any of this, he needs to login to
-the server. The idea is that the client will send login info to the server,
-and that the server either denies the request (giving a reason) or sends the
-client a client id. The client later uses the client id to determine which
-being(s) are to be controlled.
-
- Server to client:
-
- MSG_ACCEPT_GAME { L clientId } // Accepted into the game
- MSG_ACCEPT_CREATE { } // Accepted into character creation
- MSG_DENY { A reason }
-
- Client to server:
-
- MSG_LOGIN { A name, A password }
- MSG_CHAR_CREATE { ... }
-
-The character creation process will need to be thought out.