5b369e46130eab69300a9eed909a0dc6ac80a2f7
Tekton Dash Armageddon
🛠️ Developer Workflows
1. Creating a Skin Material
To create dynamic, color-maskable 3D materials for new character skins:
- Open the Skin Shader Generator tool in the editor:
res://scenes/tools/skin_shader_generator.tscn - Run the scene.
- Import your base albedo and mask textures.
- Use the UI to visualize UV overlays and adjust color channels (Red, Green, Blue, Alpha masks).
- Export the configured material as a
.tresfile into theassets/materials/skins/directory.
2. Adding a Skin to the Shop
Once your material is ready, you need to add it to the game's economy so players can buy and equip it. This is done by updating the Nakama backend module.
- Copy the latest script: Open
server/nakama/tekton_admin.jslocally and copy its updated contents (including your new skin). - Connect to your VPS via SSH.
- Create/Edit the file on the remote server:
Paste the copied contents and save the file.
nano ~/tekton_admin.js # Or use micro (recommended): micro ~/tekton_admin.js - Find your Nakama Container ID:
It is highly recommended to use lazydocker to manage containers.
(To install on Ubuntu:
curl https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash) Open lazydocker or rundocker psto find the Container ID for your Nakama server. - Copy the file into the Nakama container:
# Replace ed21ac5d442a with your actual Container ID docker cp ~/tekton_admin.js ed21ac5d442a:/nakama/data/modules/tekton_admin.js - Restart the container (via lazydocker or
docker restart <Container ID>) for Nakama to load the new modules. Live game clients will fetch this new catalog automatically upon booting.
3. Pushing a New Version (Automated Patching)
When you're ready to deploy new features or assets to players:
- Document your changes in
CHANGELOG_DRAFT.mdusing player-friendly language. - Run the version generation script from the terminal:
(Use
python generate_version_json.py --bump patch--bump minoror--bump majorfor larger updates.) - Commit and push your changes to the
mainbranch on GitHub:git add . git commit -m "Release version X.Y.Z" git push origin main - The GitHub Actions Workflow (
deploy_patch.yml) will automatically detect the push, build the patch manifest (version.json), and deploy it to the publicgh-pagesbranch. - Live game clients will detect the new version on boot, download the updated files, and apply the patch seamlessly.
4. Local Testing & Understanding the Patch System
When a player (or you) downloads an in-game patch, Godot downloads a patch.pck file to the system's user:// directory.
- Virtual File System: Godot mounts this
.pckfile over theres://directory purely in memory. It does not physically overwrite your local source files (likeassets/data/version.json). - Editor Bypass: When testing locally in the Godot Editor, the
BootScreenis configured to skip the remote network download and instead automatically parse your localassets/data/version.json. - Previewing Changelogs: To preview how your changelog will look before pushing to GitHub:
- Add your notes under the
## [NEXT]section inCHANGELOG_DRAFT.md. - Run
py tools/generate_version_json.pyfrom the terminal. - Run the
BootScreenscene in the Godot Editor. It will instantly display the updated local UI!
- Add your notes under the
- Syncing: After the GitHub Actions CI builds a release online, remember to run
git pull origin mainto sync your local project files with the CI-generated files.
🗺️ Architecture Flowchart
flowchart TD
%% Local Dev Flow
subgraph Local Dev Environment
A[📝 CHANGELOG_DRAFT.md] -->|py tools/generate_version_json.py| B[(📄 version.json)]
B -.->|Test in Editor| C{BootScreen}
C -- Editor Bypass --> D[Reads Local version.json directly]
end
%% CI Pipeline
subgraph CI/CD Pipeline
B -->|git push| E[⚡ GitHub Actions]
E -->|Compiles & Builds| F[📦 patch.pck]
F -->|Deploys| G((🌍 Public Repository))
end
%% Live Client Flow
subgraph Player Client
G -.->|HTTP Download on Boot| H[📂 user://patch.pck]
H -->|ProjectSettings.load_resource_pack| I[🧠 Godot Virtual File System]
I -.->|Overrides res:// in Memory| J[Game Starts Updated!]
end
🚀 Ongoing Features (Incoming)
🎰 Gacha System Backend Editor
Currently in development: A dedicated backend editor tool (similar to skin_catalog_editor.tscn) specifically for managing the Gacha System.
- Nakama Syncing: Will allow developers to push updated gacha pools, rates, and fragment costs directly to Nakama Storage.
- Dynamic Banners: Will support updating specific slots on the gacha banner dynamically.
- Seasonal Rotations: Will introduce automated scheduling so banners rotate based on active seasons and automatically remove themselves when the season ends.
Description