[crossfire] player character creation/login redo.

Mark Wedel mwedel at sonic.net
Fri Jun 30 22:50:22 CDT 2006


  Looking at the 2.0 TODO list:
http://wiki.metalforge.net/doku.php/dev_todo:cf2.0
(as an aside, I'd hope to make the 2.0 release by end of year, which might limit 
it to the 'High' and perhaps some 'medium' items on the list)

  One of the high priority items is character creation todo.  That's been on the 
list for a long time, and I think is one of the best things to change for 
initial player experience.

  Below is basically my general outline.  It doesn't go into the technical 
details much, but general flow.

  First, the client would have to negotiate that it uses the new login method - 
probably via setup.

  Client would prompt player for both name and password in a nice pop up box, 
which should display the motd and any other pre login information.  The client 
would then send this information to the server in one packet.

  The server could then return 1 of 3 results:
1) login success, and loads the player up, starts playing with previously saved 
password.
2) invalid password - retry login.
3) no such player - go to new password creation method (ask player if he really 
wants to create a new character, confirm password).

  For new players, I see a pop up window with all the selections (stat 
adjustment, race & class selection).  The client could get the available races 
and classes via requestinfo commands.

  For stats, I personally like the idea of giving the player X number of points 
to distribute between his stats.  This removes the need to keep re-rolling until 
you get a good character, and after all, the client could be hacked to basically 
do that - re-roll until it gets the best character possible.  The number of 
points would just be an option in the settings file, so easy to tune. 
(alternatively, stats could be rolled by the server, but instead of anything 
within a stat total range be valid, should always return characters that match 
the best).

  The player then makes his selections.  When all done, they click done, and the 
client sends the selection back to the server (player is an elf fighter, stats 
...).  Play then begins at what is considered the starting map.

  I think this would provide the best experience, and at least for the gtkv2 
client, wouldn't be hard to do that window in glade.  I think this is much 
better than having an in-game mechanism of moving between maps, etc.

  For compatibility, the existing method can continue to be used for a while 
(until at least it seems to have been long enough that clients that support this 
new interface are widely used).  This new method isn't requiring any information 
that isn't currently asked for - it is just providing a nicer interface (for 
that matter, if using the old logic, maybe you won't have a choice but to roll 
stats).

  This also has to me the following long term benefits:

1) the classes will need to be made fully stand along archetypes (if not 
already).  I'm not sure if the current hall of selection map has customized 
archetypes.

2) All new player information is dynamically generated (stats from settings 
file, race from archetypes (same as right now), class from archetypes (not map). 
  This means that new classes or other customizations can be easily made without 
needing to update maps.

3) This should lead to the eventual removal of the ST_ input states - shouldn't 
ever be a need for the server to have to wait for input of a specific nature for 
the client - the server can know if a player is logged in or not, but otherwise, 
it just gets a bulk of data (there might need to be the addition of some new 
Ns_.. socket states, but I'd rather have state data in only 1 place, not 2).





More information about the crossfire mailing list