540 likes | 559 Views
Computer Game Development. By Jijun Tang. Homework. Game treatment document Each group to turn in one Due: Sept 17 th , before class Print and bring it in class Expected page lengths 4-5 pages, 11pt font, single space. Choice and Outcome. Choice A question asked of the player Outcome
E N D
Computer Game Development By Jijun Tang
Homework • Game treatment document • Each group to turn in one • Due: Sept 17th, before class • Print and bring it in class • Expected page lengths 4-5 pages, 11pt font, single space.
Choice and Outcome • Choice • A question asked of the player • Outcome • The end result of a given choice • Possibility space • Represents the set of possible events • A “landscape” of choice and outcome
Choice and Outcome • Consequence or Weight • The significance of an outcome • Greater consequences alter the course of the game more significantly • Choices are balanced first by consequence
Choice and Outcome • Well-designed choice • Often desirable and undesirable effects • Should relate to player goals • Balanced against neighboring choices • Too much weight to every choice is melodrama • Orthogonal choices – distinct from others • Not just “shades of grey”
Qualities of Choice • Terms in which to discuss choices • Hollow– lacking consequence • Obvious– leaves no choice to be made • Uninformed– arbitrary decision • Dramatic– strongly connects to feelings • Weighted– good and bad in every choice • Immediate– effects are immediate • Long-term– effects over extended period • Orthogonal– choices distinct from each other
Goals and Objectives • Objectives • Designed tasks players must perform • Rigid requirements – formal • Goals • An intentional outcome • Notions that direct player action • Scales all levels of motivation • From selecting particular strategies… • …to basic motor actions (e.g. pressing a button)
Goals and Objectives • Objectives and goals can differ • Players goals reflect their understanding of the game • Designers must consider how the game communicates with players • Affordances – the apparent ways something can be used
Resources/Economies • Resources • Things used by agents to reach goals • To be meaningful, they must be… • Useful – provide some value • Limited – in total or rate of supply • Economies • Systems of supply, distribution, consumption • Questions regarding game economies: • What resources exist? • How and when will resources be used? • How and when will resources be supplied? • What are their limits?
Player Strategy • People usually reason with commonsense • A view of linear causation – cause and effect • Complex systems do not behave linearly • Players need information to support linear strategy
Game Theory • Game Theory • Branch of economics • Studies decision making • Utility • A measure of desire associated with an outcome • Payoffs • The utility value for a given outcome • Preference • The bias of players towards utility
Game Theory • Rational Players • Abstract model players – not real people • Always try to maximize their potential utility • Solve problems using pure logic • Always fully aware of the state of the game
Game Theory • Games of skill • One-player games • Outcomes determined solely by choices • Games of Chance • One-player games • Outcomes determined in whole or part by nature (chance) • Games of Strategy • Competitions between two or more players
Game Theory • Decision under certainty • Players know the outcome of any decision • Risky decisions • Probabilities of nature are known • Decision under uncertainty • Probabilities of nature are unknown
Testing • Software testing: Process of verifying performance and reliability of a software product • Tester: Person trained in methods of evaluation, may be the first job in the industry for a fresh graduate • Bug: Discrepancy between expected and actual behavior • Problem/Bug report: Description of the behavior of the discrepancy
Testing Types • Unit test • written from the developer's perspective • focus on particular methods of the class under test • Focus test • Testing session using play-testers • Testers represent the target audience • Lots of feedback at one time • Data can be compromised by group think • Acceptance test
Unit Testing • With very large codebases, it's difficult to make changes without breaking features • Unit tests make sure nothing changes • Test very small bits of functionality in isolation • Build them and run them frequently • Good test harness is essential
Acceptance Testing • Also called functional tests • High level tests that exercise lots of functionality • They usually run the whole game checking for specific features • Having them automated means they can run very frequently (with every build)
Bug Report and Trace • Bug database • Keep a list of all bugs, a description, their status, and priority • Team uses it to know what to fix next • Gives an idea of how far the game is from shipping • Doesn't prevent bugs, just helps fix them more efficiently
Balancing • Tuning • Developing solutions by adjusting systems • Iterations are faster • Changes are less dramatic • Balance: • Equilibrium in a relationship • Player relationships, mechanics, systems, etc.
Balancing • Intransitive relationships • Multiple elements offer weaknesses and strengths relative to each other as a whole • Balanced as a group • Example: Rock-Paper-Scissors (RPS)
Creativity • Ability to create • Ability to produce an idea, action, or object considered new and valuable
Classic Approach to Creativity • Preparation: Background research and comprehension • Incubation: Mulling things over • Insight: Sudden illumination – Eureka! • Evaluation: Validating revealed insights • Elaboration: Transforming the idea into substance
Generating ideas without discrimination Evaluation after elaboration, can be unfocused Brainstorming
Board games Spatial relationships Card games Resource management Paper RPGs Dynamic narratives Books Fantasy and agency Sports Team competition Film Continuity techniques Television Serialized stories Music Temporal systems Martial arts Discipline in action Children Invention Inspiration
Communication • Documentation • Methods vary widely • Written, descriptive model of the game • Depth varies according to the needs of the game • Development documentation • Docgen • Wikidot
Communication • Treatment: A brief, general description of the game and the fundamental concepts • Used to sell and show off your idea • May include: • Concept statement • Goals and objectives • Core mechanics and systems • Competitive analysis • Licensing and IP information • Target platform and audience • Scope • Key features
Other Document Types • Preliminary design document • Initial Design Document • Revised Design Document • General Design Document • Expanded Design Document • Technical Design Document • Final Design Document
Communication-Flowcharts • Flowcharts • A typical technique for diagramming steps in a process • Most developers are familiar
Communication-Diagrams • Associative diagram • Drawing that helps manage and organize information visually • Mind Map • A style of associative diagram • Key words and figures are placed on branches
Psychology • Working Memory • Holds roughly 7 ± 2 items at one time while other cognitive operations on them • Each slide should not have more than 6 items • Attention • Method of enhancing perceptions relative to other stimuli in the same environment • How we focus on important things • Limited capacity
Psychology • Classical conditioning • Reaction to stimulus is conditioned by pairing with another stimulus that elicits the desired response naturally
Psychology • Unconditioned stimulus – Meat • Unconditioned response – Salivation over meat • Conditioned stimulus – Tone • Conditioned response – Salivation over tone
Psychology • Operant conditioning • Learning by encouraging or discouraging • Operant • A response; the action in question • Example: pressing a button • Reinforcement contingency • Consistent relationship between the operant and a result in the environment
Psychology • Reinforcers • Increase the probability an action will be repeated • Positive reinforcement • Positive stimulus that reinforces the behavior • Ex. Use umbrella and be dry • Negative reinforcement • The removal or prevention of a negative stimulus • Ex. Use umbrella and keep from getting wet • Punishment • Reduces the likelihood of a behavior with a stimulus • Ex. Being burned by a hot stove
Programming Teams • In the 1980s programmers developed the whole game (and did the art and sounds too!) • Now programmers write code to support designers and artists (content creators)
Different Programs • Game code Anything related directly to the game • Game engine Any code that can be reused between different games • Tools In house tools Plug-ins for off-the-shelf tools
Team Organization • Programmers often have a background in Computer Science or sciences • They usually specialize in some area (AI, graphics, networking) but know about all other areas • Teams usually have a lead programmer • They sometimes have a lead for each of the major areas
Skills and Personalities • Successful teams have a mix of personalities and skills: • Experience vs. new ideas • Methodical vs. visionary • But hard-working is always the key
Methodologies • A methodology describes the procedures followed during development to create a game • Every company has a methodology (way of doing things), even if they don't explicitly think about it
Methodologies: Code and Fix • Unfortunately very common • Little or no planning • Always reacting to events • Poor quality and unreliability of finished product • “Crunch” time normal
Methodologies: Waterfall • Very well-defined steps in development • Lots of planning ahead of time • Great for creating a detailed milestone schedule • Doesn't react well to changes • Game development is too unpredictable for this approach
Methodologies: Iterative • Multiple development cycles during a single project • Each delivering a new set of functionality • Refinements are needed • The game could ship at any moment • Allows for planning but also for changes
Methodologies: Agile Methods • Deal with the unexpected • Very short iterations: 2-3 weeks • Iterate based on feedback of what was learned so far • Very good visibility of state of game • Difficult for publishers or even developers to adopt because it's relatively new
Make Coding Easier • Version control • Coding standards • Automated build • Code review • Unit testing and acceptance testing
Version Control • Recommended to use for team project • Version control is • Database with all the files and history. • Only way to work properly with a team. • Branching and merging can be very useful • Used for source code as well as game assets (text and binary) • Tools: • CVS is one of the most popular tool • Source anywhere • SVN