Hello everyone I am ready to work on my first complex game specifically an action rpg that as a close reference has the tales of phantasia.

Until now I work in godot with gdscript but for this project i donโ€™t thing itโ€™s enough( taking the all the calculations needed, AI for the enemies and party members and rendering everything) so I research a little and I get a lot of mixed signals, some says gdscript is enough, others gdscript with gdextension or on the other side with mixing gdscript and C# or fully C#.

I want to ask for this type of game which is a good option and how i can aproach this with tutorials or something to give me an idea how I should structure the code?

  • xyz and pegasusearl replied to this.
  • Shortanel like how much damage a weapon can do, dodging an attack, damage reduction, etc. can make the game slower. That's why I wanted to ask if these are real processing consumers or not.

    They are not.

    The choice of a scripting language in Godot is not really an either-or proposition. You can use all of the languages you mentioned - GDScript, C# and C++ - simultaneously, each handling some parts of code. You don't even need to decide in advance. Be relaxed about it and simply start writing/prototyping the game in GDScript as it is the most convenient but still powerful option. During the development process, if some parts of code start to cause bottlenecks, you can always re-write only those specific parts in one of the faster options, while still keeping the majority of code in GDScript. Although, for a game like Tales of Phantasia it's very unlikely you'll need anything other than GDScript.

    Try not to obsess over it and fall into the trap of premature optimization. Just start coding in GDScript. It will be fine.

    Shortanel If you're not sure - use GDScript. It's capable of handling something like Tales of Phantasia just fine.

    what kind of calculations do you need that gdscript cant do? i mean, all we do is shift and set bits... idk, i dont like mixing ms garbage with oss. imo gdscript can handle everything, unless its broken

    @kuligs2 I just speak from my paranoia right now, but from what i understand things like how much damage a weapon can do, dodging an attack, damage reduction, etc. can make the game slower. That's why I wanted to ask if these are real processing consumers or not.

    • xyz replied to this.

      Shortanel like how much damage a weapon can do, dodging an attack, damage reduction, etc. can make the game slower. That's why I wanted to ask if these are real processing consumers or not.

      They are not.

      The choice of a scripting language in Godot is not really an either-or proposition. You can use all of the languages you mentioned - GDScript, C# and C++ - simultaneously, each handling some parts of code. You don't even need to decide in advance. Be relaxed about it and simply start writing/prototyping the game in GDScript as it is the most convenient but still powerful option. During the development process, if some parts of code start to cause bottlenecks, you can always re-write only those specific parts in one of the faster options, while still keeping the majority of code in GDScript. Although, for a game like Tales of Phantasia it's very unlikely you'll need anything other than GDScript.

      Try not to obsess over it and fall into the trap of premature optimization. Just start coding in GDScript. It will be fine.

        xyz I guess you're right. I really didn't want working on the project and half through it to find that i need to refactor many elements. But thank you I will go with the gdscript and see what that lead me.

          Shortanel believe me, you will... you will, like the rest of us ๐Ÿ˜ƒ... its part of game dev. You build something the figure out that it doesnt work, and you either spend months trying to fix it or just rewrite the whole thing ๐Ÿ˜ƒ.. Ive been there.. but with this you learn not to make these mistakes next time

          Shortanel so I research a little and I get a lot of mixed signals, some says gdscript is enough, others gdscript with gdextension or on the other side with mixing gdscript and C# or fully C#.

          Programming language selection is opinionated. I used both gdscript (godot) and C# (unity) for my jobs.
          Personally I prefer C#, but will still use gdscript for godot game. My reason is NOT runtime performance as I think it's the least important (I will still write code as performant as I can)

          Both had pros and cons, only you know what's best for you.

          Shortanel I want to ask for this type of game which is a good option and how i can aproach this with tutorials or something to give me an idea how I should structure the code?

          My first attempt on complex game prototype is action rpg too (made with Construct 2). It doesn't look as complex as the game you mentioned and it plays terribly, but it has consecutive attack, roll, parry, upgradeable-stat, damage calculation with critical hit, knockback, etc. It might be different from what you are trying to achieve.

          I would recommend try making topdown shooter game. Also don't just do the tutorial, make your game as wacky as possible. Play with numbers, effect, and so on. If you can find platformer tutorial with melee attack, that might be better for your case.

          Next, learning state machine will help you tackle many complex games with ease, I think it's half of the "structuring your code". Use it to evolve your previous game and you got yourself at least a prototype of an action game.

          Shortanel I really didn't want working on the project and half through it to find that i need to refactor many elements.

          That happens naturally in every project, theres no point fretting over it. When something will benefit from a refactor you will then evaluate whether it's worthwhile or not.