[–] 6 points 3 months ago

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.

  • source
  • parent
  • context
  • [–] 5 points 3 months ago

    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
    
    

  • source
  • parent
  • context
  • [–] 25 points 3 months ago (2 children)

    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.

  • source
  • parent
  • context
  • [–] 1 point 3 months ago

    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.

  • source
  • parent
  • context
  • [–] [S] 3 points 3 months ago*

    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.

  • source
  • parent
  • context
  • [–] 3 points 3 months ago (1 child)

    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!

  • source
  • parent
  • context
  • [–] [S] 3 points 3 months ago* (3 children)

    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!

  • source
  • parent
  • context
  • @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?

  • source
  • parent
  • context
  • [–] 1 point 3 months ago (1 child)

    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

  • source
  • parent
  • context
  • [–] 6 points 3 months ago (3 children)

    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.

  • source
  • parent
  • context
  • [–] 4 points 3 months ago (1 child)

    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.

  • source
  • parent
  • context
  • view more: ‹ prev next ›