Skip to main content
GameDev.net gamedev.net
🔒 Locked

Godot or not?

Started by Sir_Pep Apr 3, 2019 at 10:41 PM 17 replies 19.3k views
Original Post
Sir_Pep
Sir_Pep

Before I start ask the big question I'll first explain my situation.
For those that follow my project you already probably know I'm making a 2d RPG with Unity. It has been working well for us so far, but there have been issues that have made we wonder recently if we should switch before it really is too late...

Issue #1 : Internet has been an issue. I don't always have internet on my computer, and so when offline time comes along, even though Unity is supposed to work, it sometimes just plain doesn't! This has cost us several evening of development so far, and has been incredibly frustrating to deal with.

Issue #2 : 2d has also been an issue. Even though the scripting side has gone like a dream for us, the animating and pixel art very much has not. Prototypes are decently fast, but rendering has forced us to use hacks, and even change our art so that Unity can properly render it... Obviously not a satisfactory situation ☹️

I know this is a small list, but I'm sure you guys understand I can't accept losing possibly weeks of development time every time I have to work offline, and that I hate to think that I might run into a 2d rendering issue that will also prove costly. Also, as you guys know Unity is mostly built for 3d and if there are bugs I don't exactly have a lot of help.

With all that said I have been looking around for a good option and direction to take, and one of the first engines I hit was Godot. Free, Good 2d, a very beginner friendly.
Spending Money isn't that much of an option for us otherwise I would take GameMaker, but I have heard that Godot would be right in the Wheelhouse of what we are looking to make.

So my 2 Big questions here are. How well does Godot flow with offline work, and would it really be as good for our project as it seems to me to be. Also, how good is GDScript for bigger Projects?

Thank you very much to whoever is reading this and takes the time to answer, because I really need to know if i'm going the right direction with all this.


Alberth
Alberth

In general, the best thing to do in such cases is a test drive by yourself. It's terribly hard to get the experience across through a text-only medium, where ideas and experiences differ greatly.

So, download the thing, and try it. You could even wait with doing that until you're stuck with Unity again ("trying" part, not the "download" part ? ). There is really no substitute for experiencing it yourself.

Give it a few days, then you have somewhat of an understanding what you can expect and you can make a more informed decision.

lawnjelly
lawnjelly

What platforms are you aiming for? If android / iOS I would make some little tests and double check that your exports work. I've not been able to get android builds to work, however I've only used 3d and the 2d may be easier for this.

It has offline help files which are really handy, especially as there isn't as much useful stuff online / tutorials as with unity.

Also expect bugs, it is very much a work in progress (check out the issue tracker on github). There are things you may need to workaround. But this is the same with unity.

GDscript is pretty capable, especially as of 3.1. However it is slow, so you won't want to do any heavy computation. This may improve in the future roadmap with the new strong typing. There are also optional builds with C# support now if you prefer that.

Sir_Pep
Sir_Pep

Thanks to the both of you :) I think I will check it out


AticAtac
AticAtac

"Issue #1" was also for me the reason to go away from Unity to Godot. I like the simplicity of Godot (just 1 file and no internet connection or other overheads needed). Until now (i am porting my game from MadeWithMarmalade) everything goes fine in Godot and I hadn't any showstopper.

Sir_Pep
Sir_Pep

Thanks very much @AticAtac!! Exactly the comment I was waiting for. I'm currently turning to dual booting my Mac because it's getting older, and since Godot is supported on Linux I may just take this time and dive into it.

DeadStack
DeadStack

Godot is in alpha and it shows.

Edit: take a look at Xenko https://xenko.com/ it's more mature than Godot.

And thanks for the downvote, just sharing my opinion, I've had Godot on my system for a few weeks and I'm yet to even be able to get it to run, it's not ready for prime time. They even say on the front page - Don't use this for commercial projects - It's not ready.

fleabay
fleabay
1 hour ago, DeadStack said:

They even say on the front page...

Is that an opinion also?

ED: Any software can proclaim itself to be alpha/beta/release. So even if Godot claimed to be a release version, it could be alpha quality software. But officially or unofficially, Godot is not alpha software. Also, getting the editor to run is about as easy as it gets, just unzip and run the executable.

🙂🙂🙂🙂🙂<←The tone posse, ready for action.
DeadStack
DeadStack
19 minutes ago, fleabay said:

