Fpglappy Bird: A side-scrolling game. Overview

Similar documents
Fpglappy Bird: A side-scrolling game. 1 Overview. Wei Low, Nicholas McCoy, Julian Mendoza Project Proposal Draft, Fall 2015

Fpglappy Bird : A side scrolling game

Surfing on a Sine Wave

Flappy Parrot Level 2

In this project we ll make our own version of the highly popular mobile game Flappy Bird. This project requires Scratch 2.0.

Create a game in which you have to guide a parrot through scrolling pipes to score points.

DUCK VS BEAVERS. Table of Contents. Lane Community College

Overview. The Game Idea

CISC 1600, Lab 2.2: More games in Scratch

G54GAM Lab Session 1

GameMaker. Adrienne Decker School of Interactive Games and Media. RIT Center for Media, Arts, Games, Interaction & Creativity (MAGIC)

Fantastic Tetris. Design Report

Ball Color Switch. Game document and tutorial

FPGA Air Brush Project Proposal. Oscar Guevara Junior Neeranartvong

Revision for Grade 6 in Unit #1 Design & Technology Subject Your Name:... Grade 6/

How to Make Games in MakeCode Arcade Created by Isaac Wellish. Last updated on :10:15 PM UTC

Installation Instructions

Rifle Arcade Game. Introduction. Implementation. Austin Phillips Brown Casey Wessel. Project Overview

TAKE CONTROL GAME DESIGN DOCUMENT

Brain Game. Introduction. Scratch

CS221 Project Final Report Automatic Flappy Bird Player

Interactive 1 Player Checkers. Harrison Okun December 9, 2015

Creating Computer Games

In this tutorial you will use Photo Story 3, a free software program from Microsoft, to create digital stories using text, graphics and music.

Programming with Scratch

A Cross-platform Game for Learning Physics

STEP-BY-STEP THINGS TO TRY FINISHED? START HERE NEW TO SCRATCH? CREATE YOUR FIRST SCRATCH PROJECT!

Design Document. Embedded System Design CSEE Spring 2012 Semester. Academic supervisor: Professor Stephen Edwards

6.111 Final Project Proposal HeartAware

Campus Fighter. CSEE 4840 Embedded System Design. Haosen Wang, hw2363 Lei Wang, lw2464 Pan Deng, pd2389 Hongtao Li, hl2660 Pengyi Zhang, pnz2102

Executive Summary: Game Overviews: Evaluation Criteria: 15 March 2012 TCO Multimedia

Upcoming Events: Floppy Cats Part 2 - Adding the Scrolling Pillars

Competition Manual. 11 th Annual Oregon Game Project Challenge

The purpose of this document is to outline the structure and tools that come with FPS Control.

In this project you ll learn how to create a times table quiz, in which you have to get as many answers correct as you can in 30 seconds.

2D Platform. Table of Contents

Tutorial: Creating maze games

E90 Project Proposal. 6 December 2006 Paul Azunre Thomas Murray David Wright

CONCEPTS EXPLAINED CONCEPTS (IN ORDER)

In this project you ll learn how to create a platform game, in which you have to dodge the moving balls and reach the end of the level.

Game Maker Tutorial Creating Maze Games Written by Mark Overmars

CAPSTONE PROJECT 1.A: OVERVIEW. Purpose

Module 1 Introducing Kodu Basics

Fanmade. 2D Puzzle Platformer

GALAXIAN: CSEE 4840 EMBEDDED SYSTEM DESIGN. Galaxian. CSEE 4840 Embedded System Design

Share My Design Space Project to Facebook or Pinterest?

Easy Input Helper Documentation

Capture the Flag Design Document Authors: Luke Colburn, Tyler Johnson, Chris LaBauve

PING. Table of Contents. PING GameMaker Studio Assignment CIS 125G 1. Lane Community College 2015

AN ACTION ARCADE WEB BASED GAME-SLIME ATTACK PLUS (Slime Invader) By ONG HUI HUANG A REPORT SUBMITTED TO

Global Game Jam Accessibility Challenge

Editing the standing Lazarus object to detect for being freed

Checking your technology

Moving Game X to YOUR Location In this tutorial, you will remix Game X, making changes so it can be played in a location near you.

INTRODUCTION TO GAME AI

Introducing Photo Story 3

Connect Four Emulator

Kodu Game Programming

Creating a Mobile Game

Software Requirements Specification Document. CENG 490 VANA Project

2/22/2006 Team #7: Pez Project: Empty Clip Members: Alan Witkowski, Steve Huff, Thos Swallow, Travis Cooper Document: VVP

Adding in 3D Models and Animations

Team 11. Flingshot. An infinite mobile climber game which uses the touch screen to control the character.

Team Breaking Bat Architecture Design Specification. Virtual Slugger

CSEE 4840 Project Design A Tower Defense Game: SAVE CROPS

