Home
Softono

Godot Tiny Mmo

Open source MIT GDScript
233
Stars
56
Forks
3
Issues
7
Watchers
2 months
Last Commit

 About Godot Tiny Mmo

Open-source cross-platform MMORPG built with Godot 4

Platforms

Web Self-hosted

Languages

GDScript

Need Help Installing Godot Tiny Mmo?

We provide expert installation service for this software. Our team will install, configure, and secure Godot Tiny Mmo on your server. plans start at just $30.

Godot Tiny Mmo

View on GitHub

[!NOTE] Documentation & Guides: slayhorizon.github.io/godot-tiny-mmo/
Latest research note: Byte-Level Networking Protocol for MMO Scalability

Godot Engine License: MIT Documentation

Godot Tiny MMO

Experimental open-source MMORPG framework built with Godot 4.
Inspired by proven MMO systems, this project pushes the boundaries of what can be achieved with Godot in large-scale multiplayer.
It explores scalable multiplayer architecture and efficient byte-packed networking, while remaining clear and approachable as a learning project.

  • Cross-platform: browser + desktop + mobile
  • Unified codebase: Client & multiple servers in one repo
    • Faster iteration, develop in one place, test in one click
    • Separate export presets for clean client/server builds
  • "Custom netcode" but stay simple
    • No reliance on Godot’s MultiplayerSynchronizer/Spawner
    • ID-based, byte-packed protocol (PackedByteArray instead of string-based messages) for efficient replication
    • Built to support interpolation, multi-map instances, and seamless transitions
  • True MMO-style architecture
    • Gateway server: authentication & routing
    • Master server: orchestrator, account management & bridge between gateways and world servers
    • World server: host multiple concurrent maps and instances; the place where gameplay actually happens
image
See more screenshots:

architecture-diagram

image

Features

See current and planned features:
  • Client-Server connection through WebSocketMultiplayerPeer

  • Playable on web browser and desktop

  • Network architecture (see diagram below)

  • Authentication system through gateway server with Login UI

  • Account Creation for permanent player accounts

  • Server Selection UI to let the player choose between different servers

  • SQLite persistence (players, guilds, chat)

  • Guest Login option for quick access

  • Game version check to ensure client compatibility

  • Character Creation

  • Basic RPG class system with three initial classes: Knight, Rogue, Wizard

  • Weapons at least one usable weapon per class

  • Basic combat system

  • Friend list

  • Guild

  • Entity synchronization for players within the same instance

  • Entity interpolation to handle rubber banding

  • Instance-based chat for localized communication

  • Instance-based maps with traveling between different map instances

    • Three different maps: Overworld, Dungeon Entrance, Dungeon
    • Private instances for solo players or small groups
  • Server-side anti-cheat (basic validation for speed hacks, teleport hacks, etc.)

  • Server-side NPCs (AI logic processed on the server)

  • Interest management (AOI filtering using grid on large maps)

  • Web-based admin dashboard (monitor servers, instances, and connections)


Getting Started

To run the project, follow these steps:

  1. Open the project in Godot 4.6.
  2. Go to Debug tab, select "Customizable Run Instance...".
  3. Enable Multiple Instances and set the count to 4 or more.
  4. Under Feature Tags, ensure you have:
    • Exactly one "gateway-server" tag.
    • Exactly one "master-server" tag.
    • Exactly one "world-server" tag.
    • At least one or more "client" tags.
  5. (Optional) Under Launch Arguments:
    • For servers, add --headless to prevent empty windows.
    • For any, add --config=config_file_path.cfg to use non-default config path.
  6. Run the project (Press F5).

Setup example (More details in the wiki How to use "Customize Run Instances...": debug-screenshot


Contributing

Feel free to fork the repository and submit a pull request if you have ideas or improvements!
You can also open an Issue to discuss bugs or feature requests.


Credits

Thanks to everyone who made this project possible:

License

Source code under the MIT License.