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

Godot

5843 readers
7 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

[email protected]

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
[–] [email protected] 7 points 3 months ago* (last edited 3 months 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.

[–] [email protected] 2 points 3 months ago (1 children)

will this allow me to create an execution stack?

[–] [email protected] 2 points 3 months ago* (last edited 3 months 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

[–] [email protected] 4 points 3 months ago* (last edited 3 months 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)