Sensible Chuckle SuperTuxKart Concrete Architecture Report

Unity Certified Programmer

Android User manual. Intel Education Lab Camera by Intellisense CONTENTS

Getting Started Guide

Next Back Save Project Save Project Save your Story

Individual Test Item Specifications

Run Ant Runt! Game Design Document. Created: November 20, 2013 Updated: November 20, 2013

Photo Story Instructions!

This tutorial will guide you through the process of adding basic ambient sound to a Level.

Vox s Paladins Spectator Mode Guide

Michigan State University Team MSUFCU Money Smash Chronicle Project Plan Spring 2016

Shoot It Game Template - 1. Tornado Bandits Studio Shoot It Game Template - Documentation.

TEMPLE OF LOCKS V1.0

Using the CODEC ReadMeFirst

Bass-Hero Final Project Report

A. creating clones. Skills Training 5

Design of Embedded Systems - Advanced Course Project

Workshop 4: Digital Media By Daniel Crippa

Mobile and web games Development

Getting started Guide

SudokuSplashZone. Overview 3

Share your Live Photos with friends and family by printing, ordering prints from Snapfish (US only), and via Facebook or .

Instruction Manual. Pangea Software, Inc. All Rights Reserved Enigmo is a trademark of Pangea Software, Inc.

Game Making Workshop on Scratch

LESSON 1 CROSSY ROAD

NOVA. Game Pitch SUMMARY GAMEPLAY LOOK & FEEL. Story Abstract. Appearance. Alex Tripp CIS 587 Fall 2014

More Actions: A Galaxy of Possibilities

The Audio Synthesizer

Game Console Design. Final Presentation. Daniel Laws Comp 499 Capstone Project Dec. 11, 2009

Introduction to Mobile Gaming. Jon Schlegel Founder and CEO

Keytar Hero. Bobby Barnett, Katy Kahla, James Kress, and Josh Tate. Teams 9 and 10 1

Create Your Own World

BITKIT. 8Bit FPGA. Updated 5/7/2018 (C) CraftyMech LLC.

BE SURE TO COMPLETE HYPOTHESIS STATEMENTS FOR EACH STAGE. ( ) DO NOT USE THE TEST BUTTON IN THIS ACTIVITY UNTIL THE END!

Scratch for Beginners Workbook

Transcription:

Fpglappy Bird: A side-scrolling game Wei Low, Nicholas McCoy, Julian Mendoza 6.111 Project Proposal Draft Fall 2015 Overview On February 10th, 2014, the creator of Flappy Bird, a popular side-scrolling game for mobile devices, removed the game from mobile application stores (Apple, Android, etc.). The reason for the removal was due to the game becoming an addictive product that had become a problem. Currently Flappy Bird is only available to those who downloaded the game before its deletion from application stores or through a fan-created website, flappybird.io. This final project aims to bring this popular and exciting game to users not fortunate enough to possess a copy of the game or who lack a reliable Internet connection. In the original version of this game, a small bird must hop to avoid obstacles in the form of green pipes that scroll across the screen from right to left. The user taps the screen or clicks a button to make the bird jump up, but otherwise the bird is constantly falling. The game was known for being very difficult and infuriating. Our project aims to make it even more difficult and infuriating, by incorporating a vision-tracking element that requires the player to jump in order to control the on-screen character. Our goal for this project is to implement our own version of this popular game on an FPGA (Nexys 4 DDR) as well as incorporating a vision-tracking element. The vision tracking will look for a bright object placed over the player s face (the beak ), and use the coordinates of this object as input to the game. A large change in vertical position will trigger a hop from the player character. In a basic version of this project, the game will have basic graphics, sprites, and some sound effects. Ultimately, we would like to more complex images and scrolling backgrounds, as well as use the player s face as the main game sprite.

Design The project can be visualized in four major blocks as shown in Figure 1: object tracking, gameplay logic, audio, and video display. Figure 1: The high level design of the game This modular design will enable each critical section to be independent of the others, allowing for easier testing of the modules. At the highest level, the project will track the player s face during gameplay and output sound effects(audio Out) and video graphics (VGA out). Depending on the player s actions, game logic processing will change and update the sound and graphics. The vision/object processing block takes input from the camera, and calculates the coordinates of the beak. The game logic block uses an input button to start the game, and uses the beak s coordinates to determine when to jump. It scrolls the game world to the left, generates new obstacles, and controls the movements of the bird. If the bird collides with an obstacle, it ends the game. It sends position data of objects to the video block, and tells the audio block what sound effects to play. The video block takes input of object positions, turns them into image representations, and sends them over VGA. The audio block plays sound effects based on events determined by the game logic.

