summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Vink <mike1994vink@gmail.com>2021-08-06 18:29:15 +0200
committerMike Vink <mike1994vink@gmail.com>2021-08-06 18:29:15 +0200
commit1b69271a000592085ed41ba0e758159490657b45 (patch)
tree6f129d795ed68961a159e887e0708eedcb267ded
parent57bb949203154c92f02cc71f6234bb9dba29e370 (diff)
feat(ARCHITECTURE): domain diagram
-rw-r--r--ARCHITECTURE.md59
1 files changed, 59 insertions, 0 deletions
diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md
index e69de29..994d692 100644
--- a/ARCHITECTURE.md
+++ b/ARCHITECTURE.md
@@ -0,0 +1,59 @@
+# What is the essence of an MMO?
+
+* Let a lot of players move at the same time in the world
+* Let a lot of players make interactions with each other at the same time
+* A game
+
+> A game where a lot of things happen at once, and where there is a lot of communication between the backend and frontend.
+
+# Stack
+
+* A game: [Phaser3, een javascript/typescript framework](https://phaser.io/phaser3)
+* A lot of communication: Websockets met [Jetty](https://en.wikipedia.org/wiki/Jetty_(web_server)) en [Javascript](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket)
+* Doing a lot of things at once: [Java Akka](https://doc.akka.io/docs/akka/current/typed/interaction-patterns.html#interaction-patterns), [Java Akka Docs](https://doc.akka.io/api/akka/current/akka/actor/typed/javadsl/index.html), strongly typed actor systeem
+
+## Diagram
+
+
+```
+
+
+
+
+ | .
+ | /|\
+ \|/ |
+ . |
+ ┌───────────────┐
+ │AkkamonSession/│
+ │Websocket │
+ └───────────────┘
+ | |
+ | |
+ Map<SceneId, -> . . <- Map<TrainerID, AkkamonSession/Websocket>
+ AkkamonSession/Websocket> | |
+ ┌─────────┐
+ │Messaging│
+ │Engine │
+ └─────────┘
+ * Requests | . * HeartBeats
+ * HeartBeat \|/ /|\ * Responses to Requests
+ pongs . |
+┌────────────────────────────────────────────────────────────────┐
+│Domain Actors ┌─────┐ │
+│ │Nexus│ │
+│ └─────┘ │
+│ / | │
+│ . . <- Map<sceneId, actor> │
+│ | | │
+│ ┌─────┐ │
+│ │Scene│ ... │
+│ └─────┘ │
+│ / | │
+│ . . <- Map<TrainerID, actor> │
+│ | | │
+│ ┌──────────┐ │
+│ │ Trainer │ ... │
+│ └──────────┘ │
+└────────────────────────────────────────────────────────────────┘
+```