90 likes | 205 Views
A game by Gravity Pole Productions. Graham Pentheny, Tim Volpe, Ryan LaSante. http://www.wpi.edu/~pentheny/nbr/. Game Premise. “Reverse-platformer” You make the level, AI does the character control User Generated Content “Notebook” feel. What Worked:. Level Design & File Format Physics
E N D
A game by Gravity Pole Productions Graham Pentheny, Tim Volpe, Ryan LaSante http://www.wpi.edu/~pentheny/nbr/
Game Premise • “Reverse-platformer” • You make the level, AI does the character control • User Generated Content • “Notebook” feel
What Worked: • Level Design & File Format • Physics • AI • Making JME 2d • Drawing • Gameplay
What was a little skittish: • HUD (120d curse strikes again) • Moral: Tutorials aren’t always right… • Collision Detection (HACK HACK HACK) • User generated Geometry makes this much, much more complicated. • Menus w/ FengGui
What Outright Didn’t Work • Level Editor • Try to script new object behavior @_@ • Add to FSM • Manual level design works fine. • Text files • ____.lvl
Making JME to work for us • 2d • Fix camera movement to x and y axis • Game States • Level Objects • Art • HUD • Don’t use Java2d ;-)
Drawing Recognition • Get mouse coordinates at specific intervals • Place geometry between points • Get level object • Do recognize • Place object in scene…or not
AI, Physics, and Collision Detection • OO-FSM (yay acronyms) • Each has velocity, acceleration • Bounding Boxes (Extrude in Z) • Sends type to FSM which changes char movement • Decoupled from Framerate • <3 2d physics <3 • Decoupled from Framerate • Acceleration, Velocity, Position – Vector2d • this.position.add(this.velocity.mult(deltaTime)); • this.velocity.add(this.acceleration.mult(deltaTime)); • this.acceleration = this.theAI.currentState.getAcceleration();
PLAY THE GAME!!! http://www.wpi.edu/~pentheny/nbr/nbr.jnlp