I'm a bit late to the party, but I've been making my own game engine for about 3 years now, and here are my few cents on whether or not to roll your own game engine, how to do that, and what a game engine even means:

https://lisyarus.github.io/blog/programming/2023/09/15/so-you-want-to-make-a-game-engine.html

So, you want to make a game engine

I write stuff about math, simulation, graphics, gamedev, and programming.

lisyarus blog

@lisyarus "Look carefully at your code. Think which parts can be isolated and separated to be reused later. Think about how exactly you’d want to use these parts. Extract them into a new project, – this is your engine now."

This is so important. Write the use cases first (i.e. the games), then figure out what is similar between them, then draw a line through the code. That's your API! Anything else is just being an "architecture astronaut".

@lisyarus Great article! I'm a random person from the internet that thinks you are really cool!! 😉
@lisyarus thanks, inspiring piece!
I've actually created recently a component storage lib (like ECS without the S) and was thinking that maybe I should add just some sprite rendering and few other things to have a small quasi engine - for the functionalities I always use in my prototypes.
I think you convinced me to give it a try :)
@maciekglowka Yay! That's a nice thing to hear, good luck :)

@lisyarus Hi Nikita, I'm very happy to hear there is still people in the world creating custom engines. 😉

I've been working on my 2D framework since 2011. Should you be interested, I shared some notes when the project reached ten years: https://encelo.github.io/2021-06-21-ten-years-ncine/

Ten years of nCine

A retrospective ten years after the first commit

encelo.github.io