User:Crush/trunk login
From The Mana World
trunk client login sequence proposal
- parse local servers.xml
- download and parse server lists from the web mentioned in the local server list
- parse local accounts.xml
- list all servers from the lists and the accounts made for them in a menu. This menu should also contain a button to add new servers to the local servers.xml
- Player can click on a server to create a new account / register an old one
- ask for name
- check if the account exists.
- When yes add it to the list of accounts.
- When no prompt the player if she wants to register it and ask for password and personal information. Allow the server to customize the information it asks for or send a message with registration instructions when registration via the tmw client is not desired (invite only servers, for example)
- or click on an account to log in with it
- Player can click on a server to create a new account / register an old one
- ask for password
- download updates required for selected server
- reload any files replaced by updates
- show character select dialog
server list
Example for local servers.xml:
<servers> <import>http://www.themanaworld.org/servers.xml</import> <import>http://www.gpl.violating.fork.we.dont.like.freewebs.tk/servers.xml</import> <server> <name>Local Server</name> <host>127.0.0.1</host> <port>9601</port> <description>my server</description> </server> </servers>
Example for servers.xml pulled from the web:
<servers> <import>http://www.tmwforkwelike.org/servers.xml</import> <server> <name>The Mana World</name> <host>server.themanaworld.org</host> <port>9601</port> <description>Official server</description> <icon>http://themanaworld.org/tmwlogo_32x32.png</icon> <update>http://updates.themanaworld.org/someupdate.zip</update> <update>http://updates.themanaworld.org/moreupdates.xml</update> </server> </servers>
account file
The account file should map to servers by hostname instead of by servername because servernames can be spoofed easily.
<accounts> <account host="server.themanaworld.org" name="JohnDoe"> <account host="127.0.0.1" name="JohnDoe"> <account host="tmwfork.homeip.net" name="JohnDoe"> </accounts>
Comments
Good start! Of course, some comments:
- I guess the initial servers.xml will have only the first import statement in it?
- yes, the other one us added by the user
- I think recursive import statements are a bit dangereous, maybe this should be thought about a bit more.
- why is it dangerous? to avoid infinite loops? This could be easily avoided by keeping a set of all urls and not following one twice.
- I would prefer if servers.xml and accounts.xml would be part of config.xml.
- no problem.
- I think the import statement should have support for adding mirrors, which are only used when the primary address is failing.
good idea
- I don't think updates should be part of this. They come only after successfull login so the server can point out where to get them or what to get. For now I'd just stick to our current update system and send over the update host from the server after login (I'm already working on that part).
--Bjørn 11:12, 10 November 2008 (CET)