Rapid Silverlight Game Development

The PlayBits Silverlight Game Engine is making terrific progress and is quickly approaching its first release. The vision behind PlayBits has always been to empower Web game developers with the ability to quickly prototype and produce online games.

It’s no doubt that Silverlight already offers amazing functionality and extensive support for images, sounds, videos, and animations right out of the box. But there’s much more needed to create feature-rich games for the Web. That’s why the PlayBits Silverlight Game Engine includes a solid foundation of game services, such as a flexible scene graph, resource management, physics processing, tick processing, along with a wide number of game objects, such as animated sprites, particles, tilemaps, etc. Together, they provide the game developer with a diverse set of tools for creating Web games.

The most effective feature of PlayBits is its wide collection of Game Components that are available to game developers. Components are discrete packages of game functionality that aggregate together to make a feature-rich game. Using game components is highly efficient and encourages code re-use within a game project and across multiple projects. PlayBits comes packaged with a few dozen components that range from player input and networking to path-following and health-level tracking. You can extend these components with your own custom code or create your own game components from scratch.

One of the most flexible collections is the state-machine related components, which significantly simplify game development. With the InputStateComponent, you can easily define keyboard input mappings that change a game object’s state. Then, with the AnimationStateComponent, you can playback different animations in response to the state change and even accompany it with different sounds delivered by the SoundStateComponent. Together, you can use these components to build the foundation of a game and then add the bits of C# code you need to customize your gameplay.

Another effective tool is the wide use of Events in PlayBits. Nearly all game engine classes and components expose a wide number of events for your game code to hook into. Everything from the end of a level loading to the changes in a game object’s state or reaching the end of a path exposes events that you can hook into. Events help reduce the amount of code needed by eliminating the need to sub-class parts of the library to add conditional checks. Instead, just hook into the events that your game is interested in and write a custom event handler method.

Instead of persisting game level definitions to some proprietary file format, the PlayBits Silverlight Game Engine defines level files as XAML markup. As result, a variety of XAML editing tools can be used to craft level files. Among them, Microsoft’s Expression Blend, which is a feature-rich visual editor that produces XAML markup. Expression Blend can drag & drop PlayBits game objects into a scene, change layouts, attach components, and edit properties.

With a strong foundation of game engine services, the efficiency of game components and events, and the drag & drop ease of Expression Blend, creating games for the Web with the PlayBits Silverlight Game Engine should be a snap. We’re getting very close to our initial release of PlayBits. More details about the engine, including videos and sample games, will be revealed as we get closer.  For more information about the PlayBits Silverlight Game Engine, please visit: http://www.envygames.com/content/?page_id=327.