Chapter 3.1 Teams and Processes. CS 44552 Programming Teams In the 1980s programmers developed the whole game (and did the art and sounds too!) Now programmers.

Slides:



Advertisements
Similar presentations
Configuration management
Advertisements

Test process essentials Riitta Viitamäki,
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
AgileMan Consulting So what the heck is Agile? It came about as a response to the high failure rate of software projects (> 60%), where failure means late,
Game Development Essentials An Introduction. Chapter 11 Production & Management developing the process.
The CRM Textbook: customer relationship training Terry James © 2006 Chapter 11: Management.
CSCE 590E Spring 2007 Game Design II By Jijun Tang.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
CSCU 411 Software Engineering Chapter 2 Introduction to Software Engineering Management.
© 2008 Pearson Prentice Hall, Experiencing MIS, David Kroenke
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
Chapter 7.1 Game Production and Management. 2 Concept Phase Where concepts come from Sequels Film licenses Technology re-use Occasionally, original concepts.
Chapter 3.1 Teams and Processes Being a programmer.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Computer Programming and Basic Software Engineering 4. Basic Software Engineering 1 Writing a Good Program 4. Basic Software Engineering 3 October 2007.
Computer/Video Game Development Karen Petersen Lead Gameplay Programmer Telltale Games.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Chapter 3.1 Teams and Processes. 2 Programming Teams In the 1980s programmers developed the whole game (and did the art and sounds too!) Now programmers.
Chapter 7.1 Game Production & Management. 2 Overview Mainstream Video games and computer games are made by large teams of people. – Big – Expensive –
1 Chapter 6 Systems Development. 2 Learning Objectives  Know the characteristics of systems development.  Understand what professional systems analysts.
SM3121 Software Technology Mark Green School of Creative Media.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Configuration Management
Software Development Unit 6.
Software Configuration Management
Gearbox Software PRODUCTION PIPELINE – JOBS TITLES – JOB DESCRIPTIONS.
1 Computer Game Development CIS 487/587 Bruce R. Maxim UM-Dearborn.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
Notes on the Game Development Process
Acquisitions, a Publisher’s Perspective Craig Duncan Development Manager External Development Studio Building the partnership between.
Game Development and Game Design academy.zariba.com 1.
EirplayMedia (c) 2009 EirplayMedia Game Production Cycle.
Lecture 18 Page 1 CS 111 Online Design Principles for Secure Systems Economy Complete mediation Open design Separation of privileges Least privilege Least.
Programming and Application Packages
Extreme Programming(XP)
Software Project Planning CS470. What is Planning? Phases of a project can be mostly predicted Planning is the process of estimating the time and resources.
Quality Attributes of Web Software Applications – Jeff Offutt By Julia Erdman SE 510 October 8, 2003.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
CSCE 552 Spring 2009 Game Design III By Jijun Tang.
COMP 208/214/215/216 Lecture 3 Planning. Planning is the key to a successful project It is doubly important when multiple people are involved Plans are.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
The Software Development Life Cycle. Software Development SDLC The Software Development Life-Cycle Sometimes called the program development lifecycle.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
SE: CHAPTER 7 Writing The Program
Team Skill 6: Building the Right System Managing Change (28)
Software Engineering Saeed Akhtar The University of Lahore Lecture 6 Originally shared for: mashhoood.webs.com.
Systems Life Cycle A2 Module Heathcote Ch.38.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
1 Software Engineering and Security DJPS April 12, 2005 Professor Richard Sinn CMPE 297: Software Security Technologies.
Maths & Technologies for Games Production Processes & Asset Management CO3303 Week 10.
MNP1163 (Software Construction).  SDLC and Construction Models  Construction Planning  Construction Measurement.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Chapter 10 Information Systems Development. Learning Objectives Upon successful completion of this chapter, you will be able to: Explain the overall process.
Oman College of Management and Technology Course – MM Topic 7 Production and Distribution of Multimedia Titles CS/MIS Department.
CS223: Software Engineering Lecture 16: The Agile Methodology.
CS223: Software Engineering Lecture 18: The XP. Recap Introduction to Agile Methodology Customer centric approach Issues of Agile methodology Where to.
Software Design and Development Development Methodoligies Computing Science.
Pete LePage Product Manager Internet Explorer Team.
CS223: Software Engineering
Software Development - Methodologies
The Software Development Cycle
References: "Software Engineering, 9th ed." (Addison-Wesley 2011)
Quality Assurance in an Agile Development Team Michelle Wu 2018 PNSQC
Extreme Programming.
The Software Development Cycle
Presentation transcript:

Chapter 3.1 Teams and Processes

CS 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 (who are the real content creators)

CS Programming Areas 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

CS 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

CS Skills and Personalities Successful teams have a mix of personalities and skills: –Experience vs. new ideas –Methodical vs. visionary

