this post was submitted on 01 Aug 2024
21 points (100.0% liked)

Godot

5681 readers
10 users here now

Welcome to the programming.dev Godot community!

This is a place where you can discuss about anything relating to the Godot game engine. Feel free to ask questions, post tutorials, show off your godot game, etc.

Make sure to follow the Godot CoC while chatting

We have a matrix room that can be used for chatting with other members of the community here

Links

Other Communities

Rules

We have a four strike system in this community where you get warned the first time you break a rule, then given a week ban, then given a year ban, then a permanent ban. Certain actions may bypass this and go straight to permanent ban if severe enough and done with malicious intent

Wormhole

!roguelikedev@programming.dev

Credits

founded 1 year ago
MODERATORS
 

I am currently trying to implement a magic system, where a user can construct their own spells using spell components. What are recommended methods / structures to accomplish this?

top 4 comments
sorted by: hot top controversial new old
[–] frankgrimeszz@lemmy.world 7 points 1 month ago* (last edited 1 month ago) (1 children)

https://gdscript.com/tutorials/classes/

Are you familiar with object orientated programming?

Basically you could create a class called Spell that acts as a blueprint. Add a variable for each property the blank spell needs to hold.

Then, in other classes, you create an “instance” of the Spell class, maybe called MyUniqueSpell and set its properties based on user input. You can have many different instances of the Spell blueprint; each with their own unique attributes.

In Godot, they say that Scenes can kinda behave as classes/blueprints too.

Of course, you can ignore OOP best practices and just use the code examples here: https://docs.godotengine.org/en/stable/tutorials/io/saving_games.html For small projects, ignoring the rules is okay.

[–] nichtburningturtle@feddit.org 2 points 1 month ago (1 children)

will this allow me to create an execution stack?

[–] frankgrimeszz@lemmy.world 2 points 1 month ago* (last edited 1 month ago)

You mean a stack of Spells to use? Yes. You can create an Array or List of Spell Objects and easily go through them. https://docs.godotengine.org/en/stable/classes/class_array.html

[–] GammaGames@beehaw.org 4 points 1 month ago* (last edited 1 month ago)

I’ve done something similar in the past using custom resources, they’re easier to work with than a bunch of custom nodes/inherited scenes imo

Edit: and to make it easier to manage all my base resources I used a handy plugin https://godotengine.org/asset-library/asset/1479 (this was 3.X, I haven’t used the 4.X version)