A Penguin Attack AI Jason Buck CS 470 1.

Slides:



Advertisements
Similar presentations
Kerberos 1 Public domain image of Heracles and Cerberus. From an Attic bilingual amphora, 530–520 BC. From Italy (?).
Advertisements

Class Project Due at end of finals week Essentially anything you want, so long as it’s AI related and I approve Any programming language you want In pairs.
Fanorona Game Manager James Andariese Jeremiah Lewis Matt Rykaczewski.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Persistent State Service 1 Distributed Object Transactions  Transaction principles  Concurrency control  The two-phase commit protocol  Services for.
Brief Overview of.NET Remoting.NET Remoting is a Java RMI-like remote method invocation mechanism Infrastructure of.NET Remoting is highly customizable.
Online Chess Project 3 Due date: April 17 th. Introduction Third in series of three projects This project focuses on adding online support –2 players.
CSI 400/500 Operating Systems Spring 2009 Lecture #2 – Functional Parts of an Operating System Monday January 23, 2009.
3D Object Retrieval Client-Server Project
SE320: Introduction to Computer Games Week 8: Game Programming Gazihan Alankus.
CS410 - BLUE GROUP Final Presentation communicate2Me.
THE MILESTONES OF MASS TRANSIT CS 410 Blue Group communicate 2Me.
B.Ramamurthy9/19/20151 Operating Systems u Bina Ramamurthy CS421.
Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams.
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
Distributed Protein Structure Analysis By Jeremy S. Brown Travis E. Brown.
Logging1. 2 Introduction Ships must keep a written log telling speed, direction, destination, etc. –A kind of diary of the ship. Large programs should.
DEEP RED An Intelligent Approach to Chinese Checkers.
Networked Games Objectives – –Understand the types of human interaction that a network game may provide and how this influences game play. –Understand.
Distributed Systems CS Consistency and Replication – Part I Lecture 10, September 30, 2013 Mohammad Hammoud.
VDM++ Tutorial Concurrency. Overview Introduction Concurrency primitives in VDM++ Example: POP3 Server Concurrency and VDMTools ®
Copyright © 2004, Keith D Swenson, All Rights Reserved. OASIS Asynchronous Service Access Protocol (ASAP) Tutorial Overview, OASIS ASAP TC May 4, 2004.
INTRO TO NETWORKING. OVERVIEW Transmitting data Across a physical media Ethernet Wi-fi Bluetooth Etc. Cross-platform (usually) Challenges Varying network.
1 Lamport clocks Dave Eckhardt
ZOOKEEPER. CONTENTS ZooKeeper Overview ZooKeeper Basics ZooKeeper Architecture Getting Started with ZooKeeper.
Coupling and Cohesion Pfleeger, S., Software Engineering Theory and Practice. Prentice Hall, 2001.
Prof. Shrikant M. Harle.  The Project Life Cycle refers to a logical sequence of activities to accomplish the project’s goals or objectives.  Regardless.
Network Models. 2.1 what is the Protocol? A protocol defines the rules that both the sender and receiver and all intermediate devices need to follow,
CS 162 Discussion Section Week 2. Who am I? Prashanth Mohan Office Hours: 11-12pm Tu W at.
EAP Applicability IETF-86 Joe Salowey. Open Issues Open Issues with Retransmission and re- authentication Remove text about lack of differentiation in.
Chapter 13: I/O Systems Modified by Dr. Neerja Mhaskar for CS 3SH3.
NFD Tunnel Authentication
Reactive Android Development
CSSE 230 Day 25 Skip Lists.
Greetings. Those of you who don't yet know me... Today is... and
Module 10: Managing and Monitoring Network Access
“Link All Together” – Linktile 2D game programming
Lecture 21 Concurrency Introduction
CHAPTER 3 Architectures for Distributed Systems
Advanced scheduling and reminders
Introduction to Networking
Washington University in St. Louis
Chapter 8 Arrays Objectives
#01 Client/Server Computing
Maximizing Efficiency in an Ever-Changing Environment
The TESLA Broadcast Authentication Protocol CS 218 Fall 2017
Othello Artificial Intelligence With Machine Learning
week 1 - Introduction Goals
Ch 15 –part 3 -design evaluation
0x1A Great Papers in Computer Security
Battletech Goal Why To recreate the table top game environment in Java
Maximizing Efficiency in an Ever-Changing Environment
Operating Systems Bina Ramamurthy CSE421 11/27/2018 B.Ramamurthy.
Chapter 8 Arrays Objectives
Chapter 5 TCP Control Flow
COT 5611 Operating Systems Design Principles Spring 2014
Lab Exercise 2 (Lab Sessions 2, 3, and 4)
Game Loop Update & Draw.
Chapter 2: Operating-System Structures
Fault-Tolerant State Machine Replication
Binary Search Trees Chapter 7 Objectives
Distributed Systems CS
Chapter 8 Arrays Objectives
An XML-based System Architecture for IXA/IA Intercommunication
Chapter 5 TCP Control Flow
Applying principles of computer science in a biological context
GRAPHS Lecture 17 CS 2110 — Spring 2019.
Chapter 2: Operating-System Structures
#01 Client/Server Computing
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