CS 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

CS 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

CS 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

CS Methodologies: Iterative Multiple development cycles during a single project –Each delivering a new set of functionality The game could ship at any moment Allows for planning but also for changes

CS 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

CS Common Practices Version control –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.

CS Common Practices Coding standards –Set of coding rules for the whole team to follow –Improves readability and maintainability of the code –Easier to work with other people's code –They vary a lot from place to place Get used to different styles

CS Common Practices Automated builds –Dedicated build server builds the game from scratch –Takes the source code and creates an executable –Also takes assets and builds them into game- specific format –Build must never break

CS Quality Code reviews –Another programmer reads over some code and tries to find problems –Sometimes done before code is committed to version control –Can be beneficial if done correctly

CS Quality Asserts and crashes –Use asserts anytime the game could crash or something could go very wrong –An assert is a controlled crash –Much easier to debug and fix –Happens right where the problem occurred –Don't use them for things that a user could do Open a non-existing file Press the wrong button

CS Quality Unit tests –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

CS Quality Acceptance test (or 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)

CS Quality 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

CS Leveraging Existing Code A lot of code that games use is the same It's a total waste of time to write it over and over Instead, spend your time in what's going to make your game unique Avoid Not Invented Here (NIH) syndrome!

CS Leveraging Existing Code Reuse code from previous project –Easier in a large company if you have an engine and tools group Use freeware code and tools –No support –Make sure license allows it

CS Leveraging Existing Code Middleware –Companies provide with components used in game development physics, animation, graphics, etc Commercial game engines –You can license the whole engine and tools and a single package –Good if you're doing exactly that type of game

CS Platforms PCs –Includes Windows, Linux, and Macs –Can have very powerful hardware –Easier to patch and allow for user content –Need to support a wide range of hardware and drivers –Games need to play nice with other programs and the operating system

CS Platforms Game consoles –Current generation PS2, Xbox, GameCube –Fixed set of hardware – never changes –Usually use custom APIs – not very mature –They have very limited resources –Currently much better sales than PC games (although that changes over time)

CS Platforms Handhelds and mobiles –Extremely limited hardware (although rapidly improving) –Programming often done in lower-level languages (C or even assembly) However, DS and PSP in C++ –Much smaller projects, teams, and budgets –Emerging market

CS Platforms Browser and downloadable games –Small games – mostly 2D –Need to be downloaded quickly –Run on the PC itself (on any browser usually)

CS Platforms Multiplatform development –The closer the platforms, the easier the development –Use abstraction layers to hide platform-specific code –Choice Target the minimum common denominator for platforms (easy, cheap), vs. do the best you can in each platform (more expensive and time consuming)

Chapter 7.1 Game Production and Management

CS Concept Phase Where concepts come from –Sequels –Film licenses –Technology re-use –Occasionally, original concepts get greenlit Producing the conceptual design Green light

CS Milestones Highly detailed, specific Quantifiable, measurable Due dates Avoid terms like “alpha” and “beta” unless clearly defined Milestone approval cycles

CS The Technical Design Document GDD is a statement of the problem; TDD is a statement of the solution Foundation for the programming work Identify technical challenges Plan for technical solutions Set forth asset format guidelines

CS Scheduling Generate task lists from GDD & TDD Plan everything –Programming –Assets –Demos –Approvals –Green lights –Vacations, holidays –QA Work backwards from completion

CS The Golden Spike May 10, 1869 – Promontory, Utah Start at both ends, work towards the middle (alpha and/or beta) The back end cannot be compressed Determine target beta date to achieve desired ship date Can game achieve beta by target date?

CS Adjusting the Schedule Add people to reduce development time? Deliver assets on time –Don’t make programmers wait for assets Prioritize feature set –Lower priority features to be done later if possible Look for bottlenecks –(feature-technology interdependencies)

CS Production Phase Programming now underway Kicking off tasks – art creation –Art lists –Art asset file naming conventions –Art asset tracking –Art asset approval cycles –Art asset delivery formats

CS Red Flag Spotting The usual causes of red flags: –Team conflicts –Personnel issues –Design problems –Money troubles –Technical glitches –Change requests –Schedule delays Take immediate action

CS Kicking Off Tasks - Audio Sound list Music specification Story text Voice-over script Creation of sounds Creation or licensing of music Recording of voice-overs

CS First Playable – Proof of Concept Keeping everyone on board –Licensor(s) –Platform holder(s) –Executives –The Team The Cerny method (google it!) Keeping the momentum going

CS The Multitasking Producer Time management Managing mid-production Expecting the unexpected Red flags in mid-production Design by committee = consensus? Late production

CS Quality Assurance Test plan The QA database QA – the view from inside The QA-producer relationship