[CF-Devel] Adding improvments
crossfire-devel-admin at archives.real-time.com
crossfire-devel-admin at archives.real-time.com
Sat Jul 26 00:23:51 CDT 2003
Going to catch up with this thread quickly.
First, if you are going to extend existing protocol commands, please just add
a version number to the protocol command (eg, drawinfo1, query1, map3, etc)
instead of adding 'ext' to an existing command.
Adding a number makes it clearer that this is a revision to an existing
command. It is also more forward thinking. Suppose that extmessage command
needs to be expanded down the road. Do you call it extextmessage?
A few specific notes:
Using any map command to send text information is probably going to be trickier
than you think, and not much a gain. Your probably just better off having the
drawinfo2 command take a coordinate offset.
Presuming you want to draw this on the map, you need special handling anyways
(the information has to last longer than 1 tick on the map display, for example,
so the client has to store this away and some how age it). This is apparantly
how Gros has done it, so that is good there.
Note that type should be well defined. A long time back, I put something into
the TODO file that messsages should be sent by type of message, and not by color
like it is done now. Ideally, this is a reasonable number of types based on
what the player may want to see, but not so unique that it would be impossible
for players to be able to control the different message characters. Eg, if
there are 20 message types, not too unreasonable for a player to set up their
client with different fonts and color for each message type. However, if there
are 300 message types, that obviously isn't feasible.
One big thing to be added would be handling for the client to know if it is
something that should be displayed in a fixed width font (eg, like a shop menu
or spell listing).
Long back I mentioned that the entire character creation system should be
redone. One can probably search back in the past for that, but IMO, the ideal
thing would be to give player some number of points to distribute between stats,
let them choose race, class, etc. When player has all done this, client then
sends something like 'newplayer
<name><password><stat1><stat2>...<class><race><any other info>
This then allows the cient to have a nice interface for creating characters.
And eliminates a whole mss of the ask/reply stuff.
Animations for the map: This has been discussed before. Large stretches of
ocean is worst case scenario. However, a few things to think about:
1) animation speed can be variable for the same object/face. Thus, two orcs on
a map could be moving at different speeds, and thus be animated differently.
This potentially means that for every image on the map that is animated, you are
sending some number of bytes to contain the animation speed.
2) There are some images/archetypes that should be locked to the same animation
sequence (water), and others that should vary (eg, monsters). You don't want
the monsters to animate all at the same time - that looks a bit cheesy.
3) No one has done an analysis to really see how much map side animations would
save in bandwidth. Even for things like burning hands, it is a very transient
operation, so if the overhead to send information about animation for it is more
than the cost of animations, you don't gain a whole bunch
As for why there are different ST_ states: This is because the code has to
know somehow who is expecting that input. If you just have a ST_INPUT state,
you then need somehow to know 'does this go to a script? Go to the players
login name? etc."
The best thing to add to the client would be a dialogue box that always takes
anything entered in it and returns it as 'say' command. Thus, communication is
then just a matter of typing into that box and hitting return.
I do agree that dialogues for some things could be better. However, I'd say
this is more a feature on the client, eg, the client could have a special option
of 'type stuff into this box, and I'll send it to the server as a 'cast marking
rune of <whatever was entered>'
_______________________________________________
crossfire-devel mailing list
crossfire-devel at lists.real-time.com
https://mailman.real-time.com/mailman/listinfo/crossfire-devel
More information about the crossfire
mailing list