I know I said that I would provide screenshots, but I can't do that right now because I'm doing this at work. I'm still doing what I need to do at work, but this just takes up a little bit more time. You know how it is. At least I'm not spamming refresh at slashdot or something.
At least for today.
One of the many problems that I had when I was a novice progammer trying to get really into game development is the problem of making an "engine" to go with the game. Eventually, I would get frustrated at trying to handle how to do the graphics and then give up for a few months. Then I would start again with a new design, and then scrap that months later.
Back then I was a firm believer in reinventing the wheel. I fell into that trap of trying to do things right the first time so I spent months and months looking at forums and example engines to try to find out how they did it. 70% of it was over my head and that obviously showed in my previous designs.
Now I'm at the point where I don't really care HOW it's made, as long as it gets done. This time around I am using the power of middleware! Here are some libraries that I'm using this time around to make sure my game gets made:
Graphics - Ogre I love Ogre because I find it really easy to use. And the support and the documentation is great as well. You just have to be good at searching forums and wikis and there is a gold mine of information to get yourself started.
Physics - Newton One main reason why I'm using Newton is that there is already an Ogre wrapper for this physics library and I'm using that to save myself sometime. I do like how easy it is to use though. I enjoy it a lot more than Ode.
Sound - OpenAL No particular reason. I just like the Open part actually. I haven't quite put sound support into my engine yet so I have to see how this turns out.
Scripting - Lua with LuaPlus I'm using Lua because it has the most support when I search for scripting online. Squirrel seems interesting as well, but I'm already knee deep in the Lua to change now.
To actually make my models, I have blender. Although, I really dislike blender because I think it is rather hard to use and I would like to invest in Maya in the future.
The Basic Structure
I know that there are much better ways to do this, but I'm basically using inheritance to handle all of my objects. There is a base GameObject class, and a Prop, Item, Actor class that derives from it. A Prop is just an object that doesn't provide anything to the gameplay it's just there for looks. Like a trash can, or a ball of paper on the street would be a Prop. Item is an object that reacts to being touched by an Actor. An Actor which is a controllable model.
But yeah, I'm feeling the pain of using inheritance. Right now my Player class has a pointer to an Actor object, and in the Actor object code I have a if (this->isPlayer) check to see if that Actor has a pointer going back to the Player class to handle special collisions, etc. It's kinda hard to explain without having my code right next to me. But, I feel that I should strongly consider making a Player dervive from an Actor class.
Well I should probably get back to doing something constructive, you'll hear from me later.