210 likes | 397 Views
Art 753 – Video Game Production. Created By:. Ian Robinette. Brent Warren. Tyler Ayres. Steve Landers. Ryan Chilton. A Mode7/3D racer, implemented in flash, 10 weeks from concept to post-mortem. Ryan. Phase: Concept. Jan 5. Concept & Game Design Doc (GDD). Track features.
E N D
Art 753 – Video Game Production Created By: Ian Robinette Brent Warren Tyler Ayres Steve Landers Ryan Chilton A Mode7/3D racer, implemented in flash, 10 weeks from concept to post-mortem.
Ryan Phase: Concept Jan 5 Concept & Game Design Doc (GDD) Track features Splitscreen racing action. State diagram / typical user story.
Ryan Phase: Concept Jan 12 Art Inspiration/Realization (1/2) Bumper Targets Rollover Targets Pinball Basics “Cue Ball Wizard” Ball Flipper Plunger “Stars” Rail Balls are player avatars. Circular obstacle, kickback. Implementation Abstraction Example Detects ball rolling on top. Lights up, physically passive. Award player bonus points. Rails envelop roamable track. “Buckeye” “Aztec Gold” “Driving School” Plunger never implemented.
Ryan Phase: Concept Jan 12 Art Inspiration/Realization (1/2) Spinner Target Slingshot Wedge Dropdown Target “Elvis” “Freedom” “Indiana Jones” Painted surface, 2 pillar support. Top is painted, sides are flexy. Drops into table when hit. Spins when ball rolls through. Grouped with a theme. Reflects ball on contact. Implementation Abstraction Example “Driving School” “Aztec Gold” “Haunted House” Not strictly wedge shaped, convex polygon bumper.
Skybox / panorama fill. Track extends to horizon. Phase: Concept Jan 12 Gameplay/viewport inspiration. Mode7 reference games – Mario Kart, F-Zero Place horizon lower to reduce rendering expense. Minimap / whole track. Race, but collection/exploration can improve your time too. Curve/combo physics. Mash gas and go.
Ian Phase: Building Jan 22 Jan 22 Jan 1 Jan 15 Jan 22 Jan 25 Implementation Chronology (1/3) Extracting rail geometry. Track texture mapper. Extrusion/line support. It’sa me, Mario Kart! Finally, original content. Early architecture, good ol’ brick ‘n purple text. Test of the original collision code.
Ian Phase: Building Jan 29 Feb 14 Feb 5 Feb 14 Feb 5 Jan 31 Implementation Chronology (2/3) Big step forward, collision and renderer united into playable, basic game. First title screen with the dot matrix in back. Collision test running on complex, original geometry. Early player select architecture. Jump in implemented with engine. Addition of the giant flippers. Frightening. A different color ball for each player.
Ian Phase: Building Feb 19 Feb 21 Feb 15 Mar 11 Mar 4 Feb 15 Implementation Chronology (3/3) Pitched, completely redone! Player select screen with a giant clock in back. More sophisticated jump-in screen with real logo. Refinement, demo play explained through engine. Final game with 3 players and a minimap. High score screen gets fancy dot matrix effects. Final player select screen, with level select.
Ryan Phase: As-Built Better return on “visual impact/computational cost” ratio. Greater realism, artistic freedom, and pipeline complexity. Anatomy of a Pinball Racer Scene Panorama – essentially zero cost, yet covers ~40% of view. “Mode7” plane – low cost, big impact, the focus point for artist. 3D lines - require transformation, awkward z-sorting semantics. Billboard – 2D sprite bound to 3D point. Z-sorted by centroid and scaled. Flat shaded surface– fully 3D: transform, clip, z-sort, outline. Extruded surface – fully 3D, flat sides, top textured by Mode7 Textured surface – arbitrary texture mapping, extreme expense. Invest artist time up top, add lower items to improve 3D illusion.
Steve Phase: As-Built Attract loop components Each attract loop screen is a subclass of GameScreen Each of which may implement Attract Loop nextScreen isDone And has members and When a screen sets to true, the game will call the Unhook method of the screen, switch to the screen specified by , and call HookUp on the new screen. While is false on the current screen, Update and Draw will constantly be called. This setup easily allows for each screen to dynamically decide what comes next and inform the game of this. isDone if isDone nextScreen Unhook isDone Draw Update nextScreen Set HookUp
Steve Phase: As-Built Dot Matrix Display Inspired by real pinball displays Used throughout the game for a number of nifty effects Rendered pinball simulation through a dot matrix for the title screen Used for bonus screens Credits screen has lit dots swirling around the border and making waves in the center Flashy borders surrounding dot matrix high scores A dot matrix for each player’s high score entry and a larger one showing the last level
Brent Level Design Size=(800 by 600) Extracted 4 starts, 109 nodes, 37 polygons and 6 regions. Level Design Aid, “ScannerProgram” Automates some aspects of track making (point/polygon placement). Leverages existing drawing tools (MsPaint, Adobe PS) as map editors. Jan 29 0xFF00FF = Point 0xFF0000 = Polygon Start 0x00FF00 = Polygon Defn. 0xFFFF00 = Player start. 0x00FFFF = Region Anything else = Ignore. Modifying scanner data invalidates track script (changes polygon IDs) Picky about input: need very clean lines, near-perfect color matches.
Brent Level Design Level Design Jan 30 Track Design (1/5) – Haunted House Vision: zombies, ghosts, mansion, cave, dark night Texture Start Billboards: • Layout mostly hand-drawn • Attempt at a more 3D feel
Brent Texture Level Design Level Design Feb 22 Track Design (2/5) – Buckeye Stadium Vision: Ohio State, buckeyes, football players, scarlet and gray, stadium • All track art done by Tyler bumper Roll-over target panorama of OSU stadium Start Brutus: Screen shot
Ryan Level Design Traffic combo Signs Feb 15 Asphalt Cones Yellow paint Track Design (3/5) – Driver’s Ed. Vision: road test, orange cones, traffic signs, how-to-play demo Basic oval layout. Screen shot. Added extra room to demo a combo. As painted. Instructions Conceived as just a demo, autopilot. Promoted to playable (week 8). Level is extremely easy!
Level Design Feb 1 Track Design – Aztec Gold (4/5) Vision: aztec calendar, gold coin, chichen itza, jungle, quetzalcoatl Deity Billboards Shape of racetrack. (alt: circle labyrinth) Texture Daysign glyphs – CC/NonCom Marta Ramirez. Screen shot. Cipactli Cuauhtli Itzcuintli Crocodile Zodiac contains 20 signs – all appear in-game. Not shown: detailed sound design (“menagerie”) Dog Eagle
Ryan Level Design Level Design March 11! Track Design (5/5) – Vegas Vision: slots, craps, poker, blackjack, roulette, strip marquees Marquee inspirations. Table game inspirations. Screen shot. Texture Periodic “mirage”. Tiling was a poor idea. Entire map drawn in powerpoint! Then printed to file as .png. Best practice? Vector art, imitates OSU. Carpet & Felt surfaces.
Steve Utility System DMD Drivers School(11) Common(12) Track Scripts Attract Loop Player Select(6) Renderer Aztec(28) Haunted House(40) Physics TOTAL 11,572 Scanner Post-Mortem TOTAL 24.048 MB (102 files) OSU(5) Map Clipping Flash Rasterizer Object Collisions Panorama TOTAL 24 ms (40 fps) Billboards Lines Mode7 Polyhedra Lines of code, by component System metrics Renderer is many LOC, but >75% is reused from prior demos. Wide variation in map size. Asset size in MB, by map (#files) CPU Expense, in ms. Vegas=2.5 MB =Player Select (not shown) Renderer costs more than Physics.
Ian Post-Mortem What went right… Camera easing and sonic-style rail physics feel great. Dot matrix display captures pinball feel (it’s improv too, not in GDD) Good teamwork, “our game”, each member can identify their contri. Internalcode reuse. Good return on engine/DMD investments. Corollary: DMD+Engine = Awesome2 Externalcode reuse. Prior flash demos leveraged for M7/3D fx. Expandable. Adding new map content is a relatively simple process. New scriptable/interactable elements feasible, too. (Vegas rotary) Reasonable performance for 3D-ish game in flash. Fundamental mechanics in place: race, bounce, collect.
Brent Post-Mortem What went wrong… Design doc is ignorant of team composition (too much art req’d) Physics locked in 2D, planned 3D effects (jumps/rails) are missing. Map production is overwhelming, fell short of planned # of maps. Game is totally mute when not inside simulator. (no menu beeps?) Bailed out at last minute – original music composed in beatbox/synthesizer. SVN was not the silver bullet it was expected to be. Features were not well planned in advance. Creation process stifled: Need to update old content with new code.
Steve Post-Mortem If we had just 1 more week… Simple 3D tricks (camera z- as speed+, pop-up pad, stomp target) Improve physics robustness to prevent “escapes” (NPC especially) Hit the gas just right during Ready/Set/Go and get “speed boost” Start level with plunger charge-up feature. (related to above). Targets all get custom sounds, already supported programmatically. At least 2 more maps: Pencil world, Neon, & maybe Irish. More in game music, track specific melodies / beat mixes. Program a deployment script. (Pick out only needed assets).