I’ve been working with a guy for several months on a project we’ve been calling a game “engine”, but after all this time, we’ve kind of realized that we don’t know what distinguishes an engine from just a library.
Slick2D and libGDX are game libraries
JMonkey3D is considered a game engine
What exactly makes the difference? From what I can understand, an engine is pretty much a framework that you just build on top of/modify. Something like Yii or Django, in terms of web dev.
A library is just a set of classes/utilities you can use?
If an engine is just a framework, what part of a typical game is locked into the framework that would restrict your freedom of development? (Based on the idea that frameworks usually lock you into a certain implementation method of what you are doing)
Since, for libraries like Slick2D and libGDX, you generally just extend some sort of Game class and build around that, what makes them not an engine?
Thanks for any clarification in advance.