🎮 Godot + Go = MMO.
150 Commits
Eduard Urbach e3330c7f42
Added UI sound effects
2024-02-29 00:12:14 +01:00
client Added UI sound effects 2024-02-29 00:12:14 +01:00
server Improved animation performance 2024-02-28 12:15:58 +01:00
stresstest Implemented physics interpolation 2024-02-27 21:05:55 +01:00
.gitattributes Removed Git LFS 2024-02-02 20:12:14 +01:00
.gitignore Added Terrain3D and Jolt physics 2024-02-19 14:40:29 +01:00
project.code-workspace Added Terrain3D and Jolt physics 2024-02-19 14:40:29 +01:00
README.md Added Terrain3D and Jolt physics 2024-02-19 14:40:29 +01:00

bom

An attempt at highly efficient networking between Go servers and Godot clients.

Assets

Git LFS is not suited for hosting large files because it keeps the entire history on the server. There is git lfs prune for the client side, but we need it on the server side and this functionality simply does not exist.

Therefore the client/assets directory needs to be downloaded separately. Download link will be here in the future.

Addons

The client/addons must be downloaded separately just like the assets. The following addons are required:

Features

  • UDP based messaging
  • Third person camera
  • Cloth attachments
  • Grass shader
  • Water shader
  • Loading UI
  • Settings UI

Components

This project makes heavy use of composition via components. They are implemented with the following rules:

  • Components can have read-only references to other components.
  • Components must not write data to another component.
  • Components that produce some output must use signals to communicate messages to other components.

In other words, it's allowed for components to have dependencies, but a component can not know where its output is going to be used in the future. Therefore, outputs must use a signal to communicate the output to an unknown number of receivers.

License

Please see the license documentation.

© 2024 Eduard Urbach