From zero to Bombuzal
Normally I use to write tutorials explaining what I’ve done to try to replicate a famous game, but I always start with a “clean” actionscript, without all errors made during its creation
This time, I will write a tutorial based about what I do, step by step (errors included) to replicate an old C64 glory.
During this journey, you will learn how to solve problems (because I’ll find a lot of problems) and a lot of new techniques.
The first thing I had to do was… deciding what game I was about to try to replicate.
There are lots of godd C64 games I would like to replicate, and after an hour reading old reviews, I decided to clone Bombuzal.
From Wikipedia: Bombuzal is a computer puzzle game designed by Antony Crowther (credited as Ratt in the game) and David Bishop for Image Works[1]. The game was released in 1988 for the Amiga, Atari ST and Commodore 64.
Read carefully: 1988! I am going to make the remake of a twenty years old game, but I know it won’t be easy because it’s a very complex game.

First, I want to tell you why I decided to clone Bombuzal. It’s a very complete game, it has two different game views (2d and isometric), codes to skip levels, different tile types, different bombs and so on.
Its Amiga version is remembered as “one of the cutest, cuddliest puzzle games ever”.
Now that I decided I am going to clone Bombuzal, the next thing to do is getting a C64 emulator and the game disk image. I don’t even know if it’s legal or not, but I played this game 20 years ago and I don’t remember much of the game.
Then, I played the 1st level to understand how does it work… I’ll start cloning the 1st level and as the game get more complex in later levels, I’ll add new features.
This is how does it look the first level: basically Bombuzal is a tile-based game
here it is a screenshot of the first level, in 2d and in isometric view

There are two type of tiles and one type of bomb.
The first step is creating the routine that, given an array, will draw the stage. Any clue? Every reader that will contribute in the creation of the game will get credited in the credits page.
Tomorrow I will start coding, meanwhile if you want to write down some code…
They can be easily customized to meet the unique requirements of your project.

























This post has 14 comments
EagleVision
Great!
I always wondered how you made the copys of games! Thanks so much.
I don’t have any idea of how the game is, so I can’t code it very well…Can’t wait for tommorow!
PS: Request: Could you teach us how to make a game like Wink? I tryed, but got stuck.
here is the link: http://armorgames.com/play/819/wink-the-game
Please make one when you have time, thanks in advance! :)
Andre Marianiello
//sort of like your tileball
drawLevel = function(level,width,height){
//level-array of 1′s and 0′s
//width-of each tile
//height-of each tile
for(var i=0;i<level.length;++i){
for(var j=0;i<level[i].length;++j){
if(level[i][j]){
_root.attachMovie(“tile”,”tile”+(level.length*i+j),{x:j*width,y:i*height});
}
}
}
}
Andre Marianiello
//sort of like your tileball
drawLevel = function(level,width,height){
//level-array of 1′s and 0′s
//width-of each tile
//height-of each tile
for(var i=0;i<level.length;++i){
for(var j=0;ii<level[i].length;++j){
if(level[i][j]){
_root.attachMovie(“tile”,”tile”+(level.length*i+j),{x:j*width,y:i*height});
}
}
}
}
PeZ
Well, I guess you have to use a 2D array where each case of the array represents a tile of the game.
The value of each case tells what kind of tile it represents.
Let’s say you have 3 different type of tails in the game : 1, 2 & 3. A level might then look like this :
1 2 3
3 3 3
1 2 1
emanuel
hi it looks kool! i want to know if u plz plz can make a smartFox server flash tut plz that would be great
EagleVision
Why did you put Emanuele as your name? Hehe…Sorry…its just me again.
Hey, Emanuele, please tell me what you think of the game, Wink. Thanks :)
Kesh
maybe if you ask him again
Chris
//AS 3.0
//This will draw the overhead view, and could be fairly easily modified for isometric view using the same array.
var level = new Array ({x:0,y:0,t:0},{x:1,y:0,t:0},{x:0,y:2,t:1});
//Board is an MC to hold the tiles
var board = new Board();
//Set x and y to wherever you want the board to be
board.x = 100;
board.y = 100;
addChild(board);
for(var i=0; i<level.length; i++){
var tile:MovieClip;
if(!level[i].type){
//Tile1 and Tile2 are square MC’s in your library
tile = new Tile1();
}else{
tile = new Tile2();
}
tile.x = library[i].x*tile.width;
tile.y = library[i].y*tile.height;
board.addChild(tile);
}
Jack Hopkisn
Heres a link to Tonypa’s Iso engine :)
http://www.gotoandplay.it/_articles/2004/02/tonypa_p21.php
Livesinabox
One of my favourite miggy games – theres a scan of the review of the C=64 version (and a handy tile list) at http://amr.abime.net/review_16652. Bombuzal is a great game and AC rocks (lets collaborate on remaking captive!).
Anyway, i did a little tile test (while i’m still learning actionscript). I’m not sure it’ll be much use but if it helps you any for all your help to others then your welcome to it
http://www.triquitips.com/viewtopic.php?f=23&t=104
EagleVision
Hey!
Emanuele, what do you think of the game Wink? Is it good? Are you going to make a copy of it?
I just would like to see how you would do that one! :) Thank you so much!
EagleVision
OMG!
Emanuel! I just found somthing in my game!
I will email you the good one! :)
5 Commodore 64 games I would like to see ported in Flash : Emanuele Feronato
[...] Porting it to Flash: It shouldn’t be that difficult, but I cannot find a map with the original levels. All in all, it’s like a turn-based game. I also started a prototype in the post From zero to Bombuzal [...]
Bombuzal | Game Glist
[...] Bombuzal emanueleferonato.com [...]