arthuro555 / THNK

An authoritative multiplayer games framework for GDevelop.
https://thnk.cloud
Other
72 stars 16 forks source link
authoritative authoritative-server collaborate framework gamedev gdevelop gdevelop-extension hacktoberfest multiplayer multiplayer-game multiplayer-game-server server typescript

πŸ€” THNK

The THNK Framework Banner

An authoritative multiplayer games framework for the FLOSS engine GDevelop.

Links

Contributors

Thanks to all the contributors to THNK! Here is the full list of all contributors of all kinds to the project:

All Contributors

Ko-fi contributors
Ko-fi contributors

πŸ’΅
Arthur Pacaud
Arthur Pacaud

🚧 πŸ’» πŸ“– πŸ“
Rinax
Rinax

πŸ›
Leo_Red
Leo_Red

🎨
Tim
Tim

πŸ“–
triloute
triloute

πŸ“–
Emily Lemonly
Emily Lemonly

πŸ“–
dartpk
dartpk

πŸ› πŸ’»

Contributing

Installing

To install all dependencies, run yarn. You may use npm, but note that only a yarn lockfile will be provided and accepted in PRs. If you have disabled postinstall scripts, run yarn generate-protocol to run the code generator on the flatbuffer files.

Building

Run yarn build to execute the full build pipeline. You can also build individual parts with the other build scripts in package.json:

Building THNK with yarn build:thnk and the adapters with yarn build:adapters outputs a bundle to the dist folder. yarn build:extensions automatically inserts those into the THNK extensions in extensions.

To test your changes, import the extension with your changes into GDevelop. If you make changes to the extension itself, don't forget to export it back to the extensions folder.

Submitting changes

Before submitting a PR, make sure that your code builds & fully functions within the extension, and that it passes both typescript & jest tests. Run yarn ts && yarn test to run both checks. Make sure the extensions in extensions are properly generated with the latest version of your code. In case of doubts, run yarn build again before committing.

Understanding the file structure

There are a few main folders that you need to keep in mind while contributing: