31
Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Embed Size (px)

Citation preview

Page 1: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Tennis for Two, the first game console, Brookhaven National Labs, 1947

CSE 380 – Computer Game ProgrammingGame Project Management

Page 2: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Selling Game Ideas?

• Game concepts & designs are not easily copyrighted• Want to start your own game development company?

– you need a publisher

• Convincing a publisher your game idea is worth an investment is hard

• For publisher:– game idea must be good

– publisher must have confidence in your ability to implement it• here, your design & development skills will be tested

• as importantly, your project management skills will be tested

• Welcome to the world of Indy game development

Page 3: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Game Project Management

• Define the problem• Define objectives, strategies, expectations, scope• Picking the right solutions to complete the project

– the right people• Artists, designers, level designers, programmers, managers, etc …

– the right tools• IDE (w/ Profiler, Version control system, etc …)

• Game Engine(s)

• Middleware

• Hardware

• Scheduling• Following up on progress

Page 4: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Project Web Pages• An excellent way to coordinate efforts (for games or

otherwise)– display meeting minutes, decisions, & action items for all to see– make sure action items are carried out– post latest program versions– post bug info

• Private access to technical details– more relevant outside academia

• Lets managers easily monitor progress of project & schedule– post meeting minutes, action plans, design documentation,

demos, etc …• Helps bring identity to a team• If you can afford it, there’s project management software

– Ex: Microsoft project

Page 5: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Group Project Teams

• For each team:– Team name– Team logo– Game name– Web site for project

• Post your URL on Blackboard– Forum name: “Post your Group Project URL here”

Page 6: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

A note on your final projects

• They must be games

• They must have some depth to them

• They should be bug-free

• They should have installers– we’ll do this in class later this semester

• They should be original– original artwork, sound, and hopefully gameplay– take chances, but know what you’re getting into

Page 7: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

A note on grading of final projects

• You’ll give 20 minute presentations on Monday, 5/7

• The grader (me) will give you and your game the 3rd degree (somewhat harsh)– not to be mean, but to make you feel like you’re in the

real world

• First question: What makes it fun to play?

Page 8: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Final Project Benchmarks

• We’ll be moving fast

• 3/30 – Design Doc, Storyboards, & GUI

• 4/13 – Box2D & Lua

• 4/27 – Sound, Music, & AI

• 5/7 – Final Game Presentations

• 5/11 – Game Programming Competition– Wang Center, 5pm

Page 9: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

What is version control?

• A.k.a.– revision control– code control– source code management

• A system for managing changes to files– a Version Control System (VCS)

Page 10: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Who cares?

• Software engineers do

• A VCS is essential to any team development– think large, fast-changing projects with many authors

• Think of it as a file database

Page 11: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Types of VCSs• Revision Control System (RCS)

– dead as a stand-alone system

• Concurrent Versioning System (CVS)– dying, but still heavily used– built on top of RCS

• Subversion (SVN)– killing CVS– open source under the Apache license– http://subversion.apache.org/

Page 12: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Version Control Options

• Tortoise SVN– available in TransLab– GNU license– even has some third party plugins for integration with

Visual Studio– TransLab FAQ Page:

• How do I set up a personal SVN repository to use without a server?

– http://www.translab.cs.sunysb.edu/faq.html#36

• How about a remote, shared SVN repository?– Request one: email rt[AT]cs[DOT]sunysb[DOT]edu

Page 13: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Project Planning

• Define the problem

• Define objectives, strategies, expectations, scope

• For games:– Game proposal– Game design docs– Storyboards– Working demo of technologies (pre-prototype)

Page 14: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

RESOURCE COST TOTALLead Programmer 7000 x 24 168000Assistant Programmer 3000 x 24 96000Program Testing 12000 12000Producer 10000 x 24 240000Designer 3000 x 24 960003D Artist 3500 x 24 84000Level Designer 3500 x 24 84000Animator 1500 x 24 360002D Artist 1500 x 24 36000Business Manager 5000 x 24 120000Accounting 6000Legal 50003D ENGINE LICENSE 50000Sound FX 10000 10000Music 5000 50006 PC Workstations 4000 x 6 240003D Studio Max 3000 x 3 9000 9000Photoshop 500 x 3 1500 1500Office Equipment 24000Rent 1300 x 24 31200TOTAL $1,137,700.00

Page 15: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

What’s a game engine?

• The core software component of modern games

• Typically handles rendering

• May also handle AI, physics (including collision detection), etc.

• Evolved from 1990s FPS (Doom, Quake)– Developers would license the core portions of the

software and developed their own game content– Can a game engine be overused from a player’s

perspective?

Page 16: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Quake3 & Unreal

• Designed with a plan to license the game engine• Game engine & content were developed separately• Has proven to be profitable for some• FPS Engines rule

– emphasis on visual detail, animations, lots of graphics processing, knowing what not to draw can be important (ex: BSP culling)

• Real-time Strategy Game Engines– Must display a large number of objects at once, objects

shown at lower resolution than FPS, fixed aerial viewpoint

Page 17: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

What is middleware?

