So i want to achieve many types of hobbies. For the longest time ive wanted to make games but im honestly unsure where to start, what tools to pick up, and what to learn especially sense i want to attempt to learn for free without having to pay for anything.

Ive been told gamedev is like learning a new language in a way. I could use a point in a starting direction if possible.

I also have a dumb question but i cant really make out a different between the definitions of coding and programming, what is the difference if any?

  • 𝘋𝘪𝘳𝘬 ( Dirk@lemmy.ml ) 
    link
    fedilink
    arrow-up
    11
    ·
    1 year ago

    “Making a game” involves many different subjects. Since were in a programming community I guess things like storytelling, worldbuilding, writing lore, writing characters or missions/quests, designing ingame or promotional art, etc. is ruled out.

    Depending on the game you want to work on, you should learn how to use the game’s engine. It’s always good to know C/C++ well, Lua is also pretty common for scripting. Game engines sometimes also come with their own scripting languages.

    You should also learn 3D modelling, 3D design, GLSL for shaders, etc. Even if modern engines cover a lot of this for you, it’s always good to know what’s actually happen, so you can properly track down errors.

    i cant really make out a different between the definitions of coding and programming, what is the difference if any?

    How I see it: All programming is coding, but not all coding is programming. Writing markup (like HTML) or style definitions (CSS) in my world count as coding, too, but not as programming. I’d also say that writing code in any scripting language is not programming but coding. Whenever the code is meant to be compiled into a standalone binary – a program – it’s programming.

  • Start small. Like, really small. Don’t listen to the elitism about programming languages. Make stuff, fuss about the details later. Godot’s cool. Love2D’s cool. Nobody gives a fuck if you used a scripting language or an enterprise grade engine or if you wrote it in assembly like some cybermonk. Balatro was nominated for goty and was written in a “simplistic” scripting language (Lua with Love2D).

  • TachyonTele ( TachyonTele@piefed.social ) 
    link
    fedilink
    English
    arrow-up
    6
    ·
    1 year ago

    Check out Godot game engine. Watch a lot of videos about it. How to do simple things. How to do hard things. And things you wish you could do when the stars align. Start soaking it all up.

    And practice using the engine (any engine). You’ll get good at the basics by trying and failing and then doing it agian.

    • Korkki ( Korkki@lemmy.ml ) 
      link
      fedilink
      arrow-up
      5
      ·
      1 year ago

      Check out Godot game engine.

      Something like LÖVE would be much better for beginners. It’s much more important for first projects to get results that keep you motivated than to jump on the deep end with features.

  • Mark with a Z ( markz@suppo.fi ) 
    link
    fedilink
    arrow-up
    6
    ·
    1 year ago

    Based on personal experience, I’m a firm believer in that best way to learn and get good at something is to just do it and keep doing it.

    So: download godot or such and try to make stuff. You’ll figure it out as you go.

    • I’d have to subtly disagree with this. It is really good advice, especially when the scope of your game is larger than what one could reasonably finish in a game jam; If you can’t get to a fun game in a couple of days or less, you need documentation as to what your plan is to get there.

      The problem is that this is the best advice for someone who has the technical “hard” skills to make a game (compsci, digital art, etc.), but lacks the "soft"er skills (software eng., scheduling, etc). To be fair that is super common, but the OP implies to me they’re not confident that they have the technical skills either yet.

      Without either of those skills you can’t know what’ll take a couple of days or what’s actually weeks of work, and the value you get out of design docs becomes effectively random.

      The common advice that I’d have to agree with is that your first few games should be as small of a scope as you can make them. Other comments to this post already go into detail, but the jist is that when you’re starting the amount you learn is more per-project than per-hour, so get out as many small things as possible to get your bearings.

      Once you’ve done that, this is really good advice for your first sizeable project.

  • unmagical ( unmagical@lemmy.ml ) 
    link
    fedilink
    arrow-up
    4
    ·
    1 year ago

    I would recommend starting with an engine–it doesn’t much matter which and follow several tutorials. The exact amount will vary based on your programming experience and game design knowledge. Once you’ve followed some tutorials start trying to connect concepts from different tutorials to make something new that you weren’t explicitly guided to. After you’ve done that a few times, start a new project and try to make something from scratch and use reference materials, documentation, and tutorials to help you when you get stuck.

    Start small. Now even smaller. Tic tac toe is a reasonable first project. It will teach you how to use the UI library, user input, game state, scene transitions, basic AI for a computer opponent, etc.

    Then do some game jams. There’s a lot hosted all the time on itch.io. You don’t have to finish, but it gives you good practice, let’s you see what’s possible in a weekend, and let’s you connect with others that love game dev.

    I’ve seen a lot of comments encouraging you to try out Godot. It’s a great engine, and with its resource library and active community it can be a good choice, but it doesn’t hold your hand. There’s very little logic that is pre-produced and ready for you to tweak. You start with nothing and build what you want rather than starting with a template (though there are templates available in the resource library). I’ve used a lot of engines and Godot is my personal preference, but depending on your experience Scratch or Unreal may be better options for the easy of use and active communities/tutorials.

  • hallettj ( hallettj@leminal.space ) 
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 year ago

    If you’re getting started with programming the first resource I point people to is Scratch. It’s the easiest way to get started, and teaches programming concepts with guide-rails. I recommend looking at a game someone else has made on the Scratch website, and “remixing” it to tinker, and understand how it works.

    When you hit the limitations of Scratch, and want more I agree with other commenters that Godot or LÖVE are good next steps.