The lack of native FBX support is a serious setback, and it will never be as good as Unreal. I think the glTF pipeline will get better.
comments
Godot 2d and 3d are both very polished, and 3d has a lot of support for retro stuff as well like vertex shading or nearest filtering for textures
This was apparently based on fields filled out during game submission. "Other" was just a selectable option among common engines, so there's no specific data to look through. I imagine it might be hard to parse every text response that might type the name of the engine used ever so slightly, but it would be nice data to have.
As someone who came into godot with programming knowledge, the whole signals thing was probably what took the longest to get used to, but now that I understand it it seems very simple. For code, the godot documentation is both accessible on the web and built into the engine, and it's generally very thorough.
Here's an intro guide to programming in godot that I wrote a little while ago:
expand
# If you don’t know how to do something, google it!
# to write a comment, type a hashtag
# lines are executed in sequence
# words typed are variables, and can be assigned by typing "var" and then its name
# GDScript uses the word "var", but leave out "var" in python
var x = 1
var number = 5
# display the value a variable holds
print(number)
# you can do math, with +,-,*,/,% (modulus), ** (exponentiation), sqrt(), etc
print(number / 2)
# variables can be reassigned, by setting them equal to something else
# variables that store numbers can be used as a number
number = 2 / x
number = number - 4
# operations such as the one directly above can be simplified:
number -= 4 #this does the same thing
# variables can also hold:
# true/false (aka Booleans)
var thing = false
# words, etc (aka Strings), surround in quotes
thing = "Hi, I'm Adrian"
# lists of other data types
thing = [number, False, "Hi, I'm Adrian", 52.67]
# access elements of a list by using []
# the first element in a list is element 0
print(thing[1]) # will print False
# you can reassign list elements
thing[1] = True
print(thing) # will print [-6, true, "Hi, I'm Adrian", 52.67]
# you can add elements onto lists with __.append(), remove with __.pop()
thing.append(3.4)
print(thing) # will print [-6, true, "Hi, I'm Adrian", 52.67, 3.4]
thing.pop(2)
print(thing) # will print [-6, true, 52.67, 3.4]
# similarly to how we can do math, we can also evaluate logic (conditionals)
# 'and' will return true only if both inputs are true
# 'or' will return true if either or both inputs are true
var bool1 = false
# remember, thing[2] is now 52.67
# here, thing[2] < 4 is false and bool1 is false
print(thing[2] < 4 or bool1) # will print false as both sides are false
# to compare any data types, you can use == (equal to), != (not equal to)
# to compare numbers, you can use <, >, <= (less than or equal to), >=
# you can also use the words 'or', 'not', 'and'
print(thing[2] != 3 and not bool1) # will print true
# 'If' statements will run code inside of them if they receive the value true
# lines of code inside of the if statement will be indented one level
# you can use the words if, else, elif (else if)
# you can use conditionals here:
if true:
print("is true")
#will print "is true"
if thing[2] == 2:
print(thing)
print("as thing[2] == 2, we will not evaluate the rest of the if statement")
elif bool1: # is equivalent to writing "elif bool1 == True"
print("bool1 is true")
else:
print("bool1 is not true")
#will print "bool1 is not true"
# Loops operate over ranges and lists (aka iterables)
# ranges work with the format range(stop), range(start,stop), or range(start,stop,step)
# ranges start at 0 and step by 1 by default
for i in range(1,11):
print(i)
# will print 1,2,3,4,5,6,7,8,9,10 (stops before 'stop' number)
# lists are also 'iterables'
for i in [1,5,2]:
print(i * 2)
# will print 2,10,4
# inside of the for loop, we can access this new variable I have called 'item'
for item in thing:
print(item)
# will print -6, true, 52.67, 3.4
# functions allow you to simplify code and remove re-used elements
# you can put multiple things inside of the function's parenthesis,
# which can be used as variables by code inside of your function
# use "func" in GDScript, and "def" in Python
func repeated_sqrt(value, times):
for i in range(times): #will start at 0 and go up to times - 1
value = sqrt(value)
return value
# return will immediately exit out of the function,
# and give this value to wherever the function was called
# this function can be used as below:
print(repeated_sqrt(5.2,3)) # will print sqrt(sqrt(sqrt(5.2)))
var number1 = 1
print(repeated_sqrt(thing[2],number1)) # will print sqrt(52.67)
number += repeated_sqrt(thing[2],2) + 1
# will increase number by sqrt(sqrt(52.67)) + 1
# function returns don't need to be used
func printvalue(value):
print(value)
return "hello"
printvalue(2) #will print 2
print(printvalue(3)) #will print 3,hello
It helps that it's also a good engine. Unity dominated not just due to familiarity, but because for a long time it was just plain accessible and feature rich.
Godot and Blender are two applications that have been on a very long journey to build not just advanced features but also something that's intuitive to use. The advancements in UX are the single strongest thing there is in replacing long-standing creative tools.
Cool. Yea I don't know what kind of game I wanna make, but the idea of playing around with a popular engine sounds fun.
As long as you keep the graphics settings low and the code you write light
I did a lot of development in godot on a chromebook with a celeron processor from 2017 (including some 3d stuff)
That is cool!
nope, it can technically run on an android tablet
Do you need a good computer?
I've been building a 3D game in Godot for the better part of 2.5 years now. Maybe it's that I never really got into Unity beforehand in spite of my efforts, but I find Godot way easier to work with, and I'm able to pretty quickly create things. It feels nice to work with and, while my game's art style was never meant to be super realistic or anything, it looks good visually with not much effort tweaking the WorldEnvironment.
Just try it, in the worst case you have to git reset --hard and git clean -dxn / -dxf and dnx 2dog add again, but I think the dotnet restore --force should do it! There's only changes to the native library and the glue code.
I plan to use 2dog a lot in future jams... it wasn't quite stable enough for GMTK jam, though, so... something to look forward to in upcoming jams.
Yay, that's awesome!
I needed to do a dotnet dnx 2dog again after your commands to regenerate the build assets but after that the build worked fine, thanks!
The asterisk: the loading performance of certain scenes and textures isn’t great at all
To cheer you up: The performance of the regular Godot web version is not all that great either for 3D stuff. It loaded quite quickly on my PC. Throws an error on level load but still works, might just be the shady level loading we did under time pressure.
PS: Super adorable game idea. That angry beach ball can get bent, though… sheesh. Ey, I’m walkin’ crawlin’ here!
Glad you liked it! We put a lot of work into this one. :)
Shame I didn't see 2dog during the jam but for next time we are equipped to finally ship a web version. Thanks!
Yay! Your game works! *asterisk...