Is that an opinion also? 

Does it sound like opinion? That being said, I can't actually find the page that says that. I don't think I'm mistaken, except that it doesn't look like it was on the front page.

fleabay
fleabay
1 minute ago, DeadStack said:

Does it sound like opinion? That being said, I can't actually find the page that says that. I don't think I'm mistaken, except that it doesn't look like it was on the front page.

I'm guessing you confused the C# integration as "Don't use this for commercial projects - It's not ready.". But OP inquires about GDscript, not C#. Regardless, Godot is not Alpha software.

🙂🙂🙂🙂🙂<←The tone posse, ready for action.
DeadStack
DeadStack

You're probably right. I was using the C# version. My mistake.

Jordan Hoffman
Jordan Hoffman
On 5/10/2019 at 10:16 AM, DeadStack said:

Godot is in alpha and it shows.

Edit: take a look at Xenko https://xenko.com/ it's more mature than Godot.

And thanks for the downvote, just sharing my opinion, I've had Godot on my system for a few weeks and I'm yet to even be able to get it to run, it's not ready for prime time. They even say on the front page - Don't use this for commercial projects - It's not ready.

What in the world are you talking about? Godot has been out since 2014 and is currently on version 3.something. Are you confusing it with something else?

Mend and Defend
DeadStack
DeadStack

"Are you confusing it with something else?" - No, I'm not confusing it with anything else. It may be in version 3.x but I had a number of problems with it that made it completely unusable. Maybe the C# version was in alpha, as discussed above.

But even if I could get it to be stable enough to do work with, which I wasn't able to, it's obviously written by Android developers, it uses GLES exclusively, and it doesn't even have DirectX support on Windows - which should be the first API targeted on this platform. It's not a good Windows engine. There are several others that beat it hands down. It doesn't actually deserve it's current popularity.

lawnjelly
lawnjelly
3 hours ago, DeadStack said:

But even if I could get it to be stable enough to do work with, which I wasn't able to, it's obviously written by Android developers, it uses GLES exclusively, and it doesn't even have DirectX support on Windows - which should be the first API targeted on this platform.

I've not used it on windows, I'm on linux and I have a feeling that a lot of the core developers are also mainly using linux. Regarding stability I would say the graphics API side compatibility definitely needs some work.

One key thing about Godot is that it is community driven and written. This has both plus points and negatives. It does mean that developers will tend to work on aspects that interest them (usually new features) and features that are broken for them personally. There can be perhaps a bit too much focus on adding new features rather than fixing existing bugs / compatibility checking, which could be seen as less interesting to a volunteer (but of course not a problem if your salary is paying for this). It took me a bit of time to realise if you encounter a bug in the engine, it is up to you to investigate it, write a bug report (issue) on github describing it, and even to fix it yourself if you are up to it.

The decision to use GLES 3 exclusively was in retrospect, less successful than it could have been. GLES 3 offers lots of techniques and 'should' in theory be standardized, and the subset of OpenGL used should be compatible with desktop OpenGL (forget which version).

Practice is different though, and I think they found that the GLES3 drivers have been patchy, leading to the need for development of GLES2 for mobiles. Unfortunately GLES2 is even more patchy with support for features in some devices and not others, driver bugs etc, and there's currently a few of us pushing to get this fixed.

This isn't Godot's fault, they simply want to use an Open, widely and well supported cross platform API. The problem is one doesn't yet exist. One thing that DirectX does do right and OpenGL has missed out on is having feature requirements that need to be supported by the hardware in order to say 'this card supports DirectX 25' or whatever. OpenGL has been rubbish on this front so far, so as a developer you end up not being able to develop for any kind of fixed tier, you have to mix and match different features at runtime to get kind of what you intended, and it is a development nightmare.

As a result of this, the current effort is being placed on writing a Vulkan backend (reduz has started working on this very recently). The idea is that vulkan is powerful and should be in future widely supported, and there are afaik better checks for hardware conformance.

Personally I'd wonder whether writing a backend for a cross API wrapper like Dilligent Engine or BGFX would have been a nice idea and let them handle all this stuff.

I guess part of the problem is not only in writing a 'backend', it is that the different APIs might support different feature sets, and you need to expose this to the actual users somehow. You either need some kind of more abstract way of defining things in the engine (i.e. this light produces shadows, they are medium quality etc) and let the backend translate that into something more meaningful, or you need a full set of options for lots of node types depending on which renderer they are using.

