Matthew Kolb / Matt Kolb

Who am I?
I am a software developer with a Bachelor's degree in Software Engineering and Master's degree in Computer Science from Mississippi State University.

Acm Bomberman Clone

Summary

The ACM Bomberman Clone is a volunteer project for the Association of Computing Machinery for Mississippi State University that will show potential students a small set of the capabilities that a degree in computer science or related fields will provide.

Gameplay

  • Bombs blow up other bombs in the bombs range
  • Bombs only send out explosions vertically and horizontally
  • Normal time limit is 2 minutes (draw if no winner at 2 minutes)
  • After 1 minute display a "Hurry up" warning message about the time limit and wall blocks are put into the playing area in a spiral fashion (starting at bottom left and continuing clockwise) reducing the amount of playable area. If someone is in an area when a wall is placed there, they are killed.
  • Possible for a draw if the time limit is reached or the last players blow themselves up at the same time
  • For more gameplay info, we could meet at my apartment and actually play the game on xbox with nes/snes emulators

Completed

  • Images for all 4 players
  • 2 maps with images
  • Images can be found here: images zip file
  • Sample board that randomly picks map
  • Separate timer thread counts down the games time (doesn't currently do anything to end the game)
  • Keystrokes move the player around and keep them from going through walls/obstacles/bombs/etc. Current implementation should make it easy to accept commands from the server for players other than player 1.
  • Each bomb has a thread to time out when it blows up.
  • Chain reactions of bombs works
  • Bombs blow up on the correct axis and blow up obstacles
  • Player can only set one bomb at a time (though the number of bombs at one time is an int that can easily be changed if a power up is picked up)
  • Running sample can be found here: applet (view html source)
  • Current source files

Possible Problems / Things to Do

  • Starting time of a game may need to be synced among all clients
  • Check to see if a bomb blew up a player
  • Check for game over
  • Client/server message passing for multiplayer

Possible Features

  • Many themed maps (wouldn't involve much other than getting a bunch of different graphics together if maps are dynamically generated)
    • Mario theme
    • Forest theme
  • If implemented up to 2 players, implemented up to 4 should be relatively trivial
  • Tournament style where the players play for the best of 5 or something.
  • Possibly allow multiple "rooms" where more than 4 people could play. The server would need to designate who is in which room automatically. Possible "room" configurations:
    • Fill up the first room before creating another (done by server)
    • Have an option for each client for a preferred number of players less than 4 as an option
    • Have a list of say 5 predefined "rooms" listing the number of players in each and allow the client to "join" a "room" (may require locking rooms for joining if we implement tournament style game play)
  • Powerups (shown after an obstacle is blown up) - More info on powerups
  • Music

Implementation Notes

  • Hopefully will be eventually implemented on university ACM website, but we could use this as a development/testing server if needed
  • Implement in Java
  • Probably should send keystrokes through the server (would probably be easier to implement)
  • Maps will probably be a pretty simple 2D array with note for what is in them (bomb, obstacle, wall, open, playerX where X is player number/color, powerupX where X is the type of powerup)
  • Initialize map with a wall all the way around and a given number of obstacles
  • Maps should probably be generated automatically (would require the server or main client to generate the map and send to all clients
  • Implementation of the server will probably be similar to a simple Java chat room (could provide a nice, easy to follow example code to follow for development)

Helpful Websites