There are many libraries and frameworks that take the grunt of game dev, without locking you to their specific physics engine, etc.

For example

2D: SFML, Easily create a window and move sprites around, rest is up to you. (C++)

3D: JMonkeyEngine (Based on lwjgl) is basically the same, with 3D rendering instead. It contains tools for physics and collisions, but those are optional. You can do whatever with meshes in 3d space (Java)

I probably should have realized this before fighting with complete game engines (unity, godot) for multiple years even though I prefer doing stuff myself. I find it easier to handle when I’ve made it myself.

Anyone else know any minimal but feature-rich engines?

  • tiny_electron
    link
    fedilink
    English
    arrow-up
    3
    ·
    6 months ago

    I know what you mean. I would add BabylonJS and ThreeJS for the web platform. They give you a lot of control and freedom as well

  • Mikina@programming.dev
    link
    fedilink
    English
    arrow-up
    2
    ·
    6 months ago

    I was writing my first game in XNA .NET framework, and I’m really glad I had that experience. It forced me to understand (and figure out) the insides of a game engine, such as collisions, GameObject model or game loop really well, and since by that time I had no idea something like game engines exist, I learned to not take those features for granted and actually had to research and write them.

    When Unity went free, I appreciated the features so much more, and now I also see that some of the newer developers have no idea what’s actually happening in the background, which is a shame.

    I’d recommend that anyone interested in gamedev starts more low-level, and only after that gets to more heavyweight engines. Sure, you probably won’t make a 3D game, but making a simple platformer from scratch is an amazing learning experience.

  • I Cast Fist@programming.dev
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    6 months ago
    • ImpactJS - Javascript/HTML5 used to be paid for, has been open sourced.
    • LOVE2D for Lua
    • DragonRuby for Ruby - You can get a standard license for free if you qualify for any of the listed items, Amir tends to reply within the same day.
    • Ebitengine for Go

    All of the above are mainly for 2D graphics, but some folks made versions of LOVE3D, too. There’s also libgdx, which builds on top of lwjgl, and mini2Dx, which builds on top of libgdx

    For 3D, the first one that comes to mind is Ogre3D

    I have some experience with Godot, it certainly speeds up a lot of the creation, but it also has some asinine decisions that I seriously don’t understand, like keybindings being a protected array: you can’t alter an item on a specific position; so, if you have a default + alternative key for an action, and you want to let players customize their keybinds, you essentially have to copy the whole array, make the alteration, delete the keybinds then add the items from the altered copy.

    If you add a gamepad to the mix, making each action have 3 inputs, you also have to keep track of positions, otherwise your option to change a specific key might accidentally change from a different position of the array.

    Also, never tie your platformer’s jump logic to the game’s framerate (delta), unless you want players running on less capable machines suffering.