diff --git a/docs/network diagram.jpg b/docs/network diagram.jpg new file mode 100644 index 00000000..ad187d09 Binary files /dev/null and b/docs/network diagram.jpg differ diff --git a/docs/network diagram.md b/docs/network diagram.md new file mode 100644 index 00000000..3f21d4ff --- /dev/null +++ b/docs/network diagram.md @@ -0,0 +1,155 @@ +```mermaid +flowchart LR + %% Diagram arranged specifically so output generates no terrible crossing lines. + %% AP Server + AS{Archipelago Server} + + %% CommonClient.py + CC[CommonClient.py] + AS <-- WebSockets --> CC + + %% ChecksFinder + subgraph ChecksFinder + CFC[ChecksFinderClient] + CF[ChecksFinder] + CFC <--> CF + end + CC <-- Integrated --> CFC + + %% A Link to the Past + subgraph A Link to the Past + LTTP[SNES] + end + SNI <-- Various, depending on SNES device --> LTTP + + %% Final Fantasy + subgraph Final Fantasy 1 + FF1[FF1Client] + FFLUA[Lua Connector] + BZFF[BizHawk with Final Fantasy Loaded] + FF1 <-- LuaSockets --> FFLUA + FFLUA <--> BZFF + end + CC <-- Integrated --> FF1 + + %% Ocarina of Time + subgraph Ocarina of Time + OC[OoTClient] + LC[Lua Connector] + OCB[BizHawk with Ocarina of Time Loaded] + OC <-- LuaSockets --> LC + LC <--> OCB + end + CC <-- Integrated --> OC + + %% SNI Connectors + SC[SNIClient] + SNI["Super Nintendo Interface (SNI)"] + CC <-- Integrated --> SC + SC <-- WebSockets --> SNI + + %% Super Metroid + subgraph Super Metroid + SM[SNES] + end + SNI <-- Various, depending on SNES device --> SM + + %% Super Metroid/A Link to the Past Combo Randomizer + subgraph "SMZ3" + SMZ[SNES] + end + SNI <-- Various, depending on SNES device --> SMZ + + %% Native Clients or Games + %% Games or clients which compile to native or which the client is integrated in the game. + subgraph "Native" + APCLIENTPP[Game using apclientpp Client Library] + APCPP[Game using Apcpp Client Library] + subgraph Secret of Evermore + SOE[ap-soeclient] + end + SM64[Super Mario 64 Ex] + V6[VVVVVV] + MT[Meritous] + + APCLIENTPP <--> SOE + APCLIENTPP <--> MT + APCPP <--> SM64 + APCPP <--> V6 + end + SOE <--> SNI <-- Various, depending on SNES device --> SOESNES + AS <-- WebSockets --> APCLIENTPP + AS <-- WebSockets --> APCPP + + %% Java Based Games + subgraph Java + JM[Mod with Archipelago.MultiClient.Java] + STS[Slay the Spire] + JM <-- Mod the Spire --> STS + subgraph Minecraft + MCS[Minecraft Forge Server] + JMC[Any Java Minecraft Clients] + MCS <-- TCP --> JMC + end + JM <-- Forge Mod Loader --> MCS + end + AS <-- WebSockets --> JM + + %% .NET Based Games + subgraph .NET + NM[Mod with Archipelago.MultiClient.Net] + subgraph FNA/XNA + TS[Timespinner] + RL[Rogue Legacy] + end + NM <-- TsRandomizer --> TS + NM <-- RogueLegacyRandomizer --> RL + subgraph Unity + ROR[Risk of Rain 2] + SN[Subnautica] + HK[Hollow Knight] + R[Raft] + end + NM <-- BepInEx --> ROR + NM <-- "QModLoader (BepInEx)" --> SN + NM <-- HK Modding API --> HK + NM <--> R + end + AS <-- WebSockets --> NM + + %% Archipelago WebHost + subgraph "WebHost (archipelago.gg)" + WHNOTE(["Configurable (waitress, gunicorn, flask)"]) + AH[AutoHoster] + PDB[(PonyORM DB)] + WH[WebHost] + FWC[Flask WebContent] + AG[AutoGenerator] + + AH <-- SQL --> PDB + WH -- Subprocesses --> AH + FWC <-- SQL --> PDB + WH --> FWC + AG -- Deposit Generated Worlds --> PDB + PDB -- Provide Generation Instructions --> AG + WH -- Subprocesses --> AG + end + AH -- Subprocesses --> AS + + %% Special subgraph for SoE for its SNES connection + subgraph Secret of Evermore + SOESNES[SNES] + end + + %% Factorio + subgraph Factorio + FC[FactorioClient] <-- RCON --> FS[Factorio Server] + FS <-- UDP --> FG[Factorio Games] + FMOD[Factorio Mod Generated by AP] + FMAPI[Factorio Modding API] + FMAPI <--> FS + FMAPI <--> FG + FMOD <--> FMAPI + end + CC <-- Integrated --> FC +``` \ No newline at end of file diff --git a/docs/network diagram.svg b/docs/network diagram.svg new file mode 100644 index 00000000..e7bbd2cf --- /dev/null +++ b/docs/network diagram.svg @@ -0,0 +1 @@ +
Factorio
Secret of Evermore
WebHost (archipelago.gg)
.NET
Java
Native
SMZ3
Super Metroid
Ocarina of Time
Final Fantasy 1
A Link to the Past
ChecksFinder
FNA/XNA
Unity
Minecraft
Secret of Evermore
WebSockets
Integrated
Various, depending on SNES device
LuaSockets
Integrated
LuaSockets
Integrated
Integrated
WebSockets
Various, depending on SNES device
Various, depending on SNES device
Various, depending on SNES device
WebSockets
WebSockets
Mod the Spire
TCP
Forge Mod Loader
WebSockets
TsRandomizer
RogueLegacyRandomizer
BepInEx
QModLoader (BepInEx)
HK Modding API
WebSockets
SQL
Subprocesses
SQL
Deposit Generated Worlds
Provide Generation Instructions
Subprocesses
Subprocesses
RCON
UDP
Integrated
Factorio Server
FactorioClient
Factorio Games
Factorio Mod Generated by AP
Factorio Modding API
SNES
Configurable (waitress, gunicorn, flask)
AutoHoster
PonyORM DB
WebHost
Flask WebContent
AutoGenerator
Mod with Archipelago.MultiClient.Net
Risk of Rain 2
Subnautica
Hollow Knight
Raft
Timespinner
Rogue Legacy
Mod with Archipelago.MultiClient.Java
Slay the Spire
Minecraft Forge Server
Any Java Minecraft Clients
Game using apclientpp Client Library
Game using Apcpp Client Library
Super Mario 64 Ex
VVVVVV
Meritous
ap-soeclient
SNES
SNES
OoTClient
Lua Connector
BizHawk with Ocarina of Time Loaded
FF1Client
Lua Connector
BizHawk with Final Fantasy Loaded
SNES
ChecksFinderClient
ChecksFinder
Archipelago Server
CommonClient.py
Super Nintendo Interface (SNI)
SNIClient
\ No newline at end of file diff --git a/docs/network.graphml b/docs/network.graphml deleted file mode 100644 index 12624842..00000000 --- a/docs/network.graphml +++ /dev/null @@ -1,1004 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - Archipelago Server - - - - - - - - - - - - - - - Factorio - - - - - - - - - - Folder 1 - - - - - - - - - - - - - - - - - FactorioClient - - - - - - - - - - - - Factorio Server - - - - - - - - - - - - Factorio Games - - - - - - - - - - - - Generated AP Factorio Mod - - - - - - - - - - - - - - - - - WebHost (archipelago.gg) - - - - - - - - - Folder 3 - - - - - - - - - - - - - - - - - WebHost - - - - - - - - - - - - Flask WebContent - - - - - - - - - - - - AutoHoster - - - - - - - - - - - - PonyORM DB - - - - - - - - - - - - - - - - .Net - - - - - - - - - - Folder 5 - - - - - - - - - - - - - - - - - Mod with Archipelago.MultiClient.Net - - - - - - - - - - - - - - - Unity - - - - - - - - - - Folder 4 - - - - - - - - - - - - - - - - - Risk of Rain 2 - - - - - - - - - - - - Subnautica - - - - - - - - - - - - - - - - - FNA - - - - - - - - - - Folder 4 - - - - - - - - - - - - - - - - - Timespinner - - - - - - - - - - - - - - - - - - Java - - - - - - - - - - Folder 6 - - - - - - - - - - - - - - - - - - - - Minecraft - - - - - - - - - - Folder 4 - - - - - - - - - - - - - - - - - Minecraft Forge Server - - - - - - - - - - - - Any Java Minecraft Clients - - - - - - - - - - - - - - Mod with Archipelago.MultiClient.Java - - - - - - - - - - - - Slay the Spire - - - - - - - - - - - - - - CommonClient.py - - - - - - - - - - - - - - - A Link to the Past - - - - - - - - - - Folder 2 - - - - - - - - - - - - - - - - - Z3Client - - - - - - - - - - - - SNI - - - - - - - - - - - - SNES - - - - - - - - - - - - LttPClient - - - - - - - - - - - - - - - - Ocarina of Time - - - - - - - - - - 1 - - - - - - - - - - - - - - - - - Z5Client - - - - - - - - - - - - Lua Connector - - - - - - - - - - - - BizHawk with Ocarina of Time loaded - - - - - - - - - - - - - - - - RCON - - - - - - - - - - - - - - - - - - - - - - - UDP - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Configurable (waitress, gunicorn, flask) - - - - - - - - - - - - Subprocess - - - - - - - - - - - - SQL - - - - - - - - - - - - - - - - - - - - - - - SQL - - - - - - - - - - - - - - - - - - - - - - QModLoader (BepInEx) - BepInEx - TsRandomizer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - TCP - - - - - - - - - - - Mod the Spire - - - - - - - - - - - Forge Mod Loader - - - - - - - - - - - - - - - - - - - - - - - gRPC - - - - - - - - - - - - - - - - - - - - - - - Various, depends on SNES device type - - - - - - - - - - - WebSocket - - - - - - - - - - - LuaSockets - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - WebSocket - - - - - - - - - - - - Subprocesses - - - - - - - - - - - WebSocket - - - - - - - - - - - WebSocket - - - - - - - - - - - WebSocket - - - - - - - - - - - Integrated - - - - - - - - - - - Integrated - - - - - - - - - - - WebSocket - - - - - - - - - diff --git a/docs/network.png b/docs/network.png deleted file mode 100644 index 86691d2f..00000000 Binary files a/docs/network.png and /dev/null differ