Files
Peninsula/README.md
T
2026-01-16 10:10:19 +01:00

23 lines
1.6 KiB
Markdown

# Archipelago Room Server
A room server implementation for the multiworld randomizer Archipelago.
Licensed under 3-Clause BSD License. For more information see COPYING.md
## Design
Some brainstorming about what needs to be done.
### Basics
In the ideal case there is one room server per machine that handles all rooms and users that connect to that machine. It'd also be nice if it could be controlled via WebSocket as well either locally or remotely.
## Frequently Asked Questions (FAQ)
*All the questions that were asked or would be asked frequently.*
### Why rewrite the room server in a different programming language?
While Python is quite nice when it comes to ease of use and how quickly you can get something off the ground it suffers from significant performance issues. Some of them can be reduced with CPython or similar but you can never fully get rid of them entirely. This is the case for most if not all higher level languages that either need an intermediate representation or are compiled at runtime (JIT).
Lower level languages tend to avoid this by shifting the heavy lifting to a compile and link step resulting in much faster execution. However they're harder to work with and any issues that occur during runtime tend to be unrecoverable. Technically Rust is "safer" to write this in but I have a personal hatred for Rust's awful inconsistent syntax and rules.
### Isn't uWebSockets faster than WebSocket++?
Maybe? There aren't any proper benchmarks out there for this kind of stuff. Most of the benchmarks tend to be tied to databases which will be end up being the bottleneck. I just picked what integrates with C++ more.