Top Banner
GD50 Lecture 1: Flappy Bird Colton Ogden [email protected] David J. Malan [email protected]
42

[email protected] David J. Malan [email protected] ... · GD50 Lecture 1: Flappy Bird Colton Ogden [email protected] David J. Malan [email protected]

Mar 12, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

GD50Lecture 1: Flappy Bird

Colton [email protected]

David J. [email protected]

Page 2: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

Slides

https://cs50.github.io/games/lectures

Page 3: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

● Images (Sprites)● Infinite Scrolling● “Games Are Illusions”● Procedural Generation● State Machines● Mouse Input

Topics

Page 4: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

Downloading demo code

https://github.com/games50/fifty-bird

Page 5: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

Optional Reading, ftw

● How to Make an RPG, by Dan Schuller○ https://howtomakeanrpg.com/

● Game Programming Patterns, by Robert Nystrom○ http://gameprogrammingpatterns.com/

Page 6: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

Our Goal

Page 7: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

bird0 “The Day-0 Update”

Page 8: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

bird0: New Functions

● love.graphics.newImage(path)○ Loads an image from a graphics file (JPEG, PNG, GIF, etc.), storing it in an object we can draw

to the screen.

Page 9: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

Demo time!

Page 10: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

bird1 “The Parallax Update”

Page 11: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

Demo time!

Page 12: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

Games Are Illusions

Shesez (Boundary Break)

https://www.youtube.com/channel/UCHTnEwQKNwm49CQeCVZogMw

Page 13: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

https://www.youtu.be/HUgE9L7V4oY

Page 14: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

bird2 “The Bird Update”

Page 15: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

Demo time!

Page 16: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

bird3 “The Gravity Update”

Page 17: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

Demo time!

Page 18: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

bird4 “The Anti-Gravity Update”

Page 19: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

http://game.engineering.nyu.edu/projects/exploring-game-space/

Page 20: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

Demo time!

Page 21: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

bird5 “The Infinite Pipe Update”

Page 22: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

Demo time!

Page 23: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

bird6 “The PipePair Update”

Page 24: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

Spawn ZoneDead Zone

Page 25: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

Demo time!

Page 26: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

bird7 “The Collision Update”

Page 27: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

Demo time!

Page 28: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

bird8 “The State Machine Update”

Page 29: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

Flappy Bird State Machine

TitleScreenState PlayStateCountdownState

ScoreState

Page 30: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

Demo time!

Page 31: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

bird9 “The Score Update”

Page 32: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

Demo time!

Page 33: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

bird10 “The Countdown Update”

Page 34: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

Demo time!

Page 35: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

bird11 “The Audio Update”

Page 36: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

Demo time!

Page 37: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

bird12 “The Mouse Update”

Page 38: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

bird12: New Functions

● love.mousepressed(x, y, button)

-Callback fired by LÖVE2D every time a mouse button is pressed; also gives us the (X, Y) of where the mouse cursor was at the time of the button press.

Page 39: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

Demo time!

Page 40: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

● Sprite Sheets● Procedural Layouts● Levels● Player Health● Particle Systems● Fancier Collision Detection● Persistent Save Data

Next Time...

Page 41: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

● Make pipe gaps slightly random.● Make pipe intervals slightly random.● Award players a “medal” based on their score, using

images.● Implement a pause feature.

Assignment 1

Page 42: malan@harvard.edu David J. Malan cogden@cs50.harvard.edu ... · GD50 Lecture 1: Flappy Bird Colton Ogden cogden@cs50.harvard.edu David J. Malan malan@harvard.edu

See you next time!