From 3eeae12c498d1a4dbe969462d2ba841f77ee3ccb Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 2 Jan 2011 01:48:38 +0200 Subject: Initial commit. This code based on mana client http://www.gitorious.org/mana/mana and my private repository. --- docs/clientupdates.txt | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 docs/clientupdates.txt (limited to 'docs/clientupdates.txt') diff --git a/docs/clientupdates.txt b/docs/clientupdates.txt new file mode 100644 index 000000000..c5e38d8b8 --- /dev/null +++ b/docs/clientupdates.txt @@ -0,0 +1,46 @@ +-------------------- +CLIENT AUTO-UPDATING +-------------------- + +UPDATING CLIENT DATA + +For future clients we need to develop a way in which they can automatically +update to new data like for example new images, maps or item, being and skill +definitions. Here is described the sequence of actions that could implement +this functionality: + + 1. Client loads initial core data for login screen (always included with + release) + 2. Client logs on + 3. Server sends client list of required packages (maybe with versions) + 4. Client notices he doesn't have a certain package yet or is out of date + 5. Client requests from server .torrent files (or maybe at first just URL) + from where to get the the missing packages + 6. Client downloads them and puts them in "data" directory (~/.mana/data on + Linux, cause that's writable) + 7. Client loads the list of files server mentioned in PhysFS virtual + filesystem + 8. Client tells server that it is up to date + 9. Client could load some common data like item definitions here +10. Server sends client player position and so on, game starts, client loads + and unloads additional data like maps, tilesets, sprites, etc. on demand. + + +UPDATING THE CLIENT BINARY + +Updates to the actual client binary are also being considered, especially on +the Windows operating system. While the plan is to move any specific game data +outside of the binary, sometimes an update to the binary will be required for +being able to play the game. Also especially Windows users are used to +automatic update checks for many applications (possibly because of the lack of +such a feature system-wide). + +On Linux this would require either installing a statically linked binary +(which could still have some issues) or automatically compiling/installing +from source. Neither are very attractive options, and I (Hammerbear) would +prefer not to deal with automatic binary updates on Linux. + +On Windows a binary can't be replaced while it is running, so probably a +separate update tool would need to be written that is run before the client +to check for updates to the client and possibly replaces the client before +running it. -- cgit v1.2.3-60-g2f50