Regarding DirectX as a backend, I don't think there are any plans for this in near future. On desktop I think the impression is that OpenGL support and Vulkan in future should have this covered.

Anyway, most of this mindfart is concerned with 3D, and in 2D things should be much simpler. I've not used the 2D features aside from user interface, but I get the feeling compatibility should be much less an issue as they simply don't need so many features.

swarastana
swarastana

Lets compare the two from the software perspective, both utilize open source development, wether you like it or not, Unity has an open branch and there is an official inofficial debian file that helps you install unity on linux, and its a great user experience, despite there being bugs and the online thing etc. so its the same as unity on windows, having said that, anything that is going to be taylored for a plattform, or developed on it will run better on said plattform, but I think Godot wins the race here! Since, it has a small file size and compared to what it offers, nearly the same, but offcourse not as professional as Unity or Unreal assets.

(I am making two point into one here, not the smartes thing to do, sorry, I hope you still understand!)Furthermore, lets look at how Unity handles distribution of executables, it has none, it updates itself, it is freely usable, but you will have to pay royalities after a certain threshhold, thanks to competition not only market places but also I hope engine marketers have opened their eyes to better circumstances surrounding smaller developers and their ability to market to other developers and the likes, I guess Unreal wins that one ;)

Both let the developer change stuff, I mean Nintendo has their own closed off branch of Unity for their games, so yeah, they are probably pretty open to talk to about nearly anything, cash probably speaks a better language in this department though, but still, I have heard stories of developer support being so and so, but both engines have that problem, Godot utilizes volunteers but the ones with the skin in the game are a small group! Not that optimal to react to, but very much so in reach for nearly anyone, but it doesnt hurt Monogame for instance!!!! Dont forget that juggernaut! And that framework/engine does not even have an editor, theoreticly! The XNA editor is closed source after all, but the two should be quite compatible still!

So, to cap that off, comparing the filesize of the two editors and their engine backend, godot wins the race, and godot is highly customizable and extendable, and you dont have to answer to anybody, you are even allowed to distribute the engine itself with your project files etc. thats cool! Also, all the past executables of godot will stay free, so if they ever decide to really be a commercial product you can still use all the later versions, I have been holding on to quite a few myself, I dont throw away the zips if you are curious!

To further my point, you can actually download version 2.4 or 2.5 because it is backwards compatible to so many old machines, so your 150 dollar bargain laptop of ebay or whatever local website you use can power all of your development and thats huge! Also a little bit about maturity, godot has been used with commercial products, mobile games and so on, the front page was littered once with a candy crush like game, their platinum sponsor is a crypto coin currency firm that wants to make in game purchases based on crypto, the value of an item for instance... They have the cash from the community too, hype is there and people dont seem to be off put by the way the project is handled, I think these are good signs for any project, and yeah, hype can turn against the project, but, you seem to forget that the team has been moving slowly implementing changes and new features while also not overpromissing, those are the perks of open development, and consice community updates. Dont bite off more than you can chew!

Lets talk about development, a side of godot I have been not that acustomed with but my little experience will do, for my point! In the beginning the engine and the editor had allready a pretty mature documentation and usage, but the two did not go well together, you cant just use the documentation to learn about godot, I mean you can but there were still hickups, theory and execution are two pair of shoes, and probably there are now still some things that need experience to solve, you need to be an experienced developer to really kick it off with godot if you dont want to just emulate outdated video tutorials, hardened programmers wont cut it, but theres allways the community around it! Its not as smooth as unity, but unity is slow with its introduction to things! I think in this department both engines have drawbacks! There is no clear winner! Making it work in unity when you want to solve with source and you shouldnt and visce versa with godot is a pain, unity is better at introducing workflow to new users, because they have planed their UI out a little better to acustom the engine, there is a clear intended way to do things and godot has changed in the past to make that clear with warnings, but the documentation probably still does not reflect that, and honestly, thus is the drawback of interpreted languages like python, which is very similar to godots very own GDScript! Execution while running is kinda flawless, but the build up and less wiggle room when it comes to interpreting what the language wants from the humand behind the keyboard has its drawbacks with python and similar languages! Still the simplistic structure of languages like python, lua and of similar vain make them very efficient, and thus making the developer reach the breaking point even faster -> maturity as a developer! But maybe you should just stick with GDScript, theres REALLY NO SHAME about it, its definately a big boy language, being caged in the editor, but thats a good thing, having just brushed over the C# documentation for godot it seems that GDScript just takes away all the "bad" things associated with non interpreted languages, I dont know what C# is, its also a scripting language! SEW ME! What I mean is, while you need the right imports, you need the right class names, etc. with C# in godot, that has been lifted from you in GDScript, have I looked that up earlier, oh how much smarter would I have been ;(

