Skip to content

Commit 7198071

Browse files
v0.6 : refactor everything
1 parent 59fe747 commit 7198071

File tree

259 files changed

+4374
-4462
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

259 files changed

+4374
-4462
lines changed

.github/docs/CICD.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
2+
- Back to [🤖 Code](https://github.com/TinyTakinTeller/TakinGodotTemplate/blob/master/.github/docs/CODE.md) of the project.
3+
4+
- See [⚡ Hacks](https://github.com/TinyTakinTeller/TakinGodotTemplate/blob/master/.github/docs/HACKS.md) of the project.
5+
6+
7+
8+
## 🎉 CI/CD
9+
10+
11+
### 🚀 Deployment
12+
13+
- **Itch.io**
14+
- Project uses `release_master.yml` to automate uploads to [itch.io](https://itch.io/) page.
15+
- You can **disable** this by deleting the mentioned file.
16+
- You can **enable** this by doing the following:
17+
1. Generate new API key in Itch settings, setup `BUTLER_API_KEY` secret in Github.
18+
2. Create a new game project page on Itch.
19+
3. Setup `ITCHIO_GAME` and `ITCHIO_USERNAME` secrets in Github.
20+
21+
### ✅ Workflows
22+
23+
- **quality_check.yml**
24+
- Automatically check [*gdlintrc*](https://github.com/Scony/godot-gdscript-toolkit/wiki/3.-Linter#tweaking-default-check-settings) coding style standards.

.github/docs/CODE.md

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
2+
Back to [🧩 Plugins](https://github.com/TinyTakinTeller/TakinGodotTemplate/blob/master/.github/docs/PLUGINS.md) of the project.
3+
4+
See [🎉 CI/CD](https://github.com/TinyTakinTeller/TakinGodotTemplate/blob/master/.github/docs/CICD.md) of the project.
5+
6+
7+
8+
## 🤖 Code
9+
10+
11+
Globals (autoload Scenes) act as singletons.
12+
13+
Scripts (statics, consts, objects) act as utility.
14+
15+
Otherwise, normal Scenes must be loaded or added to the Scene Tree.
16+
17+
### 💎 Globals
18+
19+
- **Configuration**
20+
- Configurations use ConfigStorage object for presistence in INI files.
21+
- Audio, Video, Controls, Game configurations are tied to the options menu UI.
22+
- **Data**
23+
- Use as setter and getter of save file data, configure structure of save files.
24+
- **Overlay**
25+
- Container for debug elements, e.g. FPS counter.
26+
- **Reference**
27+
- Preload here references to Resources and Assets for quick access.
28+
- **SignalBus**
29+
- Exchange global signals for cleaner observer pattern.
30+
- **Wrapper**
31+
- **LogWrapper** - Extends Logger plugin with log groups configuration.
32+
- **AudioManagerWrapper** - Calls Resonance plugin with enums instead of string names.
33+
- **SceneManagerWrapper** - Calls SceneManager plugin with custom preloaded resource.
34+
- **TranslationServerWrapper** - Extends localization to work in tool scripts.
35+
36+
### 🎬 Scenes
37+
38+
Scenes are split into following categories:
39+
1. "Component" scenes extend functionality of the parent.
40+
2. "Node" scenes are reusable as standalone functional units.
41+
3. "Scene" scenes are larger specialized functional collections.
42+
43+
- **Component**
44+
- **Audio**
45+
- **ButtonAudio** - Triggers Audio events on signals (focus, click, release).
46+
- **SliderAudio** - Triggers Audio events on signals (drag start, drag end).
47+
- **TreeAudio** - Triggers Audio events on signals (cell selected, button clicked).
48+
- **Builder**
49+
- **UiBuilder** - Spawn components, e.g. an focus animation on all focusable nodes.
50+
- **Control**
51+
- **ControlExpandStylebox** - Resize target node to fill parent container.
52+
- **ControlFocusOnHover** - Grabs focus of node on mouse hover signal.
53+
- **ControlGrabFocus** - Grabs focus of node for controller support.
54+
- **Emitter**
55+
- **ParticleEmitter** - Convert any scene into a particle via a sub-viewport.
56+
- **Motion**
57+
- **ScaleMotion** - Animate (tween) scale on interaction. *(Game counter labels.)*
58+
- **TwistMotion** - Animate (tween) scale and rotation on interaction. *(UI nodes.)*
59+
- **Tween**
60+
- **ParticleTween** - Emulates particle emitter with a tween.
61+
- **Node**
62+
- **Game**
63+
- **ParticleQueue** - Emit any scene via GPU particles as SubViewport.
64+
- **Menu**
65+
- **MenuButton** - Localized menu button.
66+
- **MenuConfiguration** - Localized UI elements: dropdown, slider, toggle, tree.
67+
- **Scene**
68+
- **BootSplashScene** *(Main Scene)* - Smooth transition to menu scene.
69+
- **MenuScene** - Manages menu scenes as children.
70+
- **MainMenu** - Display buttons to enter other menus or next scene.
71+
- **OptionsMenu** - Manages options (persistent app settings) scenes.
72+
- **AudioOptions** - Configure Music and SFX volume or mute.
73+
- **VideoOptions** - Display, Resolution, VSync, FPS Limit, Anti-Alias.
74+
- **ControlsOptions** - Change (add or remove) keybinds.
75+
- **GameOptions** - Custom options, e.g. toggle autosave.
76+
- **CreditsMenu** - Renders CREDITS.md file in-game with formatting.
77+
- **SaveFilesMenu** - List of files: play, import, export, delete, rename.
78+
- **GameScene** - Contains gameplay.
79+
- **GameContent** - Example incremental game mechanics and effects.
80+
- **ClicksCounter** - Counts and displays clicks.
81+
- **CoinsCounter** - Counts and displays coins.
82+
- **GameButton** - Animated clickable texture button giving coins-
83+
- **PauseMenu** - Pause gameplay, change options. Esc key shortcut.
84+
85+
### 📄 Scripts
86+
87+
- **Const** - Collections of commonly used constants.
88+
- **Object**
89+
- **ActionHandler** - Implements the (light) [command pattern](https://refactoring.guru/design-patterns/command) design.
90+
- **ConfigStorage** - Persists (save & load) app settings in INI file.
91+
- **LinkedMap** - Dictionary data structure that tracks order of keys.
92+
- **Util**
93+
- **DatetimeUtils** - Useful for save file metadata (e.g. last played at).
94+
- **DictionaryUtils** - Nested dictionary helper functions.
95+
- **EnumUtils** - Enum name converters.
96+
- **FileSystemUtils** - Robust functions to extract file paths and names.
97+
- **MarshallsUtils** - Convert data formats with optional encryption.
98+
- **MathUtils** - Integer power function, base conversion and similar.
99+
- **NodeUtils** - Collection of node manipulation functions.
100+
- **NumberUtils** - Numbers format (digits, metric, scientific), validate.
101+
- **RandomUtils** - Weighted Loot Table and random string functions.
102+
- **StringUtils** - String functions for validation and transformations.
103+
- **ThemeUtils** - Shortcut Theme getters and setters.
104+
105+
### 🌸 Snippets
106+
107+
Native code snippets. (e.g. javascript for web export, java for android export, ...)
108+
109+
Also see [GDExtension](https://docs.godotengine.org/en/stable/tutorials/scripting/gdextension/what_is_gdextension.html).
110+
111+
- **ConfirmationDialogJsLoader**
112+
- Loads native HTML/CSS/JS dialog to access clipboard in web build.
113+
- Supports transfer of Theme resource properties to CSS style.
114+
- Useful because Godot Nodes cannot read or write to web clipboard.

.github/docs/CONTRIBUTE.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
2+
- Back to [💕 Examples](https://github.com/TinyTakinTeller/TakinGodotTemplate/blob/master/.github/docs/EXAMPLES.md) of the project.
3+
4+
5+
6+
## 🫂 Contribute
7+
8+
9+
Open a new Issue for discussion first, later Fork and open a pull request.
10+
11+
Project contains in-game [CREDITS.md](https://github.com/TinyTakinTeller/TakinGodotTemplate/blob/master/godot/CREDITS.md) rendering.

.github/docs/EXAMPLES.md

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
2+
Back to [📖 Get Started](https://github.com/TinyTakinTeller/TakinGodotTemplate/blob/master/.github/docs/GET_STARTED.md) of the project.
3+
4+
See [🫂 Contribute](https://github.com/TinyTakinTeller/TakinGodotTemplate/blob/master/.github/docs/CONTRIBUTE.md) of the project.
5+
6+
7+
8+
## 💕 Examples
9+
10+
11+
Projects that use this template: **TBA**
12+
13+
More useful links:
14+
15+
- Godot Engine
16+
- [Godot Engine](https://github.com/godotengine/godot)
17+
- [Redot Engine](https://github.com/Redot-Engine/redot-engine)
18+
19+
- Godot Extensions
20+
- [Awesome Godot](https://github.com/godotengine/awesome-godot?tab=readme-ov-file)
21+
- [Powerful Godot](https://github.com/nonunknown/godot-powerful?tab=readme-ov-file)
22+
23+
- Godot Templates
24+
- [Bitbrain Godot Game Jam Template](https://github.com/bitbrain/godot-gamejam)
25+
- [CrystalBit Godot Game Template](https://github.com/crystal-bit/godot-game-template)
26+
- [Maaack Godot Game Template](https://github.com/Maaack/Godot-Game-Template)
27+
- [MechanicalFlower Template](https://github.com/MechanicalFlower/godot-template?tab=readme-ov-file)
28+
- [Ninetailsrabbit Indie Blueprint](https://github.com/ninetailsrabbit/indie-blueprint)
29+
30+
- Godot Examples
31+
- [Godot Demo Projects](https://github.com/godotengine/godot-demo-projects)
32+
- [Multiple Resolutions Options](https://github.com/godotengine/godot-demo-projects/tree/master/gui/multiple_resolutions)
33+
- [Graphics 3D Options](https://github.com/godotengine/godot-demo-projects/tree/master/3d/graphics_settings)

.github/docs/FEATURES.md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
2+
Back to [📂 Structure](https://github.com/TinyTakinTeller/TakinGodotTemplate/blob/master/.github/docs/STRUCTURE.md) of the project.
3+
4+
See [🧩 Plugins](https://github.com/TinyTakinTeller/TakinGodotTemplate/blob/master/.github/docs/PLUGINS.md) of the project.
5+
6+
7+
8+
## ⭐ Features
9+
10+
11+
### ✨ Game Modules
12+
13+
Some feature modules were written from scratch, others use installed addons.
14+
15+
Feel free to swap modules with either simpler or advanced alternatives, depending on your project.
16+
17+
- **Foundation**
18+
- 🖼️ [**Scene Manager**](https://github.com/maktoobgar/scene_manager) - Custom transitions and loading screens.
19+
- 🎵 [**Audio Manager**](https://github.com/hugemenace/resonate) - Reliable music tracks and sound effects.
20+
- ⚙️ **Configuration** - Persistent game options and statistics in INI file.
21+
- 💾 **Save Files** - Modular save system for game data, optional encryption.
22+
- **Localization**
23+
- 🌍 [**Polygot Template**](https://github.com/agens-no/PolyglotUnity) with 28 languages and over 600 [game words](https://docs.google.com/spreadsheets/d/17f0dQawb-s_Fd7DHgmVvJoEGDMH_yoSd8EYigrb0zmM/edit?gid=296134756#gid=296134756).
24+
- ✏️ [**Google Noto Sans**](https://fonts.google.com/) fonts glyphs (Arabic, Hebrew, HK, JP, KR, SC, TC, Thai).
25+
- **Accessibility**
26+
- 🎮 **Controller Support** - Grab UI focus for joypad and keyboard users.
27+
- 🔍 **Multiple Resolutions** - Video options: display mode, window zoom.
28+
- ⚡ **Optimizations** - E.g. Native web dialog to capture clipboard.
29+
- **UI/UX**
30+
- 🎬 **Boot Splash** - The main scene, allowing custom transition to main menu.
31+
- 🏠 **Main Menu** - Display buttons to enter other menus, version and author.
32+
- 🔧 **Options Menu** - Audio, Video (display, vsync), Controls (keybinds), Game.
33+
- 📜 **Credits Menu** - Renders [CREDITS.md](https://github.com/TinyTakinTeller/TakinGodotTemplate/blob/master/godot/CREDITS.md) file in-game with formatting.
34+
- 📓 **Save Files Menu** - List of files: Play, Import, Export, Delete, Rename.
35+
- 🎲 **Game Scene** - Example incremental game mechanics and particle effects.
36+
- ⏸️ **Pause Menu** - Pause gameplay, change options. Esc key shortcut.
37+
- **Placeholder**
38+
- 🎨 **Theme** - Godot default theme. Alternatives at [Kenney](https://kenney.nl/assets/tag:interface?sort=update), [Itch](https://itch.io/c/1473270/themes-for-godot-games), [OGA](https://opengameart.org/art-search-advanced?keys=&title=&field_art_tags_tid_op=or&field_art_tags_tid=ui&name=&field_art_type_tid%5B%5D=9&sort_by=count&sort_order=DESC&items_per_page=24&Collection=), ...
39+
- 🖌️ **Images** - [CC0](https://creativecommons.org/publicdomain/zero/1.0/) Public Domain: [Dannya](https://openclipart.org/artist/dannya) save file icon, [Maaack](https://github.com/Maaack/Godot-Menus-Template/tree/main/addons/maaacks_menus_template/base/assets/images) icons.
40+
- 🎶 **Music & SFX** - [CC0](https://creativecommons.org/publicdomain/zero/1.0/) Public Domain: [Kenney](https://kenney.nl/assets/category:Audio) SFX and [OGA](https://opengameart.org/content/menu-doodle-2) Music (loop).
41+
- 🌪️ **Juice** - UI twist Animation (Tween) on mouse hover or node focus.
42+
43+
### 💫 Development Modules
44+
45+
- **Singletons**
46+
- 📢 **Signal Bus** - Observer pattern for cleaner global signals.
47+
- 📖 **References** - Maps of preloaded resources and assets.
48+
- **Special**
49+
- 👷 **Builder** - adds components to nodes, alternative to upcomming [Traits](https://github.com/godotengine/godot/pull/97657).
50+
- **Scripts**
51+
- 🧰 **Utility** - Many reusable scripts that provide common functionalities.
52+
- 🛠️ **Objects** - ActionHandler, ConfigStorage (INI File), LinkedMap.
53+
- **Tools**
54+
- 🐛 [**Logger**](https://github.com/albinaask/Log) - Easier debugging, custom log groups configuration.
55+
- 🧩 [**IDE Plugin**](https://github.com/Maran23/script-ide) - Improves scripting in GDScript in editor.
56+
- 📋 [**Resource View**](https://github.com/don-tnowe/godot-resources-as-sheets-plugin/tree/Godot-4) - Better resource management in editor.
57+
- ✨ [**GDScript Toolkit**](https://github.com/Scony/godot-gdscript-toolkit) - Code style [formatting](https://github.com/ryan-haskell/gdformat-on-save) on save and [linter](https://github.com/el-falso/gdlinter).
58+
- **Workflow**
59+
- 🚀 **Deployment** - Automatically upload to [itch.io](https://itch.io/) page from Github.
60+
- ✅ **Actions** - Verify style and formatting in GDScript code on push to Github.
61+
62+
### 🗿 Additional Examples
63+
64+
The project contains example `game_content` scenes (set it in `game_scene` scene).
65+
66+
- **2D Incremental Clicker** (default)
67+
- [**3D First Person Controller**](https://github.com/rbarongr/GodotFirstPersonController) (`/artifacts/example_3d_fp_controller`)
68+
69+
Default game content scene can be changed in Game Options under "Game Mode".
70+
71+
This is applied via `_load_game_content_scene` function. *(Option 0 is empty project.)*

.github/docs/GET_STARTED.md

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
2+
Back to [⚡ Hacks](https://github.com/TinyTakinTeller/TakinGodotTemplate/blob/master/.github/docs/HACKS.md) of the project.
3+
4+
See [💕 Examples](https://github.com/TinyTakinTeller/TakinGodotTemplate/blob/master/.github/docs/EXAMPLES.md) of the project.
5+
6+
7+
8+
## 📖 Get Started
9+
10+
11+
### 📘 Setup
12+
13+
After setup, you should have no errors and no warnings.
14+
- Either click [Use this template](https://github.com/new?template_name=TakinGodotTemplate&template_owner=TinyTakinTeller) in Github or clone the repository.
15+
- Setup [GDScript Toolkit](https://github.com/Scony/godot-gdscript-toolkit) python package to use formatter and linter plugins.
16+
- Open (Import) the project for the first time in the Godot Editor.
17+
- Enable all plugins, then restart the project "Project > Reload Current Project".
18+
19+
20+
On Godot 4.3, you must also:
21+
- Do [font uuid workaround](https://github.com/godotengine/godot/issues/80237) by opening `res://resources/global/theme.tres` and clear then set again the font `noto_sans.woff`.
22+
- Do [font fallbacks workaround](https://github.com/godotengine/godot/issues/92297) by editing `noto_sans.woff.import` and pasting lines:
23+
```
24+
Fallbacks=null
25+
fallbacks=[Resource("res://assets/font/noto_sans/woff/noto_sans_arabic.woff"), Resource("res://assets/font/noto_sans/woff/noto_sans_hebrew.woff"), Resource("res://assets/font/noto_sans/woff/noto_sans_hk.woff"), Resource("res://assets/font/noto_sans/woff/noto_sans_jp.woff"), Resource("res://assets/font/noto_sans/woff/noto_sans_kr.woff"), Resource("res://assets/font/noto_sans/woff/noto_sans_sc.woff"), Resource("res://assets/font/noto_sans/woff/noto_sans_tc.woff"), Resource("res://assets/font/noto_sans/woff/noto_sans_thai.woff")]
26+
```
27+
28+
To resolve "invalid UID" warnings, re-save the scene causing them.
29+
30+
31+
### 📘 Extend Options (Configuration)
32+
33+
1. Add a new enum value in `ConfigurationEnum`.
34+
2. Create a new `_cfg` scene (in `autoload/configuration/configuration_controller/`) and set export variables in the editor.
35+
3. Instantiate the new `_cfg` scene as child of `Configuration` autoload.
36+
4. Instantiate a new UI node (from `scenes/node/menu/menu_configuration/`) and set export variables in the editor.
37+
38+
39+
### ❓ FAQ
40+
41+
For questions and help, open a Github Issue or contact Discord `tiny_takin_teller`.
42+
43+
- Opening the project for the first time, I have errors/warnings?
44+
- Try (re)enable all Plugins and then select "Reload Current Project".
45+
- Warning "ext_resource, invalid UID" when opening the project?
46+
- Resolve by re-saving the mentioned scene (.tscn), e.g. rename root node.
47+
48+
49+
### 💼 Editor Layout
50+
51+
Editor layout can be changed via "Editor > Editor Layout > ..." in Godot Editor.
52+
53+
To use my layout, locate `editor_layouts.cfg` in [Editor Data Paths](https://docs.godotengine.org/en/latest/tutorials/io/data_paths.html#editor-data-paths) and add:
54+
55+
```
56+
[takin_godot_template]
57+
58+
dock_1_selected_tab_idx=0
59+
dock_5_selected_tab_idx=0
60+
dock_floating={}
61+
dock_bottom=[]
62+
dock_closed=[]
63+
dock_split_1=0
64+
dock_split_3=0
65+
dock_hsplit_1=365
66+
dock_hsplit_2=170
67+
dock_hsplit_3=-430
68+
dock_hsplit_4=0
69+
dock_filesystem_h_split_offset=240
70+
dock_filesystem_v_split_offset=0
71+
dock_filesystem_display_mode=0
72+
dock_filesystem_file_sort=0
73+
dock_filesystem_file_list_display_mode=1
74+
dock_filesystem_selected_paths=PackedStringArray("res://")
75+
dock_filesystem_uncollapsed_paths=PackedStringArray("res://")
76+
dock_1="FileSystem,Scene,Scene Manager"
77+
dock_5="Inspector,Node,Import,History"
78+
```
79+
80+
For editor features, you can change "Editor > Manage Editor Features..." (e.g. toggle 3D Editor view).

.github/docs/HACKS.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
2+
Back to [🎉 CI/CD](https://github.com/TinyTakinTeller/TakinGodotTemplate/blob/master/.github/docs/CICD.md) of the project.
3+
4+
See [📖 Get Started](https://github.com/TinyTakinTeller/TakinGodotTemplate/blob/master/.github/docs/GET_STARTED.md) of the project.
5+
6+
7+
8+
## ⚡ Hacks
9+
10+
Godot Engine [has known issues](https://github.com/godotengine/godot/issues) requiring hacks (workarounds) until officially resolved.
11+
12+
This template implements workarounds for the following issues:
13+
14+
- **General**
15+
- [x] Issue [#96023](https://github.com/godotengine/godot/issues/96023) **custom theme**. Solved with startup script.
16+
- [x] Issue [#66014](https://github.com/godotengine/godot/issues/66014) **suffixed tres files**. Solved with sanitization.
17+
- [x] Issue [#65390](https://github.com/godotengine/godot/issues/65390) **defect GPU particles**. Solved with interpolate toggle.
18+
- [x] Issue [#35836](https://github.com/godotengine/godot/issues/35836#issuecomment-581083643) **font size tween lag**. Solved by scale tween instead.
19+
- [ ] Issue [#89712](https://github.com/godotengine/godot/issues/89712) **"hicon" is null** sometimes. TODO?
20+
- [ ] Issues [#75369](https://github.com/godotengine/godot/issues/75369), [#71182](https://github.com/godotengine/godot/issues/71182), [#61929](https://github.com/godotengine/godot/issues/61929) **large scene lag** sometimes. TODO?
21+
- **Desktop**
22+
- [ ] Issues [#3145](https://github.com/godotengine/godot-proposals/issues/3145), [#6247](https://github.com/godotengine/godot-proposals/issues/6247) **boot window mode**. TODO: cfg override.
23+
- [ ] Issues [#76167](https://github.com/godotengine/godot/issues/76167), [#91543](https://github.com/godotengine/godot/issues/91543) **Boot Splash "leak"**. TODO?
24+
- **Web**
25+
- [x] Issue [#81252](https://github.com/godotengine/godot/issues/81252) **web clipboard**. Solved by native JavaScript dialog.
26+
- [x] Issue [#96874](https://github.com/godotengine/godot/issues/96874) **web boot splash**. Solved by CSS in Head Include.
27+
- [x] Issue [#100696](https://github.com/godotengine/godot/issues/100696) **play_stream bus**. Solved by explicit func args.
28+
- [ ] Issue [#43138](https://github.com/godotengine/godot/issues/43138) **web user focus**. TODO: "click to continue" boot screen.
29+
30+
**TODO**: Test the template on following platforms.
31+
- **Linux**
32+
- **MacOS**
33+
- **iOS**
34+
- **Android**

0 commit comments

Comments
 (0)