Some questions about a 3D RTS game in Godot

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By MOdy
:warning: Old Version Published before Godot 3 was released.

I’m not looking for a definitive answer. I’m looking for advice. You can skip till “the real question”.

I hope this doesn’t sound like a “can I make a x type of game in Godot?” type of question, because it isn’t.

I know Godot can handle a RTS.

Currently I’m a Unity developer, who finished two games using it. But a while ago, I looked into Godot and found it both a great iniciative and a great engine, and something a definitely would try out.

So now is the time. I have a RTS project, the most ambitious I have so far, and want to do it with Godot, even if I’m pretty familiarized with Unity. Maybe this is not a good idea, but I come here to see if you guys can convince me the opposite.

The real question:

  • I’m guessing right if I guess that nodes and scenes is a perfect system for a RTS?

  • I would need to do some stuff with C++ too. Is there any documentation on the C++ classes which I have acess to? (I’m not a expert in C++, but I know the basics).

  • And now, seriously: will be more smart if I just use Unity and, in the meantime, learn Godot to do the next game? Because I never used Godot before, and this game will be more a “test” to another RTS I’ll do after that. That is, I’m making this game to make some “tests” do the next.

The only thing bothering me is that I never used GDScript (neither python) and the lack of C++ documentation. Could that be a problem for me?

Thank you very much for any and sincere help!

I can’t tell if Godot’s node system is perfect system for RTS. I definitely prefer it over the scene/prefab system, but not for a specific kind of game. For me an RTS needs a good terrain system, good pathfinding and fun-to-play AI. Godot has some pathfinding included. No terrain node, but you can still design it in a modeling software, or generate it procedurally with a script or C++. AI depends on how your game works.
Oh and also you would need solid networking if you aim at multiplayer. This is intrinsicly hard whatever engine is in use. Godot has basic networking classes, and a more high-level, rpc/master/slave system will be available in 3.0.

GDScript is really easy to learn and just works™. It is nicely integrated in the editor, and can actually be debugged. The only thing not to expect is blazing fast performance, for which you can still use C++. And if you want a compromise, C# support is coming, for some time in 2017.

You’ll be surprised that the current documentation of GDScript is more or less the reflection of Godot’s C++ classes oriented for scripting. There is more under the hood of course (some of it is explained here http://docs.godotengine.org/en/stable/reference/_developing.html), but for gameplay code with nodes it’s simple enough once you get it (assuming you have C++ experience already), I can run/debug with QtCreator without too much hassle. Just expect it to be more tedious to write than GDScript at times, because, well, it’s C++^^
And if documentation is really lacking on unexposed C++ classes, you can still ask the community :slight_smile:

You are right about the fact switching to another engine is a bad idea when you already got your hands with one. It’s fine to get experience on another tech, it’s mostly your choice I would say. Are you happy with Unity? I did the switch myself after the massive 2D update and litterally ported my Unity project and still sticking with it, because the engine fits my needs for that project, I like the workflow and FLOSSyness of it. 3D is a bit meh at the moment but will get a major update too in the next months.

Zylann | 2016-12-26 01:50

Thank you very much for commenting!

I already know the problems that I’ll have with AI and terrain, but with the time I think I can do it. I’m not a master at C++, but I know enough to work with it. Most of my programming experience comes from Lua and C#.

Will Godot actually support C#? I heard that some people are against it. And I mean, if that will be bad for the engine, I’m against it too.

Yeah, the fact that Godot will release a new update with 3D upgrades is exactly what bring me here.

And for the aditional information, thanks! I think it will be best if I do some tests before jump in full development with Godot. So maybe I stick with Unity on this one.

This first game will not have multiplayer because, as I said, is more a test of mechanics.

MOdy | 2016-12-26 10:22

:bust_in_silhouette: Reply From: eons
  • I don’t know if the node system is perfect for RTS but is a good system, and some nodes, like Areas and AnimationPlayer are really powerful to get better designs and less complex scripts.

  • Try to do stuff in GDscript first, if you need more performance, turn those parts into C++ modules (should be pretty straightforward), but regular scripts should be enough to manage a pair of thousands of units and shots.

  • Yes, I think will be smart. Godot offer some interesting tools and ways to do things that may be easier to work sometimes (like the recommended project structure and OOP for scripts and scenes) but if you don’t know them that could be source of frustration if your design has some problems with the engine. You can try replicating the mechanics in a 2D version, to learn the language and know the nodes (similar tree and methods for 2D and 3D) and the limitations.

ps: As mentioned by Zylann, on Godot 3.x 3D will be a lot better, also better particle system which will be needed for a high action game like a RTS, so, is a good moment to start learning the basics.

  • I watch some videos before and really liked the node system, even if I don’t fully understand it yet. I think it would really help me with the units construction!

  • Yes, I will do so, but I’ve already read that it is good to program more the core in C++ and the gameplay and events in GDScript. I think that would be fine, I just need to read the source someday.

  • Yes, you’re right. I will start with the basics in Godot, and til then I can make my stuff in Unity if I feel like a can’t keep a project in Godot.

Thank you very much!

MOdy | 2016-12-26 18:00