GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein...

26
GodMode GodMode Team OneUp 1
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    215
  • download

    0

Transcript of GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein...

Page 1: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

GodModeGodModeTeam OneUp

1

Page 2: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

Team Team OneUpOneUp

Joe Ennever - Systems Integrator

Zack Sheppard - Language Guru

Nic Borensztein - Project Manager

Danny Hertz - Systems Architect

Mike Hernandez - Verification/Validation

2

Page 3: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

GodMode - GodMode - BasicsBasics

Joe Ennever - Systems Integrator

Zack Sheppard - Language Guru

Nic Borensztein - Project Manager

Danny Hertz - Systems Architect

Mike Hernandez - Verification/Validation

3

Page 4: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

Basics - Why GodMode?Joe Ennever

Every CS Major Every CS Major wants to code video wants to code video gamesgames

High-level High-level programming programming language for language for designing 2D designing 2D platformsplatforms

Spend time working Spend time working on rules and AI on rules and AI rather than graphicsrather than graphics

Page 5: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

Basics - Why GodMode?Joe Ennever

2D, grid-based 2D, grid-based games with discrete games with discrete time stepstime steps

One or more Agents One or more Agents following coded following coded logic in a single-logic in a single-World environmentWorld environment

Page 6: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

GodMode - GodMode - StructuresStructures

Joe Ennever - Systems Integrator

Zack Sheppard - Language Guru

Nic Borensztein - Project Manager

Danny Hertz - Systems Architect

Mike Hernandez - Verification/Validation

6

Page 7: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

Structures - AgentsZack Sheppard

The active sprites in The active sprites in the Worldthe World

Move, speak, wave, Move, speak, wave, attack, interact, etc.attack, interact, etc.

Can be autonomous Can be autonomous or governed by user or governed by user inputinput

Page 8: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

Structures - Agent (Sample)Zack SheppardAgent Frog {Agent Frog { action void construct() { action void construct() { this:health is 1; this:health is 1; this:speed is 1; this:speed is 1; } } action void onTurn() { action void onTurn() { move(World:lastKeyboardArrow()); move(World:lastKeyboardArrow()); World:clearRecentKeyboardInput(); World:clearRecentKeyboardInput(); } } action boolean hasWon() { action boolean hasWon() { this:_position:y() == (World:height() - 1); this:_position:y() == (World:height() - 1); } }}}

Page 9: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

The Framework for The Framework for Agent interactionsAgent interactions

Acts as governor in Acts as governor in that it controls that it controls AgentsAgents

Acts as toolbox in Acts as toolbox in that it offers utility that it offers utility actionsactions

Structures – WorldsZack Sheppard

Page 10: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

