From 1b69271a000592085ed41ba0e758159490657b45 Mon Sep 17 00:00:00 2001 From: Mike Vink Date: Fri, 6 Aug 2021 18:29:15 +0200 Subject: feat(ARCHITECTURE): domain diagram --- ARCHITECTURE.md | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) 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 . . <- Map + AkkamonSession/Websocket> | | + ┌─────────┐ + │Messaging│ + │Engine │ + └─────────┘ + * Requests | . * HeartBeats + * HeartBeat \|/ /|\ * Responses to Requests + pongs . | +┌────────────────────────────────────────────────────────────────┐ +│Domain Actors ┌─────┐ │ +│ │Nexus│ │ +│ └─────┘ │ +│ / | │ +│ . . <- Map │ +│ | | │ +│ ┌─────┐ │ +│ │Scene│ ... │ +│ └─────┘ │ +│ / | │ +│ . . <- Map │ +│ | | │ +│ ┌──────────┐ │ +│ │ Trainer │ ... │ +│ └──────────┘ │ +└────────────────────────────────────────────────────────────────┘ +``` -- cgit v1.2.3