Imported documentation from the main branch

Kayne Ruse
2013-06-06 02:56:09 +10:00
parent 99e4cfa0c9
commit fe1869420b
6 changed files with 104 additions and 0 deletions
+10
@@ -0,0 +1,10 @@
* Each client needs to know about each other client now.
* Have multiple players moving around the server at the same time
* keep the docs up to date!!!!!
* Player's internals a weird.
* clarify some of the names in the server project
* reimplement the server's time system.
* Overall, I think the server needs restructuring
* zero the packet data?
* Update the networking outline
* I should really use "index" instead of "ID" for naming things
+22
@@ -0,0 +1,22 @@
Networking protocol:
//connections
ping:
ping the server
pong:
a response to a ping
join request:
from client to server, this is the initial contact the client makes. it carries all of the client's information, like the handle, avatar, etc.
join confirm:
the response to a join request, this makes the client enter the game proper, and carries the client's playerID.
disconnect:
from either the client or server, this officially ends communications between the two programs
//information control
synchronize:
update both the server and client
new player:
a new player enters the world. carries all player info
delete player:
a player leaves the world, carries the player ID
movement:
this is the initial position and motion of a player in the world. it is relayed to all clients, and progresses using delta progression
+72
@@ -0,0 +1,72 @@
## Notes
The server holds the ultimate version of the world. The server has to handle log ons, logoffs, and world simulation. To do this, the server needs some sort of database system. I'd like to use something that is quick and efficient, which means that I'd probably end up using SQLite or something similar.
Any vanilla game client should be able to connect to any vanilla game server, regardless of how much that server has been customized. If a server's code has been modified, I might need scripts or something.
Monster AI/other world effects should be controlled with customizable scripts.
Should the server program have a UI? Or at least allow some sort of input at the terminal?
## Server Outline
This is what a vanilla server needs to handle
* server name
* player cap
* maintaining the client list
* persistent player data
#### Game Resources
* resource distribution
* map data
* scripts
* tilesets
* sprites
* sound effects
* music
#### World Maps
* each game map is paged, giving free movement
* overworld (world backbone)
* dungeons (instanced?)
* player owned pirate ships
* other possible accessible locations
* collidable flags
#### Game Events
* Misc events
* Player combat is instanced, but players can drop in/out from the map
#### Active Entities
all entities have a unique, unsigned index
* players
* pirate ships
* monster intelligence
* loot drops
* combat instances
#### Player Information:
* username
* handle
* avatar index
* player index
* inventory
* equipment
* friends list
* banned
#### Item Information:
* item index
* name
#### Equipment
* ???