Booting It Out The Door or Just Getting the Thing Finished Jan Svarovsky Kuju Entertainment.

Slides:



Advertisements
Similar presentations
First of all – lets look at the windows you are going to use. At the top you have a toolbar, with all your various tools you can use when customising your.
Advertisements

LOGO Emil Persson Head of Research Joel de Vahl Engine Programmer.
Principles of Game Design From Chapter Two in Game Design by Bob Bates.
GoodGames Storyboard. Games: More than You’d Imagine. What’s in a Game? Who Makes Games? Are you Game? Animated icon Navigation icons, select individual.
Copyright 2006 Tiffany Barnes Game Design & Development Overview of process.
(Quickly) Testing the Tester via Path Coverage Alex Groce Oregon State University (formerly NASA/JPL Laboratory for Reliable Software)
Game Design and Programming. Objectives Classify the games How games are design How games are implemented What are the main components of a game engine.
CS510 Advanced OS Seminar Class 10 A Methodology for Implementing Highly Concurrent Data Objects by Maurice Herlihy.
Introduction to Computers and Programming Class 22 Character Arrays (Strings) Professor Avi Rosenfeld.
Microprocessors Introduction to ia64 Architecture Jan 31st, 2002 General Principles.
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.
Why do people make mistakes? Learning Lite
Spelling Lists.
Gearbox Software PRODUCTION PIPELINE – JOBS TITLES – JOB DESCRIPTIONS.
Spelling Lists. Unit 1 Spelling List write family there yet would draw become grow try really ago almost always course less than words study then learned.
Notes on the Game Development Process
Transactions and Reliability. File system components Disk management Naming Reliability  What are the reliability issues in file systems? Security.
Dakota Humphries (Project Lead) Thomas Impellitteri (Tech Lead) Daryl McGhee II (Design Lead) Keith Rosier (Asset Lead)
Tero Roponen. Contents My background About the research Current status Examples Future work.
Introduction to Usability By : Sumathie Sundaresan.
Lecture 22 Miscellaneous Topics 4 + Memory Allocation.
Thinh Nguyen Spring Thinh Nguyen 5 th year undergrad Dustbusters – Spring 2013.
A lesson plan which examines anti-social behaviour (as seen in “Do the Right Thing”), presents strategies for dealing with it and for creating a more positive.
1 Lecture 19 Configuration Management Software Engineering.
11 A First Game Program Session Session Overview  Begin the creation of an arcade game  Learn software design techniques that apply to any form.
Chapter 1 What is Programming? Lecture Slides to Accompany An Introduction to Computer Science Using Java (2nd Edition) by S.N. Kamin, D. Mickunas, E.
Branching. Version Control - Branching A way to write code without affecting the rest of your team Merge branches to integrate your changes.
1 Project Information and Acceptance Testing Integrating Your Code Final Code Submission Acceptance Testing Other Advice and Reminders.
Contracting Tips… especially for very small businesses Gene Stout – Gene Stout and Associates.
Uses and features of multimedia products
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
Problem of the Day  Why are manhole covers round?
Level 2 IT Users Qualification – Unit 1 Improving Productivity JACK GOODING.
The other day I played a typing game on popcap.com… I got really far and did really well, and there came a point where I got bored.
Variables, Primitives, and Objects A Visual Learner’s Guide.
Game Maker – Getting Started What is Game Maker?.
Downloaded from made by Cape Cod Language Schoolwww.slideshare.net.
Debugging of # P. Hristov 04/03/2013. Introduction Difficult problem – The behavior is “random” and depends on the “history” – The debugger doesn’t.
 A plan of attack for your games content  Or (more specifically)  A detailed description of all games mechanics, objects, characters, stats, ect… that.
