Engine Development - Breath-First or Depth-First?

Started by
12 comments, last by slicer4ever 9 years, 3 months ago

I find the whole "make games, not engines" discussion kinda silly. I can't even imagine how would you try to make an engine without having at least one kind of game in mind that you'd make with it. At least I don't see how it would end in anything remotely useable.

And in the case you want to make an engine to end all engines, an engine that could, say, run both Need for Speed and Skyrim, then you have a severe case of "scope too big! abort! abort!".

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

My journals: dustArtemis ECS framework and Making a Terrain Generator

Advertisement
It would be silly if there weren't people out there who didn't want to sit and make an engine, without a game to drive the development, under some misguided notion they will 'learn more' by doing an engine in this manner.

This people are clearly insane and so are those which support this notion - fortunately they also tend to be the people who give up and sod off so it isn't all bad.

The entire tangent is really unnecessary, as I said I was making both from the get-go. As far as I can tell, there's a pretty strong consensus on the answer to the actual question being "just do it whichever way feels best", which isn't terribly great discussion material, but not everything is. C'est la vie I guess.

The entire tangent is really unnecessary, as I said I was making both from the get-go. As far as I can tell, there's a pretty strong consensus on the answer to the actual question being "just do it whichever way feels best", which isn't terribly great discussion material, but not everything is. C'est la vie I guess.

I've built several games, and i've built several frameworks(not necessary full engines, more in the vain of what SDL/SFML, but do a fair bit more then they do). my current approach is the depth-first. I pick a component and try to build it thoroughly, and test it thoroughly for example my core component features a well defined math, vector2/3/4 classes, matrix's, quaterinion, text, allocation schemes, etc. at the same time as i build them, I also port these components to other platforms. I also define what each component is built upon, so i can ensure in what order i need to build things out with. for example core is the basis of everything and would be built first, then the platform specific component(consisting of input handling, filestreams, keyboards, mouse, windows, etc), followed by the video and audio components, and then networking component. these 5 components comprise my primary framework which is used for small games(i plan to get around to a more though engine design in the future built upon this framework), by building the components in a depth based way, and by building each component for all the platforms i want to target, it gives me the ability to be flexible in design so that i can accommodate all the platforms i wish to hit, while attempting to maintain the vision for my original design.

at least, that's how i do things.

Check out https://www.facebook.com/LiquidGames for some great games made by me on the Playstation Mobile market.

This topic is closed to new replies.

Advertisement