What is Unstdio? 

This is the home of the Unstdio 2D game engine. "Unstdio" is actually a play-on-jargon for non-standard I/O, or, in this particular case, un-C/C++. 

I'm Impatient! Where Do I Go to Download?

Everything that is available for downloading is currently available here.

Smalltalk Meets Gaming! 

The engine was started in August of 2006, and was originally an attempt to learn Smalltalk and provide something to the community, and the development of the engine is journaled at the Learning To Talk blog. 

Smalltalk is truly a dream to work with, and the community is very helpful. Please download the Community Edition of Dolphin Smalltalk, then download Unstdio, and give Smalltalk a try - you won't be disappointed!

What are the Core Goals?

At its core, the Unstdio engine is meant to be a complete 2D game package. It isn't just simple input management and image blitting. It is intended to do handle just about everything a budding game developer would need. 

The actual engine code is written entirely in Smalltalk; this isn't a Smalltalk wrapper around a game engine what was written in C/C++. Compared to other 2D game engines found around the web (like HGE and TGB), the Unstdio game engine is just as fast at runtime, and faster to develop with!

Aside from being written completely in Smalltalk, Unstdio is designed to be completely open. Since it is in Smalltalk, 100% of the engine code is available to you to read, modify, and improve. The rendering is all done using OpenGL and designed to allow custom rendering code anywhere. 

Here are just a few of the features supported by the Unstdio 2D game engine:

  • OpenGL presenter and view management
  • Extensions support for OpenGL.
  • Input device management with DirectInput (including gamepad/joystick support).
  • Complete audio management through BASS.
  • Texture loading and management with DevIL.
  • Bitmapped fonts using the AngelCode Bitmapped Font Generator.
  • 2D physics using Newton Game Dynamics.
  • Extremely simple and robust scene management.
  • Support for game data files in XML.
  • Extremely fast 2D transformation code!
  • Sprites and sprite mapping support (multiple sprites sharing a texture).
  • Animated sprites (forward, reverse, and ping-pong).
  • Particles and emitters.
  • Interface and HUD objects. 

Another side-goal was the understanding that many of the tool's being developed for the engine would be extremely useful outside of games. For that reason, the engine is actually broken into several small packages, each independent of the other, allowing Dolphin users to select only those they want to use. Here's a list of the various packages provided by Unstdio:

  • Direct3D (Incomplete, but a good start).
  • DirectInput (keyboard, mouse, and gamepads).
  • XACT (Microsoft cross-platform audio).
  • XINPUT (Xbox 360 controllers).
  • OpenGL (including Presenter/View objects).
  • BASS (audio).
  • DevIL (image loading/manipulation).
  • Newton (physics). 

All of the above packages are free to download and use in your own projects. If you extend or improve upon them, please let me know so I can include them for everyone!

Future Directions

In the future, I hope to leverage the great tools within Dolphin to actually create a game editor from within Dolphin itself (much like the View Composer, except for games). Once version 1.0 of Unstdio is released, this will be the next giant step taken. 

Enjoy!

I hope you get a lot of use out of the work put into the engine. Please feel free to email me your thoughts, suggestions, and experiences. If you are having problems, I or someone on the Smalltalk newsgroups (comp.lang.smalltalk[.dolphin]) may be able to help.