Bomberman Clone

Custom Project Final Report

Spring 2019

Jimmy Im

Table of Contents

Introduction        2

Controls        2

Hardware        3

Parts List        3

Pinout        3

Software        4

Complexities        9

Completed Complexities:        9

Incompleted Complexities:        9

Youtube Link        9

Folder Link        9

Known Bugs and Shortcomings        9

Future work        10

Libraries Used        11

Source Cited        11

Introduction

Bomberman is a two-dimensional action game where the goal is to find the exit of the level which is hidden by walls before the time limit. The player controls an avatar that moves vertically and horizontally in the level from a top-down perspective. The player can place bombs to blow up walls and enemies in the level. These bombs detonate after a certain amount of time has passed, and the player cannot touch their own bombs if they detonate.

Score is determined by time left over and amount of enemies or walls detonated when the player finishes the level. If the player runs out of time before reaching the door or they touch an enemy, they will lose a life. Losing a life restarts the level. Once a player runs out of lives, they lose the game. Sound and motor vibrator is played for when a bomb detonates. Victory music also plays when the player completes a level or when the game is finished.

Controls

Up: Player moves up

Down: Player moves down

Left: Player moves left

Right: Player moves right

B button: Places bomb

Start button: Begins game/ Start new level/ Go to Menu

Select button: Clears high score from EEPROM

L button: Load high score from EEPROM

R button: Read high score from EEPROM

Hardware

Parts List

The hardware that was used in this design is listed below. The equipment that was not taught in this course has been bolded.

Pinout


Software

SM_LCD_Display

SM_SNES_Controller

SM_PWM_Motor


SM_PWM_Motor_Manager


SM_Sound


SM_Logic


Complexities

Completed Complexities:

Incompleted Complexities:

Youtube Link

https://www.youtube.com/watch?v=iTkBGr7SMjo

Folder Link

https://drive.google.com/drive/folders/1bJdTDE65oQg1nHp7qm_EcO-peI-sSkJ-?usp=sharing

Known Bugs and Shortcomings

Future work

The next feature I would add would be multiplayer. Multiplayer was originally included in the original proposal, but the idea was scrapped due to the already completed complexities of the project satisfying the requisite amount of complexities. Bomberman is game mostly known for its multiplayer mode, and it would greatly add to the user’s enjoyment. To implement this feature, it would require a seperate state and a rework of how the player struct is handled. For hardware, it would require using the remaining available pins on PINA or PINC. Overall, it would not be a very complicated future development.


Libraries Used

Name: avr-nokia5110

Link: https://github.com/LittleBuster/avr-nokia5110

Summary: Library creates functions for simpler interfacing with the Nokia 5110 screen.

Name: bit.c

Link: Provided by instructor

Summary: Library that gets a bit in a char.

Name: timer.h

Link: Provided by instructor

Summary: Library that sets the ATMega1284’s timer. Used primarily for both timing and state machine.

Source Cited

JChristy. Super Nintendo Entertainment System: pinouts & protocol. GameFAQs, 26 Mar. 1996,

https://gamefaqs.gamespot.com/snes/916396-super-nintendo/faqs/5395. Accessed 27 May 2019.

TechArea. Super Mario Theme Song with Piezo Buzzer and Arduino!. Hackster.io, 20 Nov. 2017, https://www.hackster.io/techarea98/super-mario-theme-song-with-piezo-buzzer-and-arduino-2cc461. Accessed 2 May, 2019.

Bomberman: Sheet Music. NinSheetMusic, https://www.ninsheetmusic.org/browse/series/Bomberman. Accessed 6 June 2019.Source Cited