On Thu, Mar 31, 2011 at 01:27:44PM -0400, Henry Cipolla wrote:

> I think that if we agree on a JSON format that contains all the data the
> player can know and we make it completely client agnostic then it will be
> a lot easier to do things such as make an Android client or a web client
> or even bots.  Or make viewing games interactive, so watchers can look at
> inventory, explored levels, etc.  To that end, I think even putting code
> in show_map() is too specific.
> 
> What I propose we do is:
> 1) Define a very strict format to describe game state

It's already there: map_knowledge, mon_info.  These just need to be turned
into JSON, which, save for enums, is pretty straightforward.  You'd need
some data relevant to the player as well -- basically anything that is
provided by the clua interface.

> 2) When the game state is changed (near the end of world_reacts() possibly?)
> query all the different state objects to fill out that JSON blob and send it
> over

It would be easy to send only the difference between the old blob and the
new one.  It's a tree-based structure, they can be compared quite
efficiently.

> 3) Build an extremely light parser for that which can pass the data back to
> the gui client or a website.

That's why there should be 1-1 equivalence between map_knowledge and the JSON
blob, so you can put it back in.  And parsing JSON is not exactly rocket
surgery.

-- 
1KB             // Microsoft corollary to Hanlon's razor:
                //      Never attribute to stupidity what can be
                //      adequately explained by malice.

------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself; 
WebMatrix provides all the features you need to develop and 
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
_______________________________________________
Crawl-ref-discuss mailing list
Crawl-ref-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/crawl-ref-discuss

Reply via email to