Jump to content
  • Advertisement
Sign in to follow this  
lordcorm

My Engines Structure

This topic is 3708 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Im making an engine for an MMO server emulator. (the engine of corse, is going to have the ability to be dropped into any other project) To put it very basic, i have a base library called CoreBase. CoreBase holds all the basic components to make an application with no special features such as networking, scripting, database, ect... It contains things like Math, Memory Management, Threading, Bitmask Logics, Design Patterns, Containers and more, with the target to be multiplatform. Now, what my plan is next, is to have libraries that shoot off from CoreBase, which hold things such as Scripting, Networking, Database. These library hold an interface class that i instance from a DLL/SO, which would allow dynamic actions such as having the ability to do alot of scripting languages and database API's by making new DLL's to interface. I guess what im looking for is a professional opinion on how well you think the engine is structured, and any other comments you would like to throw in on what you think. Thank You, Lordcorm

Share this post


Link to post
Share on other sites
Advertisement
There's no description of structure there at all. Just same fluffy names and vague handwavy descriptions. My professional opinion is that you have not provided anywhere near enough information.

Also, that "CoreBase" is a dumb name. Core or Base, pick one, I don't see a reason for them to be combined.

Also, that you have very high level concepts and level low level concepts conflated -- "Bitmask Logics" are the realm of a few functions in a utility library, "Design Patterns" are concepts and don't need their own little section.

Share this post


Link to post
Share on other sites
I agree with the previous post, there was nothing in your post but fluff.

But from what I gathered is that you want to segregate specific components and then tie them all together in this "hub." Well, in theory its a good idea. Many game engines, including my own and others, such as OGRE, put functionality (like Math, Scene Management, etc) into their own DLLs. This is mostly done for modularity and to speed up compile times. To structure your code like this means you need reason to do so - complexity. What I would suggest is to forgo this CoreBase idea and replace it with a game. Have your subsections (Math, Memory Management, etc) in different namespaces, but don't go as far as to stick them all into DLLs. Leave that for when your engine is 50K+ lines of code.

But, as a general structure, you are on the right path. Math should be with all the other math stuff. Memory management should be a closed circle that only has a few entry points, etc, etc. Make interfaces for them and then start using them in your game.

Remember the KISS rule: Keep It Simple, Stupid!

Share this post


Link to post
Share on other sites
I'll add my two cents to this thread... don't make an engine, make a game... and then another game... and then another game... when you've made half a dozen or so, you'll have refined your core code components to the point where they're reliable. This is when you can bundle them into a generic libary. You'll also have worked out which parts of your initial code, that you thought were generic, are actually game-dependent. You'll then have a good code base from which to work from. IF you decide to push on and develop a generic interface to your libraries, THIS is the place to start.

Having said that, there is virtually no reason why you should be writing your own engine. Q: What are game engines for? A: Making games (in less time)!. There are MANY free or cheap engines out there, most of which are many times better than what the average code-monkey can produce. Use them to make your games (and use them only because you want to apply the principles of code reuse to speed up development, so you can concentrate on making more games).

IF you think you can design a better engine than those that are already on the market you should be developing a business plan and seeking capital to fund the development of your new 'beaut' super engine, rather than starting out with just writing it. Odds are though that your design is no significant improvement on the thousands that have come before you.

Cheers,

Timkin

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!