JAWS Space-Shooter Game Design Language Justin Lu Guoxin Andy Lin Winston Chao Shoaib Anwar.

Slides:



Advertisements
Similar presentations
Summer Computing Workshop. Introduction to Variables Variables are used in every aspect of programming. They are used to store data the programmer needs.
Advertisements

Recursion CS 367 – Introduction to Data Structures.
Teaching with Greenfoot
1 Software Testing and Quality Assurance Lecture 13 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
GameSalad Fundamentals. Introduction to Game-Authoring System  Objectives  Define game-authoring system.  Understand the components of logic and assets.
Week 9: Methods 1.  We have written lots of code so far  It has all been inside of the main() method  What about a big program?  The main() method.
Computer Science II Recursion Professor: Evan Korth New York University.
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Software IMprovement using Product LinEs Project Final Presentation Liana Lisboa – PM Project: Starship.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
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.
CS 330 Programming Languages 09 / 16 / 2008 Instructor: Michael Eckmann.
Software Lifecycle A series of steps through which a software product progresses Lifetimes vary from days to months to years Consists of –people –overall.
Loops Repetition Statements. Repetition statements allow us to execute a statement multiple times Often they are referred to as loops Like conditional.
Chapter 1 Program Design
Computer Science: A Structured Programming Approach Using C1 Objectives ❏ To understand the structure of a C-language program. ❏ To write your first C.
Investigate the degree to which programming concepts are interrelated Reshmi Ravi.
CSCI 101 Introduction to Software Development and Design.
Chapter 9 Interactive Multimedia Authoring with Flash - Introduction to Programming “Computers and Creativity” Richard D. Webster, COSC 109 Instructor.
Language Evaluation Criteria
SOURCE 2006 Presentation by Luke Arntson Game Programming Optimization.
Game Development and Game Design academy.zariba.com 1.
Introduction CSE 1310 – Introduction to Computers and Programming
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
CIS Computer Programming Logic
Peter Andreae Computer Science Victoria University of Wellington Copyright: Peter Andreae, Victoria University of Wellington Summary and Exam COMP 102.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming 1.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Programming with Alice Computing Institute for K-12 Teachers Summer 2011 Workshop.
Parser-Driven Games Tool programming © Allan C. Milne Abertay University v
Boardr The Racing Board Game Creation Language. Project Manager: Eric Leung Language and Tools Guru: Shensi Ding System Architect: Seong Jin Park System.
Programing Concept Ken Youssefi/Ping HsuIntroduction to Engineering – E10 1 ENGR 10 Introduction to Engineering (Part A)
Programming in Java Unit 2. Class and variable declaration A class is best thought of as a template from which objects are created. You can create many.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Putting together a complete system Chapter 10. Overview  Design a modest but complete system  A collection of objects work together to solve a problem.
The Software Development Life Cycle. Software Development SDLC The Software Development Life-Cycle Sometimes called the program development lifecycle.
Chapter 1 Introduction to Computers and C++ Programming Goals: To introduce the fundamental hardware and software components of a computer system To introduce.
Idea1 : Net Aooni Arcade Idea2 : Shooting Arcade Project Brainstorming Computer Game 2011 Fall ♣ Lee Sang Min.
Property of Jack Wilson, Cerritos College1 CIS Computer Programming Logic Programming Concepts Overview prepared by Jack Wilson Cerritos College.
Software Engineering Chapter 3 CPSC Pascal Brent M. Dingle Texas A&M University.
Term 2, 2011 Week 1. CONTENTS Problem-solving methodology Programming and scripting languages – Programming languages Programming languages – Scripting.
COP Structures Instructor: Diego Rivera-Gutierrez I’m back baby!
Documentation. Your documentation must fit the needs of your audience. It’s always better to say one thing that is useful, as opposed to many things that.
1 FUNCTIONS - I Chapter 5 Functions help us write more complex programs.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Celluloid An interactive media sequencing language.
Chapter 8 Testing. Principles of Object-Oriented Testing Å Object-oriented systems are built out of two or more interrelated objects Å Determining the.
Online Simulation Creation Wizard Introduction to Project
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Concepts and Realization of a Diagram Editor Generator Based on Hypergraph Transformation Author: Mark Minas Presenter: Song Gu.
Software Engineering INTRODUCTION TO SOFTWARE DEVELOPMENT.
“Discipline is the refining fire by which talent becomes ability.” – Roy L. Smith Thought for the Day.
DAAD project “Joint Course on OOP using Java” Humboldt University Berlin, University of Novi Sad, ‘Polytehnica’ University of Timisoara, University of.
Object Oriented Analysis & Design By Rashid Mahmood.
Computer Science: A Structured Programming Approach Using C1 Objectives ❏ To understand the structure of a C-language program. ❏ To write your first C.
Collision Theory and Logic
Algorithms and Problem Solving
Concepts of Object Oriented Programming
Introduction to Recursion
Linked Lists in Action Chapter 5 introduces the often-used data public classure of linked lists. This presentation shows how to implement the most common.
Introduction to the C Language
Collision Theory and Logic
GC211Data Structure Lecture2 Sara Alhajjam.
Introduction CSE 1310 – Introduction to Computers and Programming
Introduction to the C Language
Variables ICS2O.
Algorithms and Problem Solving
Presentation transcript:

