crystal-bit / godot-game-template

Generic template for Godot games
MIT License
598 stars 47 forks source link

Focus on desktop platforms for the Godot 4.x releases, at least for now #80

Closed davcri closed 6 months ago

davcri commented 9 months ago

Decision

With the next releases of the godot-game-template for Godot 4.x I want to focus more on desktop platforms. I'm writing this issue to explain my motivations and to listen for any feedback.

Why?

The first goal is to ease the initial development phase. EG: jam games or short lived projects.

To do this I need to make a tradeoff. Supporting mobile platforms at the same quality level of desktop platforms is far more difficult and time consuming. I think the template can offer more value by focusing on one of them at a time, at least at the current state of things (I'm accounting my limited free-time as well).

What changes?

I plan to

Mobile CI builds are a pain

Also, please correct me if I'm wrong, I feel that few people actually used the Android CI.
Github CI was cool to integrate but in practical terms I prefer to run a simple script on my main PC to locally build the games and test them on the fly. At least this is what I found more useful during short projects and game jams.
Even for butler I'm totally ok to run it from my terminal.

Local tools

I often work on small games and I can build them faster locally than Github CI (taking into account upload time, docker image pulling, etc.). That's why I created https://github.com/crystal-bit/godot-game-template/blob/feature/godot4/release.sh

Upsides:

  1. local tools aren't tied to Github (you don't need a Github account to enjoy quick builds!)
  2. you are not limited by the Github usage plans https://docs.github.com/en/get-started/learning-about-github/githubs-plans I have a free account and I often consume all my CI minutes or storage in a couple of weeks.

Desktop focus adds more value in the short term

Games are developed mainly on the PC. Even YouAreUto, a mobile-only game bootstrapped with (an early version of the) godot-game-template, was often developed on the PC and had specific keyboard shortcuts like a simple layout switcher addon to test worst case resolutions.

Yes, you often need to test on real devices, especially if you need to make performance optimizations, debugging or interfacing with the OS API.
But by focusing on desktop first (in terms of utilities) I can offer more value for the initial development phase (which is the one that a template should focus on).

Maybe mobile-specific addons and utilities can be a completely separate addon to install alongside the template, but I don't have any plan right now.

Example: more utilities

In a recent game jam I created a small utility called DebugShortcuts. Every shortcut is assigned to a mnemonic keyboard shortcut and the parent node is automatically removed on release builds so that you don't ship debug tools in the final game (but only in debug builds). Focusing on desktop platforms allows for this kind of features that can remove friction and make games more fun!

Please give your feedback

Hopefully this does not affect users too much, but please let me know what do you think about this.

davcri commented 6 months ago

Feel free to reopen the issue for further discussion.