Game Development Community

Snes Bomberman 4 clone

by James Ford · in Torque Game Builder · 06/17/2006 (9:45 am) · 14 replies

This is still a work in progress and has at least one major bug (which I am asking about in the forums.
www.garagegames.com/mg/forums/result.thread.php?qt=46138#349787
My goal is to reproduce the battle mode with two players and all powerups, and since I'm making progress faster now I would expect to be done in a month at most. After this I already have like 7 game ideas, gah. Of course I could always try to learn some more with this same project, like add networking, AI, etc..

img218.imageshack.us/img218/5449/screenshot12fp.jpg
img364.imageshack.us/img364/5567/screenshot27yi.jpg

#1
06/18/2006 (12:40 pm)
Nice! =D
#2
06/19/2006 (8:32 pm)
Looks like you're making pretty good progress.
#3
06/23/2006 (1:13 pm)
This project is going on hold because 1. you cant play it anyway with the tunneling bug so why add more and 2. I am starting another project '-)

If you know how to fix the tunneling problem or want to help read the thread I linked to in my first post.
#4
06/23/2006 (1:31 pm)
Maybe I didnt read enough into the thread, but I dont see why you're having a problem. You don't need to do player v player collision. Players only need to collide with walls, bombs (which can be treated as walls) and explosions. If you've collided with an explosion, you don't care whether you've collided with anything else, since you're dead. Hell, you don't even really need to do real collision.

The game takes place on a 2D grid, and you should have all the information you need from the level data ... these facts allow you to take shortcuts. For e.g. if the player wants to move up, and the tile above them is not a floor tile, just dont let them move up. In fact, if you treat bombs as walls as I hinted at above, you only need to do collision against explosions. You can even cheat there too, just set a flag to say if a tile has an explosion in it and clear it when the explosion ends. When the player moves into a tile with an explosion in it, you kill them.

T.
#5
06/23/2006 (3:57 pm)
Tom's method is similar to what I did on a simple maze game a made with TGB (acctually it was T2D back then :P). By keeping a record of which grids are empty you don't need any collision at all :)
#6
06/23/2006 (4:58 pm)
Yeah collisions are the evil ;)
#7
06/24/2006 (10:04 am)
Originally I was not using any collisions, and the player could only move 1 grid unit at a time (discrete units of movement). But when I decided to make a more exact clone of bomberman I changed that to free-movement, which makes for better gameplay. When you allow free-movement faking collisions becomes very complicated because I cant just check for obstructions in the tilemap tile in front of me. I could just use smaller "invisible" grid units. It doesn't seem to do this in bomberman but I suppose if the grid is small enough you couldnt tell.

Also the player does need to collide with the other player, or at least not be able to walk through him, and when a player places a bomb it goes in the same tile as the player not in front of him, so its a little more complicated.

A player is about to move forward one movement grid unit so first we check for any objects in the destination coordinates by pickrect(). If nothing is there that obstructs movement then moveto(), Also somekindof flag would have to be set in that coordinate so another player isnt moving there at the same time. If only the area right in front of the player is checked for obstructions then the player would be able to move off the bomb but unable to move back on...this could work.

Wait! couldnt I just make another tilelayer for my movement grid, instead of making it all in script? Wow that would be a lot simpler, I wouldnt need to use pickrect, I wouldnt need to make so many calculations, and I could just set flags/custom data like you suggested.
#8
06/24/2006 (10:28 am)
You are still trying to make it more complicated then it is. You only process input when the player is fully within a tile. Then you have smooth movement and easy collision.

In terms of player collision, if you really want that then you can treat tiles with players in as walls, as with bombs. However, I found with playtesting my TGE based BomberMan game (see my recent blogs if you're interested) that player collision got incredibly irritating. You could probably get away with the stock T2D collision on players if you really wanted to, you wouldnt get any overlap so your tunneling problems shouldnt occur.

I don't think you need a seperate tile layer. You can use tile custom data to specify whatever info you need. Just use a space seperated string and getWord().

T.
#9
06/24/2006 (10:44 am)
I think you might have missread something. The reason I would need a seperate movement tile layer is not just for more space for flags, its because the movement tile units would be much much smaller than the normal tile layer unit size.

I want the player to be able to move-freely--you can stand halfway between two tiles.
#10
06/26/2006 (12:47 am)
@James: If you wish I can have a look at your project.. or we could get in contact. I tackled with the tunneling program too and somehow I managed to make it disappear.
#11
06/26/2006 (5:03 pm)
I was wondering were you using pixel art in your game?
#12
06/27/2006 (7:24 pm)
I'm not sure what you mean by pixel art... It is definitely not 3D modeled art... In fact its straight from the snes game.

edit: then definitely pixel art, not that I made it '-p
#13
06/28/2006 (9:34 pm)
There's essentially 3 methonds of computer art creation:

3D - pretty straight forward. This is a 3D model. Nearly every modern game uses this technique.

'Drawn' - This is art which is created in a highly detailed form, and scaled to the needed size. Some SNES era games used this technique, but it was more common in the 486 PC era before 3D accelerator cards became popular. Games which use 3D models to generated pre-rendered sprites, such as StarCraft, also fit into this category.

'Pixel' - This is art which is built, pixel by pixel rather than by scaling a higher resolution image. Nearly every NES era game uses this technique.

Examples of pixel art can be found here:
www.pixelfreak.com/tutorial/ - a tutorial, demonstrating the creation of a small house
www.pixelfreak.com/v3/img/poster.png - a very large and very impressive pixel-art city scene
- also dig around the 'works' section to see some more examples.
en.wikipedia.org/wiki/Pixel_art - a better, more thorough definition

Drawn art can sometimes look better than pixel art at today's resolutions, but back in the day the only way to get detailed-looking, useably-small sprites was to do it by hand, pixel by pixel.
#14
07/17/2006 (10:51 am)
Well its been a month and I have finished what i would call a first working version of the game. I've been making a tetris game too thought. After I get some more done on the tetris game I will go back and put some more polish on bomberman, well, and make it an actual game with score, etc. '-)

I'm starting to appreciate T2D a lot now! These are the first real-actual-games I have finished! I plan to remake both bomberman and tetris in c++ from scratch later for my work portfolio, but doing it first in T2D will help a lot, I think. Now I can try to mirror the aspects of the T2D engine I am using in my games; I know what functions / tools I need to have in my engine in order to create a tetris/bomberman/etc game!