{"id":14961422,"url":"https://github.com/SlayHorizon/godot-tiny-mmo","last_synced_at":"2025-10-24T20:31:43.351Z","repository":{"id":253709141,"uuid":"844252686","full_name":"SlayHorizon/godot-tiny-mmo","owner":"SlayHorizon","description":"Simple MMO / MMORPG using Godot 4. disc: slayhorizon","archived":false,"fork":false,"pushed_at":"2024-10-26T20:50:36.000Z","size":926,"stargazers_count":9,"open_issues_count":1,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-26T20:55:32.495Z","etag":null,"topics":["demo","game","godot","godot-engine","godot4","mmo","multiplayer","netcode","networking","server"],"latest_commit_sha":null,"homepage":"","language":"GDScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SlayHorizon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-18T20:47:42.000Z","updated_at":"2024-10-26T20:54:21.000Z","dependencies_parsed_at":"2024-08-29T00:54:18.615Z","dependency_job_id":"7066e69f-868f-4bf6-8357-21f9fa271656","html_url":"https://github.com/SlayHorizon/godot-tiny-mmo","commit_stats":{"total_commits":50,"total_committers":3,"mean_commits":"16.666666666666668","dds":"0.30000000000000004","last_synced_commit":"373b04d48605d611257f455aa4ad298a14def19d"},"previous_names":["slayhorizon/godot-tiny-mmo-template","slayhorizon/godot-tiny-mmo-demo","slayhorizon/godot-tiny-mmo"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SlayHorizon%2Fgodot-tiny-mmo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SlayHorizon%2Fgodot-tiny-mmo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SlayHorizon%2Fgodot-tiny-mmo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SlayHorizon%2Fgodot-tiny-mmo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SlayHorizon","download_url":"https://codeload.github.com/SlayHorizon/godot-tiny-mmo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238035385,"owners_count":19405682,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["demo","game","godot","godot-engine","godot4","mmo","multiplayer","netcode","networking","server"],"created_at":"2024-09-24T13:25:05.970Z","updated_at":"2025-10-24T20:31:38.293Z","avatar_url":"https://github.com/SlayHorizon.png","language":"GDScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e [!WARNING]  \n\u003e This project is in experimental state and gameplay features are missing (see [**#🚀 Features**](#-features)).  \n\n# Godot Tiny MMO\n\nA tiny web-based MMO / MMORPG demo developed with Godot Engine 4.x - 4.3,  \ncreated without relying on the built-in multiplayer nodes.  \n\nThis project contains both client and server within the same codebase.  \nUsing custom export presets, you can easily [**Export Client and Server builds separately**](https://github.com/SlayHorizon/godot-tiny-mmo-demo/wiki/Exporting-the-project).  \nThis keeps exports safe and optimized by excluding unnecessary components.    \n\nFor additional details, check out the [**Wiki**](https://github.com/SlayHorizon/godot-tiny-mmo-demo/wiki).  \n\n![project-demo-screenshot](https://github.com/user-attachments/assets/ca606976-fd9d-4a92-a679-1f65cb80513a)\n![image](https://github.com/user-attachments/assets/7e21a7e5-4c72-4871-b0cf-6d94f8931bf7)\n\n\n## 🚀 Features\n\nThe current and planned features are listed below:\n\n- [X] **Client-Server connection** through `WebSocketMultiplayerPeer`\n- [x] **Playable on web browser and desktop**\n- [x] **Network architecture** (see diagram below)\n- [X] **Authentication system** through gateway server with Login UI\n- [x] **Account Creation** for permanent player accounts\n- [x] **QAD Database** to save persistent data\n- [x] **Guest Login** option for quick access\n- [x] **Game version check** to ensure client compatibility\n- [x] **Character Creation**\n- [x] **Basic RPG class system** with three initial classes: Knight, Rogue, Wizard\n- [ ] **Weapons** at least one usable weapon per class\n- [ ] **Basic combat system**\n- [X] **Entity synchronization** for players within the same instance\n- [ ] **Entity interpolation** to handle rubber banding\n- [x] **Instance-based chat** for localized communication\n- [X] **Instance-based maps** with traveling between different map instances\n- [x] **Three different maps:** Overworld, Dungeon Entrance, Dungeon\n- [ ] **Private instances** for solo players or small groups\n\nCurrent network architecture diagram for this demo (subject to change):  \n![architecture-diagram-26-10-2024](https://github.com/user-attachments/assets/78b1cce2-b070-4544-8ecd-59784743c7a0)\n\n\nYou can track development and report issues by checking the [**open issues**](https://github.com/SlayHorizon/godot-tiny-mmo-template/issues) page.\n\n## 🛠️ Getting Started\n\nTo get started with the project, follow these steps:\n1. Clone this repository.\n2. Open the project in **Godot 4.3+**.\n3. In the Debug tab, select **\"Customizable Run Instance...\"**.\n4. Enable **Multiple Instances** and set the count to **4 or more**.\n5. Under **Feature Tags**, ensure you have:\n   - Exactly **one** \"gateway-server\" tag.\n   - Exactly **one** \"master-server\" tag.\n   - Exactly **one** \"world-server\" tag.\n   - At least **one or more** \"client\" tags\n6. (Optional) Under **Launch Arguments**:\n   - For servers, add **--headless** to prevent empty windows.\n   - For any, add **--config=config_file_path.cfg** to use non-default config path. \n7. Run the project!\n\nSetup example:  \n(More details in the wiki [How to use \"Customize Run Instances...\"](https://github.com/SlayHorizon/godot-tiny-mmo/wiki/How-to-use-%22Customize-Run-Instances...%22#customize-run-instances))\n\u003cimg width=\"1580\" alt=\"debug-screenshot\" src=\"https://github.com/user-attachments/assets/cff4dd67-00f2-4dda-986f-7f0bec0a695e\"\u003e\n  \n\n## 🤝 Contributing\n\nIf you have ideas or improvements in mind, fork this repository and submit a pull request. You can also open an issue with the tag `enhancement`.\n\n### To contribute:\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a **Pull Request**\n\n## Credits\n- Maps designed by [@d-Cadrius](https://github.com/d-Cadrius).\n- Screenshots provided by [@WithinAmnesia](https://github.com/WithinAmnesia).  \n- Also thanks to [@Anokolisa](https://anokolisa.itch.io/dungeon-crawler-pixel-art-asset-pack) for allowing us to use its assets for this open source project!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSlayHorizon%2Fgodot-tiny-mmo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSlayHorizon%2Fgodot-tiny-mmo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSlayHorizon%2Fgodot-tiny-mmo/lists"}