CS221 Project Final Report Automatic Flappy Bird Player

Size: px
Start display at page:

Download "CS221 Project Final Report Automatic Flappy Bird Player"

Transcription

1 1 CS221 Project Final Report Automatic Flappy Bird Player Minh-An Quinn, Guilherme Reis Introduction Flappy Bird is a notoriously difficult and addicting game - so much so that its creator even removed it from app stores at the peak of its popularity, citing guilt over the time players were devoting to the game. Although its rules are simple, straightforward, and intuitive, strategic timing and dexterity are essential to excel at Flappy Bird. Humans immediately understand the game s rules and what they must do to win, but lack the ability to, strategically, think several moves ahead, as well as the dexterity to take the optimal action at 30 frames per second. On the other hand, an AI has no trouble with computing ahead and executing actions with perfect timing - thinking ahead and intuitively mastering the game s physics, however, is not as easy. The motivation for our project was to, through careful feature engineering and modelling, understand precisely what on-screen information - such as position, velocities, accelerations, etc. - are necessary to be able to excel at Flappy Bird gameplay. To that extent, we implemented Q-Learning to use reinforcement learning to estimate the value of taking an action from a given state, and then pared down the information in the state to the bare minimum. With as little as 1 hour of training, our Automatic Flappy Bird Player beats average humans at gameplay; with 3-4 hours (~6000 games played), it achieves superhuman performance, eventually being able to play the game without losing. Background Flappy Bird is a one-player game where the user controls a bird and attempts to fly the bird between pipes. The bird moves forward (i.e., right) at a constant speed set by the game s logic. As the bird moves, pipes come on-screen and become visible. Each pipe has an opening that the bird must pass through to clear the pipe. Furthermore, the bird is impacted by gravity and accelerates down at a constant rate. If the bird touches a pipe or the bottom border of the screen the game ends. At any time, there are two actions available to the user: click, in which case the bird accelerates up, or do nothing. Hence, at every frame in the gameplay the user must decide whether to propel the bird up, or do nothing and simply let it be impacted by gravity. The user must be strategic in deciding when to click: too early, and the bird will come back down and hit the bottom end of the pipe; too late, and the bird may overshoot the pipe s opening and hit the top part of the pipe.

2 2 The user gets one point added to their score every time the bird passes an obstacle, with the final score being score the user has accumulated throughout the duration of the game. Since the horizontal speed is constant, the only way for the bird to keep surviving is to keep passing through pipe openings. Scope The goal of our project is to build an AI agent that will get as high a score as possible. Note that, in the case of Flappy Bird, the bird s score is equal to the number of pipes it clears before death and is directly proportional to how long the bird stays alive. An essential measure of success is whether the AI can score better than a regular, average human player. There are two fundamental challenges that make this game hard for humans: firstly, humans have difficulty judging when exactly to click in preparation for a given object, as they have to take into consideration both the horizontal velocity of the bird, the downwards acceleration due to gravity, and the effect of upwards acceleration cancelling out gravity if the player clicks. Secondly, a human not only needs to make that decision in a timely fashion, but also needs to have the dexterity to translate the decision into a button press. Given this, we defined two success metrics. Our baseline is beating gameplay of a person who is familiar with the game, i.e., points/pipes. Our oracle, on the other hand, is achieving superhuman gameplay: being able to consistently clear thousands of pipes. As is shown later, we achieve and supersede both our baseline and oracle. Infrastructure Rather than building our own version of Flappy Bird (which would not be relevant for CS221), we used a version of Flappy Bird built in PyGame. In addition, we used PyGame Learning Environment (PLE), a wrapper function around PyGame, to implement our agent. PyGame Learning Environment is helpful because it allowed us to hook into Flappy Bird s game logic in order to get information with which to build the state, and because its framework facilitates receiving a game state or other signal like the end of a game, replying with an action to take, and then receiving the corresponding reward. Flappy Bird operates at 30 frames per second and at each frame, PLE gives us the game state and our Agent preprocesses it and replies with the action to take. PLE then passes this action to PyGame, which executes it and returns a reward to our Agent, to then be used in incorporating feedback. Note we had to make a few modifications to PyGame and PLE code to streamline our infrastructure. The reward structure is, naturally, chosen by us and defined before the game starts. For reasons discussed later, we only incorporate feedback and alter our weights at the end of every game. To be able to do so, we store a list of moves : initialized at the start of every game, it saves the state-action pair at each frame. We then use this at the end of each game in incorporatefeedback() to update our weights and improve our model.

3 3 Our infrastructure consists of two main files: quickstart.py and agent.py. The quickstart file instantiates the game and PLE, and bridges PLE and our Agent by saving states and rewards and then passing them along to our Agent at the next frame. QuickStart also keeps a moving average and maximum score of the last 100 games, and prints those during training and testing. Quickstart is also where one can choose whether to display the screen and watch gameplay, or rather train at a higher speed, and also where one can choose to either load previously saved weights or start training from scratch. Challenges The structure of the Flappy Bird game poses two main challenges for our agent. The first challenge is the strategic timing. It is not sufficient for the bird to be able to line itself up vertically with the hole in the pipe; rather, it must ensure at once it reaches the pipe, it still is lined up vertically. This might entail having to drop below the pipe and only then clicking so that the bird becomes vertically lined up with the pipe opening as it reaches it horizontally. Furthermore, not only must the bird reach the pipe s opening, it must be able to pass through the opening too (which takes approximately frames). Hence, the bird might fit into the pipe, but have an excessive vertical velocity that will cause it to crash into the pipe while inside it. This is further complicated by the fact that clicking inside the pipe is quite risky, since there isn t much vertical space to allow for significant vertical acceleration. As we observed human gameplay, we noticed that this is where people struggled: they could line the bird up with the pipe s hole, but where then forced to click while inside it, causing the bird to hit the pipe and die. Because of this, actually clearing the pipe is far harder than merely being able to enter it. Successfully going through a pipe is the result of not just one action, but rather, a series of deliberate, well-timed actions. Therefore, our agent must be incorporating information about previous actions into its decision making. In addition, our agent must also be thinking several moves ahead and be willing to put itself into risky situations for a future reward. In this sense, actually entering the pipe is quite risky: while inside the pipe, the bird is most constrained in terms of what actions it can take. Furthermore, if the bird approaches the pipe with the wrong vertical velocity, it might even be impossible for it to clear the pipe completely, even if it enters it. This is clearly a challenge because it makes it very easy for any type of reinforcement learning to find an alternate local optimum: simply avoid the riskiest part of the game (being inside the pipe), and e.g. constantly click to rise diagonally, hitting the pipe at the last possible moment. Hence, we must incentivize our bird to incur the risk of entering the pipe, when it is likely that doing so will lead to its death until it learns to clear the pipe. One way of avoiding this local optimum is to use an exploration probability. We concluded that such an approach is inadequate: a) firstly, Flappy Bird s physics are deterministic, so it isn t advantageous to take

