you are viewing a single comment's thread
view the rest of the comments
[–] 5 points 23 hours ago* (3 children)

For someone who's never done any programming in their lives, but knows a bit about PowerShell and Bash/Command Line scripting - how difficult is Godot to get into, just for some unserious playing around?

  • source
  • hideshow 6 child comments
  • [–] 3 points 13 hours ago* (1 child)

    GDQuest has this awesome little intro course / program they coded in Godot itself which is pretty rad.

    https://gdquest.itch.io/learn-godot-gdscript

    (Fun trivia: the Godot editor itself...is a Godot program. 🤯)

    Give it a shot and see what you think! :)

    Also of note: KidsCanCode and GameDev.tv are fantastic for beginners as well.

    I'm still quite the awkward newblet with coding, but I've been taking GDQuest's "From Zero" courses and they're awesome. They've had a huge hand in shaping the current engine documentation and stuff too.

    Hope that helps you get started a bit more confidently! :)

  • source
  • parent
  • hideshow 2 child comments
  • [–] 2 points 12 hours ago (2 children)

    I love when something is technically written in itself. Look at GCC (C compilator) - it is written in itself (although it was written in Assembly in the beginning). It just feels like a great feedback loop.

  • source
  • parent
  • hideshow 4 child comments
  • [–] 1 point 3 hours ago

    That's is actually pretty common for programming languages. You first write a minimal compiler in some other language that only implements the features necessary to compile the full version, written in its own language, then you use the full compiler to recompile itself.

  • source
  • parent
  • [–] 4 points 22 hours ago (1 child)

    Its pretty chill. There is a good load of tutorial online and gdScript is beginer friendly.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 2 points 16 hours ago (2 children)
  • [–] 4 points 16 hours ago (1 child)

    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)

  • source
  • parent
  • hideshow 2 child comments
  • [–] 3 points 22 hours 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
  • hideshow 2 child comments
  • [–] 4 points 15 hours 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