Editing Miniature/Wishlist/Real-time P2P Miniature

Warning: You are not logged in. Your IP address will be recorded in this page's edit history.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
-
==Goal==
+
= Telepathy as a framework for network support in games =
-
Play chess online directly against a contact, without a chess server in between.
+
I described the usecase for realtime P2P in Miniature but tried to keep a general point of view. The intent is to not only have network play via Telepathy working for Miniature, but to make such a Telepathy for games framework available for other games, too (targeting the Maemo platform).
-
To be implemented using [http://en.wikipedia.org/wiki/Telepathy_%28software%29 Telepathy] a framework supported in the Maemo platform. The intent is to not only have network play via Telepathy working for Miniature, but to make such a Telepathy framework available for other games, too (targeting the Maemo platform).
+
== Session negotiation ==
-
 
+
-
==Checklist==
+
-
# Session negotiation
+
-
# Protocol
+
-
# Save/resume
+
-
# Error recovery
+
-
# Calendar integration
+
-
# Status notification
+
-
# Observing games
+
-
 
+
-
==Progress==
+
-
* 2010-01-12: Preparing tp-qt4, patches for building on maemo 5 http://bugs.freedesktop.org/show_bug.cgi?id=26002 http://bugs.freedesktop.org/show_bug.cgi?id=26004
+
-
* 2010-01-11: Preparing scratchbox
+
-
 
+
-
==Mockups==
+
-
 
+
-
==Backstage==
+
-
 
+
-
=== Session negotiation ===
+
How would two peers start a game of chess via network?
How would two peers start a game of chess via network?
# P1 selects contact - Telepathy needs to know which contacts have Miniature installed?
# P1 selects contact - Telepathy needs to know which contacts have Miniature installed?
Line 28: Line 9:
## P2 accepts: P1 receives a message that P2 accepted and both advance to the next screen (for now, that's the chess board), and the actual game start is already handled by the XBoard protocol.
## P2 accepts: P1 receives a message that P2 accepted and both advance to the next screen (for now, that's the chess board), and the actual game start is already handled by the XBoard protocol.
-
=== Protocol ===
+
== Protocol ==
-
There is a [[/P2P-Protocol|P2P-Protocol draft]] made by Michael Hasselmann. Please feel free to comment!
+
-
 
+
It is safe to assume that each game has some own internal protocol to transfer game states. For chess engines, [http://www.gnu.org/software/xboard/engine-intf.html XBoard/WinBoard] is the standard protocol. But we also need to be able to interface with [http://www.freechess.org/Help/AllFiles.html FICS]/[ftp://ftp.chessclub.com/pub/icc/formats/formats.txt ICS].
It is safe to assume that each game has some own internal protocol to transfer game states. For chess engines, [http://www.gnu.org/software/xboard/engine-intf.html XBoard/WinBoard] is the standard protocol. But we also need to be able to interface with [http://www.freechess.org/Help/AllFiles.html FICS]/[ftp://ftp.chessclub.com/pub/icc/formats/formats.txt ICS].
Interestingly enough, most chess bots that play on FICS probably don't implement the network protocol themselves but instead use XBoard. XBoard then interfaces with FICS for them.
Interestingly enough, most chess bots that play on FICS probably don't implement the network protocol themselves but instead use XBoard. XBoard then interfaces with FICS for them.
-
=== Save/resume ===
+
=== FICS details (not strictly 2P2 related) ===
-
Players should be able to save a game and resume it another day. Part of Session negotiation or an own item?
+
The various intro-* help pages for FICS seem to explain everything we'd need ([http://www.freechess.org/Help/HelpFiles/intro_basics.html basics], [http://www.freechess.org/Help/HelpFiles/intro_general.html general], [http://www.freechess.org/Help/HelpFiles/intro_information.html information], [http://www.freechess.org/Help/HelpFiles/intro_moving.html moving], [http://www.freechess.org/Help/HelpFiles/intro_playing.html playing], [http://www.freechess.org/Help/HelpFiles/intro_analysis.html analysis], [http://www.freechess.org/Help/HelpFiles/intro_settings.html settings], [http://www.freechess.org/Help/HelpFiles/intro_talking.html talking]).
-
=== Error recovery ===
+
Playing on FICS would happen via telnet (telnet freechess.org), perhaps Telepathy could also handle the connection management for that. This would reduce the risk to maintain two different code bases in Miniature (P2P, FICS) that eventually do the same. My hope is that Miniature only needs to know about XBoard whereas 2P2/FICS/ICS would all happen in the Telepathy component.
-
When to abort a connection etc.
+
-
=== Calendar integration ===
+
On a side note: It also seems to be common for network games to have those two protocols - one for finding games (a game servers browser of some sort, see [http://www.qtracker.com/]) and one for the actual game. The separation into two truly distinct protocols might rarely exist (again, see FICS).
-
Players should be able to arrange a game at a certain time and see their scheduled chess games in the Maemo calendar. Part of this phase or a phase in its own?
+
-
=== Status notification ===
+
=== Interop ===
-
Tell other users in my contacts list about my chess game.
+
With XBoard it would seem trivial to play chess across application boundaries.
 +
 
 +
== Chat ==
 +
FICS supports chat via its say/tell/kibitz commands. It probably makes more sense to use the exisiting chat capabilities from Telepathy (read: a second channel).
-
=== Observing games ===
+
== Observing ==
Observing games is an important aspect in social gaming. On FICS, observers are known as kibitz. Can that be done with Telepathy, too?
Observing games is an important aspect in social gaming. On FICS, observers are known as kibitz. Can that be done with Telepathy, too?
-
:A use case with a phase on its own? --[[User:qgil|qgil]] 17:37, 11 January 2010 (UTC)
 
-
=== Telepathy tubes Details ===
+
== Status notification ==
-
* Compiling Miniature for maemo (it's really needed for now?)
+
Tell other users in my contacts list about my chess game.
-
* Compiling telepathy-qt4 for maemo (?)
+
-
* Creating session controller, connection server
+
-
* Getting local contact list
+
-
* Creating tubes connection between clients to sending Miniature data's
+
-
[[Category:Miniature]]
+
== Error recovery ==
 +
When to abort a connection etc.

Learn more about Contributing to the wiki.


Please note that all contributions to maemo.org wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see maemo.org wiki:Copyrights for details). Do not submit copyrighted work without permission!


Cancel | Editing help (opens in new window)