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)
- 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