A Penguin Attack AI Jason Buck CS 470 1

Project Overview Goal Why Develop an AI that can play a competent game of Penguin Attack Why Ensures an opponent is always available

What is Penguin Attack? Created by myself and Tom Kircher Open source implementation of a Nintendo puzzle game Designed for network play

How is Penguin Attack Played? 4

How is Penguin Attack Played? (continued)

Project Requirements Network AI is a network client Sends moves Game server sends game state information Sends game state information Sends control signals

Project Requirements (continued) AI Search game state for potential combos Generate move sequence to achieve combos Can send a string of sequential characters Often sends one-character strings Must be competent Typically able to last 3 min against me

System Design Written in Java Network component Not ideal, but “good enough” Network component Largely isolated from AI Connects to the server Receive and store messages from the server Send moves/commands from the AI to the server

System Design (Continued) AI Parse game state data Update internal representation 2D-array of ADT “PenguinAttackBlock” Generate move sequence

Protocol Redesigned since proposal Client requests state information as needed Commands are b, c, and t Client sends move sequences Commands are u, d, l, r, s, m Client can notify server with quit All other notifications are server to client

Protocol (Continued) Server notifications: start pause ... start win lose closing connection

Protocol (Continued) Board State: Mouse position: Timing: [1000 2000] _ _ _ _ _ _ _ _ _ _ _ 0n1. 1n1h _ _ _ _ 0n5. 1n3h1n4h _ _ 0n1.0n4. 2n5h1n2h1n5h0n3.0n4.0n1. _ _ _ 0n2.0n2.0n5. _ _ 0n1.0n3.0n3.0n4. 0n5.0n1.0n2.0n4.0n4.0n5. 0n4.0n3.0n5.0n1.0n2.0n1. 0n1.0n3.0n1.0n4.0n4.0n2. 0n1.0n2.0n3.0n3.0n2.0n2. 0n5.0n5.0n4.0n4.0n1.0n1. 0n3q0n3q0n4q0n4q0n1q0n4q } Mouse position: <2 1> Timing: [1000 2000]

Algorithms playPenguinAttack() loops through: breakGarbage(); raiseStackToSafeHeight(); breakGarbage(); levelOffStack(); makeCombosAndChains();

Evolutionary Prototyping Strategy needed to be refined Different leveling algorithms Keep improving the strategy Much time spent testing Prototype was never ‘complete’ to my satisfaction Never figured out how to make intentional chains Didn’t find a way to deal with ‘accidentals’

Schedule Didn’t keep detailed records of what happened when Worked on it whenever course load allowed Made majority of progress during spring break Spent way more time than budgeted

What’s next? Will continue beyond the semester Preventing accidentals and intentionally making chains; AI will be brutal Analyze the board in different ways while waiting (Threads) Improve efficiency (Synchronized clock? Maintain own board state?) 17

Conclusion