Recent trends has gone more and more towards end users wanting to
customize their games. Some while ago I came up with some ideas on how
this could be achieved. The goal was to make both novice and expert users
able to modify the game. I needed a target game to try out my ideas on so
I pulled out a Breakout clone that I wrote a few years ago. My main idea
focused around using a virtual machine that was called upon when certain
events happened in the game. The virtual machine code was also to be able
to call native code in the game core engine. This was for the expert
users. For the novice users there are premade templates for things that
can be used instead.
The middle image above shows the final level editor of the game. A brick
on the playfield is selected and the OnUpdate code is being edited. This
code is called each frame update. Each brick has three callbacks: OnInit,
OnUpdate and OnHit. The VM-code shown uses the game core function
SetImage, which changes the current image of a brick. Images are defined
in the "Subtype images" tab in the shown dialog. The game core has 18
functions callable from the virtual machine such as moving the brick,
adding score, playing sound etc. The user also has the ability to define
own graphics and sounds to use.
The VM-code is written in assembler due to the fact that I never wrote any
higher level laguage compiler for my virtual machine.
The results of my trials became a whole new version of my Breakout clone,
now called Break GOLD. This version is somewhat different than other
clones in that each level is unique in its gameplay. The images shown in
the background are four examples of different levels that can be made
though the level editor. In the top left level you have to collect keys
in order to be allowed access through doors. In the top right image the
bricks cycle its colors when hit. The goal is to make the three bricks
have the same color. In the bottom left image you have to hit two of
equal kind to remove them. In the bottom right image time is limiting
your gameplay. Bricks are removed every second and you need to hurry to
make good score.
Since the level editor is released with the game, the user has the same
ability to make new and innovative levels as I did when creating the
levels released with the game.
More information, downloads and screenshots can be found at: