First of all, i know this is a general c++ question but i am using allegro and this questions is to do with not just allegro but any future game libraries/languages.

I would say i can finally say i know quite alot about c++ and allegro. What i need now is to know how to implement what i know into code, and before you say start off small and work up to larger more complex programs i think i can say i have been doing that with small games etc.

The problem i now face is that i have been reading about the general design of a game. I have read many articles/posts online explaining different designs.

Here is why i need help, i have read many different designs but none of which explain how to implement them into a game properly (not what i have come across anyway) so here is my question...

What game design would you suggest that manages game objects, communication. The question is a wide one so to shorten the scope:

I know what you mean but the way i was coding a game i was like, there must be a better way.. im not saying ive coded a 100 games or whatever or i have years of experience, its that when you code a game and its not much exiting and you have more problems figuring out the design, then its not fun. With an entity system it really does make life easier so you can enjoy making games and watching your game grow. I just havnt seen one in c++ ever.. and i dont know how to implement in the slightest.

I have unity installed, what is the entity system like there? is there a main.cpp where you create an engine? sorry if i sound dumb i neverused it

edit:Think of it as this. Im experienced with c++ and eallegro, i want to create a 2D game, i am too inexperienced with designs to make something that works, when i create a game i run into problems which a good structure will probably fix

" There are plenty of wonderful ideas in The Bible, but God isn't one of them." - Derezo"If your body was a business, thought would be like micro-management and emotions would be like macro-management. If you primarily live your life with emotions, then you are prone to error on the details. If you over-think things all the time you tend to lose scope of priorities." - Mark Oates

Somewhere in 2011 a new C++ standard was released (C++11).That standard redefined the meaning of the auto keyword.Before C++11 auto was basically the opposite of static. Now it means the type will automatically be chosen at compile time by using type inference.

Enabling C++11 support depends on the ide or compiler. In VS2012 it's enabled by default. In codeblocks if you use the gcc compiler you'll have to enable it in your build options (gcc command line -std=c++11). For any other ide or compiler, I've got not idea, I'd suggest you look it up.