Members Zach Howard Clayton Snyder Jeff Ridenbaugh Dan Wagers Golf Party Game Minigolf on a large scale course Ninjas Robots Fire Hydrants Castles Warlocks etc Powerups Good lose strokes ID: 354157
Download Presentation The PPT/PDF document "Ogre Golf" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Ogre Golf
Members:
Zach Howard
Clayton Snyder
Jeff
Ridenbaugh
Dan WagersSlide2
Golf Party GameMini-golf on a large scale courseNinjas, Robots, Fire Hydrants, Castles, Warlocks, etc.Powerups
Good – lose strokes
Bad - gain strokesParticle SystemWater hazards all around holeAlso small pond in the middlePlay against CPU or against friends16 total possible players
OgreGolf OverviewSlide3
OgreGolf Technical OverviewCreated with the Ogre Game Engine
Implemented using
GameState ClassesMainMenuState, CreditsState, TurnState, etc.Third Party Software
HydraxCaelumArtifex TerraToolKitsBullet physics EngineFMOD Sound ToolkitSlide4
EnvironmentThird Party Software
Caelum,
Hydrax, Artifex TerraFeatures:Trees, Sky, WaterStatic ObstaclesPaged GeometryCoverage Map for grass
Also acts as fairway/rough boundarySlide5
The GreenArtifex is bad since it isn’t precise enough for a hole
Modeled in Maya
Hole at the originCarved out terrain in ArtifexLots of back and forth between gameHole given particle effect to be visibleSlide6
Ogre Heads Up DisplayCreated using Ogre OverlaysScripted .overlay and .material files
Mini Map, Golfer Info, News Feed
ProblemsGetting it all lined upScaling meters to pixelsCoordinate systemTexturingSlide7
AI: If Then ElseSimple, but effective
Aims straight for hole
Probabilistic offsetAngle based on hole distanceUses close to appropriate power levelClamped based on terrainProbabilistic varianceNo obstacle detectionSlide8
PhysicsBullet Physics Engine Overview
Simulates real-world physics with rigid bodies
Light btOgre Wrapper (MotionStates)Links Ogre SceneNodes to Rigid BodiesTweak physical properties such as gravity, friction, restitution, etcSlide9
Physics in Ogre GolfBall, terrain, obstacles, etc, are all rigid bodies
Use
ApplyImpulse() to simulate striking the ball with a clubVary friction/restitution based on whether the ball is on the rough, fairway, or green, and whether the ball is bouncing or rollingSlide10
Obstacles
Obstacles are placed in the terrain editor provided by
Artifex
Made into rigid bodies and Ogre entities when loadedSlide11
Player ControlPlayer turn divided into phases, hit spacebar to advance to next phaseDirection phase – use mouse/keyboard to select direction and arc of the shot
Power phase – the arrow contracts/expands
Curvature phase – the arrow swings back and forth to simulate curvature of the shotOnce all inputs are locked in, the ball is hitSlide12
Player ControlControl varies, based on location of the ballFairway
High maximum power, medium amount of control
RoughMedium maximum power, low amount of controlGreenLow maximum power, high amount of controlObstaclesVery high maximum power, medium amount of controlSlide13
SoundSound levels adjusted in options menu, accessible from main menu or pause menu
Sound Effects
Sound on swing of clubSound on ball’s impact (different based on object hit)Volume dependent on force of impact“Wah-Wah-wahhh” sound on hitting the ball in the water or into a bad power-upMario “1-up” sound on hitting the ball into a good power-upSlide14
SoundAmbient soundWater sound
Based on how close player is to water
BirdsRandom bird sound played at random node above playerCrickets/RoosterCrickets play at night, Rooster plays when the sun comes upBackground MusicSlide15
GameplayGame ends when everyone has sunk their ball into the holeFinal strokes are recorded
Player standings are then displayed
Hit “done” to return to main menuSlide16
Game ModesOriginal idea:Single-player and Multi-player modes were separate, with only the single player mode including AI.
How it actually turned out:
Consolidation of the two modes and allowing up to 16 of both human and AI playersSlide17
Player AvatarsOriginal idea:Have a few different avatars for players to choose that allow them to distinguish each other
How it actually turned out:
Models with animations are expensive. Ninjas with psychic powers are cheap!Slide18
Mutators and PowerupsOriginal idea:
Lots of “power-ups” to mess with the other players,
mutators to change the game mechanicsHow it actually turned out:We have a few power-ups. “Good” power-ups remove a stroke, “bad” power-ups add a stroke.A robust mutator system probably would have taken too long to implement, and had too many variables to take into account.Slide19
ClubsOriginal idea:Simplified club inventory, with a driver, putter, and a variable-arc iron.
How it actually turned out:
We changed the system to instead use a single 3D arrow, which simplifies the system even further and gives the player a visual representation of his/her shot.Slide20
ObstaclesOriginal idea:Interactive obstacles such as fire breathing clowns, trolls, windmills, etc.
How it actually turned out:
Getting the physics engine working with static objects was an animal in and of itself. Animated objects would have taken another few weeks.Slide21
ScriptingOriginal idea:Do as much as we possibly can with scripting. Serialize everything, make an easy to use script binding framework.
How it actually turned out :
Scripting wasn’t fully implemented until Timebox 4, leaving us with an already-in-place game structure and little time to bind everything.Slide22
ManagersOriginal idea:Implement “managers” to handle game state, game objects, game logic
How it actually turned out :
Pretty well! Our managers act as factory objects and overseers of the objects they create.