Implementation Object Tracking Block (jmend) The object tracking block operates at 10 frames per second to reduce data bandwidth issues that graphics processing make create. This block first saves video data in memory. It then searches and identifies the bright and highly contrasting object of interest (the beak ) in the image. It then puts the measured coordinates through a Kalman filter to smooth out the movement. It will output the coordinates and velocity of the center of the beak. Gameplay Logic Block (weilow) The gameplay will be similar to that of the original Flappy Bird. This game logic block takes input from the object tracking block on the coordinates and velocity of the beak. It also relies on video data saved in memory to make the distinction of whether or not the sprite has bumped into an obstacle (a pipe ). This block will also be responsible for handling the physics of sprite movement, such as jumping and falling with gravitational effects. Additionally it relies input from on the ENTER and directional buttons on the FPGA. The ENTER button will control the starting/pausing of the game. The directional buttons will handle navigation between decisions to be made, such as on the PAUSE screen where the user can select between Continue and End Game. This block will also handle the different states within the game, which will be: START, PLAY, PAUSE, LOSS, HIGH_SCORE. Within the START state, the game s default screen will load, bearing the game title. Upon pressing the ENTER button, the PLAY state will begin. During the PLAY state, if the bird hits an obstacle, the game will transition to the LOSS state. After a specified amount of time, the game will transition from the LOSS state to the HIGH_SCORE state. In the HIGH_SCORE state, a leaderboard of the top ten scores will be displayed. If the player achieves a score eligible to be included in the top ten scores, he/she will have the option to input initials and his/her score will be saved in memory. Video Block (nmccoy) The video block takes input from the game logic block on the locations of the bird, obstacles (up to 3), total distance, and whether the game has ended or not. It also takes in the coordinates of the player s face so that it can extract an image for the sprite from the video memory. This block will use a sprite pipeline system, described in lab 3, where data is passed through blocks for each sprite to give a layering effect. It generates all signals/clocks needed for a VGA output, and passes the sprite pipeline data out to the display. Audio Block (nmccoy) The audio block takes input from the game logic block on when to play certain sounds. It will have an input bit for playing each possible sound (jumping sound, crashing sound, background music). When prompted, this module will load the respective sound from the SD card and output it over the audio DAC. In the case of the background music, the file will be looped continuously as long as it is enabled.

Schedule Because there are three members working on this project, sections of the project can be completed in parallel. A description for each of the project elements is detailed below the GANTT chart. Figure 2: GANTT Chart of Proposed Schedule Interface with FPGA - Interfacing between the camera input, VGA output and Audio output will require attending tutorials and reading hardware documentation for the camera of choice, SD card and storage modules on the FPGA Vision Tracking, Audio/Video, Game Logic Module - Done in parallel by the team Preliminary Testing - Testing of individual components within each of the respective modules will be done independently and throughout integration Integration of Game Logic and Audio/Video - The bulk of the integration will occur in week 3, to ensure states and variables invoked within game logic correspond to the correct video and audio outputs (Optional Modules will be implemented at this time for advanced game play) Integration of all Modules - Integration for all modules will occur over two weeks Testing - Testing of the system as a whole will occur in lab Buffer Time for Testing - Buffer week added for testing Demo/Final Checkoff - Week of demos, final check off, and paper.

Testing Each of the four main modules can be tested separately, allowing for parallel development of the project. Testing for each submodules with the main modules requires writing a test bench in Verilog and running the simulation in Vivado. As implementation becomes a larger goal, test benches will also be created for combinations of blocks. The actual modules will be primarily tested in hardware, because of the utility of using VGA output for the object tracking, video display and gameplay blocks, as well as the sound output for the sound block. These are overviews of tests for the more finalized blocks, at the point where Verilog workbenches and simulation limit testing capacity. Sound Block The sound block is the simplest to separate from the rest of the modules. Testing will be done primarily on the actual Nexys 4. Testing can be as elementary as outputting different sounds depending on different test input signals. Object Tracking Block Testing for object tracking doesn't depend on other modules, thus is also straightforward to test separately. The only input of the module is the video input, and the output are the position/velocity vector of the beak. Object tracking can be split up into two large parts, Target Representation/Localization and Filtering/Data Association. Blob tracking can be tested either by passing in test video data and testing its detection/tracking capabilities. Filters can be testing using fake noisy motion tracking data and measuring its smoothing effect. Video Block The Video display module can be built and tested without depending on the gameplay module. Testing would consist of using the VGA output to see if the proper items are displayed on the screen, as well as testing the different interactions between the objects on the screen and the outputs to the game logic. Gameplay Logic Block For the gameplay logic block, isolation from the rest of the modules can be accomplished by using the buttons and switches on the Nexys 4 to simulate different signals of events occurring. These signals would normally relayed by the video logic block. Resources http://www.forbes.com/sites/lananhnguyen/2014/02/11/exclusive-flappy-bird-creator-dongnguyen-says-app-gone-forever-because-it-was-an-addictive-product/ http://higherorderfun.com/blog/2012/05/20/the-guide-to-implementing-2d-platformers/