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)

all 22 comments

sorted by: hot top controversial new old
[–] 11 points 1 year 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!

  • source
  • [–] 5 points 1 year ago

    I've never used it, but https://www.rpgmakerweb.com/ might be what you are looking for

  • source
  • [–] 9 points 1 year ago (6 children)

    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.

  • source
  • hideshow 6 child comments
  • [+] -6 points 1 year ago* (last edited 1 year ago) (4 children)
  • [–] 3 points 1 year ago (2 children)

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

  • source
  • parent
  • hideshow 2 child comments
  • [+] 1 point 1 year ago (2 children)
  • [–] 5 points 1 year ago (1 child)

    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 😅

  • source
  • parent
  • hideshow 1 child comment
  • load more comments (-1 replies)
  • [–] 1 point 1 year 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"

  • source
  • parent
  • load more comments (-1 replies)
    [–] 6 points 1 year ago (4 children)

    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.

  • source
  • hideshow 4 child comments
  • [–] 5 points 1 year 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.

  • source
  • parent
  • [–] [S] 2 points 1 year ago (2 children)

    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.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 3 points 1 year ago (1 child)

    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.

  • source
  • parent
  • hideshow 1 child comment
  • [–] [S] 4 points 1 year ago* (last edited 1 year 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 👴😭

  • source
  • parent
  • [–] 4 points 1 year ago (5 children)
    • 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

  • source
  • hideshow 5 child comments
  • [–] 4 points 1 year ago (1 child)

    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.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 2 points 1 year 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.

  • source
  • parent
  • [+] 2 points 1 year ago (2 children)
  • [–] 2 points 1 year ago (1 child)

    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.

  • source
  • parent
  • hideshow 1 child comment
  • load more comments (1 reply)
  • [–] 2 points 1 year 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.

  • source