Hi Ogre3D community,
we are happy to be able to introduce to you another commercial Ogre3D project, this time by the independent micro studio BitFlip.
The studio is based in Berkeley, California and almost two years old. The team has released a number of iOS games, as well as having played supporting roles in yet to be released AAA games. Formerly, members of the team worked on the Bioshock & X-Com series at 2K Marin, as well as Hellgate: London & Mythos with Flagship Studios.
Their newest creation is a digital board game called Minion Master. It combines elements of tabletop gaming, turn based and real-time strategy, and collectible card building games and has now officially gone into beta beginning of this month. The game is also now available for pre-order and players who do so will get instant access to the game’s exclusive, closed private beta.
The BitFlip Games team will also be at the Penny Arcade Expo (PAX) in Seattle, WA from August 31st to September 2nd to unveil Minion Master to consumers for the first time. Players who visit the BitFlip Games booth will be able to jump onto one of six stations hosting multiplayer Minion Master matches.
About the game
Minion Master is a Digital Board game that brings together the moment-to-moment tactics of collectible card games with the long-term strategy of miniature war gaming. Players control armies of figurines on a hex-based board and summon their Minions using a custom built deck of cards. Minion Master will boast a Deck Builder, 6 player co-op and versus multiplayer, a Level Editor, and a constantly expanding universe of Minions to control. Players who pre-order get instant access to the game’s Alpha and Beta phases. Inspired by physical RPG board and card games whilst simultaneously adding in elements that are only possible in a virtual world, Minion Master is slated for release on PC this fall. To visit the official Minion Master web site go to: http://www.minionmaster.com/
The full beta release announcement can be read in their development blog: Detailed announcement.
The team also was so nice to give us some insights into the technical aspects of their creation:
- Ogre Version: 1.7.3 currently, looking to upgrade to 1.8.0 soon
- Ogre Plugins Used: OctreeSceneManager, Direct3D9_RenderSystem, CgProgramManager
- Tools: Visual Studio 2010, Blender, Nuendo
- Libraries: Ogre (of course), Boost, libcurl, FMOD, MyGui (modified), OIS, Particle Universe, WebSocket++, YAJL
- Other Stuff: Node.js, Redis, blender2ogre (modified), NullSoft Installer
Other random tidbits:
- Development Time: As of July 2012, 10 months from blank Visual Studio solution, 18 months of total development time from initial concept
- Currently 450 C++ source files total, 267 headers, 183 cpp files
- Approximately 86,000 lines of code
- Total size of repository: 7Gb
- Size of Installer: less than 70Mb
Interesting things we’re doing with Ogre:
- All Minion coloring is done at the shader-level using an HSV Shift post-process operation
- The levels are baked into StaticGeometry, which lets us have arbitrarily large levels for a relatively cheap cost
- Automated Tween Manager makes it very easy to create smooth motion (translation and rotation) with a single line of code
We’ve had a great experience using Ogre. Once we got it bootstrapped with our development process, it all “Just Works”. The biggest hurdle we had to solve was crashes related to keeping SceneNode and Entity/MovableObject pointers around. There’s no “shared pointer” equivalent for these types, so if we destroy a Node recursively, any child Nodes that were stored around ended up with stale pointers. To work around that, we wrote a system that manages the lifetimes of the SceneNodes, and is responsible for owning every SceneNode and MovableObject in the game. It assigns each entry an integer ID, which is what is used to look up the SceneNode or MovableObject every time it’s needed. As soon as we implemented that system, all of our SceneNode crashes went away completely.