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.

Bombuzal

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

Bombuzal

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…

  • 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! :)

  • //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});
    }
    }
    }
    }

  • //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

  • //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! :)

  • Pingback: 5 Commodore 64 games I would like to see ported in Flash : Emanuele Feronato()

  • Pingback: Bombuzal | Game Glist()