Author | Léna De Germain |
---|---|
Created | 9/26/2024 |
Last Modified | 10/21/2024 |
Table of content
Project aims to recreate the game "Frogger" with our style using FPGA board / Go Board coding in Verilog.
Frogger is an arcade action game developed by KONAMI and released in 1981. In the original game, the aim was to direct some frogs to their homes by dogging on a busy road. Frogs need to avoid cars to still alive and get back to their homes.
To do this, the player must first move through the game zone, here a busy road, avoiding cars that move at different speeds. The Frog restarts at the beginning of the level if he hits a car or with a GAME OVER.
In our history, the original game was positively received as one of the greatest video games ever made. It was followed by a lot of copies and clones. It was named as "Frogger Series". For the biggest famous copies, we have a version from Parker Brothers, the 1982 Atari 2600, which sold 4 million copies, or in 2005, 20 million copies of various games of "Frogger" were sold.
The player can control the frog using a joystick, allowing movement in all directions. In our version, the buttons on the FPGA board will be used to move the frog.
The game starts with the frog positioned at the bottom of the screen, and the goal is to advance to the top to complete the level. Along the way, the player must avoid various obstacles moving horizontally across the screen.
Frogger can be played solo, but it's also possible to play with two players, taking turns.
- Recreate the road (background for traditional Frogger)
- Implement a frog
- Implement car for obstacles
- systhem of level
- Implement keybindings with switchs present on the card to move with frog
- Possibility to reset the game
- Add sprite's frog
- Add many car's sprite
- Add Win Page
- Add menu
- Save game
- Change Frog's appearance
- Show up the level & the maximum level reached
- Have a Register of Different Bonuses
- differents themes
- halloween's theme
- Christmas' theme
- ALGOSUP's theme
- The game board has for resolution a VGA display like 640x480 and it's reparted on a 20x15 grid.
- The level must be displays on the 2-digit 7-segment display of the Go Board.
- To move the player we need to use the four buttons on Go-board (SW1, SW2, SW3, SW4)
- the player have only one life
- There must be at least 8 levels in the game. As the level increases, so does the difficulty of the game.
Requirements | Usefullness |
---|---|
Name | We have done a vote to find a name, The majority adopted "FroggyRanck" |
Main character | A character played by player |
Main character's design | A basic character design for a basic level, a character design for special levels, dimensions are 32x32 pixels |
Obstacles | a character for Obstacles avoided by player |
Obstacles' design | A basic design for a basic level, a design for special levels, the obstacle's dimensions are 32x32 pixels but the width can vary |
Playground | A space without physique/collision for a play area |
The buttons on the FPGA board are used to control the frog and reset the game to the beginning. The frog can only have one space at a time, after the frog hits an obstacle or finish the level, the frog returns to the bottom of the screen.
Button | Direction |
---|---|
SW1 | forward |
SW2 | backward |
SW3 | right |
SW4 | left |
SW1 & SW2 & SW3 & SW4 | reset the game |
frog sprite
Optional Feature
The player can view their level on the Go Board using the 2-digit 7-segment display. If the game is reset or the frog is hit by a car, the level indicator resets to 1 (at the beginning). But if the frog reaches the top of the screen, their level increases by one. We've been asked to make the game a 20x15 grid, the screen being 640x480, and one grid corresponds to 32x32 pixels (640/20 = 32, 480/15 = 32).
Mostly the obstacle is vehicles like a car and they appear from the left or the right of the screen and move horizontally on the screen. When the level increases there a more cars at different speeds to make the game more difficult. At the begining, only one car can appears on a horizontal row and the number increase for each levels passed. They can have a lot of design or the width can be changed.
Car Sprite
Optional Feature
The frog has four lives, and the player can see the number of lives remaining on the FPGA board. The four LEDs on the FPGA board represent the frog's lives. Each time the frog hits an obstacle, one LED turns off, indicating the loss of a life. The lives are reset after a game over (i.e., when all four LEDs are turned off).
Menu is useful to save or make a pause on game, we could also add some possibility like this :
Menu's Possibility | button |
---|---|
Open Menu and Close Menu | SW1 & SW2 |
Save Button | SW1 |
Show up the level & Score | SW2 |
Possibility to change Frog's Appearance | SW3 |
Have a Register of Different Bonuses | SW4 |
Score able to compare two player if they want to know which one have the bigest score
Action | number of points won |
---|---|
finish a level | + 100 points |
Take a gift | + 20 points |
Take Poison Gift | - 20 points |
hit a obstacle | reset the score at 0 |
The bonus can appear randomly on the screen at frequency 5%, he can only have one bonus by level.
Bonus | Effect |
---|---|
Gift | increase your score by 20 points |
Poison Gift | reduce the score by 20 points |
StopTime | stop the obstacle for 3 seconds |
Level Reboot | return to start of level |
Star | make the character invincible for 3 seconds |
Left arrow | slows down obsctacles |
Right arrow | speed up obsctacles |
To more diversity, we have decided to add different themes to have another game experience.
Level | Themes | Changement |
---|---|---|
4 lvl | Halloween | The frog is replaced by a ghost and the obstacles become pumpkins. |
8 lvl | Christmas | the frog become a lutin and the obstacles are replaced by reindeer |
2 lvl | ALGOSUP | obstacles replaced by Elone and the frog become Frank |
To code, in particular, but also to run the game, we need to meet few requirements.
Non-Functional Requirement | Utility | Run / Code |
---|---|---|
Windows/MacOS | We do all that we need on their computer's system. | Code |
FPGA board | We program the game on this board, the Go Board from Nandland.com | Run & Code |
Verilog | It's the language used to program the game. | Code |
Screen with VGA port | To observe the result of our code, we project it on a VGA Screen. We've been asked to make the game a 20x15 grid, the screen being 640x480, and one square corresponds to 32x32 pixels (640/20 = 32, 480/15 = 32). | Run & Code |
Cable double VGA port | It's cable is used to connect the FPGA board to VGA Screen | Run & Code |
Our client, ALGOSUP, asked us to deliver documents and the final product on a precise date.
Date | Deliverable |
---|---|
10/07/2024 | Functional Specification Deadline |
10/14/2024 | Technical Specification Deadline |
10/21/2024 | Code Deadline |
10/21/2024 | Test Plan Deadline |
10/21/2024 | User Manual Deadline |
10/25/2024 | Presentation |
Term | Definition | Source |
---|---|---|
FPGA Board / Go board | Field Programmable Gate Arrays (FPGAs) are integrated circuits used to program and launch games. | arm |
Verilog | Verilog is a hardware description language used for computer simulation and synthesis. This is what we used to code the FPGA board. | ScienceDirect |
VGA display / VGA Port | For “Video Graphics Array”, is a connection interface for transmitting analog video signals. It was designed by IBM and introduced in some computers and monitors in 1987. | LCD COMPARE |
2-digit 7-segment display | A seven-segment display is a form of electronic display device for displaying decimal numerals that is an alternative to the more complex dot matrix displays. | Wikipedia |