I released a new release (v4.7.1.59) of 2dog that hardwires all the native WASM trampoline functions. It's one of those bugs that has me scratching my head, as in "how did this ever work?", but it did, including for samples from the Godot foundation, three friends' games, and two of my own. So... mega big thanks for this bug report, this was a big one!
You may need to run dotnet nuget locals all --clear and dotnet restore --force or similar to get the fresh packages.
Anyway. The asterisk: the loading performance of certain scenes and textures isn't great at all 😓, and I'm working on ways to make that nicer in the web html harness; and I also need to figure out where the majority of that time is spent; sometimes it's WASM compile time, sometimes it's scene load.
PS: Super adorable game idea. That angry beach ball can get bent, though... sheesh. Ey, I'm walkin' crawlin' here!
ah yes there is also zrythm and gaida
@vane @FizzyOrange Imho LMMS for music production.
@FizzyOrange @Axolotl_cpp Only reason in favor of MS was OneNote. Then MS cloud lost my Office 2019 files (Oh, your local OneNote files are links to that cloud, so you lose everything).Using LibreOffice since. Does what is has to do, fast, reliable, never encountered lesser functionality. In my personal cloud. Free. With my own backups. Using Obsidian to replace OneNote.p.s. Google docs... That's sarcasm, isn't it?
@FizzyOrange @vane randomly re-ordered your bullet points? as someone who has to use the latest MS office on my work computer that sounds like they nailed acting like MS office to me.....word does that ALL the time when I'm trying to review documents, lol
poor quality control
I mean, it's something very little that can go un noticed, it's unrealistic to think that every single bug can be noticed, it doesn't happen with corporate software, imagine with open source
Obviously I don't know your life and how much your livelihood might depend on it, but if it impacts your decision any, I think you should at least start dabbling in it. You can look at any rough edges you need to smooth over as investing in the ecosystem and, for any added effort that's still too much to justify, drop any requirement for parity. Simple stylized graphics never go out of fashion, and the hardware crisis (which I think will last closer to a decade or more than a couple years) means the market will be even slower than usual to adopt the visual quality Unreal pushes for anyway.
A fairly recent version IIRC. May have been a one time bug but it was a pretty hilariously bad one. At the very least it shows poor quality control.
i use godot! ive only ever made one game public on it, but its fun to use!
I never had any problems tbh, were you on the latest release? It could also have been a one time bug duh
Also, i suggest OnlyOffice it has a nice UI and does some things differently IIRC
I've not actually used Godot, but I've been following it for a while, and I think you should give it a go, especially for just "unserious playing around." It's widely regarded as beginner-friendly (as far as gamedev tools go), and yeah, while some people absolutely do not have the analytical mind you really should have for working with anything involving programming, you being in a position to do any scripting at all sounds like you're at least most of the way there.
Its pretty chill. There is a good load of tutorial online and gdScript is beginer friendly.