cross-posted from: https://lemmy.world/post/35297209

I’m looking for an engine/framework to make a 2d “RPG” (no leveling, etc, akin to Link to the Past).

I actually went to University for games programming, so I understand how games work, how to code them, etc etc. I work as a Test Automation programmer for websites, and I am doing some development on JS as well on a music toy. I am experienced with C#, C++, Java and JS.

The problem I’ve had in the past is that the frameworks promise the world, but everything I want to start working on is hidden beneath folders and folders of stuff, and the entry point to customize the correct parts seems obscured. Or, working on OpenGL etc are too basic with basically nothing out of the box.

I just want something that will say : here’s your main, here’s your player character, we’ve taken care of the collision detection and inputs and rendering, there’s no gravity. Paint the tiles on this screen, and get going.

Like the level of expertise, customisation and entry point needs to be clear (or at least there is a guide to get started that I don’t have to spend hours and hours on) and the business side is cut and dry and won’t cost me to start deveoping. (flat X% after $Y in sales)

I don’t mind having to learn a new scripting language as long as it’s not drastically different to the object oriented languages I know already. (ie : nothing in Lisp)

  • Mesren@piefed.blahaj.zone
    link
    fedilink
    English
    arrow-up
    11
    arrow-down
    1
    ·
    edit-2
    6 days ago

    There are a ton of good game engines out there. If you’re making a 2D zelda-like, your best options are probably things like Gamemaker , LÖVE2D , or Godot. If you want to make it real tiny you could even make it in PICO-8.

    Unity is a classic for these things but I found it cumbersome to use for the while I did, especially for 2D games, and many people stopped using Unity as their game engine after the pricing issue.

    My personal recommendation is Godot. I spent a long time using Unreal Engine, Unity, and Gamemaker, but ultimately Godot is the only engine that clicked with me. It’s not everyone’s preference and that’s okay, but I do recommend it after using it for multiple years.

    You specifically point out wanting to get started pretty fast with it, paint tiles and get moving, and I’m not aware of any game engines that will get you the exact thing you want out-of-the-box without also imposing incredible limitations, it will all take some amount of setup and custom code to get started. Godot can get you pretty close and pretty fast.

    There’s a tutorial series by Heartbeast, Godot 4 Action RPG on doing pretty much this exact thing in Godot 4. (Sorry, I couldn’t find a version of that video on a federated platform, so youtube link)

    No matter what you choose, I hope you show us what you make! Good luck with it all!

  • ProdigalFrog@slrpnk.net
    link
    fedilink
    English
    arrow-up
    10
    arrow-down
    1
    ·
    6 days ago

    If you want to make a 2D Zelda style game, there’s the Solaris engine, which is purpose built for that very task.

    It’s open-source and completely free to use.

      • ProdigalFrog@slrpnk.net
        link
        fedilink
        English
        arrow-up
        5
        arrow-down
        1
        ·
        5 days ago

        I’ve personally never seen that sentiment toward Lua. It’s also used in Pico-8, and that’s quite well regarded.

          • ProdigalFrog@slrpnk.net
            link
            fedilink
            English
            arrow-up
            7
            arrow-down
            1
            ·
            5 days ago

            Even in that link, there are just as many people praising it as there are damning it, which is fairly common for all languages, due to how opinionated people can be on that subject.

            Based on the fact that you’re downvoting all my comments in this thread, I would wager you are amongst those highly opinionated people 😅

            • Apepollo11@lemmy.world
              link
              fedilink
              arrow-up
              2
              ·
              2 days ago

              “There are only two kinds of programming languages: those people always bitch about and those nobody uses.”

              Bjarne Stroustrup

      • brisk@aussie.zone
        link
        fedilink
        arrow-up
        2
        ·
        5 days ago

        Tonnes of games use Lua. Lua is pretty much designed to be a scripting interface for a compiled engine.

        Every language makes choices and tradeoffs, I’m not a fan of 1-indexing but that shouldn’t actually get in the way of anyone worth their salt. Plenty of other languages used every day use 1-indexing including the perennial Fortran and the enterprise eternal (much to my chagrin) Matlab.

        As an aside, the 1-indexing is enforced by array functions, but Lua as a language and syntax doesn’t care. There are no true arrays in Lua, only tables (associative containers). If you have cause for it and are careful about your assumptions, you can have an array start at 1, 0, 4, -8 or even “cinnamon”

  • popcar2@programming.dev
    link
    fedilink
    English
    arrow-up
    8
    arrow-down
    1
    ·
    6 days ago

    I just want something that will say : here’s your main, here’s your player character, we’ve taken care of the collision detection and inputs and rendering, there’s no gravity. Paint the tiles on this screen, and get going.

    Are you looking for a framework or a game engine? You talk about frameworks in the post but it sounds like you actually want something that does everything for you, which is more in line with engines. There are a lot of 2D engines out there like Godot, Unity, GameMaker etc. that are all pretty easy to use.

    I used Unity in the past but am mostly a Godot fan nowadays. Try Godot, it might be what you’re looking for.

    • Oka@sopuli.xyz
      link
      fedilink
      arrow-up
      5
      ·
      6 days ago

      I kinda get what they are saying. They want an intuitive template with good documentation. Most Unity and Unreal templates are like “here you go” with no real direction or instruction on how to use them. Or, like they said, the template is folders of folders, layers of layers.

      Im sure these exist, but the more useful something is, the higher the price. I dont pay for templates, so I get what is available for free.

    • Skullgrid@lemmy.worldOP
      link
      fedilink
      arrow-up
      2
      ·
      6 days ago

      Are you looking for a framework or a game engine? You talk about frameworks in the post but it sounds like you actually want something that does everything for you, which is more in line with engines. There are a lot of 2D engines out there like Godot, Unity, GameMaker etc. that are all pretty easy to use.

      From my perspective it’s a matter of scale. I’ve worked with “things” that are bare bones like OpenGL and Direct X, and complete (but old) like Unreal 2.5. I’m using the terms interchangably to mean “something that has covered the nuts and bolts of game development so I can focus on customizations and the actual game development, and leverages my skills as a programmer, while being as quick to get started on as possible”

      So any solution, from a generic project in eclipse/vs code using pre defined libraries (as long as when I hit compile there is a player character I can move about) to a custom program that shows me a level editor with scripts I can attach to “pawns” are acceptable levels of soutions.

      • popcar2@programming.dev
        link
        fedilink
        arrow-up
        3
        ·
        6 days ago

        Unreal 2.5 is so old, your perception of engines is probably way outdated. Things are so much easier and more cohesive now, you’ll definitely enjoy modern gamedev tools. Since you’re already an experienced programmer you should be up and running with Godot in only an hour, there’s a tutorial in the official documentation that you can skim. You can probably look into a Godot crash course video on youtube too for a quick overview.

        • Skullgrid@lemmy.worldOP
          link
          fedilink
          arrow-up
          4
          ·
          edit-2
          6 days ago

          Unreal 2.5 is so old

          Hey, I also had a look at Unity in 2015, which is where my opinion comes from.

          Oh god, I’m old. You might as well have said

          Looks over here, he used the grandpas engines!

          … that metalocalypse reference is almost 20 years old.

          Good thing I’m going to the doctors tomorrow to learn more about my borderline glaucoma and how it might relate to my blood pressure issues.

          I’m fucking old man 👴😭

  • entwine@programming.dev
    link
    fedilink
    arrow-up
    5
    arrow-down
    2
    ·
    6 days ago
    • HaxeFlixel is a popular choice for 2D stuff. You can use it with Tiled or LDTK for level editing. This sounds more like what you’re looking for

    • Defold might interest you as it has a full editor built in, though I’ve barely used it so don’t ask if it’s good

    • Gamemaker is a classic, but idk what pricing is like nowadays

    • Godot will work, but I don’t like it. Once you get past the highly polished editor, everything else kinda sucks

    • pirateKaiser@sh.itjust.works
      link
      fedilink
      arrow-up
      4
      ·
      6 days ago

      What is this ‘everything else’ you speak of regarding Godot? I’ve been using the engine for years, based on my anecdotal experience your comment sounds rather biased.

      • entwine@programming.dev
        link
        fedilink
        arrow-up
        2
        arrow-down
        1
        ·
        6 days ago

        based on my anecdotal experience your comment sounds rather biased.

        That’s called an opinion. Usually, you can identify those when someone writes something like “I don’t like it”

        Godot’s easy to use, that’s its strength. Past that, it is riddled with issues. A lot of APIs are either poorly designed, half-implemented, or outright broken. The engine has terrible extensibility support due to a shitty build system, which is why you need to download a separate build of the engine if you want C# support. Third party native plugins like Spine also require a custom build of the engine to deal with this (want to use multiple third party “plugins”? Start learning C++ and scons so you can glue them together yourself). The internal organization of the code is sloppy, and while understandable due to it initially being a one-man project, the situation has not improved despite the massive increase in volunteers and money it has had over the years. There’s a lot of bike shedding that goes on, and leadership doesn’t seem to have a clear vision of where to take the engine.

        GDScript sucks. The events system sucks. The hierarchical entity design sucks (although the nestable scenes helps smooth that over). Godot physics sucks. Jolt physics is better, but the integration sucks (Try making joints. The only reliable one is the 6DOF joint, but that requires you to fiddle with dozens of parameters to try and achieve what you want). A lot of the rendering features suck and/or are broken, even basic things like static lighting and shadowmaps fall apart with basic geometry. Everything is buggy as hell, and that’s something you just need to accept if you’re going to make games with it.

        I don’t hate Godot, and I do use it because of its main strength: ease of use. It’s my go-to for game jams and prototyping, and I have used it a lot. But if I’m going to invest serious time/effort into a project, I’m not going to disadvantage myself right out the gate by choosing Godot.

    • SeeFerns@programming.dev
      link
      fedilink
      English
      arrow-up
      2
      ·
      6 days ago

      Defold is interesting. I’ve used it for a game jam and went through the Zenva courses for it. So I have a little experience, but please correct me if what I’m about to say is wrong.

      I like defold but it has problems that pushed me to Love2D. For one, the distinction between a game object and a collection feels unnecessary and because they have slight variations (like how to get their message url) it lead to some confusion I couldn’t get over.

      Furthermore, the message based system is odd to me. In theory I love it, but in practice I just couldn’t find a good way to keep things organized. I ended up with a spaghetti mess of messages that I could never keep track of. But that’s likely a me-being-a-shitty-programmer problem.

      I do love the performance and tiny export sizes though! Getting builds that small and that performant from Lua is pretty sweet.

      • entwine@programming.dev
        link
        fedilink
        arrow-up
        2
        ·
        6 days ago

        I haven’t used it that much (never even done a jam with it). The weird licensing of the editor rubs me the wrong way, and IIRC it even has some telemetry enabled by default. That’s kind of a red flag when you consider the engine came from King, a mobile game developer. I don’t think I want to trust them, but other people might not care.

        But I do like the design of the engine. Message passing is actually a great pattern in general, and it’s used by other engines like O3DE to great effect. It does take some getting used to though, and I personally never was a fan of Lua. If you’ve ever done any Objective C or Swift, it’ll be familiar. It provides a way to build decoupled systems effortlessly, and long-term keeps your codebase flexible and maintainable, which is exactly what you want for a game that needs to constantly evolve its design throughout development.

        • SeeFerns@programming.dev
          link
          fedilink
          English
          arrow-up
          2
          ·
          5 days ago

          Full agree with the licensing and connection to king being dubious. They’re now under the Defold foundation FWIW. Either way, I tried it, and moved on.

          I think I’ll be messing with Raylib and C next. I’m already noticing some issues with Lua and Love2D as well that I don’t love. Mostly web builds being a royal PITA.

  • abbotsbury@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    5 days ago

    You might like Love2d, it’s a Lua framework that just lets you start coding, no editors or anything.

    I just want something that will say : here’s your main, here’s your player character, we’ve taken care of the collision detection and inputs and rendering, there’s no gravity. Paint the tiles on this screen, and get going.

    So are you looking for less of a framework/engine and more of a genre template thing? I’m not quite familiar with those, but Godot is a general purpose royalty-free engine, and I’ve seen templates before for a Zelda-style game, so that might be something worth checking out. It’s pretty simple to extend or change what you need.