Super Pong Andrew S. Dunsmore CSC436 August 2004.

Slides:



Advertisements
Similar presentations
Hardware Lesson 3 Inside your computer.
Advertisements

Network II.5 simulator ..
Cyneda MODULE 1 EXAM QUESTIONS MODULE 1 EXAM QUESTIONS GCE AS GCE AS QUESTIONS QUIZ.
Types of Computers & Computer Hardware Computer Technology.
1 of 6 WINDOWS COMPARISION WINDOWSYEARSFEATURES WINDOWS The first version of windows provided a new software environment for developing and running.
Discovering Computers Fundamentals, Third Edition CGS 1000 Introduction to Computers and Technology Fall 2006.
1 CSE1301 Computer Programming: Lecture 23 Algorithm Design (Part 1)
Computer Basics 1 Computer Basic 1 includes two lessons:
Windows Computers Akash Patel.
Lesson 15 – INSTALL AND SET UP NETWARE 5.1. Understanding NetWare 5.1 Preparing for installation Installing NetWare 5.1 Configuring NetWare 5.1 client.
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.
Yard Wars David Greer Alex Gross Ahsen Uppal. Goals Wireless, Portable Development Real Time Voice Conferencing Exciting, Expandable Game Engine.
Implementing 3D Digital Sound In “Virtual Table Tennis” By Alexander Stevenson.
Rensselaer Polytechnic Institute CSC 432 – Operating Systems David Goldschmidt, Ph.D.
Problem with Software Requirements are complex The client does not know the functional requirements in advance Requirements may be changing Technology.
A Quick Review of Unit 1 – Recognizing Computers Computing Fundamentals © CCI Learning Solutions.
AGD: 5. Game Arch.1 Objective o to discuss some of the main game architecture elements, rendering, and the game loop Animation and Games Development.
Computer Basics Flashcards #2
Sound Chapter Types of Sound Waveforms MIDI Sound is related to many things in computers but only Wav and MIDI exist in PCs.
The Internet & The World Wide Web Notes
Progress Presentation Final Year Project Air-Mouse for Windows/Linux PC Colin Grogan
Guide to MCSE , Second Edition, Enhanced 1 Objectives Understand and use the Control Panel applets Describe the versatility of the Microsoft Management.
Systems Analysis and Design in a Changing World, 6th Edition
More than You Want to Know About Pocket PC’s. What is a Pocket PC?
Super Pong Andrew Dunsmore CSC436. Overview Purpose Design Specification Software Engineering.
Configuring the MagicInfo Pro Display
Hands-On Microsoft Windows Server 2008
Impulse Embedded Processing Video Lab Generate FPGA hardware Generate hardware interfaces HDL files HDL files FPGA bitmap FPGA bitmap C language software.
Hands-On Microsoft Windows Server 2003 Administration Chapter 2 Managing Windows Server 2003 Hardware and Software.
CH 6 Configuring Server Hardware and power options.
Town Defenders Strategy Game prepared by: Osama N
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
Unit 1_9 Human Computer Interface. Why have an Interface? The user needs to issue instructions Problem diagnosis The Computer needs to tell the user what.
CHAPTER FOUR COMPUTER SOFTWARE.
Software Writer:-Rashedul Hasan Editor:- Jasim Uddin.
1 Chapter 1.  What Is A Computer ? Computer is an electronic device, operating under the control of instructions stored in its own memory, that can accept.
1 ETC. 2 Sounds FX Sounds FX –WAV audio files –Load into memory and play it »Load »Play »Stop »Pause –2D or 3D »3D should be integrated into scene management.
IT Introduction to Information Technology CHAPTER 01.
Ray Bradley Karla N. Juárez David Wood Advisor: Dr. Stephen Murrell May 2 nd, 2005.
CHAPTER TEN AUTHORING.
Programming Video Games

Reference: The Game Loop Animation / Game loop 1. Update variables 2. [Get input from the user] (GameLoop only) 3. Draw (using variables)
1 Contents  Audio  Sprite  Input devices  Game production milestones  Course summary.
Multi-Group Network Game Project A Project By: Erez Gazit and Sagi Katz.
Introduction to Interactive Media Interactive Media Tools: Authoring Applications.
 Network  A _____ of computers that can _________ w/ each other  Examples of hardware  ______________ & communication lines  Internet  Hardware.
