YoghurtGum: Two Years of Work

Due to popular demand (one guy searching on Google) I decided to make an article explaining how to install YoghurtGum: Installing YoghurtGum

I should explain what you see here.

For the past two years, I’ve been on and off working on an open source 2D game engine for mobile devices called YoghurtGum. Both devices are running the same game, even though they run two completely different operating systems (Windows Mobile 6.1 and Android 2.2, respectively). The engine takes that into account and makes sure features are always available on every supported device. Although I’m not quite that far yet. ;)

A little over a month ago I bought a new phone, mostly because I wanted one but also as an excuse to work on my engine. I develop in Visual Studio, but I compile for Android in a Linux Mint VirtualBox. I actually started working on YoghurtGum when I heard about Google releasing an NDK for Android. That didn’t really go anywhere, so I ported it to Windows Mobile.

To give you an indication of how long I was working on this: when I started, Windows Mobile 6 was a viable platform. Phones were still being made with it!

On the left you have the device that started it all:

HP iPAQ 114 Classic:

  • Windows Mobile 6.1
  • 624 MHz ARM processor
  • 64 MB RAM
  • 100 MB internal memory
  • 240×320 pixels
  • Purchased in 2007

On the right we have the newcomer:

Samsung I5510:

  • Android 2.2
  • 600 MHz ARM processor
  • 128 MB RAM (not sure)
  • 160 MB internal memory
  • 320×533 pixels
  • Purchased in 2011 (about a month ago)

YoghurtGum is coded in C++. It’s divided into a number of modules:

  • YoghurtGumBase – static library that contains functionality for all other modules
  • YoghurtGumMain – static library that contains the engine itself; this is what games link to
  • RenderMethodDirectDraw – an implementation of rendering stuff on the screen using DirectDraw
  • RenderMethodOpenGLES – an implementation using OpenGL ES

    The game running in the Windows Mobile emulator

In a few weeks I’ll give a talk at my school about my engine. I’ll see if I can upload it somehow.

I hope this will finally drag the engine out of “stone soup” territory and into haute cuisine!

In the mean time, you can check out the source for YoghurtGum on Google Code:

http://code.google.com/p/yoghurtgum/

Please note that this is in no way production ready. It only barely works on both devices. The Windows Mobile version even has a huge memory leak that causes it to crash after about 2 minutes.

If you want to work on it, feel free to contact me at my e-mail address, which is knight666 at gmail dot com.


About this entry