aboutsummaryrefslogtreecommitdiff
path: root/proto/client_api.proto
diff options
context:
space:
mode:
Diffstat (limited to 'proto/client_api.proto')
-rw-r--r--proto/client_api.proto45
1 files changed, 45 insertions, 0 deletions
diff --git a/proto/client_api.proto b/proto/client_api.proto
new file mode 100644
index 0000000..3f1b956
--- /dev/null
+++ b/proto/client_api.proto
@@ -0,0 +1,45 @@
+syntax = "proto3";
+
+package grpc.planetwars.client_api;
+
+// Provides the planetwars client API, allowing for remote play.
+service ClientApiService {
+ rpc CreateMatch(CreateMatchRequest) returns (CreateMatchResponse);
+ rpc ConnectPlayer(stream PlayerApiClientMessage) returns (stream PlayerApiServerMessage);
+}
+
+message CreateMatchRequest {
+ string opponent_name = 1;
+}
+
+message CreateMatchResponse {
+ int32 match_id = 1;
+ string player_key = 2;
+ string match_url = 3;
+}
+
+
+// Server messages
+message PlayerApiServerMessage {
+ oneof server_message {
+ PlayerActionRequest action_request = 1;
+ }
+}
+
+message PlayerActionRequest {
+ int32 action_request_id = 1;
+ bytes content = 2;
+}
+
+
+// Player messages
+message PlayerApiClientMessage {
+ oneof client_message {
+ PlayerAction action = 1;
+ }
+}
+
+message PlayerAction {
+ int32 action_request_id = 1;
+ bytes content = 2;
+}