The WiMo Game Frameworks or WiMo-GF is an open source project that is intended to make it easier to write casual games for Mobile Devices using C# or Visual Basic .NET.

WiMo-GF currently has support for
  • Windows Mobile 5.0, 6.0, 6.1 and 6.5
  • Zune HD
  • Silverlight 3.0

GotBalls? WiMo-GF Does!

WiMo-GF Running on Windows Mobile 6.1 and Zune HD

Y.A.B.O.G Running on Silverlight 3.0

WiMo-GF on Channel 9

WiMo-GF is designed with extensibility and making your games future proof in mind. By developing your game against a set of abstract interfaces you will be able to easily compile your game with implementations of those interfaces for different hardware and devices with making no or minimal changes to your game.

Although WiMo-GF was built for the novice to get up to speed quickly and easily, it supports many advanced features such as physics, collision, accelerometer input and planned support for on-line services such as high-score and cooperative game play. In addition if you need specialized functionality you can create a custom implementation of the interfaces to suite your needs.

WiMo-GF.png

Services Provided by WiMo-GF

The following services are provided by the frameworks and are roughly organized by interfaces defined in the core WiMo-GF project.

Device/Hardware Specific

DisplayManager – Provides services to draw sprites to the display. The initial implementation is DirectDraw for Windows Mobile. Support is planned for Direct3D.

InputManager – Provides a layer of abstraction between the game and the input devices. This includes hardware buttons, accelerometer and some on-screen soft buttons for devices with limited hardware interface.

AudioManager – Provides a layer of abstraction between loading and playing sounds and music for your game.

GameEngine – Implementation of the gaming loop and basic features for primitives such as Shapes, Text and Images. The GameEngine also provides low level services to extract and load resources such as a images and audio files.

Gaming Services

PhysicsManager – Provides services to apply forces to your gaming sprites

CollisionManager – Collision Detection Algorithms

MenuManager – Simple way to display on-screen Menus

To port your game to different platforms or use custom services, your game code stays the same, but Poor-Man's Dependency Injection allows you to use the different services.

The following code shows how you would configure your game to use the Windows Mobile 5.0, 6.1 and 6.5 versions of the frameworks

        [MTAThread]
        static void Main()
        {
            var gameEngine = new WiMo.Games.WM5.GameEngine();
            
            gameEngine.PhysicsManager = new WiMo.Games.StandardPhysics.PhysicsManager();
            Size formSize = new Size(gameEngine.Form.Size.Width, gameEngine.Form.Size.Height);
            var targetSize = new Size(240, 320);
            gameEngine.CollisionManager = new WiMo.Games.StandardCollisions.CollisionManager(targetSize);
            gameEngine.Display = new WiMo.Games.DirectDrawDisplay.DisplayManager(gameEngine.Form.Handle, targetSize, 
                                          formSize, 96, WiMo.Games.Display.AspetRatioThreeByFour);
            gameEngine.InputManager = new WiMo.Games.StandardInput.InputManager(gameEngine.Form, gameEngine.Display);
            gameEngine.AudioManager = new WiMo.Games.StandardAudio.AudioManager(gameEngine.ContentManager);
            gameEngine.MenuManager = new WiMo.Games.StandardMenus.MenuManager();

            var game = new Game(gameEngine);
            gameEngine.Initialize(game);
            gameEngine.Start();
            Application.Run(gameEngine.Form);

        }

YABOG.png

After you have installed the gaming frameworks, you can download the source for YABOG.

Yabog.zip

Last edited Jan 21, 2010 at 10:23 PM by kevindwolf, version 17