1 / 16

JAWS

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 Real Answer: To make GAMES of course. The Problem.

halle
Télécharger la présentation

JAWS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. The Problem So what the Motivation behind a Game Programming Language? DesignersVSEngineers 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

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

  5. Original Ideas • JAWS should be able to create ANY kind of video game. • Ha… • 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

  6. 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

  7. Data Types • The usual: • int, double, string, boolean • New: • 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

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

  9. Special Features of JAWS • Entity type implemented as an array • Why? • Because. • 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

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

  11. 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;}

  12. Program Structure • A JAWS program is divided into two main parts • The declarations sections • 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 }

  13. Program Structure • Declarations – • all point, entity, movement, attack and map classes are defined 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. • Really Simple games can even leave this part out

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

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

  16. 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.

More Related