Structures - World (Sample)Zack SheppardWorld {World { know num health is 5; know num health is 5; know Frog character; know Frog character; action void construct() { action void construct() { this:width is 10; this:width is 10; this:height is 20; this:height is 20; } } action void startRound() { action void startRound() { health--; health--; character is new Frog(); character is new Frog(); this:addAgent(character, new coordinate(4, 0), north); this:addAgent(character, new coordinate(4, 0), north); } } action void onTurnEnd() { action void onTurnEnd() { //Process adding the cars in here //Process adding the cars in here if( character:isDead() OR character == null) { if( character:isDead() OR character == null) { startRound(); startRound(); } } } } action boolean shouldEnd() { action boolean shouldEnd() { return (health < 0 OR character:hasWon()); return (health < 0 OR character:hasWon()); } }}}

Page 11: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

GodMode - GodMode - ProgramminProgrammingg

11

Joe Ennever - Systems Integrator

Zack Sheppard - Language Guru

Nic Borensztein - Project Manager

Danny Hertz - Systems Architect

Mike Hernandez - Verification/Validation

Page 12: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

Primitive types: Primitive types: num, string, num, string, boolean, directionboolean, direction

Arithmetic operators: Arithmetic operators: +, -, *, +, -, *, /, ^, %/, ^, %

and, or, not, not=, is, isaand, or, not, not=, is, isa

Collections and Collections and for eachfor each loops loops

for each Agent hunter in for each Agent hunter in collectionOfHunters {collectionOfHunters { hunter:move(South); hunter:move(South);}}

Programming - SyntaxNic Borensztein

12

Page 13: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

““isis” vs. “” vs. “==””

Accessor operator “Accessor operator “::””

““knowknow” as declaration” as declaration

know num age is 0;know num age is 0;know string name;know string name;action void action void setName(string name) {setName(string name) { this:name is name; this:name is name;}}

Programming - SyntaxNic Borensztein

13

Page 14: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

14

GodMode - GodMode - Back-EndBack-End

Joe Ennever - Systems Integrator

Zack Sheppard - Language Guru

Nic Borensztein - Project Manager

Danny Hertz - Systems Architect

Mike Hernandez - Verification/Validation

Page 15: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

Back-End - ComponentsNic Borensztein

Input: .god file. Consist of Input: .god file. Consist of exactly one Agent and one exactly one Agent and one World declaration.World declaration.

Lex creates token stream, Lex creates token stream, YACC parses and compilesYACC parses and compiles

Generates Java code, Generates Java code, complete with Agent and complete with Agent and World classesWorld classes

Swing graphics engine and Swing graphics engine and awt eventsawt events

15

Page 16: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

Back-End – ComponentsNic Borensztein

Compiler:Compiler:

generates tree structure of generates tree structure of statements, helps keep track statements, helps keep track of variable scope and order of of variable scope and order of statements.statements.

inserts and checks variables inserts and checks variables and actions against symbol and actions against symbol tabletable

hash function to store hash function to store identifier, type, scopeidentifier, type, scope

16

Page 17: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

Similar to Libraries in JavaSimilar to Libraries in Java

Basic toolkits, expanded Agent and World data Basic toolkits, expanded Agent and World data typestypes

Extends common 2D platformer functionalityExtends common 2D platformer functionality

Reusable, TimesavingReusable, Timesaving

Built-in Bibles (basic sound, movement, collisions)Built-in Bibles (basic sound, movement, collisions)

User generated Bibles (randomness, path User generated Bibles (randomness, path following)following)

Back-End – BiblesDanny Hertz

17

Page 18: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

Back-End – BiblesDanny Hertz

18

Page 19: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

GodMode - GodMode - Front-EndFront-End

Joe Ennever - Systems Integrator

Zack Sheppard - Language Guru

Nic Borensztein - Project Manager

Danny Hertz - Systems Architect

Mike Hernandez - Verification/Validation

19

Page 20: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

The GUI provides the The GUI provides the end-user a method of end-user a method of interaction with the interaction with the newly developed newly developed programprogram

Offers potential for Offers potential for configuration, error-configuration, error-reporting, pause reporting, pause functionality, and functionality, and clean exitsclean exits

Front-End - GUI InteractionMike Hernandez

20

Page 21: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

The console allows users to The console allows users to obtain a real-time update of obtain a real-time update of the World and all the Agents the World and all the Agents it containsit contains

Enable or disable Enable or disable functionality by selecting functionality by selecting “Console” in the menu“Console” in the menu

Populate the Console with Populate the Console with data by selecting “Status” in data by selecting “Status” in the Menuthe Menu

All All print();print(); statements will statements will print to this locationprint to this location

Front-End - GUI InteractionMike Hernandez

21

Page 22: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

The Options Dialog allows The Options Dialog allows users to customize their users to customize their game experiencegame experience

Enable or disable visibility by Enable or disable visibility by selecting “Options” in the selecting “Options” in the MenuMenu

Gridlines can be turned on or Gridlines can be turned on or offoff

Additional or designer-defined Additional or designer-defined options are possible and can options are possible and can be curtailed to the needs of be curtailed to the needs of programmersprogrammers

Front-End - GUI InteractionMike Hernandez

22

Page 23: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

Users have the ability to Users have the ability to pause (and later unpause) the pause (and later unpause) the current game or simulationcurrent game or simulation

Access this functionality by Access this functionality by selecting “[Un]Pause” from selecting “[Un]Pause” from the Menuthe Menu

Provides programmers with Provides programmers with additional debugging additional debugging capabilities when combined capabilities when combined with the Console and with the Console and print();print(); statements statements

Front-End - GUI InteractionMike Hernandez

23

Page 24: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

Worlds are found on the left Worlds are found on the left of the frame, and represent of the frame, and represent the current (visual) state of the current (visual) state of the programthe program

Height, width, and grid size Height, width, and grid size are accurate to GodMode are accurate to GodMode World definitionsWorld definitions

Offers potential notifications Offers potential notifications after the occurrence of after the occurrence of predetermined events.predetermined events.

Front-End - GUI InteractionMike Hernandez

24

Page 25: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

Agents can be found within Agents can be found within the world, either mobile or the world, either mobile or stationarystationary

Location and status are Location and status are displayed according to Agent displayed according to Agent definitions in the GodMode definitions in the GodMode programprogram

Updates in real time to reflect Updates in real time to reflect the changes undergone by all the changes undergone by all Agents on every turnAgents on every turn

Front-End - GUI InteractionMike Hernandez

25

Page 26: GodMode Team OneUp 1. Joe Ennever - Systems Integrator Zack Sheppard - Language Guru Nic Borensztein - Project Manager Danny Hertz - Systems Architect.

ConclusionConclusion

Thank you!Thank you!

Questions?Questions?

Comments?Comments?

Complaints?Complaints?

Applause?Applause?

26