At 10/9/13 02:12 PM, Rustygames wrote:
Totally agree a code base which you use time and time again in your games is essential. Mostly the little component and utility things are what you'll end up reusing a lot (Some custom math functions, standard algorithms [a* for example], buttons and other custom ui elements). A solid barebones framework is handy but obviously you all know my views on this (PureMVC all the way baby). If everything is built modular enough then you will find ways of recycling bits and pieces here and there.
That being said, I can't say I'm totally sold on what I've heard a couple of you doing which is to build a massive library of, as our friend Mike put it, "everything but the kitchen sink". I mean, building lots of functionality, potentially hard tied to a 'framework', "just in case" you need it doesn't sound like the most efficient or productive way of going about things.
Obviously I may be misunderstanding what you guys are up to, but I remember Eggy Mario seemed to have quite the comprehensive library going on which made me come to that conclusion.
The beauty of my current engine is its modularity, where adding new functionality is super easy, and doesn't interfere with existing code at all. And right now, my engine is based around creating a game; I'm not loading it with features pointlessly, right now it just has physics, display (just native vector DisplayObject stuff for now), an asset loading system, switches, weapons...well, amounting to a lot of stuff, but it's all the basics.
So my biggest point or emphasis about my engine isn't that I've hardcoded in a bunch of features for every game that I can currently imagine, its architecture itself is just open enough that I can quickly add things, or change things, while reusing any feature I need from other games. So if I program something once, I'll hopefully have to never program it again.
Plus it's very easy to add a level editor for it, which is basically just some UI elements sitting on top of the engine itself. I can change stuff, play the game a bit, pause it, and change some more stuff, and keep playing from that same point.
All of this isn't mainly "my engine", it's actually just the whole concept of Entity Systems that make everything so easy. If anyone hasn't read up about them, despite me spamming those 2 words, then do it finally.