A Fighting Game of Sorts CS470 Project Presentation By Mark Blum.

Slides:



Advertisements
Similar presentations
Introduction to C Programming
Advertisements

1 Arrays and Strings Chapter 9 2 "All students to receive arrays!" reports Dr. Austin. Declaring arrays scores :
Programming Paradigms and languages
Teaching with Greenfoot
StarLogoTNG 101 Treasure Hunt Game Unit Lesson 9: Variables.
 2005 Pearson Education, Inc. All rights reserved Introduction.
1 Chapter 2 Introduction to Java Applications Introduction Java application programming Display ____________________ Obtain information from the.
ECE122 L4: Creating Objects February 8, 2007 ECE 122 Engineering Problem Solving with Java Lecture 4 Creating and Using Objects.
Classes and Objects Systems Programming.
Game Title: Ace Combat 04: Shattered Skies Company & Author: Namco
CIS101 Introduction to Computing Week 11. Agenda Your questions Copy and Paste Assignment Practice Test JavaScript: Functions and Selection Lesson 06,
DESCRIPTION: AutomN is concerned with automating the tedious task of protein interaction pathway discovery using only protein sequences as input. AutomN.
Basic C++ Sequential Container Features
Introduction to Classes and Objects CS-2303, C-Term Introduction to Classes and Objects CS-2303 System Programming Concepts (Slides include materials.
CSE1301 Computer Programming: Lecture 29 Group Project: “Quabble”
Presented By: Ayelet Birnbaum Yael Kazaz Supervisor: Viktor Kulikov 07/05/12.
Gearbox Software PRODUCTION PIPELINE – JOBS TITLES – JOB DESCRIPTIONS.
CIS 375 Final Presentation Doug Code § Brad Lloyd § Michelle Zukowski.
King of Fighters 2006 Developed by SNK Playmore For the PS2 Entertainment System Aaron Stokes CIS 487 Game Review Presentation.
Week 4-5 Java Programming. Loops What is a loop? Loop is code that repeats itself a certain number of times There are two types of loops: For loop Used.
Object Matching With Faces CS460 Project Presentation By Sam Buyarski.
Functions in C++ Eric Roberts CS 106B January 9, 2013.
Classes and Class Members Chapter 3. 3 Public Interface Contract between class and its clients to fulfill certain responsibilities The client is an object.
Methods Chapter 6. 2 Program Modules in Java What we call "functions" in C++ are called "methods" in Java Purpose Reuse code Modularize the program This.
5/5/2005Toni Räikkönen Internet based data collection from enterprises using XML questionnaires and XCola engine CoRD Meeting May 11th 2005.
TECHNOLOGY. Computer games have always been driven by technology. For many years it was advances in graphics that changed the way computer games were.
Object-Oriented Implementation of Reconciliations M.Sc. Seminar Talk by Costa Shapiro under supervision of Prof. Shmuel Katz Computer Science – Technion.
07 Coding Conventions. 2 Demonstrate Developing Local Variables Describe Separating Public and Private Members during Declaration Explore Using System.exit.
Appointment Application Belinda Whitman CS 470. Background The client is a local outpatient therapy clinic specializing in upper extremity rehabilitation.
First Steps in Modularization Simple Program Design Third Edition A Step-by-Step Approach 8.
Object-Oriented Programming (OOP). Implementing an OOD in Java Each class is stored in a separate file. All files must be stored in the same package.
Addison Wesley is an imprint of © 2010 Pearson Addison-Wesley. All rights reserved. Chapter 7 The Game Loop and Animation Starting Out with Games & Graphics.
Question of the Day  On a game show you’re given the choice of three doors: Behind one door is a car; behind the others, goats. After you pick a door,
Incorporating Dynamic Time Warping (DTW) in the SeqRec.m File Presented by: Clay McCreary, MSEE.
 Pearson Education, Inc. All rights reserved Introduction to Java Applications.
Term 2, 2011 Week 1. CONTENTS Problem-solving methodology Programming and scripting languages – Programming languages Programming languages – Scripting.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
“The perfect project plan is possible if one first documents a list of all the unknowns.” Bill Langley.
Polina Alex Eviatar Roey Andrea Erez.  For those that heard but don’t know exactly:  Scrabble is a word game for two and more players on a square board.
M1G Introduction to Programming 2 5. Completing the program.
Hands-on Introduction to Visual Basic.NET Programming Right from the Start with Visual Basic.NET 1/e 6.
Author Ivan Dominic Baguio. ABOUT THE GAME Game Objective  The goal of each player in the game is to discard all cards in his hand before every other.
Super EastGate Jon Caron, Ryan Fleming, Antonio Guarino, and Mike LoVerme Merrimack College Introduction Super EastGate is a 2D side scroller game that.
 Software Development Life Cycle  Software Development Tools  High Level Programming:  Structures  Algorithms  Iteration  Pseudocode  Order of.
Chapter 11: Sequential File Merging, Matching, and Updating Programming Logic and Design, Third Edition Comprehensive.
Methods Chapter 6. 2 Program Modules in Java What we call "functions" in C++ are called "___________________" in Java Purpose –Reuse code –Modularize.
Carcassonne Expert Game1 Carcassonne Java Jess Expert Game Intelligent Board Games and Query-Based Utility Reasoning René Molenaar, Ludo Maat.
National Diploma Unit 4 Introduction to Software Development Input and output processing.
For Friday Read No quiz Program 6 due. Program 6 Any questions?
By Sam Whisenhunt 11/14/2014. Featured Personalization Login with your personal account to keep up with your w/l ratio and bragging rights!
Multi player client sever Snake Game Technology : JAVA (swing for user interface and Socket for passing coordinates of snakes, food item and score)
Chace’s 20% Ideas. Game Design With UDK I will learn how to create a level with sound player input, and a story. My final project will be a level with.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Lecture 5 of Computer Science II
PYGAME.
Methods Chapter 6.
What is “Data Structures”?
Tutorial 19 - Microwave Oven Application Building Your Own Classes and Objects Outline Test-Driving the Microwave Oven Application Designing.
Hands-on Introduction to Visual Basic .NET
Mike Burnham CS 470 Final Presentation
Topics Introduction Hardware and Software How Computers Store Data
CS 350 – Software Design Principles and Strategies – Chapter 14
Console.WriteLine(“Good luck!”);
Game Over Module 4 Lesson 2.
User Input Keyboard input.
I Can’t Hear You! Sound Get out your notes.
CS203 Lecture 15.
Primary School Computing
Classes and Objects Systems Programming.
Introduction to Classes and Objects
Presentation transcript:

A Fighting Game of Sorts CS470 Project Presentation By Mark Blum

Background I made a graphically driven game. The “clients” for my project are myself, my brother Luke, and my friends. Java was used to create the game.

Project Goals Make a new game that is better than any previous game I have created. Accomplish this by incorporating the best features of the previous games I have created (story, graphics, and AI) and adding any features that may still be missing (sound and save feature).

Requirements The system must have a save game feature, a character creation module, a cheat code, 10 stages, an ending sequence, and a high score ranking system. My game fulfills all the listed requirements.

Sample High Score Ranking System Having completed stage X before ending the game, you have achieved the fighting rank of: Wimp Lucky Punk Thug Novice Initiate Adept Expert Specialist Master Grand Master Supreme Grand Master

Interface Mock Up

Data Structures I used a couple of stacks to implement the High Score system. To store the information about the hero and the various bosses I used a simple file format.

Data Structures, cont. An example of a typical boss file is: Dan|110|37|0|3|2|2|2|2|3|1|5|8|6|2|0|40|5|5 |5|0|0|0|24|EMC|40 An example of a typical hero file is: true|1|Goku|112|45|0|3|2|2|2|2|3|2|true|tru e|true

Data Structures, cont. For input validation I used a special data structure that was capable of only holding whole numbers. This was used extensively in the character creation module. It is also used when the player is prompted to enter the number of additional EP to sink into an attack.

AI Random/Rule-based hybrid. Each character has a random percentage chance to do any particular move that they possess. Percentage chances are modified based on certain “rules”. Examples: if enemy is defending: then increase probability of powering up by probability to defend and set probability to defend to 0 if enemies action equals Energy Maximum Charge attack: then defend with a 8 times current stage probability

Biggest Hurdle The biggest hurdle I encountered during the course of my project involved threading and thread “safeness” or lack thereof. During the players turn, I needed to “pause” the program until the player had made a selection. Added an extra thread to take care of the fighting. Unfortunately, Swing is not thread safe.

Solution I made a special class that I used to sync my threads with, and I made all my accessor and mutator methods synchronized. I also declared many of my variables to be volatile, and I made use of repaint(0) instead of repaint() where it mattered. Where possible, I used the results of a change before making the change.

What I’ve Learned I learned that making a graphically driven game is extremely time consuming, and that making/editing the graphics can take just as much time as the coding. In addition, I learned how to make programs that utilize Swing thread safe.