diff --git a/Game Concept Document.docx b/Game Concept Document.docx new file mode 100644 index 0000000..d1b8738 Binary files /dev/null and b/Game Concept Document.docx differ diff --git a/README.md b/README.md new file mode 100644 index 0000000..637fdc5 --- /dev/null +++ b/README.md @@ -0,0 +1,15 @@ +# Tortuga Documentation + +Tortuga is released under the [zlib license](http://en.wikipedia.org/wiki/Zlib_License). + +Copyright (c) 2013 Kayne Ruse + +This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. + + 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. + + 3. This notice may not be removed or altered from any source distribution. diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..a9a6978 --- /dev/null +++ b/TODO.md @@ -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 diff --git a/architecture.md b/architecture.md new file mode 100644 index 0000000..e69de29 diff --git a/client.md b/client.md new file mode 100644 index 0000000..e69de29 diff --git a/networking outline.md b/networking outline.md new file mode 100644 index 0000000..8d11c89 --- /dev/null +++ b/networking outline.md @@ -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 diff --git a/notes.md b/notes.md new file mode 100644 index 0000000..5a6f16c --- /dev/null +++ b/notes.md @@ -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 +* ??? + diff --git a/screenshots/hello net.png b/screenshots/hello net.png new file mode 100644 index 0000000..f69a5f5 Binary files /dev/null and b/screenshots/hello net.png differ diff --git a/screenshots/select your poison.png b/screenshots/select your poison.png new file mode 100644 index 0000000..303b3df Binary files /dev/null and b/screenshots/select your poison.png differ diff --git a/screenshots/the beatles.png b/screenshots/the beatles.png new file mode 100644 index 0000000..e168583 Binary files /dev/null and b/screenshots/the beatles.png differ diff --git a/server.md b/server.md new file mode 100644 index 0000000..e69de29