So, to compare the two, from the perspective of using an external code editor to make scripts... its handled crapily in unity, or I have not found a better way, either you let the developer edit in engine and you distribute one version of the editor, in this case critisism towards godot, or you let the developer edit in engine and compile also in engine, while in the external editor, critic towards unity! I dont know, point being, the unity coding experience is bad, or I havent found a better way, and thats a commercial product, that probably needs other commmercial products to work, i.e. Visual Studio, but you can get the VScommunity version. In any case, I dont understand why godot went the unity route with this, but I also learned this today, so it might be pretty amazing! I think I have rambled toooooooooo long! Final point being! No royalties with godot! Programming can be a chore with GDScript, it breaks earlier than you are used too, but I think thats good! Yeah thats good, but not when you are working on some idea... ok, choose godot please, I think its friendlier towards your situation.

Mosker
Mosker

@SIr Pep What did you end up doing? I've been using unity because of the relative ease of deploying on multiple platforms, but my games are so light I'm wondering if it's time to look around…and now that Godot has more language support (as an old Java programmer--several careers ago--the easy transition to C# was part of what attracted me to Unity.

Multiplayer/networking in your plans? Thoughts (the fact that there is little Godot talk here is a bit discouraging--plus I'm old enough to prefer something with more physical books to help newcomers.)

Green_Baron
Green_Baron

I am thinking about using an engine for the tedium as well. Yesterday i downloaded unreal but it is 40 bloody gigabytes ! That's more than my whole OS ! Not sure if that's healthy. Will have another look at Godot. First time i did was when i started with all this, it was in late 2 and i had no idea about C++, it's sources looked like Egyptian hieroglyphs (1st dynasty) to me. That has changed in the meantime … :-)

SibylSystem
SibylSystem

I've been messing with Godot recently. I think it has a lot going for it, even if it is not quite to the level of other popular engines. It's definitely stronger in 2D than 3D. Though, I've found a number of small and not so small bugs, and they don't always get fixed right away.

It's understandable that the developers (aside from some funding they have gotten more recently) are basically donating their time to an open-source project. You can't complain too much. But I did find some major blocking issues with Github history going back years and that are still unresolved.

That said, a lot of progress is being made, and the new Vulkan renderer looks to be shaping up nicely (more important for 3D of course). I think it's going to be an important project, but I'm not sure it's competitive for 3D at the moment. I think for 2D you'll probably be okay for retro 16-bit titles. Even 3D can work with a low-poly aesthetic. But they have a ways to go to get to the kind of current-gen graphics you would want.

Even considering that, there is a lot to like. The engine is super small and light-weight. You can open the editor in seconds for a blank or simple project, and probably like around 30 seconds to 1 minute for something more complex. The editor is very stable, I've tried on Linux and Windows and it works well and does not crash. It would probably work better on low-end dev hardware. I was even able to open it on my Chromebook. Granted, it was slow, and I could barely get 5 fps playing a game, but it worked.

The whole philosophy makes sense, the API is clean and (mostly) well documented. Sadly, the API has changed pretty drastically over the years, so many Stack Overflow answers are incorrect now. Best to search in the updated docs and figure things out yourself.

And the community is pretty helpful, especially on Reddit there is lots of action unlike some smaller FOSS engines that seem to be dead (or on life support). This engine is under active development and the community is growing and getting larger.

I'm still trying to figure out what the heck I'm doing, was working on a custom engine for a while, though that got pretty daunting and I'm exploring whether any existing tech meets my needs (it all seems to be a compromise).

I would definitely recommend just downloading Godot and trying it with some simple projects (like Pong, first level of Mario Bros, etc.) and seeing how you like it. Everyone has different needs and requirements, and the range of games you can make means that an engine that works for me may not work for you. So try it out.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.