Research in Motion, of Blackberry and Playbook fame, recently released Gameplay 1.2, a cross-platform 3D game programming library aimed at Indie developers. As a game maker, it is easy to ignore RIM these days, especially with their CEO making comments like:
"We plan to refocus on the enterprise business and capitalise on our leading position in this segment,"
That doesn’t exactly give you the warm and fuzzy about the future of RIM consumer devices now does it?
That said, ignoring GamePlay would be a foolish thing to do. Why?
Well first off, it’s free. I like free. As in, I really like free.
Second and perhaps most amazingly, it is cross platform. You can target Mac OS, Windows, iOS 5.0 or higher devices, Android 2.3 or greater devices in addition to Blackberry Tablet OS 2.0 and Blackberry 10 devices ( when they arrive ).
Third, it’s IDE agnostic, except when required otherwise ( aka, compiling for iOS ). I can work in my preferred Visual Studio environment. You however have the choice between Visual Studio, XCode or Momentics IDE ( an Eclipse based IDE Rim inherited from QNX ).
Fourth, it’s open source and hosted on GitHub.
Here is a screen shot from a demo game in development:
I have to say, it looks impressive to me.
Oh, did I happen to mention it’s C++ based? I think I just heard half of you cheer, while the other half swore!
I do have to say, the folks at Marmalade probably aren’t pleased. They both fill the same niche… but gameplay is free. Now the question is, how good is it?
Feature-wise, here is what you can expect:
Current features in gameplay
- Written completely in C++ and well documented using doxygen.
- Solution and workspaces for Visual Studio 2010, XCode 3.2.1 and Momentics IDE’s.
- Platform-Game abstraction layer separating all operating system code from game engine code.
- Input system support for Mouse, Keyboard and Touch.
- Full vector math library with classes for Vector2/3/4, Matrix, Quaternion, Ray, Plane. Also Frustum and BoundingBox/BoundingSphere classes for object culling.
- Solid OpenGL 3.2+ (for Desktop) and OpenGL ES 2.0 (for Mobile) based rendering system with classes for RenderState, FrameBuffer, Mesh, Material, Effect, Pass and Techniques.
- Easy-to-use and efficient Font and Sprite classes.
- Scene-graph components such as Scene, Node, Light, Camera and Model.
- Binary encoding tool for creating optimized bundles for loading TTF fonts and 3D game assets supporting both COLLADA and FBX formats.
- Extensible animation system with classes for Animation, AnimationClip and Curve with built-in AnimationTarget’s on Transform and MaterialParameter’s classes.
- Complete 3D audio system with additional support for compressed audio using OGG and supporting HDMI gaming.
New features in gameplay v1.2
- Newplatforms now supporting:
- BlackBerry Tablet OS 2.0 and BlackBerry 10 ready!
- Apple iOS 5.1 for iPhone and iPad
- Google Android 2.3+
- Microsoft Windows 7
- Apple MacOSX
- New shader-based material system with built-in common shader library.
- New declarative scene binding.
- New declarative particle system.
- Improved physics system with rigid body dynamics and constraints.
- New character physics and ghost objects.
- Improved animation system supporting animated skeletal character animation.
- New declarative user interface system with support for declartive theming and ortho, and 3D form definition with built-in core control classes such as Button, Label, TextBox, Slider, CheckBox, RadioButton. Also includes Layout classes such as Absolute/Vertical and FlowLayout.
- New cross-platform new game project wizard scripts.
- New game developer guide.
- New game samples and tutorials.
With the following coming soon:
The ‘next’ feature branch for v1.3, v1.4, v1.5
- Optimizations and Performance improvements
- Terrain and Sky
- Gamepad input for Wii, Xbox 360 and Bluetooth® HID controllers
- Scoreloop Social integration
Editor hmm? Wonder what that means?
I am going to download and play with the SDK, and if I get some time ( something I am chronically short of lately ) I may post a walk around and possibly a tutorial or two. Has anyone out there been playing with this technology? Any opinions?
If you are interested, check out the announcement blog post as well as the source on GitHub. Oh and perhaps most impressive of all for an open source gaming product… there is actually documentation. The documentation is available here including this development guide[direct pdf link].