Maths & Technologies for Games Production Processes & Asset Management CO3303 Week 10.
Introduction to Usability By : Sumathie Sundaresan.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Ultimate Spider-man DS: - Creating handheld counterparts to major console titles  Brent Gibson  Lead Artist, Vicarious Visions  Jan-Erik Steel  Lead.
CHAPTER 14 Classes, Objects, and Games XNA Game Studio 4.0.
Speed Tree Let’s Make a Forest Copyright © 2015 – Curt Hill.
Programming Fundamentals. Topics to be covered Today Recursion Inline Functions Scope and Storage Class A simple class Constructor Destructor.
Listen and learn!. * “READ THE BOOKS. I don't understand why some kids think they can take a test on a book they have never read. That is actually crazy,
Version Control and SVN ECE 297. Why Do We Need Version Control?
10 Effective Website Tips Luana Mattey For Professionals in Private Practice Get Online, Get Found, Get Clients.
CSE 351 Dynamic Memory Allocation 1. Dynamic Memory Dynamic memory is memory that is “requested” at run- time Solves two fundamental dilemmas: How can.
CAPE COD LANGUAGE SCHOOl. CAPE COD LANGUAGE SCHOOL Actually.
© 2015 albert-learning.com How to talk to your boss How to talk to your boss!!
INF3110 Group 2 EXAM 2013 SOLUTIONS AND HINTS. But first, an example of compile-time and run-time type checking Imagine we have the following code. What.
Dana Nau: CMSC 722, AI Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License:
Today… Modularity, or Writing Functions. Winter 2016CISC101 - Prof. McLeod1.
In preparation for this training please read the articles ‘Using Fixture Templates’ and ‘Allotting Seeding Numbers to Sides’. If you do not have these.
WHO WE ARE Ewan McGregor (Design) Rob Madden (Environment Art) Keir Heriot (Character Art) Laurie Athey (Gameplay Programming) Gregory Foster (Engine.
Sound Practices of Games Business and Design Presented by Brian Jacobson.
WEB ANALYTICS TIPSHEET key learnings from 100+ program implementations.
Software Development Languages and Environments. Computer Languages Just as there are many human languages, there are many computer programming languages.
Calling Conventions, Caching
Section title This presentation is designed to help you talk to young people about Drive. The notes included aren’t intended to be read out, they are for.
CSE 326: Data Structures Lecture #8 Pruning (and Pruning for the Lazy)
C++ coding standard suggestion… Separate reasoning from action, in every block. Hi, this talk is to suggest a rule (or guideline) to simplify C++ code.
Chapter 5 Conclusion CIS 61.
CSE 303 Concepts and Tools for Software Development
LASER HAIR REMOVAL MACHINE. INTRODUCTION Removing hair has never been easier with the use of the laser hair removal machine that does the process effortlessly.
References Revisted (Ch 5)
SPL – PS3 C++ Classes.
Presentation transcript:

Booting It Out The Door or Just Getting the Thing Finished Jan Svarovsky Kuju Entertainment

Introduction Scope of talk and definitions So how do you finish a game –Issues that face you –Solutions to get your to your goal –Prevention - making it easier next time Conclusion and questions

Definitions - Audience Programming –But decision-makers Yet not programming –Code is the glue that holds art / design together –With power comes responsibility –Therefore talk strays into management

Definitions

Definitions - “Endgame” Deliberately woolly definition –Alpha / beta vary from game to game –Especially small projects may not have them It’s more a state of mind –Finishing not adding features –Deadlines looming –Starting to realise it’s going to be tough –Me!

Definitions - “Finished” Everything is negotiable –TRC / TCR / … –PC / Mobile can have patches –Version 2 –Often it’s in everyone’s interest to pass milestone –Feature creep

Definitions - “Finished” There are stages –Alpha / beta / milestones / publishers –Of varying importance Ultimate deadline is gold master –Still negotiable, may never have been set –Something that someone might want to buy –Always should have this one in mind

Issues that face you

Issues Current status –Existing problems Final status –Defining what you need to achieve Getting from one to the other –what will get in your way

Current status Code Gameplay –or “everything else” –mechanics eg “you can double-jump” and “there are 3 species” –content levels, storyline even custom puzzles

Current Status - code Slow Too much memory Applies to CPU, GPU, sound Buggy Not finished Wrong platform

Current Status - Gameplay Mechanics –We have control over this, have to implement it –Not finished –Is it fun? Content –We have to provide a smooth pipeline –Employ twice as many artists on half-speed pipe?

Current Status Not a problem! –Of course it’s not finished, slow, buggy –It didn’t exist at all to begin with!

What is the current status? Overall game –Chances are no-one’s played the game –Most people looking after their own section –Completeness < perceived completeness Code –No-one’s sure what’s complete –Or how buggy it is

Final Status Feature creep Feature removal The pipeline is part of your product –There’s a code pipeline too

Getting from one to the other Code and data rot Personnel coming and going Fixing bugs rather than leaving them Things that slow you down –header files –too much interconnectedness

Solutions

Mostly it’s about people and the process First section will be specific code fixes Afterwards “the rest” –I’ll imagine I’ve just turned up on your project

Specific code fixes Consoles have duplicated data –Go back to “legacy” level load system for PC Memory / Size –Often large easy fixes available –Overload operator new() to tag memory and similar for textures / sounds –Number of allocations just as bad as size

Operator new void *all_blocks; void *operator new(size_t Size, const TCHAR *tag) { void *retval = malloc(Size + 8); // create memory with extra space if (!retval) return NULL; *(void **)retval = all_blocks; // link all blocks together *all_blocks = retval; ((const TCHAR **)retval)[1] = tag; // label the memory return retval; } CTexture *tex = new(“Frontend”) CTexture(…);

Optimisation Vtune / Aprobe / SN Tuner / etc Always bigger optimisations at higher level –Do you need that many line checks? –Do you need poly/poly collision far away? Bigger optimisations at even higher level –Do you need collision at all? –Do you need that many objects Look outside programming

General fixes Believe TRC / TCR’s / etc –And that they’re there to help you Multiplayer game for feature testing –The AI behaviour emerges from humans –Game doesn’t need to be so complete

People Work hard! –Why? Because it’s their game Keep hassling people –Force people to play the game –Testers don’t mean you can avoid your job –Think outside your bit True of everyone not just leads

People - task lists You need to give people something to do But they have to see the forest for the trees –Civilians’ voices example Everyone’s just typing typing typing

People - overlapping To start with, easily definable tasks Towards the end, things overlap –“it crashes” - who’s to fix? Why is this not true on a building site? –All code can affect all other code Why is this not as true in bank systems? –Efficiency over tidiness

People - nerves Make big changes –It’s never too late actually, I do have an example where it might be –People err on the side of not changing –Tiptoeing round increasingly unstable system

Prevention It’s never too late So this overlaps with “fixes”

Pipeline Time from change being made to tested –Load times Easy to optimise –Resource creation resource machine becomes the bottleneck –Towards the end, this becomes painful Things are more set in stone Optimisations to loading may slow down resource generation

Code Pipeline Compile times –header files, precompiled headers –“Thing.h” Extract out system dependency –You’ll be changing that lots at the end

Pipeline Avoid rot with error testing code –Sensible defaults (eg green texture, flashing) –“Human-readable” errors –Errors as near as possible to their fix Animation editor example –People must care about it

Scalability Especially on PC, but true on consoles –LOD based on distance Not just of gfx, but of gameplay if you can You’re always pushing the engine You don’t commit to spec until later

Issue avoidance “it’ll all be ok in the end” Make the game complete earlier –Vertical slice –Gameplay shouldn’t rely on final art

Conclusion We all have to end projects Hope this helps Thanks and questions