Author |
Topic: Game viewer / analysis tool (Read 65715 times) |
|
clojure
Forum Guru
Arimaa player #5004
Gender:
Posts: 207
|
|
Game viewer / analysis tool
« on: Sep 9th, 2010, 9:01pm » |
Quote Modify
|
Here are the current results of this thread. Newest version: http://personal.inet.fi/koti/egaga/arimaa-viewer/arimaa.html Tutorial: http://personal.inet.fi/koti/egaga/arimaa-begin/tutorial.html Video demonstration: http://www.youtube.com/watch?v=raeswA4pzj4 ------------------------------------------ My plan is to introduce a new client for Arimaa that is supposed to fill the gap of a proper game viewer. I hope that I have the energy to build it to be modifiable for others, too. The source code will be in MIT license (permits almost anything). Of course, its usage must be in accordance with Arimaa's license. This post is supposed to give you a glimpse of what might happen; please don't rely on it, because I get stressed about achieving something very easily. Public announcement like this seems to contradictory in that regard but I think speaking of the project will actually relieve me some of the pressure because I can get social confirmation of the ideas and viability. Also, it could be that some of the work can be divided among us. Especially, I need information about server side stuff. Okay, so I see that the main goal is to be able to view an existing game, and try out variations, comment and mark positions/moves, import and export the information in suitable notation. The optional requirements, for environment, should be that the client is usable without active Internet connection, and could work in mobile devices. If this is achieved in manner that it's polished and has user friendly interface, possible customizable one, I think I would be satisfied. Privately I also hope that I document and structure the code properly for future changes. Now, let's get a bit enthusiastic. I saw the thread about shared board, and tadaa, we have a winner idea. I think my analyzer can be done in such fashion that it is usable collaboratively. I have technical questions that have to be verified but I think it won't be too hard (though getting everything right is). One good test for the client would be the One vs. the Mob game. It would have to be easy to offer suggestions, and see even if people are out of sync in real time. It should be easy to see what are new comments etc. But achieving exactly this is not very high priority. I hope this tool would help people to interact with others more, talk about the game, and give educated people possibility to teach. Now that I've read Begining Arimaa, I'm entirely convinced that Arimaa must have a good interactive tool for discussing ideas. There's so much possibilities. From top of my head, I'd say if there was some tagging system, people could browse the archive with combinations like "camel framing", "elephant capture". (Of course, this can be achieved by letting bots to analyze the archive, but you got the point, didn't you? I didn't.). Here's some random list that gives some features and ideas which should be discussed and prioritized. commenting * is there need for authenticating who said what, basically one could trust only game files from arimaa.com ** I say keep it simple: one can edit a gametree position's comment however one will, and save the commented game as a new one * it should be easy to browse only those game positions that have comments, possibly game tree structure has a hint (e.g. icon) ** it's a bit annoying with the current technical solution, which permits only one icon per node (combinations of different icons blows up the amount of work labour) * chatting is freeform and could or could not be saved to the gamefile importing games * verification that the game is properly notated ** a formal description of the notation system * possibly human readable but the recursive variations make it kind of pointless * i think the following works: a mark for opening variation for a move before the mark, e.g. Hb1e [ Hb1w ], and this supports recursiveness. * comment begin and end mark that let's user put anything inside (maybe escape system can be ignored for first) live collaborative analysing * control ** only one has it at a time ** the admin is the only one who can _take away_ the control forcefully ** otherwise it is meant so that people mostly suggest moves as variations and put a comment on that ** people can try variations without others seeing it (so suggestions are commits of variations) ** the one with control accepts variations (for example queue based) ** one can give control to others by clicking control-button next to username * server-side ** node.js (see nodejs.org could be possibly very well suited here. it seems easy to use. unfortunately windows-version needs cygwin ** node.js best thing is that because the client is in javascript, the server can use exactly the same logic code that doesn't deal with ui ** see also socket.io (google) which seems promising for event based ajax/comet/websocket-system bot analyzing * one could connect a bot (could be javascript bot of course, too) which would help the user ** one could give positions for which to find forced goals ** bot could suggest alternative moves for beginners, maybe give textual info why that move is good *** if bot has strategic understanding, that is * could find similar games from archive and suggest to view those So... you still there? Mostly, I'm interested to hear suggestions from user's perspective. Also documents that help me to understand possible integration to Arimaa server would be helpful. As a bonus here's a preview of the current state of the viewer http://www.youtube.com/watch?v=C94r0qh-FSc edit 17.9.2010: You can try out latest version here: http://personal.inet.fi/koti/egaga/arimaa/arimaa.html
|
« Last Edit: Oct 23rd, 2010, 6:37pm by clojure » |
IP Logged |
|
|
|
rbarreira
Forum Guru
Arimaa player #1621
Gender:
Posts: 605
|
|
Re: Game viewer / analysis tool
« Reply #1 on: Sep 10th, 2010, 10:43am » |
Quote Modify
|
First reaction: wow, that is quite a cool and ambitious list. I'm watching the video right now, it looks good!
|
|
IP Logged |
|
|
|
Fritzlein
Forum Guru
Arimaa player #706
Gender:
Posts: 5928
|
|
Re: Game viewer / analysis tool
« Reply #2 on: Sep 10th, 2010, 12:36pm » |
Quote Modify
|
Awesome! If the Arimaa Festival were tomorrow, I would want to use that tool on my computer and share my desktop via Skype. The ability to store comments and sub-variations is like having lecture notes integrated with visuals. In another application, the extensive comments I wrote up during the last Mob game would be obsoleted by your viewer. Next time I will instead create an annotated game file for your viewer and share that. I gave few concrete lines in my commentary, because it is a pain to notate them and a pain to read the notation, but your viewer solves both problems. The Mob itself would have even more use for your viewer to facilitate their discussion. Server integration, bot integration, and multi-user mode would all be very cool, but I know the dangers of imagining too many features and therefore flaming out before completion. You ask for feedback; to that end I would like to start using it in its current state, treat it as an off-line only tool, and make usability suggestions on that front only. Is your notation finalized? Specifically, if I create a annotated game with the current interface, will it still be readable/usable by all future versions? Thank you for undertaking this task. You put your finger on a pressing need of the Arimaa community, and seem well on your way to having addressed it. You rock!
|
|
IP Logged |
|
|
|
clojure
Forum Guru
Arimaa player #5004
Gender:
Posts: 207
|
|
Re: Game viewer / analysis tool
« Reply #3 on: Sep 10th, 2010, 1:32pm » |
Quote Modify
|
Good to hear positive reactions from both of you! The use cases Fritzlein provided are valuable for seeing how to improve the client and how to prioritize the project (maybe divide into milestones or even subprojects). on Sep 10th, 2010, 12:36pm, Fritzlein wrote: I know the dangers of imagining too many features and therefore flaming out before completion. You ask for feedback; to that end I would like to start using it in its current state, treat it as an off-line only tool, and make usability suggestions on that front only. |
| I agree completely. It's not that it isn't viable to do everything I listed, but the problem is how much effort is needed. And if the project is one big clumsy feature-creep, one could get depressed by not seeing clear progress and daunting issues looming in the task list. And it's well-known fact that user feedback is essential in early stages and small development iteration cycles are preferred in this kind of project. Quote:Is your notation finalized? Specifically, if I create a annotated game with the current interface, will it still be readable/usable by all future versions? |
| Good question. I might have said it a bit poorly but the notation was only a suggestion that I hope to get feedback from those that understand notated game files. So there is not yet an implementation but it should be easy to do. If file size issue is not important, I think I could create pretty stable notation. I could for example add an additional mark that could make possible to add unlimited kind of types of information to particular move. Also if I tag the file with the version of the notation system, it should be easy to migrate old files. Newer versions should be as capable as older versions. If not, some data might be lost in file translation between version. (Say, I would drop the support for markings). But I don't see this a real problem. The question for me is what to save in the current system. The notation that I get from Arimaa.com viewer has only the moves even without players' names. Also, should use of time saved (in case it's available somewhere)? Of course, missing data could be retroactively integrated but could be cumbersome. To get first public version available, I think I settle to provide the information I get from clicking 'M' (move list) in Arimaa.com client. Quote: Thank you for undertaking this task. You put your finger on a pressing need of the Arimaa community, and seem well on your way to having addressed it. You rock! |
| My only worry is that I have put myself under expectations that I can't fulfill. Otherwise, I'm happy to help a friendly community. The best way to appreciate is to give feedback, support and let me know if there is some showstopper. Next, I probably will polish the current version to be more user-friendly and also stem up the inner quality. When I get the initial version ready, writing a bot could be a fresh vacation from this. No promises for available date but I hope there is a usable version in time for you to prepare for the October festival [insert a picture of Homer with thinking bubble containing buckets of beer]
|
« Last Edit: Sep 10th, 2010, 1:38pm by clojure » |
IP Logged |
|
|
|
Hippo
Forum Guru
Arimaa player #4450
Gender:
Posts: 883
|
|
Re: Game viewer / analysis tool
« Reply #4 on: Sep 10th, 2010, 2:29pm » |
Quote Modify
|
Wow, when I have read the topic without seeing the video, I was afraid these are just words with nothing behind. The video looks great. Seems the off-line version is almost ready. Fritzlein question for format compatibility is good one, but I suppose it is not crucial as it would not be hard to create format converter. Yes I would vote for project with milestones ... single user one able to import standard notation and save in it's own, as first, multiuser (on-line visible, not necessary simultaneously modified) second, bots third ... I am not sure what are the coloring possibility good for especially when the color is not propagated to following turns. May be just to ilustrate comments. Good job so far, thanks.
|
|
IP Logged |
|
|
|
clojure
Forum Guru
Arimaa player #5004
Gender:
Posts: 207
|
|
Re: Game viewer / analysis tool
« Reply #5 on: Sep 10th, 2010, 2:37pm » |
Quote Modify
|
on Sep 10th, 2010, 2:29pm, Hippo wrote:Wow, when I have read the topic without seeing the video, I was afraid these are just words with nothing behind. |
| I understood the value of it . But even if I hadn't done anything but started the discussion, in the long run, the viewer will be done by someone if the community grows, so having the ideas laid out beforehand is useful. If a proper plan with division of features into task and prioritizing them is done, it will be much nicer for someone to step in from the bushes and done a bit of help. Quote: I am not sure what are the coloring possibility good for especially when the color is not propagated to following turns. May be just to ilustrate comments. |
| I forgot to mention about the marks. I am taking suggestions. I think visually a square, a circle, 'X', will be almost enough with possible addition of first three alphabets A, B, C, and maybe numbers. If the marking in itself doesn't bear any signifigance (just differentiates from others), the same game file can be shown in different visuals for different users with just change of style-file. Thanks for commenting.
|
|
IP Logged |
|
|
|
leo
Forum Guru
Gender:
Posts: 278
|
|
Re: Game viewer / analysis tool
« Reply #6 on: Sep 10th, 2010, 4:37pm » |
Quote Modify
|
Yay! This is good news! I agree with Fritz that things would be best done step by step, first having an offline viewer, then adding other features. But it feels on the right track to become a very complete multi-uses software package that can even interact with existing software such as the bot testing platform. Just so people know: Henrik and I have been discussing privately during the last days about the shared board project. My hope is that your viewer can support multi-users soon so that we can work together on it instead of splitting forces on two projects. Are there any technical details would-be co-developers should know?
|
|
IP Logged |
|
|
|
clojure
Forum Guru
Arimaa player #5004
Gender:
Posts: 207
|
|
Re: Game viewer / analysis tool
« Reply #7 on: Sep 10th, 2010, 5:12pm » |
Quote Modify
|
Yo Leo, Quote: But it feels on the right track to become a very complete multi-uses software package that can even interact with existing software such as the bot testing platform. |
| Yeah, it's exciting. However we must be careful not to try to generalize it too eagerly. That will easily lead to delayed feedback process and sometimes it's hard to make progress when goals are not concrete enough (just like in Arimaa?). Of course, making it too specific is not good at all, either, code-wise especially. Quote: My hope is that your viewer can support multi-users soon so that we can work together on it instead of splitting forces on two projects. |
| It's my hope too, but this is something that I don't want to promise, since I have little experience on this but my incidental "research" is promising. Quote: Are there any technical details would-be co-developers should know? |
| I want to emphasize that this is not only a coding project. If there is artist or web layout designer etc, I'm glad to have that kind of experience to help. But those are not priority issues. But about technical details, I already suggested that we should investigate whether http://nodejs.org and http://socket.io/ would be the way to go. The viewer is fully implemented in Javascript, including the game logic. This makes possible that when collaborative server side software is made, it can use exactly the same code for validating moves and saving the modified tree. It's a nice benefit, especially considering future changes to model logic. I think I will write up some general plan in a public repository which has task management system and wiki. Then I'll see what other people could do. I definitely would like help in setuping the server side code to be run somewhere, at least. Leo, if you are very eager to get collaborative thing going, you can see whether you can setup a demo locally where you have node.js running that sends back and forth json data with socket.io. If you get that done, the rest should be relatively easy for me to integrate to the client. One hurdle is whether we need the same authentication as in Arimaa.com; if so, then there must be way for server to ask from Arimaa.com whether given user's credentials are ok. Is there url that returns plain game data in some notation when given the game id? Probably is?
|
|
IP Logged |
|
|
|
leo
Forum Guru
Gender:
Posts: 278
|
|
Re: Game viewer / analysis tool
« Reply #8 on: Sep 10th, 2010, 5:38pm » |
Quote Modify
|
Thanks! I'm stuck with a server with no websockets and no node.js or the like, but I do plan to investigate the thing, and I think a few developers in the Arimaa community have a similar interest. Let's give them some time to chime in. Omar can give all the information you need about the server side questions. Regarding the game logs, there's a log retriever in the Games section of the main web site. The direct url is http://arimaa.com/arimaa/games/showGame.cgi . If you want *all* game data such as timestamps and chat, you need to download the game archives in the Download section. I'll write more feedback in the days to come. Thank you for undertaking that task!
|
|
IP Logged |
|
|
|
clojure
Forum Guru
Arimaa player #5004
Gender:
Posts: 207
|
|
Re: Game viewer / analysis tool
« Reply #10 on: Sep 10th, 2010, 5:50pm » |
Quote Modify
|
on Sep 10th, 2010, 5:41pm, rbarreira wrote: Excellent! Is there other hidden query available? For example to retrieve certain player's (id) game ids?
|
|
IP Logged |
|
|
|
rbarreira
Forum Guru
Arimaa player #1621
Gender:
Posts: 605
|
|
Re: Game viewer / analysis tool
« Reply #11 on: Sep 10th, 2010, 5:52pm » |
Quote Modify
|
on Sep 10th, 2010, 5:50pm, clojure wrote: Excellent! Is there other hidden query available? For example to retrieve certain player's (id) game ids? |
| Not that I know of, but maybe omar knows or can implement it if possible.
|
|
IP Logged |
|
|
|
leo
Forum Guru
Gender:
Posts: 278
|
|
Re: Game viewer / analysis tool
« Reply #12 on: Sep 10th, 2010, 6:08pm » |
Quote Modify
|
Oops, I gave the wrong URL. Thank you Ricardo for fixing it! I don't think full data base query is implemented as of now but you can experiment with the archive files locally if needed for the moment. On some browsers, offline ajax can retrieve local files.
|
|
IP Logged |
|
|
|
Janzert
Forum Guru
Arimaa player #247
Gender:
Posts: 1016
|
|
Re: Game viewer / analysis tool
« Reply #13 on: Sep 10th, 2010, 7:01pm » |
Quote Modify
|
Note that despite the url's name above the format returned is pretty distant from pgn. Omar had also created created the ability to get the full game information (everything that is included in the database as far as I know) in JSON, YAML and possibly a few other formats. Unfortunately that was at http://arimaa.com/arimaa/games/agn.cgi which appears to be broken now. Multiple game data in a very raw format is also available from http://arimaa.com/arimaa/games/db.cgi. This is mostly targeted for a tool that wants to keep up to date with all the games from the site. Also somewhere around the site or possibly in a forum thread is at least a partial spec for the client interface to the gameroom. So anything you can do through the gameroom is possible. Janzert
|
« Last Edit: Sep 10th, 2010, 7:04pm by Janzert » |
IP Logged |
|
|
|
clojure
Forum Guru
Arimaa player #5004
Gender:
Posts: 207
|
|
Re: Game viewer / analysis tool
« Reply #14 on: Sep 10th, 2010, 7:10pm » |
Quote Modify
|
on Sep 10th, 2010, 7:01pm, Janzert wrote:Omar had also created created the ability to get the full game information (everything that is included in the database as far as I know) in JSON, YAML and possibly a few other formats. Unfortunately that was at http://arimaa.com/arimaa/games/agn.cgi which appears to be broken now. |
| Useful information, thank you. It would be great if there would be all current information about how to retrieve data for future tool makers, e.g. in wiki.
|
|
IP Logged |
|
|
|
|