Top Banner
Game Programming Introduction Nick Prühs
61

Game Programming 01 - Introduction

Jul 02, 2015

Download

Technology

Nick Prühs

Chapter 1 of the lecture Game Programming taught at HAW Hamburg.

About the importance of fast iterations, and how to learn from others.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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?