Super Pong Andrew Dunsmore CSC436. Overview Purpose Design Specification Software Engineering.

Slides:



Advertisements
Similar presentations
Introduction to Macromedia Director 8.5 – Lingo
Advertisements

Windows Basics An Introduction to the Windows Operating System.
Video Game Design Lesson 1. Game Designer Person involved in the development of a video game Person involved in the development of a video game Usually.
Cosc 5/4730 Game Design. A short game design primer. A game or animation is built on an animation loop. – Instance variables of “objects” are updated.
EEE436 / CS422 Final Presentation Group
1 Automated Testing & Test Tools Apirada Thadadech.
© The McGraw-Hill Companies, 2006 Chapter 18 Advanced graphics programming.
Game Design and Programming. Objectives Classify the games How games are design How games are implemented What are the main components of a game engine.
1 CSE1301 Computer Programming: Lecture 25 Software Engineering 2.
Administrator’s Guide
Administrator’s Guide
Installation Ubuntu for Libraries. Step 1: Download Head on to Pick Ubuntu LTS; just click the big orange.
1 Introduction to Human Computer Interaction  Livecode Overview  Based on Livecode User Guide from RunRev Ltd. (2010) 
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Configuring the MagicInfo Pro Display
Operating Systems Networking for Home and Small Businesses – Chapter 2 – Introduction To Networking.
CSCI 1200 / ASSC 1000 Software program : instructions for hardware. makes computers useful. early computers : re-wiring. today : programming.
Teach Yourself Windows 98 Module 2: Working with Files, Folders, and the Desktop.
Computing Revision Notes. Index Software System Software Internet.
A Pictorial Operation Guide in Five Easy Steps The Birck LEGO Scanning Probe Microscope March
Visual Basic Games: Prepare for Hangman
HOW WEB SERVER WORKS? By- PUSHPENDU MONDAL RAJAT CHAUHAN RAHUL YADAV RANJIT MEENA RAHUL TYAGI.
Introduction to Robo Pro
KeyListener and Keyboard Events Just as we can implement listeners to handle mouse events, we can do the same for keyboard events (keypresses) –to implement.
Lecture 5: Using Computers: Important Ideas Tonga Institute of Higher Education IT 141: Information Systems.
Control Panel Each icon within the control panel lets you change the settings of the associated item.
More switches, Comparison Day 7 Computer Programming through Robotics CPST 410 Summer 2009.
Forging new generations of engineers
Syzygy Design overview Distributed Scene Graph Master/slave application framework I/O Device Integration using Syzygy Scaling down: simulators and other.
VB Games: Preparing for Memory Brainstorm controls & events Parallel structures (again), Visibility, LoadPicture, User-defined procedures, Do While/Loop,busy.
Programming games Show your version of Bo the dog. Start cannonball Preview: video, audio work session (cannonball) Homework: Cannonball with ball in a.
Sample Video Game & Sound. The Plan 1.Game Theme 2.Game Structure 3.Sprites 4.Trackers 5.Collisions 6.Score 7.Levels 8.Splash Screens 9.Design 10.Implementation.
Group 2 : Team Battleship Team Members: Zhen Cai Christopher Campbell Justin Doll Jason Miller Nicholas Rimer Raeginald Timones.
Programming Video Games
Microsoft® Small Basic Collision Detection Estimated time to complete this lesson: 1 hour.
Making Python Pretty!. How to Use This Presentation… Download a copy of this presentation to your ‘Computing’ folder. Follow the code examples, and put.
1 ball, 2 ball, red ball, blue ball By Melissa Dalis Professor Susan Rodger Duke University June 2011.
JavaScript Scripting language What is Scripting ? A scripting language, script language, or extension language is a programming language.
Creating a Simple Game in Scratch Barb Ericson Georgia Tech June 2008.
Concurrency & Context Switching Process Control Block What's in it and why? How is it used? Who sees it? 5 State Process Model State Labels. Causes of.
Super Pong Andrew S. Dunsmore CSC436 August 2004.
Warlords Patrick Levoshko SE 558 – Multiplayer Game Design.
Intermediate 2 Computing Unit 2 - Software Development.
Closed Loop Calibration Automatic Calibration Using ProCal.
Scratch Creative Computing. INTRODUCTION TO SCRATCH Section 1.
Game Project 1 Homage to Pong. Project Rules: The primary project is Pong, the design and development of which will be discussed in detail here. If you.
ViralFlux and Logo Start New Game Load Save Game Start Multiplayer Game Change Settings Exit Game ViralFlux Flavor Text.
VMWare Workstation Installation. Starting Vmware Workstation Go to the start menu and start the VMware Workstation program. *Note: The following instructions.
Chapter 2 HAEDWAER.
Scratch for Interactivity Dr. Ben Schafer Department of Computer Science University of Northern Iowa.
Checkers A Matlab Project by Spenser Davison, Edward Dyakiw, Justin Pezzi, and Scott Wu.
Computer Science I Animations. Bouncing ball. The if statement. Classwork/homework: bouncing something. Compress and upload work to Moodle.
GAME:IT Junior Paddle Ball Objectives: Review skills from Introduction Create a background Add simple object control (up and down) Add how to create a.
4 - Conditional Control Structures CHAPTER 4. Introduction A Program is usually not limited to a linear sequence of instructions. In real life, a programme.
Creating a Simple Game in Scratch Barb Ericson Georgia Tech May 2009.
Data Video Essential Beginner’s Guide to using the program and creating your first rotation tape. Presents:
Practical Oriented Theory
Collision Theory and Logic
APH Ping Pong.
APH Ping Pong.
Fix Dell Hard Drive Error Code
LGC Website, Software updates, Documentation, and Videos
Mobile Development Workshop
Game Loop Update & Draw.
Tonga Institute of Higher Education IT 141: Information Systems
CSCI N317 Computation for Scientific Applications Unit 1 – 1 MATLAB
Focus of the Course Object-Oriented Software Development
Creating a Simple Game in Scratch
CSC 221: Introduction to Programming Fall 2018
Presentation transcript:

