61
Game Programming Introduction Nick Prühs

Game Programming 01 - Introduction

Embed Size (px)

DESCRIPTION

Chapter 1 of the lecture Game Programming taught at HAW Hamburg. About the importance of fast iterations, and how to learn from others.

Citation preview

Page 1: Game Programming 01 - Introduction

Game ProgrammingIntroductionNick Prühs

Page 2: Game Programming 01 - Introduction

Objectives

• To learn how to learn from others

• To get an idea of how to plan your game project

• To understand the importance of fast iterations

2 / 60

Page 3: Game Programming 01 - Introduction

Learning From Others

3 / 60

StarCraft II Galaxy Editor

Page 4: Game Programming 01 - Introduction

Learning From Others

4 / 60

StarCraft II Galaxy Editor

Page 5: Game Programming 01 - Introduction

Learning From Others

5 / 60

StarCraft II Galaxy Editor

Page 6: Game Programming 01 - Introduction

Learning From Others

6 / 60

World of Warcraft LUA UI API

Page 7: Game Programming 01 - Introduction

Learning From Others

7 / 60

Hearthstone Log File

Page 8: Game Programming 01 - Introduction

Learning From Others

8 / 60

StarCraft II Screenshot

Page 9: Game Programming 01 - Introduction

Learning From Others

9 / 60

StarCraft II Screenshot

Page 10: Game Programming 01 - Introduction

Learning From Others

10 / 60

StarCraft II Screenshot

Page 11: Game Programming 01 - Introduction

Learning From Others

11 / 60

StarCraft II Screenshot

Page 12: Game Programming 01 - Introduction

Learning From Others

12 / 60

StarCraft II Screenshot

Page 13: Game Programming 01 - Introduction

Learning From Others

13 / 60

StarCraft II Screenshot

Page 14: Game Programming 01 - Introduction

Learning From Others

14 / 60

StarCraft II Screenshot

Page 15: Game Programming 01 - Introduction

Learning From Others

15 / 60

StarCraft II Screenshot

Page 16: Game Programming 01 - Introduction

Learning From Others

16 / 60

Unreal Tournament 3 Splash Screen

Page 17: Game Programming 01 - Introduction

Learning From Others

17 / 60

Unreal Tournament 3 Login Screen

Page 18: Game Programming 01 - Introduction

Learning From Others

18 / 60

Hostile Worlds Screen Transitions

Page 19: Game Programming 01 - Introduction

Learning From Others

19 / 60

Steam Server Browser

Page 20: Game Programming 01 - Introduction

Learning From Others

20 / 60

WarCraft III Lobby

Page 21: Game Programming 01 - Introduction

Learning From Others

21 / 60

WarCraft III Loading Screen

Page 22: Game Programming 01 - Introduction

Learning From Others

22 / 60

WarCraft III Score Screen

Page 23: Game Programming 01 - Introduction

Learning From Others

23 / 60

StarCraft II Options Screen

Page 24: Game Programming 01 - Introduction

Learning From Others

24 / 60

Doom 3 GPL Release on GitHub

Page 25: Game Programming 01 - Introduction

... but don’t copy blindly!

Page 26: Game Programming 01 - Introduction

... but don’t copy blindly!

Page 27: Game Programming 01 - Introduction

... but don’t copy blindly!

Page 28: Game Programming 01 - Introduction

... but don’t copy blindly!

Page 29: Game Programming 01 - Introduction

... but don’t copy blindly!

Page 30: Game Programming 01 - Introduction

... but don’t copy blindly!

Page 31: Game Programming 01 - Introduction

... but don’t copy blindly!

Page 32: Game Programming 01 - Introduction

... but don’t copy blindly!

Page 33: Game Programming 01 - Introduction

... but don’t copy blindly!

Page 34: Game Programming 01 - Introduction

... but don’t copy blindly!

Page 35: Game Programming 01 - Introduction

... but don’t copy blindly!

