Skip to content

Simple MMO / MMORPG using Godot 4. Both client and server are on the same project. Discord: slayhorizon

License

Notifications You must be signed in to change notification settings

SlayHorizon/godot-tiny-mmo-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Godot Tiny MMO

A small-scale MMO / MMORPG developed with Godot Engine 4.3, without relying on the built-in multiplayer nodes.

Both the client and server are included within the same project, utilizing export presets to manage the separation.
These presets allow to export only the client-side without including server components, and vice versa.

Feel free to explore the project details in the Wiki.

image

🚀 Features

The current and planned features are listed below:

  • Client-Server connection through WebSocketMultiplayerPeer
  • Playable on web browser
  • Authentication system with Login UI
  • Create account
  • Game version check
  • Entity synchronization for players within the same instance
  • Instance-based maps with traveling between different map instances
  • Basic RPG class system with three initial classes: Knight, Rogue, Wizard
  • Private instances for solo players or small groups
  • Weapons at least one usable weapon per class
  • Basic combat system
  • Entity interpolation to handle rubber banding
  • Three different maps: Overworld, Dungeon Entrance, Dungeon
  • Instance-based chat
  • Database Server
  • Authentication Server (move the authentication system from game server)

...and maybe more features later.

You can track development and report issues by checking the open issues page.

🛠️ Getting Started

To get started with the project, follow these steps:

  1. Clone this repository.
  2. Open the project with Godot 4.3
  3. In the Debug tab, choose Customizable Run Instance...
  4. Enable Multiple Instances and set at least 2 or more.
  5. Under feature tags, ensure to have:
    • Exactly one "server" tag
    • At least one or more "client" tags
  6. (Optional) Add --headless under Launch Arguments for the server.
  7. Run the project!

Example setup for multiple instances:
multiple-instances-screenshot

🤝 Contributing

If 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.

To contribute:

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Credits

About

Simple MMO / MMORPG using Godot 4. Both client and server are on the same project. Discord: slayhorizon

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published