4 4 random actions during gameplay; b) secondly, with 30 actions per second but only two actions to take at any given point, it was far too easy for the bird to randomly click when it shouldn t have, interfering with the strategic timing. For example, if the bird is inside the pipe for frames, even with a 0.1 exploration probability it is fairly certain to click, leading to near certain death. Instead of incentivizing the bird to explore randomly, we instead are more selective with when we apply a positive or negative reward, as is explained later. The second challenge is the Flappy Bird s delayed rewards. When playing the game, users only gain points if they pass through a pipe obstacle. Due to the game s logic, the reward is given to the user as soon as they are halfway through a pipe. However, the task of successfully navigating through a pipe requires many moves and careful pre-planning--the reward is a result of a series of actions, not just a single action. Additionally, since the goal of our agent is to gain as many points as possible, merely making it halfway through a pipe is not enough--our agent needs to learn how to successfully clear a whole pipe. Due to these differences, it is not appropriate to give the bird rewards in the same timing that the game logic does. For example, the bird might remain alive by making poor choices - such as avoiding the risk of entering the pipe; similarly, the bird might die even if it takes the best action at the state it is in, simply because it made poor choices (such as clicking) a few frames back. Consider the case where the bird is 20 frames away from the pipe, and it chooses to click, accelerating it upwards well past the pipe s opening, and sentencing it to (eventual) death as it crashes into the pipe. Clearly, clicking was not the optimal action at this state; however, the wise thing to do given that you ve already clicked is to do nothing, hoping that gravity will eventually bring the bird down sufficiently. Hence, we must punish the action 20 frames ago without punishing the next 20 frames, which are closest to the bird s death. Since there isn t a clear way of telling whether an action is bad until the bird dies, this was a significant challenge. Approach In order to create an automatic Flappy Bird agent, we use Q-learning to learn the value of taking each action at a given state. Note that we are not using function approximation, so we directly learn (and look-up for choosing the next action) the value of each specific state-action pair. Due to this, we need to have seen each given state before being able to intelligently act upon it. However, we manage to keep this state space quite small by aggressively reducing the variables in our state and binning them (through rounding) to further decrease the state space. Since we are modelling physical space (distances/velocities/acceleration), it is likely that the optimal action does not change if a given variable in the state changes a small amount, so binning is an effective strategy.

5 5 At each frame, our Agent receives information about the state of the game. We hook into the PyGame code to retrieve this information directly. We experimented with numerous features, but ultimately we need only 3 in order to achieve superhuman performance and near-perfect gameplay: 1. Horizontal distance between the bird and the next pipe. This is the distance between the bird s head and the start of the pipe obstacle. 2. Vertical distance between the bird and the next pipe. This distance was calculated by finding the difference between the y-coordinate of the top of the pipe opening and the y-coordinate corresponding to the bird. Since the pipe gap remains constant throughout the game, we only need to include the horizontal distance between the bird and the top of the opening, and not also the distance to the bottom of the opening. 3. Vertical velocity of the bird. The vertical velocity of the bird implicitly contains the information of whether the bird is currently falling down or rising, and if so, how long ago the Agent chose to click. Since the horizontal velocity of the bird remains constant throughout the game, this was the only velocity feature that was needed. Once the bird clears a pipe, variables 1 and 2 are replaced by the distance to the following pipe. Note that all three values in the game code are continuous, making it unlikely that we d see exactly the same state again. To bin them, we simply divide by a constant and round to a whole number. However, we noticed that far more precision is needed in some variables than other. Hence, for the horizontal distance between the bird and the pipe, we divide by 4; for the vertical distance between the bird and the pipe gap, we divide by 8; and for the bird s vertical velocity, we divide by 2 decimal places. This is equivalent to overlaying a grid on the game/state screen, and mapping the continuous value to which grid square it is in. With this aggressive feature selection and binning, we only needed to encounter and record less than 22,000 state to achieve superhuman performance. There are three other hyperparameters that merit discussion. The first is the discount factor, which we fixed at 1 - intuitively, we care just as much as being alive in the future as we do being alive currently. The second is the step size, which we set at 0.4 for optimal performance. However, our AI s performance was very sensitive to step size: a step size of 0.45 or 0.25 results in abysmal gameplay performance. The third hyperparameter t is not a feature of Q-Learning, but rather something we devised ourselves to better decide what state-action pairs to punish and which to reward. Understanding its usage is intimately connected with how we update our weights/q-values (since we are not using function approximation, these are equivalent). We do not incorporate any feedback at all during gameplay. This may seem counterintuitive from a traditional reinforcement learning perspective; however, during the game

