From a9f8968dfbf68d8b81f5da4accf1ed1070e66315 Mon Sep 17 00:00:00 2001 From: Correl Roush Date: Mon, 17 Jul 2017 22:52:39 -0400 Subject: [PATCH] Start documenting server behavior --- docs/server.org | 65 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 docs/server.org diff --git a/docs/server.org b/docs/server.org new file mode 100644 index 0000000..295afa3 --- /dev/null +++ b/docs/server.org @@ -0,0 +1,65 @@ +#+TITLE: Game Server +#+STARTUP: indent +* Starting a Game +#+BEGIN_SRC plantuml :file gameserver.svg + actor Client + participant Server + participant Game + participant Lobby + + Client -> Server : {hello, Name} + Server --> Lobby : add(Client, Name) + Lobby -> Client : {lobby, Name, Members} + Client -> Lobby : newGame + create Game + Lobby --> Game : new(Name) + Lobby --> Game : add(Client) + Game -> Client : {game, State} + + == Game created, awaiting players == + + loop 3 times + Lobby <-] : join(GameName) + Lobby --> Game : add(Client) + Game ->] : {game, State} + Game -> Client : {game, State} + end + + == Game started == + + Game -> Client : {game, State} + Game ->] : {game, State} x 3 +#+END_SRC + +#+RESULTS: +[[file:gameserver.svg]] +* Player Actions + +#+BEGIN_SRC plantuml :file server-actions.svg + actor Client + participant Server + + == Player action required == + + Game -> Client : {choose, Actions} + group Player Action Validated + Client -> Game : {action, Action} + Game -> Client : ok + Game ->] : {action, Player, Action} x 3 + else Invalid action + Client -> Game : {action, Action} + Game -> Client : {error, Msg} + else Timeout + Game -> Client : {error, timeout} + Game ->] : {action, Player, timeout} x 3 + end + + == Game loop continues == + + Game -> Client : {game, State} + Game ->] : {game, State} x 3 + +#+END_SRC + +#+RESULTS: +[[file:server-actions.svg]]