Page 1 of 1

Need feedback on protocol for quest logs

Posted: 26 Mar 2009, 03:25
by bishop
Hey All,

I'm Scott from the SFU group that's been tinkering with making a quest manager. Our professor advised us to write a protocol for communicating quest-log information between the client and server so that we have an reference document which is independent of the different servers and clients.

It's a short document and we were hoping some of the devs might have time to glance over it and give us some feedback before we present it to our class. Anyone got time?

cheers,
Bishop

Re: Need feedback on protocol for quest logs

Posted: 27 Mar 2009, 16:37
by AnonDuck
Even after installing openoffice I cannot view this document. Plaintext or HTML is the preferred format and will likely get you quicker responses.

Re: Need feedback on protocol for quest logs

Posted: 27 Mar 2009, 20:42
by Cotillion
MadCamel wrote:Even after installing openoffice I cannot view this document. Plaintext or HTML is the preferred format and will likely get you quicker responses.

Re: Need feedback on protocol for quest logs

Posted: 27 Mar 2009, 22:13
by octalot
It would be easier to understand with an example. In this case showing all the events and messages for Sandra's collect-5-items quest seems a good one.

Section 4.3 - having a server full of players who've apparently completed their quests, how does the admin clean up?

What if a developer wanted to:
add per-quest progress bars for the collect-X-items quests?
make quests sortable by difficulty?
make quests sortable by location?
add a better display of subquests?

I'd suggest you find a World Of Warcraft player who'll let you watch them play, and look at the quest system in that. Not to implement all of it, but to consider which parts of it you would want, and which design decisions would enable you to eventually expand to that.

Re: Need feedback on protocol for quest logs

Posted: 29 Mar 2009, 21:32
by AnonDuck
Some suggestions -

The way things are currently done, most static data is stored on the client side and retrieved via the update system. This is how I would distribute the quest information including: Quest ID, Description, # of steps to complete, and anything else. This could be done in a single file ie quests.xml and integrated in to the client.

This way, the server would only have to keep track of the quest ID and completion status. It could communicate these two values to the client on connect and whenever a quest progresses.

The client could then cross-reference the ID and completion status in it's quests.xml and display more information to the user.

Re: Need feedback on protocol for quest logs

Posted: 09 Apr 2009, 04:54
by bishop
Thanks everyone for your responses. I've revised the protocol on the assumption that quest information will instead be stored client-side and only the quest completion status will be stored on the server and referenced by a quest ID.
The new version of the protocol (v0.1) is attached, this time as just a text file.

Re: Need feedback on protocol for quest logs

Posted: 09 Apr 2009, 12:13
by AnonDuck
Better :) I would suggest dropping the part where the server can send a string to the client for quest completion status, and instead using the quest completion status variable.

This pares it down so all the server has to keep track of is ID, and completion status. The server should always have to do as little work as possible to get the job done securely!

Quests are ran by scripts, the scripts can go QuestCompletionStatus(id, 3) for example, and the client would know that 3 means "Killed Mouboo, cooked steak, fed old man steak". In practice, you will probably want to use bitmasks with this variable (A concept from C), this will allow you to more easily store nonlinear information in it, and even happens to be supported by the scripting language used for NPCs...

Hope this helps.

Do you intend on actually implementing the quest status system?

Re: Need feedback on protocol for quest logs

Posted: 09 Apr 2009, 12:36
by Jaxad0127
It would be nice if the server could send multiple quests status' in a single packet. eAthena does this with variable length packets and the number being sent can be determined from the packet length.