6 6 itself, we actually cannot know whether a given action is successful or not. Regardless of the reward system used, Flappy Bird has one characteristic feature: dying is bad, and everything else is equally good. Hence, we cannot necessarily use an event like clearing one pipe or staying alive another frame as a proxy for our Agent acted correctly : the Agent may have cleared a pipe but put the bird in a position where it won t be able to clear the next pipe, or it may have performed an action that will lead to death, but only a number of frames later. Hence, the only feedback we receive and can evaluate without depending on future outcomes happens when the bird dies. Because of this, it is only when the bird dies and the game ends that we incorporate feedback: we keep a list of every state the bird was in and the action our Agent advised it to take, and upon the end of a game, we negatively reward the last t state-action pairs, and positively reward all the previous ones. In essence, we punish whatever the bird did in the last t frames, since it was either a poor action, or a very risky state to be in in the first place. For every action taken before the last t frames, we positively reward: it does not matter to us what the bird did, but if it led to staying alive for more than t frames, it was probably a wise action to take. We found that the optimal value was t = 9, i.e., punish the last 9 frames. This parameter is also quite sensitive: 7 or 8 lead to somewhat lower performance, and 10 and above lead to terrible performance. At the end of each game, we update the relevant q-values as follows: qvalues[state][action] = ( stepsize) * ( Reward + max(qvalues[newstate]) Reward is either positive or negative, depending on whether t > 9 or t < 9. If t > 9, then R eward = 1 ; if t < 9, then R eward = The reward structure can be altered inside quickstart.py. As discussed previously, the optimal step size is 0.4. When selecting the action to take at a given state, we simply compare which action results in a higher q-value (i.e., qvalues[state][ click ] vs. qvalues[state][ no click ]) and return that action. If there is a tie, we choose to not click for two reasons: a) Clicking is a lot more dangerous in many situations than not clicking; b) Clicking is irreversible, whereas simply doing nothing allows the bird to transition to a potentially known state from which we can act optimally. Error Analysis Our Agent met and exceeded both our baseline and oracle, so (fortunately) there isn t significant space to improve. However, there are certain drawbacks to our approach. Firstly, while it is remarkably fast to train to approach superhuman performance, training slows down considerably after approximately 5700 games. This is because at this point our Agent is so

7 skilled that it takes a very long amount of gameplay for our bird to die, and hence for feedback to be incorporated. Secondly, while our Agent is very skilled at this particular game, its knowledge is not generalizable: changing the pipe gap or the horizontal speed of the game, for example, resulted in significantly worse performance. 7

8 8

CS221 Project: Final Report Raiden AI Agent

CS221 Project: Final Report Raiden AI Agent CS221 Project: Final Report Raiden AI Agent Lu Bian lbian@stanford.edu Yiran Deng yrdeng@stanford.edu Xuandong Lei xuandong@stanford.edu 1 Introduction Raiden is a classic shooting game where the player

More information

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

In this project we ll make our own version of the highly popular mobile game Flappy Bird. This project requires Scratch 2.0. Flappy Parrot Introduction In this project we ll make our own version of the highly popular mobile game Flappy Bird. This project requires Scratch 2.0. Press the space bar to flap and try to navigate through

More information

Flappy Parrot Level 2

Flappy Parrot Level 2 Flappy Parrot Level 2 These projects are for use outside the UK only. More information is available on our website at http://www.codeclub.org.uk/. This coursework is developed in the open on GitHub, https://github.com/codeclub/

More information

CISC 1600, Lab 2.2: More games in Scratch

CISC 1600, Lab 2.2: More games in Scratch CISC 1600, Lab 2.2: More games in Scratch Prof Michael Mandel Introduction Today we will be starting to make a game in Scratch, which ultimately will become your submission for Project 3. This lab contains

More information

AI Approaches to Ultimate Tic-Tac-Toe

AI Approaches to Ultimate Tic-Tac-Toe AI Approaches to Ultimate Tic-Tac-Toe Eytan Lifshitz CS Department Hebrew University of Jerusalem, Israel David Tsurel CS Department Hebrew University of Jerusalem, Israel I. INTRODUCTION This report is

More information

AI Agent for Ants vs. SomeBees: Final Report

AI Agent for Ants vs. SomeBees: Final Report CS 221: ARTIFICIAL INTELLIGENCE: PRINCIPLES AND TECHNIQUES 1 AI Agent for Ants vs. SomeBees: Final Report Wanyi Qian, Yundong Zhang, Xiaotong Duan Abstract This project aims to build a real-time game playing

More information

Game Playing for a Variant of Mancala Board Game (Pallanguzhi)

Game Playing for a Variant of Mancala Board Game (Pallanguzhi) Game Playing for a Variant of Mancala Board Game (Pallanguzhi) Varsha Sankar (SUNet ID: svarsha) 1. INTRODUCTION Game playing is a very interesting area in the field of Artificial Intelligence presently.

More information

Make Your Own Game Tutorial VII: Creating Encounters Part 2

Make Your Own Game Tutorial VII: Creating Encounters Part 2 Aspects of Encounter Balance Despite what you might think, Encounter Balance is not all about difficulty. Difficulty is a portion, but there are many moving parts that you want to take into account when

More information

Swing Copters AI. Monisha White and Nolan Walsh Fall 2015, CS229, Stanford University

Swing Copters AI. Monisha White and Nolan Walsh  Fall 2015, CS229, Stanford University Swing Copters AI Monisha White and Nolan Walsh mewhite@stanford.edu njwalsh@stanford.edu Fall 2015, CS229, Stanford University 1. Introduction For our project we created an autonomous player for the game

More information

An Adaptive-Learning Analysis of the Dice Game Hog Rounds

An Adaptive-Learning Analysis of the Dice Game Hog Rounds An Adaptive-Learning Analysis of the Dice Game Hog Rounds Lucy Longo August 11, 2011 Lucy Longo (UCI) Hog Rounds August 11, 2011 1 / 16 Introduction Overview The rules of Hog Rounds Adaptive-learning Modeling

More information

Lu 1. Game Theory of 2048

Lu 1. Game Theory of 2048 Lu 1 Game Theory of 2048 Kevin Lu Professor Bray Math 89s: Game Theory and Democracy 24 November 2014 Lu 2 I: Introduction and Background The game 2048 is a strategic block sliding game designed by Italian

More information

Trainyard: A level design post-mortem

