110 likes | 209 Views
Lecture 13 - Prototyping. CS 490/590 Wesley Kerr. Notes from Game Developers Conference. Consistent theme… Designers need to learn to program! Programmers need to learn to design! When asked what to do to set themselves apart… Response – highly polished example of your talent
E N D
Lecture 13 - Prototyping CS 490/590 Wesley Kerr
Notes from Game Developers Conference • Consistent theme… • Designers need to learn to program! • Programmers need to learn to design! • When asked what to do to set themselves apart… • Response – highly polished example of your talent • Level designer – make a kick ass level • Game designer – make a kick ass game • AI engineer – make a kick ass demo showcasing your AI • Graphics engineer – take 3d graphics and make a sweet demo • Team work is invaluable • It gives you something to talk about in the interview • Shows that you can interact well with your peers
Prototype • Working version of the formal system • Includes a rough approximation of art, sound, features • The features chosen should be the most important features now • Crude model of the gameplay mechanics • Allows you to tune • Helps visualize gameplay • Subsystems can also be prototyped • Network layer • Sample AI
Types of Prototypes • Physical prototypes • paper, cardboard, and household objects • lead figurines, plastic army men • Allow for rapid iteration on mechanics • Software prototypes • Throwaway Prototyping • Your first assignment is a gameplay prototype • Allows you to tune aspects of gameplay without concerns for good programming design • Evolutionary Prototyping • Prototype that is refined over time • Your second prototype will be in this category. • Code eventually will be part of the final game • Or lessons learned will guide final design
Software or Physical? Physical Prototypes Software Prototypes Advantages Closer to the final game design Allows prototyping of player input and control semantics Necessary for complex simulations (e.g. physics) Disadvantages Non-programmers can’t participate Requires longer turn-around for design iteration • Advantages • Easy to iterate design • Non-technical members can participate • Excellent for learning about player decisions • Disadvantages • Hard to model player control • Impractical for mathematically complex situations.
Case Study (Game Design Workshop) • Prototyping a first-person shooter Spawn Points Units
Rules • Starting Position • Roll a die, lowest chooses first • Each player receives 9 cards • “Move 1 space” – 1 • “Move 2 spaces” – 1 • “Move 3 spaces” – 1 • “Move 4 spaces” – 1 • “Turn any direction” – 2 • “Shoot” – 3 • 1. Each player builds a stack out of their 9 cards • 2. Each player reveals the top card • 3. Shoot – follow the direction of the units shooting • 4. Turn – allow turning players to turn • roll die to resolve multiple people able to turn • 5. Move – allow moving players to move • roll die to resolve multiple people able to move • 6. Repeat 2-5 for each card in the stack • If shot you are removed from the grid and spawn at a spawn point next turn.
Additional Components • Add a scoring system – 10 kills wins the game • Include hit percentage - % chance to miss • Hit points • Health • Ammo • Other weapons • Capture the flag mode • Death matches • Cooperative missions
Core Gameplay • Warcraft – players build and move units on an overhead map in real time with the intent of engaging and destroying opponents • Monopoly – players roll two dice and move around a board with the goal of buying up properties and charging rent to anyone who lands on them • Diablo – in an attempt to hoard treasure and become more powerful, players move their characters around on an overhead map battling monsters or enemies they contact. • Super Mario Bros. – A player controls Mario making him walk, run and jump, avoiding traps, gathering treasure, and overcoming obstacles • Goo Wars – players control and move goo around an overhead map engaging and destroying opponents
Software Prototypes • Only include the elements that make the game functional • Languages • Flash • Shockwave • C++ • Java