Spatiotemporal Saliency Map of a Video Sequence in FPGA hardware David Boland Acknowledgements: Professor Peter Cheung Mr Yang Liu.
Warlords Patrick Levoshko SE 558 – Multiplayer Game Design.
CSC190 Introduction to Computing Operating Systems and Utility Programs.
GAM666 – Introduction To Game Programming ● Programmer's perspective of Game Industry ● Introduction to Windows Programming ● 2D animation using DirectX.
Introduction to Game Programming Pertemuan 11 Matakuliah: T0944-Game Design and Programming Tahun: 2010.
© 2007 The McGraw-Hill Companies, Inc. All rights reserved The Complete PC Tech Chapter 24.
Written module activity, Page 16 1.We refer to the physical parts of a computer that we can touch and see as hardware. Examples include the mouse, the.
Hands-On Microsoft Windows Server 2008 Chapter 5 Configuring Windows Server 2008 Printing.
Busta’ Sandwich Life Cycle Architecture. Specifications.
A+ Guide to Managing and Maintaining Your PC Fifth Edition Chapter 17 Supporting Modems.
Introduction to Operating Systems Concepts
What is DirectX? DirectX is built by Microsoft as a collection of API’s (Application Programming Interfaces) for the purpose of multimedia processing.
Kernel Design & Implementation
Game Loops + Part II Reference:
Piano Chord Builder Artem Kuligin CS 470 6/17/2018 3:08 AM
System Design Ashima Wadhwa.
Unit 3, Lesson 8 Making Presentations That Get Attention
TYPES AND COMPONENTS OF COMPUTER SYSTEM
Directions: GO THROUGH THE FOLLWING SLIDES. Make sure you have quizlet cards for all the vocabulary. Study the terms.
Managed DirectX Joe Gavin.
Computers: Hardware and Software
Digital Literacy 1.00 Computer Basics
♪ Embedded System Design: Synthesizing Music Using Programmable Logic
Presentation transcript:

Super Pong Andrew S. Dunsmore CSC436 August 2004

Presentation Overview Rules of the Game The Design Modules of the program Technologies Used Program Demonstration Lessons Learned, Final Thoughts, Future Considerations, & Questions

What is Super Pong? Based on the (ancient) game, Pong Video ping pong Players move paddle to intercept ping (ball) If the ping is missed, opponent scores a point Includes numerous user- specified options Player 1: 0Player 2: 2

What Options Are Available? Colors can be changed Sounds can be turned on, off, or changed Multiple boards are possible Number of Players One Player against the computer Two Player Hot Seat on the same computer Two computers connected over the Internet

How Should We Implement This? Modular Design Components broken into modules based on the functionality that they provide Key Modules Game Loop/Control Module Physics Module AI Module Input & Menu Modules Video/Graphics Module Audio/Sound Module

Why use a Modular Design? Negatives are minimized – modules have high cohesion & low coupling Advantages Big problems are divided into several smaller problems Implementation can be in stages Troubleshooting and debugging is limited to individual modules Future changes or additions are easy Modules can be reused in the future Incremental nature responsible for 95% of progress

The Game Loop/Control Module Broken into six areas Controls the program’s flow & calls the other modules Once a called module completes, focus returns to this module

Physics Module Maintains positions and velocities of objects in the game world Determines results of positions & velocities of objects based on Physics Model selected by the user Currently not implemented as a separate module from the control module

AI Module Used only for one-player games Calculates ping’s future location based on information from Physics Module Paddle 2 then moved to the calculated location Reductions in accuracy Calculations only made every x frames Calculated location multiplied by +/- y Computer’s paddle can only move at a fixed speed

Input & Menu Modules Two separate modules –the same purpose (collect user inputs) but different behaviors Menu Module – sub- module of input module Uses input module to move through the menu and to make menu selections Menu selections are used to change the game environment (color, sound, board, etc.) Input Module receives keyboard inputs from the user Inputs can activate the menu, move the paddles, etc. Inputs are received in real-time and acted upon to change the game environment

DirectX – Why & How SDK designed by Microsoft to make video game design in Windows easier Before DirectX, designers wrote drivers for every video/sound/network/etc. card Now, all DirectX supported cards can be accessed in the same way

DirectX – What it is The Operating System is the software that is most intimate with the hardware DirectX is more intimate with the hardware Windows doesn’t care about many advanced features of modern hardware DirectX polls hardware for its full capabilities

Video/Graphics Module Implemented with the DirectDraw API Utilizes a back buffer to avoid a flashing screen Responsible for drawing all text and game objects to the screen Game objects are drawn by dynamically creating single-colored bitmaps and blitting them to the back buffer GDI text is drawn by DirectDraw through a DirectX compatible Device Context (slow to draw but fast to code)

Audio/Sound Module Implemented by DirectSound and DirectMusic Responsibilities Initializing the sound card and determining its capabilities Loading music (midi) and sound effects (wave) Playing the sounds Music and sounds are loaded from embedded resources If something goes wrong, program continues, but sound is marked as unplayable

Network Module Not yet implemented Utilized DirectPlay Responsibilities Set up an asynchronous peer-to-peer connection Communicate ping and paddle positions Ensure frame synchronization and “wing it” if necessary MAYBE – Provide an IM-like environment for user-to- user communication

Time for the Demonstration Did you bring earplugs?

Lessons Learned Good references are worth their weight in gold Start with small goals, then build on them It’s easier to work with well-documented code Having a plan before starting to code helps (sometimes)

The Future of Super Pong Add Multi-Player Add a Game Server Improve graphics Improve the menu’s graphics Fix the (small) hole in the special board detection algorithm Design an app to make custom boards

Questions?