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?

  • I Cast Fist
    link
    English
    23 days 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.

    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.