My vote for Godot is that it works on Linux. What has blocked me from gamedev is the historical Windows requirement. I don't want to fiddle with virtual machines, bugs due to unsupported usage of the engine or dual boot. Electronics are very expensive in my country, so having 2 computers is a too big investment (this is also what blocks me from IOS dev btw). I need Linux because I am productive on it, and because I have an actual job besides my indie gamedev thing that requires it and I want to minimize context switch.
I have been able to run some big engines on Linux in the past, but it is always somewhat hacky and unsupported. The only game I was able to finish and launch was written in Java using the great libGDX (and I had to rent a mac in the cloud to compile for IOS (when Robovm was officially supported, don't know about how it's done now)). I am now considering Godot for my next game because it is free and runs on Linux.
Unity is fake 2D (locked orthographic 3D), and while it works for plenty of people there are plenty of reports of the tools being very difficult to use.
Godot has always been first and foremost a 2D focused engine, with 3D available if you want it. It's also far smaller and completely free (MIT) so you can make any changes you want at any level.
I don't use Unity, because throwing around vertex buffers isn't particularly difficult, but this is a pretty silly comment. Quads in an orthographic projection is what's done by literally every modern engine that's designed for any level of performance. "Fake" 2D is normal 2D in 2017.
2D is a special case of 3D. If you only want to do 2D then a 2D API is going to be simpler than a 3D API. There's a whole mess of parameters and transformations that just go away.
Do you really think Unity has great 2D tools? I tried it multiple times over the last couple years and always found it felt bloated and exactly like a 2D toolset bolted onto a framework really meant for 3D, instead of like a proper 2D-native engine and IDE.
I'm in the same boat. I tried for multiple years and I've been waiting for their experimental preview of their 2d tools since last summer. As someone who's rolled their own and has tried Unity, Godot, and GameMaker, I'd rather roll my own or use GameMaker than use Unity or Godot. I've found GameMaker Studio 2 to be quite nice.
If Unity ever finishes their experimental support for Tilemaps and other features, I'll try it again.
Also a fellow passenger on the USS mdorazio / wmccullough. I have ended up using Unity lately because of 1) collaborators and 2) it works on my preferred development environment (Mac). That said, I'm pretty interested in the upcoming GM:S 2 mac release; I wasn't fortunate enough to be part of the beta.
Speaking as someone with experience with Unity3D and not Godot:
Unity3D's design is not very good. It is a popular system, you can find a lot of hacks online for getting common things done, but overall the thing is a garbage heap of unorganized and poorly documented features.
The ability to work with source control is a joke. I'm sorry, you can't do professional grade software development without source control. You really shouldn't be doing hobby grade development without it either. But Unity makes you jump through several hoops to get source control working correctly and reliably.
They have an asset store that almost looks like a package manager, but isn't, leaving you to have to check all of your plugins into your repository rather than redeploy out of the central store.
Patch-point releases frequently introduce breaking changes. And their project format is locked to prevent you from opening a project that had just been opened in a newer version than the one you have. Yes, opening a project in Unity writes changes to disk. Wouldn't be so bad of a problem if your project could easily and trivially be added to source control and you could just reset the changes, but see above.
It makes doing basic physics very easy to do, but the quality of the physics is not very good. Even their heavy number crunching "continuous dynamic" mode suffers from terrible warp-through problems.
It's still, after all this time, not available for working on Linux. You can build games that run on Linux, but you can't do the work on Linux.
The export to WebGL feature is another joke. An empty project ends up dumping around 50MB of code out. That's before you even get to any game code or assets. They compile your C# code to CIL with Mono, then that gets converted to C++ with IL2CPP, then that gets converted to ASM.js with Emscripten. It's an absurd Rube Goldberg machine of a process that it's no wonder people thing WebGL sucks, if all they have to go by is Unity projects.
It bombs you out to Visual Studio for editing code, but it's still not compatible with any version of .NET post 2.0. You can't import DLLs without hacking the *.csproj file by hand.
I'm sure I could come up with some more gripes if I thought about it for a while, but I don't want to be here all day.
Although it is buggy, I use the Linux editor regularly. :)
> And their project format is locked to prevent you from opening a project that had just been opened in a newer version than the one you have
Related pet peeve: The Linux editor appends "Linux" to the project version, forcing a complete reimport of all the assets when moving between the Linux and Windows editors even if they're actually at the same version.
A lot of valid points, but what problems did you encounter with source control? I have worked with big commercial projects with Unity3d, and maintaining all assets serialized in text didn't bring much pain with a minimal discipline.
Text assets should be the default and only option, just opening the project shouldn't change any files, and saving on a different computer shouldn't arbitrarily change the metadata files. Hell, they need to give a really good explainanation for what is even the point of the metadata files, because no other IDE worth its salt has such a noisey system.
And that does suck, speaking as a developer, I MUCH prefer working in linux. The exception would be .net/C#, you just can't beat visual studio in that environment.
Even then though... I still use the git bash console/tools for everything. love me some grep.
I don't have any experience with Godot. But given a choice between GameMaker: Studio and Unity3D for 2D, I choose the former. And it's because of the tooling. I don't consider Unity3D's tooling to be great for 2D. I don't consider it poor, either. But I think in making a good engine that offers 2D and 3D, some of the workflow is suboptimal if you're only working with 2D. That said, I've used Unity3D lately even for 2D projects, because my collaborators have been more familiar with it.
Unity requires you to sign up for an account in order to use it. As a consequence, your unity account could be terminated, severing your ability to work on your own projects as a result.
I know the Unity guys feel they're being reasonable and that it's a mainstream thing to require an account for a product, but I will never -ever- voluntarily lock my own personal projects inside someone elses system like that, and I think it's pretty galling of them to think they deserve that much control over my work.
Godot is super easy in 2d if you understand scene-tree-node philosophy and you have nothing agains thier variation of python. API is small, IDE is good, works great on linux.
Personally I'm using it for prototyping, my main engine is UE4 though.
I'm thinking that maybe it's time to create a small but full game with it.