JAWS Space-Shooter Game Design Language Justin Lu Guoxin Andy Lin Winston Chao Shoaib Anwar

The Riddle of all Riddles? Why do kids become comp sci majors? Answer: To program financial software… FALSE FALSE Real Answer: To make GAMES of course

The Problem So what the Motivation behind a Game Programming Language? Designers VSEngineers Pros:Pros: -Creativity- Able to implement technical Details -Innovative Ideas Cons:Cons: -Lack of Technical/Programming Skill-Dull and uncreative in Game Design -Ideas too nerdy to appeal anyone

The Solution JAWS Eliminate the need of in-depth game programming knowledge such as graphics manipulation, collision detection etc. Eliminate the need of in-depth game programming knowledge such as graphics manipulation, collision detection etc. Allow casual game designers to create games Allow casual game designers to create games

Original Ideas JAWS should be able to create ANY kind of video game. Ha… Ha… This would require making a languages like C++ or Java This would require making a languages like C++ or Java RPG Adventure a la The Legend of Zelda (original) That’s very similar to space shooters in terms of collision and movement. Generalize to a Space shooter language That’s very similar to space shooters in terms of collision and movement. Generalize to a Space shooter language

Goals of the JAWS Language Create a simple language with easy syntax similar to popular languages such as Java so it can be picked up easily Allow the designer/programmer the most freedom and power and design while still keeping the language simple

Data Types The usual: int, double, string, boolean int, double, string, booleanNew: entity: represents an interactive entity (player ship, enemies etc.) point: represents a point in 2D space (x,y) movement: describes the AI of an entity attack: describes the attack algorithms of entity map: a layout of the background of a level

Special Features of JAWS Distance Operator: ~ Can be applied interchangeably between point and entity types Can be applied interchangeably between point and entity types Facilitates collision detection while still leaving freedom for the programmer Facilitates collision detection while still leaving freedom for the programmerExample:if((playerShip[0]~enemyShip[0])==0){ statusBar[0]’s label = “YOU LOSE” }

Special Features of JAWS Entity type implemented as an array Why? Why? Because. Because. In space shooters you are dealing with a large number of enemies at once. In space shooters you are dealing with a large number of enemies at once.Example: Entity small_alien[10]; small_alien’s location’s x +=5 //move all 10 small aliens 5 //spaces to the right small_alien[3]’s location’s x+=5; //move a single //small alien 5 space to //the right

Super Funk Accessor Operator ‘s We tried the old “.” operator We tried the old “.” operator It makes more sense to a non-programmer this way. It makes more sense to a non-programmer this way. Example: Example: Bob.hat = “ugly”; Bob’s hat = “ugly”;

First an Example… Here’s a code example defining movement of “metroid” monsters in the game: // now lets create some enemy aliens, lets make 5 entity metroid[6]; alien() { Image = “metroid.gif”; // we will set their AI to dumb_ai, // a movement class we will define ai = dumb_ai; }… // lets set our enemy AI now // it will be a dumb AI which just moves the enemy downwards movement dumb_ai( ) {location’s y -= 1;}

Program Structure A JAWS program is divided into two main parts The declarations sections The declarations sections The engine section The engine section //A sample JAWS program declarations{ //all code and no play //makes jack a dull boy }engine{ //all play and no code //makes jack fail PLT }

Program Structure Declarations – all point, entity, movement, attack and map classes are defined here all point, entity, movement, attack and map classes are defined here Basically the rules and tools of the game are implemented and coded here Basically the rules and tools of the game are implemented and coded here Engine – engine is the main game loop which keeps iterating during the execution of the game. Generally, you would use this section to describe the level progression of a game, the winning conditions etc. engine is the main game loop which keeps iterating during the execution of the game. Generally, you would use this section to describe the level progression of a game, the winning conditions etc. Really Simple games can even leave this part out Really Simple games can even leave this part out

Implementation Language designed and specified using ANTLR Output Language: JAVA Output Language: JAVA Platform for graphics: JAVA Swing/Java2D Platform for graphics: JAVA Swing/Java2D

Testing Plan PHASE 1: component testing to examine basic functionality of each module parser, lexer, walker, and graphical engine. component testing to examine basic functionality of each module parser, lexer, walker, and graphical engine. PHASE 2: component integration testing. component integration testing. PHASE 3: functional testing with sample codes. functional testing with sample codes. Incremental testing was implemented throughout all phases of the project. Incremental testing was implemented throughout all phases of the project.

Lessons Learned Trying to make another assignment operator and getting rid of ‘=‘ sign is a bad idea. Difficult to get out of “config” trap while making a game language. Having a group member with access to the EE comp lab and the ability to install any application you want is key.