Trainyard: A level design post-mortem Trainyard: A level design post-mortem Matt Rix Magicule Inc. - I m Matt Rix, the creator of Trainyard - This talking is going to be partly a post-mortem - And partly just me talking about my philosophy

More information

Creating an Agent of Doom: A Visual Reinforcement Learning Approach

Creating an Agent of Doom: A Visual Reinforcement Learning Approach Creating an Agent of Doom: A Visual Reinforcement Learning Approach Michael Lowney Department of Electrical Engineering Stanford University mlowney@stanford.edu Robert Mahieu Department of Electrical Engineering

More information

SDS PODCAST EPISODE 110 ALPHAGO ZERO

SDS PODCAST EPISODE 110 ALPHAGO ZERO SDS PODCAST EPISODE 110 ALPHAGO ZERO Show Notes: http://www.superdatascience.com/110 1 Kirill: This is episode number 110, AlphaGo Zero. Welcome back ladies and gentlemen to the SuperDataSceince podcast.

More information

COMP3211 Project. Artificial Intelligence for Tron game. Group 7. Chiu Ka Wa ( ) Chun Wai Wong ( ) Ku Chun Kit ( )

COMP3211 Project. Artificial Intelligence for Tron game. Group 7. Chiu Ka Wa ( ) Chun Wai Wong ( ) Ku Chun Kit ( ) COMP3211 Project Artificial Intelligence for Tron game Group 7 Chiu Ka Wa (20369737) Chun Wai Wong (20265022) Ku Chun Kit (20123470) Abstract Tron is an old and popular game based on a movie of the same

More information

Prof. Sameer Singh CS 175: PROJECTS IN AI (IN MINECRAFT) WINTER April 6, 2017

Prof. Sameer Singh CS 175: PROJECTS IN AI (IN MINECRAFT) WINTER April 6, 2017 Prof. Sameer Singh CS 175: PROJECTS IN AI (IN MINECRAFT) WINTER 2017 April 6, 2017 Upcoming Misc. Check out course webpage and schedule Check out Canvas, especially for deadlines Do the survey by tomorrow,

More information

Developing Frogger Player Intelligence Using NEAT and a Score Driven Fitness Function

Developing Frogger Player Intelligence Using NEAT and a Score Driven Fitness Function Developing Frogger Player Intelligence Using NEAT and a Score Driven Fitness Function Davis Ancona and Jake Weiner Abstract In this report, we examine the plausibility of implementing a NEAT-based solution

More information

CS 229 Final Project: Using Reinforcement Learning to Play Othello

CS 229 Final Project: Using Reinforcement Learning to Play Othello CS 229 Final Project: Using Reinforcement Learning to Play Othello Kevin Fry Frank Zheng Xianming Li ID: kfry ID: fzheng ID: xmli 16 December 2016 Abstract We built an AI that learned to play Othello.

More information

Programming an Othello AI Michael An (man4), Evan Liang (liange)