Page 36: Game Programming 01 - Introduction

... but don’t copy blindly!

Page 37: Game Programming 01 - Introduction

There might even be cookies.

37 / 60

Source: UTWeap_LinkGun.uc (August UDK 2010)

/** Holds the list of link guns linked to this weapon */

var array<UTWeap_LinkGun> LinkedList; // I made a funny Hahahahah :)

Page 38: Game Programming 01 - Introduction

Project Planning

38 / 60

• I’m assuming you’ve got dedicated courses about Game Production.

• These will cover

project management models such as Waterfall and SCRUM

buffers and priorities

• I’m just gonna stick with one single advice.

Page 39: Game Programming 01 - Introduction

Project Planning

39 / 60

Don’t alter your

milestones!

Page 40: Game Programming 01 - Introduction

Major Milestones

40 / 60

• Alpha

feature-complete

no showstopper bugs

• Beta

asset-complete

no A- or B-bugs

• Master

balanced

no A-, B- or C-bugs

Page 41: Game Programming 01 - Introduction

Major Milestones

41 / 60

• Spend several weeks on each of these!

• Improve through iteration and add features one by one, in order of

priority!

• When your time’s up:

Cut all remaining features.

• It will make your game better.

Trust me.

Page 42: Game Programming 01 - Introduction

The Art of Prototyping

42 / 60

• Start off with a paper prototype!

Iterate!

• Add a prototype in an existing game engine (mod)!

Iterate!

• Document all changes, especially their motivation!

Page 43: Game Programming 01 - Introduction

The Art of Prototyping

43 / 60

Jesse Schell: The Art of Game Design

Page 44: Game Programming 01 - Introduction

The Art of Prototyping

44 / 60

Hostile Worlds – Early Screenshot

Page 45: Game Programming 01 - Introduction

The Art of Prototyping

45 / 60

Hostile Worlds – Early Screenshot(ugly, right??)

Page 46: Game Programming 01 - Introduction

Importance of Cheats

46 / 60

Hostile Worlds Prototype Cheats

Page 47: Game Programming 01 - Introduction

Importance of Cheats

47 / 60

Campus Buddies Debug Page

Page 48: Game Programming 01 - Introduction

Importance of Cheats

48 / 60

FreudBot Cheat Console

Page 49: Game Programming 01 - Introduction

Don’t Reinvent The Wheel

49 / 60

Google Guava

Page 50: Game Programming 01 - Introduction

Don’t Reinvent The Wheel

50 / 60

Joda Time

Page 51: Game Programming 01 - Introduction

Don’t Reinvent The Wheel

51 / 60

OpenCSV

Page 52: Game Programming 01 - Introduction

Don’t Reinvent The Wheel

52 / 60

Vectrosity

Page 53: Game Programming 01 - Introduction

Don’t Reinvent The Wheel

53 / 60

Spine

Page 54: Game Programming 01 - Introduction

Don’t Reinvent The Wheel

54 / 60

DOTween

Page 55: Game Programming 01 - Introduction

Don’t Reinvent The Wheel

55 / 60

UnityQuery

Page 56: Game Programming 01 - Introduction

Learning From Others II

56 / 60

Post-Mortem of Campus Buddies

Page 57: Game Programming 01 - Introduction

Learning From Others II

57 / 60

Post-Mortem of WarCraft

Page 58: Game Programming 01 - Introduction

Learning From Others II

58 / 60

Talk – Practical AI in Unity

Page 59: Game Programming 01 - Introduction

Learning From Others II

59 / 60

Post-Mortem of Ochestrator

Page 60: Game Programming 01 - Introduction

Thank you!

http://www.npruehs.de

https://github.com/npruehs

@npruehs

[email protected]

Page 61: Game Programming 01 - Introduction

5 Minute Review Session

• What existing sources can you consult when tackling a problem?

• Should you consider cutting features, and when?

• How can you easily prototype game features?

• How can you greatly speed up game testing?