SirLich,
@SirLich@mastodon.gamedev.place avatar

What kind of work do you share between your Godot projects, and how?

Currently I can think of the following:

  • Actions (e.g., quickly setup common input actions)
  • Plugins (some encapsulated tool usually with editor support)
  • Templates (something you intend to edit, like a base character controller)
  • Asset/Collections (some scripts/scenes which you could inherit from/use, but wouldn't be expected to edit, such as ui-components)

njamster,
@njamster@mastodon.gamedev.place avatar

@SirLich I set up a GitHub template a while ago (https://github.com/njamster/godot_game_template), that I use as a base for most of my projects. It's still very much a work-in-progress and completely undocumented, mostly because I'm not so great at working consistently on it, but it's a great aid already. Currently, it entails:

  • screen transitions
  • language selection
  • a main menu screen
  • settings & input remapping
  • credits (read from a markdown file)
  • a pause menu & game over screen
  • input prompts
krapp,

@SirLich I have a script to add default input mappings and 2d and 3d character templates. Also some default @kenney assets

I just keep everything in a big projects folder and copy and paste into Godot projects when I need to.

SirLich,
@SirLich@mastodon.gamedev.place avatar

@krapp When do you find time to improve the character templates?

krapp,

@SirLich Whenever I have free time. I have a full time non gamedev job.

SirLich,
@SirLich@mastodon.gamedev.place avatar

@krapp I guess I didn't mean time so much as workflow. If you're working on a new project that includes the character controller template, do you ever update the template if you make desirable changes in the project?

frozenfire92,
@frozenfire92@mastodon.gamedev.place avatar

@SirLich I think themes are another good one too.

Haven't figure out sharing yet, git submodules is always an option, but maybe defining an add-on/plugin is better (not mutually exclusive to submodules)

SirLich,
@SirLich@mastodon.gamedev.place avatar

@frozenfire92 One issue with submodules is that addon repositories in Godot usually have an addons/addon-name/... format. So when you pull in the sub-module, it will have this extra structure

It would be better if the repos didn't have this extra structure, and would instead just be the contents of the addon folder.

frozenfire92,
@frozenfire92@mastodon.gamedev.place avatar

@SirLich yeah good point about the submodules 🤔 getting into package management territory is dangerous but maybe a shell script to fetch the repos and copy them into your new project (or replace to update) could work for a personal workflow

frozenfire92,
@frozenfire92@mastodon.gamedev.place avatar

@SirLich still working thru this myself, I think some autoloads are pretty obvious (like a Save script)

SirLich,
@SirLich@mastodon.gamedev.place avatar

@frozenfire92 I've been investigating tools for addon management in Godot (Glam, GodotEnv, etc), but none of them are really satisfying my requirements.

I need to do more thinking.

SirLich,
@SirLich@mastodon.gamedev.place avatar

Missing from this list is true assets like sounds/particles, whatever.

Those are best kept separate. I'm mostly interested in shared code assets.

I think if you want to share something between lots of projects, the bar for quality goes through the roof. You really need to start thinking about proper API, doc-strings, and most importantly backwards compatibility.

Do these aspects simply outweigh the attempt to share code/systems between projects?

SirLich,
@SirLich@mastodon.gamedev.place avatar

These downsides are less apparent if you treat everything as a template, or starter kit.

Creating something that is instantly modified is much easier than creating something stable that should only be used as a base class, or as a component of some kind.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • godot
  • DreamBathrooms
  • mdbf
  • osvaldo12
  • magazineikmin
  • cubers
  • rosin
  • thenastyranch
  • Youngstown
  • GTA5RPClips
  • slotface
  • khanakhh
  • kavyap
  • InstantRegret
  • Durango
  • megavids
  • everett
  • ethstaker
  • modclub
  • normalnudes
  • anitta
  • cisconetworking
  • ngwrru68w68
  • tacticalgear
  • Leos
  • provamag3
  • tester
  • JUstTest
  • lostlight
  • All magazines