• Software agents acting as an intermediary between different application components– used most often to support complex, distributed

applications– of course, not specific to games– As games rapidly increase in complexity, middleware

is becoming more an more important– part Game Engine, part assembler of game components

• Among the many:– AI Middleware – SimBionic

http://www.simbionic.com/– Trees – SpeedTree http://www.idvinc.com/

Page 18: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Additional Game Development Objective• Building flexible systems, configurable by others (non-

programmers)– For Game Engines/Middleware:

• configurable by programmers (low-level & otherwise)

• configurable by scripting

– For everyone, configurable by:• artists – plug-in content

• game/level designers– control, change, and test gameplay interactions via a GUI, spreadsheet, …

– easy game prototyping – important for reducing lead times

– game units – particularly important for RTS

» http://aom.heavengames.com/gameinfo/tables/units/greek

• AI designers– character properties, objectives, possible states

• Is your game easily MODable?

Page 19: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Scheduling

• Interview, separately and in groups, the team members to assess their needs and opinions on your first pass at the schedule

• Start your schedule by breaking out the tasks that have to be done– If your programmers will be using an existing engine and set of

editing tools, then that will decrease your development time

• What must be done? • Who will do it? • What resources are needed to do the job? • When must it be done?

Page 20: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

WBS• With a Work Breakdown Structure (WBS), you take a

complex task and break it down into smaller tasks (sound familiar)

• You keep breaking the tasks down until you can estimate how long each task will take

• For example: Creating a menu screen1. Menu Screen

I. Background ImageII. Collect screenshots, photographs, digital images, scansIII. Lay out initial background

2. Option ButtonsI. Choose or create font

3. Color Scheme4. Programmed Response

Page 21: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management
Page 22: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Slippage

• What if a team member fails to complete a task or is late in completing it?– critical vs. non-critical

• To prevent this, have brief regularly scheduled status meetings– bring everyone up to speed on the status of each other's work

– air grievances

– decide to work more hours

– decide to see your family less

– decide no more late night DDR

– have your spouses get together and threaten to sue your employer

• http://www.ectnews.com/story/38451.html

Page 23: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Testing

• Game testing is particularly important

• Different criteria than other software– Are there any bugs?

• Can I go through walls or other objects, etc …

• Bug databases

– Is it fun to play?• monitor player frustration, progress and enjoyment

– Feedback to game developers – common source of crunch-time extensions

• Testing tools (test harnesses) can help streamline the testing process

Page 24: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Bug Database

• a.k.a Defect Tracking System

• Ex: http://www.bugzilla.org/– free & open source

• What does Bugzilla do?– Track bugs and code changes – Communicate with teammates – Submit and review patches – Manage quality assurance (QA)

• Launch Pad

Page 25: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Making a Demo

• What’s a Demo?– Note: For your final project presentation, you will not be

required to make a demo

– instead you will actually play the game and demonstrate it’s capabilities

• How might you make a demo? Two options:– Record your own gameplay

• Traditional technique

– Write your own AI player to simulate gameplay• Difficult to implement in certain games such that it generates

interesting behavior

Page 26: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Prerecorded Demos• Record the states of all the input devices each cycle as you create

the demo– Write the data to a file– Play back the demo as though it were the input of the game– Costly alternative: win Mario 3 in 11 minutes (how did he do that?)

• http://www.youtube.com/watch?v=sTNpC6lYYrs

• The idea is that the game doesn’t know whether the input is from the input device or from a file

• For this to work, your game must be deterministic– If you play the game again and do the exact same things, the game creatures

will do the exact same things– This means you must also record the initial random number seed

• Sample the input at each frame, ex file:Initial State InformationFrame 1: Input ValuesFrame 2: Input Values…Frame N: Input Values

Page 27: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

AI-Controlled Demos

• Main character is an AI bot, just like one of the AI creatures in the game

• Problems, the AI bot might:– be difficult to implement

– not show off what you want it to

– go where you want it to

• Benefits:– Each time it runs, the demo will be different

– “Attract mode” of the game won’t be so boring

• Give your main character bot some goals:– Find the end of a maze

– Kill everything in sight

Page 28: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Game Video

• For game programming competition

• Teams required to make YouTube-ready video– Highlight game and gameplay

Page 29: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Strategies for Saving the Game

• Saving a game means recording the state of every single variable & every single object in the game

• You must record all environmental & character variables in a file

• To load game, read back in all data and load your data structures & objects

• Advice:– If you need to use this, plan to have game saving from

the start• Difficult to implement down the road of development• Teach each object how to write & read its own state – an

OOP approach

Page 30: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

Deploying a Windows Application

• We want to allow others to download and install our applications

• In Windows, Visual Studio makes it easy:– http://msdn2.microsoft.com/en-us/library/k3bb4tfd(VS.80).aspx

Page 31: Tennis for Two, the first game console, Brookhaven National Labs, 1947 CSE 380 – Computer Game Programming Game Project Management

References• http://www.gamasutra.com/features/20010504/ahearn_01.htm

• http://www.gamasutra.com/features/19990205/homepage_01.htm

• http://www.wikipedia.com