Hello,
Tell me please is Godot good for big 2d games or it's mostly for mobile ? What if game like RimWorld , is Godot good choice for it ? Or Unity engine is more simple way ?
Is Godot have API for working with multithreading programming, for example if I want generate and load map (graphic) realtime ?
Is Godot have instruments for working with pathfinder ?
What about big game ?
Yes, godot can do all of that. But it will take some serious time investment on your part to get up to speed with godot as well as general game development experience to tackle such a large project. It won't be 'easy' no matter what engine you use. There are no shortcuts.
Megalomaniak Thanks for answer, I worked on several 3d games on Unity before, but for 2d game I thinking about another engine. I had a problem with Unity when I tried to load map in real time, I can't to do it in another thread, only asynchronously. Maybe I'm not good programmer But before learning Godot I want to understand is it best choice for my game or not ...
- Edited
Vinny Unity when I tried to load map in real time, I can't to do it in another thread, only asynchronously.
Then if I understand you right - no, I don't think godot's got a way out of the box to do it either. Might still be possible perhaps, but would be more involved. Worst case, since it is open source could try adding what you need to the core in a fork. But I don't do much beyond UI in 2D so I simply might not know or be missing something.
- Edited
Vinny I can't to do it in another thread, only asynchronously
In the current programming terminology as I understand it, wouldn't "asynchronously" and "in another thread" mean basically the same thing?
In Godot you can stream data from a file in a thread, no problems, if that's what you're asking.
Megalomaniak thank you, it's important thing for me, maybe someone will answer
xyz no, it's:
Asynchronous programming is about the asynchronous sequence of Tasks, while multithreading is about multiple threads running in parallel
- Edited
Vinny You're tempting me to link the wikipedia article on async programming .
You should describe more clearly what type of thing you want to achieve. That way it'd be easier to answer if it's doable in Godot or not.
There's a simple but sufficient thread api (threads, mutexes, semaphores). As I already said, you can set up a data streaming thread in a few lines of code.
I'm not sure what you mean by "pathfinder"? If you're talking about 2d navigation then yes. Godot has built-in helper objects that facilitate A* pathfinding, as well as navigation polygons pathfinding.
xyz I still checking documentation and found this:
However, creating scene chunks (nodes in tree arrangement) outside the active tree is fine. This way, parts of a scene can be built or instantiated in a thread, then added in the main thread:
So it seems what i need. Because i want to load chunks of map before they become visible to player. I need to load textures,objects from files in 'background'. So i want
to use different thread for it and then insert it to scene tree on main thread. As i plan to have big map and want to load/unload chunks of it while player moving.
Yes, that should be doable, what was confusing was that I can't think of any reason why it couldn't be done on unity as well...
- Edited
xyz
it's very strange, I did not found how to do it in Unity, only async (with Coroutines). Because Unity can't work with MonoBehavior in another thread. I understand it's not Unity's forum, but maybe somebody know how to do it
- Edited
Vinny Is Godot have API for working with multithreading programming, for example if I want generate and load map (graphic) realtime ?
- We continue to improve Godot’s multi-threaded behavior and fix bugs from the recent changes. Such improvements include multiple fixes to multi-threaded resource loading (GH-74405, GH-77143), multiple fixes to the WorkerThreadPool class (GH-76945, GH-76999), and an early version of the multi-threaded node processing (GH-75901). Thread safety of many engine and editor types has been improved, though this work is still ongoing and will continue into Godot 4.2.