Programming an Othello AI Michael An (man4), Evan Liang (liange) Programming an Othello AI Michael An (man4), Evan Liang (liange) 1 Introduction Othello is a two player board game played on an 8 8 grid. Players take turns placing stones with their assigned color (black

More information

Using Artificial intelligent to solve the game of 2048

Using Artificial intelligent to solve the game of 2048 Using Artificial intelligent to solve the game of 2048 Ho Shing Hin (20343288) WONG, Ngo Yin (20355097) Lam Ka Wing (20280151) Abstract The report presents the solver of the game 2048 base on artificial

More information

Intro to Java Programming Project

Intro to Java Programming Project Intro to Java Programming Project In this project, your task is to create an agent (a game player) that can play Connect 4. Connect 4 is a popular board game, similar to an extended version of Tic-Tac-Toe.

More information

G51PGP: Software Paradigms. Object Oriented Coursework 4

G51PGP: Software Paradigms. Object Oriented Coursework 4 G51PGP: Software Paradigms Object Oriented Coursework 4 You must complete this coursework on your own, rather than working with anybody else. To complete the coursework you must create a working two-player

More information

2048: An Autonomous Solver

2048: An Autonomous Solver 2048: An Autonomous Solver Final Project in Introduction to Artificial Intelligence ABSTRACT. Our goal in this project was to create an automatic solver for the wellknown game 2048 and to analyze how different

More information

Fpglappy Bird: A side-scrolling game. Overview

Fpglappy Bird: A side-scrolling game. Overview 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

More information

CMS.608 / CMS.864 Game Design Spring 2008

CMS.608 / CMS.864 Game Design Spring 2008 MIT OpenCourseWare http://ocw.mit.edu CMS.608 / CMS.864 Game Design Spring 2008 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms. Clara Rhee Sarah Sperry

More information

Tutorial: A scrolling shooter

Tutorial: A scrolling shooter Tutorial: A scrolling shooter Copyright 2003-2004, Mark Overmars Last changed: September 2, 2004 Uses: version 6.0, advanced mode Level: Beginner Scrolling shooters are a very popular type of arcade action

More information

Project 1: A Game of Greed

Project 1: A Game of Greed Project 1: A Game of Greed In this project you will make a program that plays a dice game called Greed. You start only with a program that allows two players to play it against each other. You will build

More information

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. 1 Overview. Wei Low, Nicholas McCoy, Julian Mendoza Project Proposal Draft, Fall 2015 Fpglappy Bird: A side-scrolling game Wei Low, Nicholas McCoy, Julian Mendoza 6.111 Project Proposal Draft, Fall 2015 1 Overview On February 10th, 2014, the creator of Flappy Bird, a popular side-scrolling

More information

Workshop 4: Digital Media By Daniel Crippa

Workshop 4: Digital Media By Daniel Crippa Topics Covered Workshop 4: Digital Media Workshop 4: Digital Media By Daniel Crippa 13/08/2018 Introduction to the Unity Engine Components (Rigidbodies, Colliders, etc.) Prefabs UI Tilemaps Game Design

More information

G54GAM Lab Session 1

G54GAM Lab Session 1 G54GAM Lab Session 1 The aim of this session is to introduce the basic functionality of Game Maker and to create a very simple platform game (think Mario / Donkey Kong etc). This document will walk you

More information

CandyCrush.ai: An AI Agent for Candy Crush

CandyCrush.ai: An AI Agent for Candy Crush CandyCrush.ai: An AI Agent for Candy Crush Jiwoo Lee, Niranjan Balachandar, Karan Singhal December 16, 2016 1 Introduction Candy Crush, a mobile puzzle game, has become very popular in the past few years.

More information

AI Agents for Playing Tetris

AI Agents for Playing Tetris AI Agents for Playing Tetris Sang Goo Kang and Viet Vo Stanford University sanggookang@stanford.edu vtvo@stanford.edu Abstract Game playing has played a crucial role in the development and research of

More information

Space Invadersesque 2D shooter

Space Invadersesque 2D shooter Space Invadersesque 2D shooter So, we re going to create another classic game here, one of space invaders, this assumes some basic 2D knowledge and is one in a beginning 2D game series of shorts. All in

More information

Techniques for Generating Sudoku Instances

Techniques for Generating Sudoku Instances Chapter Techniques for Generating Sudoku Instances Overview Sudoku puzzles become worldwide popular among many players in different intellectual levels. In this chapter, we are going to discuss different

More information

A paradox for supertask decision makers

A paradox for supertask decision makers A paradox for supertask decision makers Andrew Bacon January 25, 2010 Abstract I consider two puzzles in which an agent undergoes a sequence of decision problems. In both cases it is possible to respond

More information

UNDERSTANDING LAYER MASKS IN PHOTOSHOP

UNDERSTANDING LAYER MASKS IN PHOTOSHOP UNDERSTANDING LAYER MASKS IN PHOTOSHOP In this Adobe Photoshop tutorial, we re going to look at one of the most essential features in all of Photoshop - layer masks. We ll cover exactly what layer masks

More information

The Beauty and Joy of Computing Lab Exercise 10: Shall we play a game? Objectives. Background (Pre-Lab Reading)

The Beauty and Joy of Computing Lab Exercise 10: Shall we play a game? Objectives. Background (Pre-Lab Reading) The Beauty and Joy of Computing Lab Exercise 10: Shall we play a game? [Note: This lab isn t as complete as the others we have done in this class. There are no self-assessment questions and no post-lab

More information

Final Project: NOTE: The final project will be due on the last day of class, Friday, Dec 9 at midnight.

Final Project: NOTE: The final project will be due on the last day of class, Friday, Dec 9 at midnight. Final Project: NOTE: The final project will be due on the last day of class, Friday, Dec 9 at midnight. For this project, you may work with a partner, or you may choose to work alone. If you choose to

More information

Mutliplayer Snake AI

Mutliplayer Snake AI Mutliplayer Snake AI CS221 Project Final Report Felix CREVIER, Sebastien DUBOIS, Sebastien LEVY 12/16/2016 Abstract This project is focused on the implementation of AI strategies for a tailor-made game

More information

Learning to Play like an Othello Master CS 229 Project Report. Shir Aharon, Amanda Chang, Kent Koyanagi

Learning to Play like an Othello Master CS 229 Project Report. Shir Aharon, Amanda Chang, Kent Koyanagi Learning to Play like an Othello Master CS 229 Project Report December 13, 213 1 Abstract This project aims to train a machine to strategically play the game of Othello using machine learning. Prior to

More information

Heads-up Limit Texas Hold em Poker Agent

Heads-up Limit Texas Hold em Poker Agent Heads-up Limit Texas Hold em Poker Agent Nattapoom Asavareongchai and Pin Pin Tea-mangkornpan CS221 Final Project Report Abstract Our project aims to create an agent that is able to play heads-up limit

More information

Introduction to Auction Theory: Or How it Sometimes

Introduction to Auction Theory: Or How it Sometimes Introduction to Auction Theory: Or How it Sometimes Pays to Lose Yichuan Wang March 7, 20 Motivation: Get students to think about counter intuitive results in auctions Supplies: Dice (ideally per student)

More information

In this project you ll learn how to create a game, in which you have to match up coloured dots with the correct part of the controller.

In this project you ll learn how to create a game, in which you have to match up coloured dots with the correct part of the controller. Catch the Dots Introduction In this project you ll learn how to create a game, in which you have to match up coloured dots with the correct part of the controller. Step 1: Creating a controller Let s start

More information

Constructing Line Graphs*

Constructing Line Graphs* Appendix B Constructing Line Graphs* Suppose we are studying some chemical reaction in which a substance, A, is being used up. We begin with a large quantity (1 mg) of A, and we measure in some way how

More information

Chapter 6. Doing the Maths. Premises and Assumptions

Chapter 6. Doing the Maths. Premises and Assumptions Chapter 6 Doing the Maths Premises and Assumptions In my experience maths is a subject that invokes strong passions in people. A great many people love maths and find it intriguing and a great many people

More information

Universiteit Leiden Opleiding Informatica

Universiteit Leiden Opleiding Informatica Universiteit Leiden Opleiding Informatica Predicting the Outcome of the Game Othello Name: Simone Cammel Date: August 31, 2015 1st supervisor: 2nd supervisor: Walter Kosters Jeannette de Graaf BACHELOR

More information

Game Mechanics Minesweeper is a game in which the player must correctly deduce the positions of

Game Mechanics Minesweeper is a game in which the player must correctly deduce the positions of Table of Contents Game Mechanics...2 Game Play...3 Game Strategy...4 Truth...4 Contrapositive... 5 Exhaustion...6 Burnout...8 Game Difficulty... 10 Experiment One... 12 Experiment Two...14 Experiment Three...16

More information

Assignment 1. Due: 2:00pm, Monday 14th November 2016 This assignment counts for 25% of your final grade.

Assignment 1. Due: 2:00pm, Monday 14th November 2016 This assignment counts for 25% of your final grade. Assignment 1 Due: 2:00pm, Monday 14th November 2016 This assignment counts for 25% of your final grade. For this assignment you are being asked to design, implement and document a simple card game in the

More information

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

Create a game in which you have to guide a parrot through scrolling pipes to score points. Raspberry Pi Projects Flappy Parrot Introduction Create a game in which you have to guide a parrot through scrolling pipes to score points. What you will make Click the green ag to start the game. Press

More information

EE307. Frogger. Project #2. Zach Miller & John Tooker. Lab Work: 11/11/ /23/2008 Report: 11/25/2008

EE307. Frogger. Project #2. Zach Miller & John Tooker. Lab Work: 11/11/ /23/2008 Report: 11/25/2008 EE307 Frogger Project #2 Zach Miller & John Tooker Lab Work: 11/11/2008-11/23/2008 Report: 11/25/2008 This document details the work completed on the Frogger project from its conception and design, through

More information

Taffy Tangle. cpsc 231 assignment #5. Due Dates

Taffy Tangle. cpsc 231 assignment #5. Due Dates cpsc 231 assignment #5 Taffy Tangle If you ve ever played casual games on your mobile device, or even on the internet through your browser, chances are that you ve spent some time with a match three game.

More information

USING A FUZZY LOGIC CONTROL SYSTEM FOR AN XPILOT COMBAT AGENT ANDREW HUBLEY AND GARY PARKER

USING A FUZZY LOGIC CONTROL SYSTEM FOR AN XPILOT COMBAT AGENT ANDREW HUBLEY AND GARY PARKER World Automation Congress 21 TSI Press. USING A FUZZY LOGIC CONTROL SYSTEM FOR AN XPILOT COMBAT AGENT ANDREW HUBLEY AND GARY PARKER Department of Computer Science Connecticut College New London, CT {ahubley,

More information

2D Platform. Table of Contents

2D Platform. Table of Contents 2D Platform Table of Contents 1. Making the Main Character 2. Making the Main Character Move 3. Making a Platform 4. Making a Room 5. Making the Main Character Jump 6. Making a Chaser 7. Setting Lives

More information

Video Sales Letter Zombie

Video Sales Letter Zombie Table of Contents Table of Contents... 2 Introduction... 4 Why Use Video Sales Letters?... 5 Tips for Engaging Video Sales Letters... 7 Important Video Sales Letter Features... 9 Headline... 9 Solving

More information

Achieving Desirable Gameplay Objectives by Niched Evolution of Game Parameters

Achieving Desirable Gameplay Objectives by Niched Evolution of Game Parameters Achieving Desirable Gameplay Objectives by Niched Evolution of Game Parameters Scott Watson, Andrew Vardy, Wolfgang Banzhaf Department of Computer Science Memorial University of Newfoundland St John s.

More information

TDD Making sure everything works. Agile Transformation Summit May, 2015

TDD Making sure everything works. Agile Transformation Summit May, 2015 TDD Making sure everything works Agile Transformation Summit May, 2015 My name is Santiago L. Valdarrama (I don t play soccer. I m not related to the famous Colombian soccer player.) I m an Engineer Manager

More information

CS221 Final Project Report Learn to Play Texas hold em

CS221 Final Project Report Learn to Play Texas hold em CS221 Final Project Report Learn to Play Texas hold em Yixin Tang(yixint), Ruoyu Wang(rwang28), Chang Yue(changyue) 1 Introduction Texas hold em, one of the most popular poker games in casinos, is a variation

More information

Expectation and Thin Value in No-limit Hold em: Profit comes with Variance by Brian Space, Ph.D

Expectation and Thin Value in No-limit Hold em: Profit comes with Variance by Brian Space, Ph.D Expectation and Thin Value in No-limit Hold em: Profit comes with Variance by Brian Space, Ph.D People get confused in a number of ways about betting thinly for value in NLHE cash games. It is simplest

More information

Your First Game: Devilishly Easy

Your First Game: Devilishly Easy C H A P T E R 2 Your First Game: Devilishly Easy Learning something new is always a little daunting at first, but things will start to become familiar in no time. In fact, by the end of this chapter, you

More information

Dungeon Cards. The Catacombs by Jamie Woodhead

Dungeon Cards. The Catacombs by Jamie Woodhead Dungeon Cards The Catacombs by Jamie Woodhead A game of chance and exploration for 2-6 players, ages 12 and up where the turn of a card could bring fortune or failure! Game Overview In this game, players

More information

CPSC 217 Assignment 3 Due Date: Friday March 30, 2018 at 11:59pm

CPSC 217 Assignment 3 Due Date: Friday March 30, 2018 at 11:59pm CPSC 217 Assignment 3 Due Date: Friday March 30, 2018 at 11:59pm Weight: 8% Individual Work: All assignments in this course are to be completed individually. Students are advised to read the guidelines

More information

Opening Rolls Part 2: 62, 63, 64 Copyright (C) by Marty Storer

Opening Rolls Part 2: 62, 63, 64 Copyright (C) by Marty Storer Opening Rolls Part 2: 62, 63, 64 Copyright (C) 2012-16 by Marty Storer This is the second article in the Opening Rolls series. It covers three rolls: 62, 63, and 64. In contrast to the Easy Ones analyzed

More information

Reinforcement Learning Agent for Scrolling Shooter Game

Reinforcement Learning Agent for Scrolling Shooter Game Reinforcement Learning Agent for Scrolling Shooter Game Peng Yuan (pengy@stanford.edu) Yangxin Zhong (yangxin@stanford.edu) Zibo Gong (zibo@stanford.edu) 1 Introduction and Task Definition 1.1 Game Agent

More information

Elephant Run Background:

Elephant Run Background: Elephant Run A game for the piecepack by Jim Adams and Amy Enge Version 1.2, October 29, 2004 Copyright 2004, Jim Adams and Amy Enge Two players, 10 minutes Equipment: piecepack Background: What s the

More information

Reinforcement Learning in Games Autonomous Learning Systems Seminar

Reinforcement Learning in Games Autonomous Learning Systems Seminar Reinforcement Learning in Games Autonomous Learning Systems Seminar Matthias Zöllner Intelligent Autonomous Systems TU-Darmstadt zoellner@rbg.informatik.tu-darmstadt.de Betreuer: Gerhard Neumann Abstract

More information

Analysis of Game Balance

Analysis of Game Balance Balance Type #1: Fairness Analysis of Game Balance 1. Give an example of a mostly symmetrical game. If this game is not universally known, make sure to explain the mechanics in question. What elements

More information

The good side of running away

The good side of running away The good side of running away Introducing signalling into Conways Game of Life Simon Schulz si.schulz@student.uni-tuebingen.de 20. Januar 2013 Overview Introduction How to improve the game The GOLS Game

More information

Annex IV - Stencyl Tutorial

Annex IV - Stencyl Tutorial Annex IV - Stencyl Tutorial This short, hands-on tutorial will walk you through the steps needed to create a simple platformer using premade content, so that you can become familiar with the main parts

More information

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

Team 11. Flingshot. An infinite mobile climber game which uses the touch screen to control the character. Team 11 Dylan Herrig James Glass Zach Bruennig Kate Ramge Ryan Kass Flingshot Project Synopsis An infinite mobile climber game which uses the touch screen to control the character. Project Description

More information

Bidding Over Opponent s 1NT Opening

Bidding Over Opponent s 1NT Opening Bidding Over Opponent s 1NT Opening A safe way to try to steal a hand. Printer friendly version Before You Start The ideas in this article require partnership agreement. If you like what you read, discuss

More information

Overview. The Game Idea

Overview. The Game Idea Page 1 of 19 Overview Even though GameMaker:Studio is easy to use, getting the hang of it can be a bit difficult at first, especially if you have had no prior experience of programming. This tutorial is

More information

Photoshop CS6 automatically places a crop box and handles around the image. Click and drag the handles to resize the crop box.

Photoshop CS6 automatically places a crop box and handles around the image. Click and drag the handles to resize the crop box. CROPPING IMAGES In Photoshop CS6 One of the great new features in Photoshop CS6 is the improved and enhanced Crop Tool. If you ve been using earlier versions of Photoshop to crop your photos, you ll find

More information

CRYPTOSHOOTER MULTI AGENT BASED SECRET COMMUNICATION IN AUGMENTED VIRTUALITY

CRYPTOSHOOTER MULTI AGENT BASED SECRET COMMUNICATION IN AUGMENTED VIRTUALITY CRYPTOSHOOTER MULTI AGENT BASED SECRET COMMUNICATION IN AUGMENTED VIRTUALITY Submitted By: Sahil Narang, Sarah J Andrabi PROJECT IDEA The main idea for the project is to create a pursuit and evade crowd

More information

All-Stars Dungeons And Diamonds Fundamental. Secrets, Details And Facts (v1.0r3)

All-Stars Dungeons And Diamonds Fundamental. Secrets, Details And Facts (v1.0r3) All-Stars Dungeons And Diamonds Fundamental 1 Secrets, Details And Facts (v1.0r3) Welcome to All-Stars Dungeons and Diamonds Fundamental Secrets, Details and Facts ( ASDADFSDAF for short). This is not

More information

Mobile and web games Development

Mobile and web games Development Mobile and web games Development For Alistair McMonnies FINAL ASSESSMENT Banner ID B00193816, B00187790, B00186941 1 Table of Contents Overview... 3 Comparing to the specification... 4 Challenges... 6

More information

An Artificially Intelligent Ludo Player

An Artificially Intelligent Ludo Player An Artificially Intelligent Ludo Player Andres Calderon Jaramillo and Deepak Aravindakshan Colorado State University {andrescj, deepakar}@cs.colostate.edu Abstract This project replicates results reported

More information

Maniacally Obese Penguins, Inc.

Maniacally Obese Penguins, Inc. Maniacally Obese Penguins, Inc. FLAUNCY SPACE COWS Design Document Project Team: Kyle Bradbury Asher Dratel Aram Mead Kathryn Seyboth Jeremy Tyler Maniacally Obese Penguins, Inc. Tufts University E-mail:

More information

Tutorial: Creating maze games

Tutorial: Creating maze games Tutorial: Creating maze games Copyright 2003, Mark Overmars Last changed: March 22, 2003 (finished) Uses: version 5.0, advanced mode Level: Beginner Even though Game Maker is really simple to use and creating

More information

On the GED essay, you ll need to write a short essay, about four

On the GED essay, you ll need to write a short essay, about four Write Smart 373 What Is the GED Essay Like? On the GED essay, you ll need to write a short essay, about four or five paragraphs long. The GED essay gives you a prompt that asks you to talk about your beliefs

More information

Note: This PDF contains affiliate links.

Note: This PDF contains affiliate links. Note: This PDF contains affiliate links. First of all, let me thank you from the bottom of my heart for downloading this ebook. By taking this ONE step in the direction of saving your marriage, you re

More information

Get Rhythm. Semesterthesis. Roland Wirz. Distributed Computing Group Computer Engineering and Networks Laboratory ETH Zürich

Get Rhythm. Semesterthesis. Roland Wirz. Distributed Computing Group Computer Engineering and Networks Laboratory ETH Zürich Distributed Computing Get Rhythm Semesterthesis Roland Wirz wirzro@ethz.ch Distributed Computing Group Computer Engineering and Networks Laboratory ETH Zürich Supervisors: Philipp Brandes, Pascal Bissig

More information

First Tutorial Orange Group

First Tutorial Orange Group First Tutorial Orange Group The first video is of students working together on a mechanics tutorial. Boxed below are the questions they re discussing: discuss these with your partners group before we watch

More information

Optimal Yahtzee performance in multi-player games

Optimal Yahtzee performance in multi-player games Optimal Yahtzee performance in multi-player games Andreas Serra aserra@kth.se Kai Widell Niigata kaiwn@kth.se April 12, 2013 Abstract Yahtzee is a game with a moderately large search space, dependent on

More information

Chapter 4: Internal Economy. Hamzah Asyrani Sulaiman

Chapter 4: Internal Economy. Hamzah Asyrani Sulaiman Chapter 4: Internal Economy Hamzah Asyrani Sulaiman in games, the internal economy can include all sorts of resources that are not part of a reallife economy. In games, things like health, experience,

More information

Mathematical Analysis of 2048, The Game

Mathematical Analysis of 2048, The Game Advances in Applied Mathematical Analysis ISSN 0973-5313 Volume 12, Number 1 (2017), pp. 1-7 Research India Publications http://www.ripublication.com Mathematical Analysis of 2048, The Game Bhargavi Goel

More information

Journey through Game Design

Journey through Game Design Simulation Games in Education Spring 2010 Introduction At the very beginning of semester we were required to choose a final project to work on. I found this a bit odd and had the slightest idea what to

More information

Playing Othello Using Monte Carlo

Playing Othello Using Monte Carlo June 22, 2007 Abstract This paper deals with the construction of an AI player to play the game Othello. A lot of techniques are already known to let AI players play the game Othello. Some of these techniques

More information

Real-Time Connect 4 Game Using Artificial Intelligence

Real-Time Connect 4 Game Using Artificial Intelligence Journal of Computer Science 5 (4): 283-289, 2009 ISSN 1549-3636 2009 Science Publications Real-Time Connect 4 Game Using Artificial Intelligence 1 Ahmad M. Sarhan, 2 Adnan Shaout and 2 Michele Shock 1

More information

So to what extent do these games supply and nurture their social aspect and does game play suffer or benefit from it? Most MMORPGs fail because of a

So to what extent do these games supply and nurture their social aspect and does game play suffer or benefit from it? Most MMORPGs fail because of a The world of massively multiplayer online role play games used to be the realm of the unsocial geek and nerd. A sanctuary to escape the pains of modern life and be someone else. Because of the audience

More information

Sudoku Touch. 1-4 players, adult recommended. Sudoku Touch by. Bring your family back together!

Sudoku Touch. 1-4 players, adult recommended. Sudoku Touch by. Bring your family back together! Sudoku Touch Sudoku Touch by Bring your family back together! 1-4 players, adult recommended Sudoku Touch is a logic game, allowing up to 4 users to play at once. The game can be played with individual

More information

Patterns in Fractions

Patterns in Fractions Comparing Fractions using Creature Capture Patterns in Fractions Lesson time: 25-45 Minutes Lesson Overview Students will explore the nature of fractions through playing the game: Creature Capture. They

More information

GAME PROGRAMMING & DESIGN LAB 1 Egg Catcher - a simple SCRATCH game

GAME PROGRAMMING & DESIGN LAB 1 Egg Catcher - a simple SCRATCH game I. BACKGROUND 1.Introduction: GAME PROGRAMMING & DESIGN LAB 1 Egg Catcher - a simple SCRATCH game We have talked about the programming languages and discussed popular programming paradigms. We discussed

More information

SPACE SPORTS / TRAINING SIMULATION

SPACE SPORTS / TRAINING SIMULATION SPACE SPORTS / TRAINING SIMULATION Nathan J. Britton Information and Computer Sciences College of Arts and Sciences University of Hawai i at Mānoa Honolulu, HI 96822 ABSTRACT Computers have reached the

More information

Opening Bid of 2. A Survey of Common Treatments By Marty Nathan. Systems Options

Opening Bid of 2. A Survey of Common Treatments By Marty Nathan. Systems Options Opening Bid of 2 A Survey of Common Treatments By Marty Nathan Systems Options There are four systems commonly played in Atlanta over a 2 opener, where 2 is the partnership s strong opening forcing bid:

More information

CS221 Project Final Report Deep Q-Learning on Arcade Game Assault

CS221 Project Final Report Deep Q-Learning on Arcade Game Assault CS221 Project Final Report Deep Q-Learning on Arcade Game Assault Fabian Chan (fabianc), Xueyuan Mei (xmei9), You Guan (you17) Joint-project with CS229 1 Introduction Atari 2600 Assault is a game environment

More information

Run Very Fast. Sam Blake Gabe Grow. February 27, 2017 GIMM 290 Game Design Theory Dr. Ted Apel

Run Very Fast. Sam Blake Gabe Grow. February 27, 2017 GIMM 290 Game Design Theory Dr. Ted Apel Run Very Fast Sam Blake Gabe Grow February 27, 2017 GIMM 290 Game Design Theory Dr. Ted Apel ABSTRACT The purpose of this project is to iterate a game design that focuses on social interaction as a core

More information

Federico Forti, Erdi Izgi, Varalika Rathore, Francesco Forti

Federico Forti, Erdi Izgi, Varalika Rathore, Francesco Forti Basic Information Project Name Supervisor Kung-fu Plants Jakub Gemrot Annotation Kung-fu plants is a game where you can create your characters, train them and fight against the other chemical plants which

More information

Zpvui!Iboepvut!boe!Xpsltiffut! gps;!

Zpvui!Iboepvut!boe!Xpsltiffut! gps;! Zpvui!Iboepvut!boe!Xpsltiffut! gps;! Pwfswjfx!'!Fyqmbobujpo! For your convenience, we have gathered together here all handouts and worksheets useful for suppor ng the ac vi es found in Gaming the System.

More information

Memory. Introduction. Scratch. In this project, you will create a memory game where you have to memorise and repeat a sequence of random colours!

Memory. Introduction. Scratch. In this project, you will create a memory game where you have to memorise and repeat a sequence of random colours! Scratch 2 Memory All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/ccwreg to register your club. Introduction

More information

Automatic Bidding for the Game of Skat

Automatic Bidding for the Game of Skat Automatic Bidding for the Game of Skat Thomas Keller and Sebastian Kupferschmid University of Freiburg, Germany {tkeller, kupfersc}@informatik.uni-freiburg.de Abstract. In recent years, researchers started

More information