If i wanted to create a game from scratch, what language should i learn?

  • PixelProf@lemmy.ca
    link
    fedilink
    arrow-up
    22
    ·
    1 year ago

    It depends what “From Scratch” means to you, as I don’t know your level of programming or interests, because you could be talking about making a game from beginning to end, and you could be talking about…

    • Using a general purpose game engine (Unity, Godot, Unreal) and pre-made assets (e.g., Unity Asset Store, Epic Marketplace)?
    • Using a general purpose game engine almost purely as a rendering+input engine with a nice user interface and building your own engine overtop of that
    • Using frameworks for user input and rendering images, but not necessarily ones built for games, so they’re more general purpose and you’ll need to write a lot of game code to put it all together into your own engine before you even starting “Making the game”, but offer extreme control over every piece so that you can make something very strange and experimental, but lots of technical overhead before you get started
    • Writing your own frameworks for handling user input and rendering images… that same as previous, but you’ll spend 99% of your time trying to rewrite the wheel and get it to go as fast as any off the shelf replacement

    If you’re new to programming and just want to make a game, consider Godot with GDScript - here’s a guide created in Godot to learn GDScript interactively with no programming experience. GDScript is like Python, a very widely used language outside of games, but it is exclusive to Godot so you’ll need to transfer it. You can also use C# in Godot, but it’s a bigger learning curve, though it is very general and used in a lot of games.

    I’m a big Godot fan, but Unity and Unreal Engine are solid. Unreal might have a steeper learning curve, Godot is a free and open-source project with a nice community but it doesn’t have the extensive userbase and forum repository of Unity and Unreal, Unity is so widely used there’s lots of info out there.

    If you did want to go really from scratch, you can try using something like Pygame in Python or Processing in Java, which are entirely code-created (no user interface) but offer lots of helpful functionality for making games purely from code. Very flexible. That said, they’ll often run slow, they’ll take more time to get started on a project, and you’ll very quickly hit a ceiling for how much you can realistically do in them before anything practical.

    If you want to go a bit lower, C++ with SDL2, learning OpenGL, and learning about how games are rendered and all that is great - it will be fast, and you’ll learn the skills to modify Godot, Unreal, etc. to do anything you’d like, but similar caveats to previous; there’s likely a low ceiling for the quality you’ll be able to put out and high overhead to get started on a project.

  • PeterPoopshit@lemmy.world
    link
    fedilink
    arrow-up
    12
    arrow-down
    1
    ·
    edit-2
    1 year ago

    Unity or Godot.

    Another option is c++ with SDL2 but if you just want to make a game asap, don’t do this because it’s the hardest way. You can also use SDL2 in rust and c# projects if one of those fit the bill a little better.

    • corroded@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      People often regard C++ as one of the harder languages to learn, but once you understand the fundamentals, I feel like it’s much easier to use than some of the alternatives. I’ve focused on C++ almost exclusively for well over a decade, and any time I’m forced to use C#, Java, Python (especially Python), or any other modern language, it just seems harder. They abstract away so much that it makes it more difficult to make the language do what you want.

      • owenfromcanada@lemmy.world
        link
        fedilink
        arrow-up
        4
        ·
        1 year ago

        You’re not wrong, but the key here is:

        focused on C++ almost exclusively

        If you regularly have to switch between Java, C#, Python, and other high-level languages, C++ feels a lot more difficult (plus I personally find the syntax for C++ isn’t intuitive, so I constantly have to look things up). It really depends on where you’re coming from.

  • Sibbo@sopuli.xyz
    link
    fedilink
    arrow-up
    6
    ·
    1 year ago

    Well you know, there is this graphical programming system called “scratch”

  • BURN@lemmy.world
    link
    fedilink
    arrow-up
    6
    ·
    1 year ago

    Depends on what kind of game.

    I’d take a look into some different game engines and choose what will serve your purposes best and then you’ll probably need to learn whatever language that engine needs.

  • alokir@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    1 year ago

    What languages do you know already? What’s you experience with programming? What kind of game do you want to make?

  • Em Adespoton@lemmy.ca
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    I highly recommend GBStudio for a first go-round.

    As a bonus, your game will be playable on a Gameboy.