Code
I've started getting into Boost recently. It's a dependency of Ogre, so it makes sense to use it. In particular, it's filter_iterator is immensely useful.
Also, some of the new features of C++0x are proving useful as well. I love the new auto keyword, where the compiler automatically works out what type the variable should be based upon the assignment it gets.
Unfortunately... the version of GCC that comes with XCode doesn't support these yet, so much time was spent changing things like:
auto filterIt;
back to...
boost::filter_iterator<std::const_mem_fun<bool, Agent*>, // continued...
vector<Agent*>::iterator> filterIt; // ... on a new line.
which was fun...
Music
Also, a quick note to awesome composer Tim Wright. I was curious about the synths and sounds used in the original Powermonger themetune. I dropped an email to Tim ( www.coldstorage.org.uk ) who did the original. He very kindly sent me an email with all sorts of interesting stuff about the original theme (some sounds were from the KAWAI K1 and others from actual orchestral recordings), which was awesome. He also did the music for the (acoustically and visually amazing) ST/Amiga games "Shadow Of the Beast II" and "III" which are well worth a listen if you have something that plays .mod files. He's still very much the top composer, so I heartily recommend dropping by his website and having a listen. Thanks Tim!
WOW!!!
ReplyDeleteThe graphics you are getting with OGRE are already better than I dared hope for. If that is a graphical teaser, you definitely got my attention! I love the 3D graphics, the zoom in out and camera spinning. The little knight and castle models really add to the effect. I personally would love for you to have some progress posts maybe every one or two months, but if you would rather not, that's cool too. I won't try to hide my enthusiasm for the potential you have already shown.
Looks great! When you get something playable, I'll be playing it. :-)
ReplyDeleteLove it! I can't wait!
ReplyDeleteWhen I end up with long templatised types, I use typedef everywhere to try to make it more readable.
typedef std::const_mem_fun Whatever;
typedef vector PAgentVector;
typedef agent_vector::iterator PAgentVectorIter;
typedef boost::filter_iterator AgentVectorFilter;
AgentVectorFilter filterIt;
^ Blogger chopped out my template parameters. D'oh.
ReplyDeleteSomething I hope you improve over the original game is the ability for your army to navigate around the waters edge (when they don't have a boat). By now there are probably plenty of free to use path finding algorithms.
ReplyDeleteTed: Thanks! I think I'll continue to post screencasts as interesting things are addded. In fact, pathfinding would be a good candidate for this.
ReplyDeleteKrisDS: Cheers! I hope it will be playable! :)
Puyo: Hehe, you've been caught by the curse of the html blog commenter. Yep, I have a huge list of STL typedefs as well, I just fancied an exagerrated rant at losing my lovely 'auto' keyword. ;-P (which will probably lead to some very bad habits anyway!)
I'll probably need a modeller at some point as the agents need to do things like farming, fishing, etc. It's harder than the original because the sprites were so small and had only 2 frames per orientation. We might have to use our imaginations for a while. :}
Nice Work, and Powermonger is a great game to be inspired by. Pretty cool to read more about the behind the scenes people like the composer. I read in your first post that you have been burned in the past with people taking your opensource and reusing without credit. Since then Opensource has really exploded.
ReplyDeleteJust wondering if your reconsidering open sourcing the code to get others to help?
Also could take a core library, keep that closed source, and open only parts, see what happens.
I was a programmer and realize how much work this much be.
Good luck.