How do you describe a game engine anyway? Is it the combination of graphics, input, physics, audio, networking, AI scripting, and etc.? Think about it. Its weird to me, but I’m starting to think game engines either have different levels that consist of combinations of the above or there is some base combinations of the above with add-ons.
Frameworks. Let’s think about the app space where you create a desktop or web application, but more specifically frameworks. Inherently frameworks make your job easier by creating the functions needed for everyday use, so you do not have to deal with the lower level details. Essentially, you can focus you efforts on creating a form and not worry about creating form handling code and other lower level details. How does this relate to game engines?
Game engines are basically frameworks that make your life easier. I think game engines are/should be more or less based on a base package of features. The base features? Graphics, input, audio, and AI scripting. Why? I think this base package actually makes up a basic game. Physics and networking? I’d say they should be add-ons. The ideal game engine allows for modular features like let’s say I wanted to get rid of the AI part and use another AI package. Modularization allows for this bunch.
Why am I writing about this? Well, I’d like to explore this region and make sense of what game engines are. JavaScript browser games appear to be where we are headed. I’m glad because this direction is exactly what I was thinking in the past but never realized.