Super Pong Andrew Dunsmore CSC436

Overview Purpose Design Specification Software Engineering

Purpose Waste Time Kill Twenty Minutes Something to do besides homework

Super Pong Video ping pong Players move paddle to intercept ping (ball) If the ping is missed, opponent scores a point Played until a player scores a set number of points

But what makes it SUPER? User level options Sound Effects Multi-Player Physics Models Ping Motion Boards (pre-defined and user-created)

Sounds Default or user-defined Categories can be set independently –External/Internal Wall Impacts –Own/Opponent Paddle User-defined sounds limited to digital (wav) of a set length

Single/Multi-Player Single player games can be played at 3 levels of difficulty Multi-player options –Direct connect using IP addresses –Connection to server program Multi-Player communication using Windows Sockets

Artificial Intelligence Model AI model not yet determined 2 possible Models Random Intelligence Instead of AI, the computer player randomly chooses not to try to hit the ping Time-deferred guessing Computer calculates expected position using pings current position and dx and dy Data can not be acted upon for dt, then must wait to gain more data

AI Model (continued) The choice of AI Model will be based on 2 metrics –Realism: the user should not be aware when the computer chose not to hit the ping –Difficulty rating: algorithm must ensure that Amateur games are easy and Expert games are hard

Multi-Player Issues Utilizes Windows Sockets At a minimum the game must communicate: –Both paddle positions –Ping position Issue: –User’s screen resolution is based on their desktop settings –Points will need to be translated between different resolutions

Physics Models User can choose from 3 different models True –Angle of reflection = -Angle of incident Pool –Angle of reflection is based on angle of incident, speed of ping, and firmness of bumper –Bumper firmness can be set by user as a percentage – 100% firmness will behave like True model Crazy –Angle of reflection is random

Ping Motion (or Physics II) Ping motion can be set by user Motion can be static, free rotate, or incident rotate Ping will begin rotating if: –Paddle is in motion at time of collision –Low incident angle with a wall A ping’s rotation will affect its reflection angle

Boards User can pick from 6 pre-defined boards User-created boards also possible with included sub-program

Board Customization Included board creation sub-program will be similar to MS Paint Brush Differences: –Area will be defined by fixed grid –A cell in grid is either filled or blank –Only half of board needs to be designed – other half of board is a mirror image Details: –Mirror image used to ensure equality for both players –Grids used to ease board recognition by program –For diagonal filled boxes, user can hit a button and computer will half fill adjacent boxes For multi-player games, if other player doesn’t have the board, the program will automatically send it

SE – Finite State Machine Game Init: Setting variables when game is loaded into memory Game Menu: Resting point for the game – executes menu commands Game Starting: Scores, Timers, etc. reset Resources acquired for Game Run Game Run: Handles the bulk of the game’s instructions, physics, video, etc. (typically ran every 1/30 second) Game Restart: Displays winner, releases resources used in Game Run Game Exit: Releases all resources and returns control to the OS

The FSM and OO C++ The Finite State Machine smoothly translates to Object Oriented languages The states become C++ functions Game Init = game_init Game Menu = handled in WinMain Game Starting = handled in game_main Game Run = game_main Game Restart = handled in game_main Game Exit = game_shutdown

Pseudo Code const int GAME_STATE_START = 0 const int … int state; game_init() { // initiate run-time variables: state = GAME_STATE_START; } game_main() { // note: this function is called on each frame // typically every 1/30 seconds switch (state) { case (GAME_STATE_START) // set variables for a new game // and set up the new board state = GAME_STATE_RUN; break; … } game_shutdown() { // this function releases all resources // and returns control to the OS SendMessage(…); } WinMain() { // set up window CreateWindowEx(…); // get resources and set initial variables game(init); // enter the main game loop while(1) { if(WM_CLOSE) { // if exit msg received game_shutdown() // end the game return(0); } // end if game_main() // else call the main game // function } // end while() }

Super Pong Drew Dunsmore CSC436 ?Questions?