Upload
nick-pruehs
View
466
Download
0
Embed Size (px)
Citation preview
What WouldBlizzard
Do?
Nick Prühs
About Me
“Best Bachelor“ Computer ScienceKiel University, 2009
Master GamesHamburg University of Applied Sciences,2011
Lead ProgrammerDaedalic Entertainment, 2011-2012
Co-Founderslash games, 2013
Microsoft MVP2015
2 / 79
Gameplay First
7 / 60
Erich Schaefer. Postmortem: Blizzard's Diablo II. http://www.gamasutra.com/view/feature/131533/postmortem_blizzards
_diablo_ii.php
“First, we make the game playable as soon as possiblein the development process. Our initial priority was toget a guy moving around on the screen and hackingmonsters. This is what players would be doing most ofthe time, and it had to be fun.”
Gameplay First
8 / 79
Gameplay First
Excel CSV XML Game
9 / 79
Commit To Quality
10 / 60
Erich Schaefer. Postmortem: Blizzard's Diablo II. http://www.gamasutra.com/view/feature/131533/postmortem_blizzards
_diablo_ii.php
“The task of testing a game of Diablo II's scope, with itshuge degree of randomness and its nearly infinitecharacter skill and equipment paths, required aHerculean effort. […] Would a party of five Paladins,each using a different defensive aura, be untouchable?After more than 100 hours of play, is a fire-basedSorceress unable to continue in Hell Mode?”
Every Voice Matters
16 / 79
Every Voice Matters
17 / 79
Every Voice Matters
18 / 79
This is okay. (Endboss)
Every Voice Matters
19 / 79
This is not. (Intermediate level)
Because you wouldn't usea screwdriver on a nail...
20 / 60
StarCraft II Galaxy Editor
Because you wouldn't usea screwdriver on a nail...
21 / 60
StarCraft II Galaxy Editor
Because you wouldn't usea screwdriver on a nail...
22 / 60
StarCraft II Galaxy Editor
Because you wouldn't usea screwdriver on a nail...
23 / 60
StarCraft II MakeCombat
Because you wouldn't usea screwdriver on a nail...
24 / 60
Erich Schaefer. Postmortem: Blizzard's Diablo II. http://www.gamasutra.com/view/feature/131533/postmortem_blizzards
_diablo_ii.php
“In many cases we created tools to speed up contentcreation, but then abandoned them. Too often, wedecided to keep using inferior tools because we thoughtwe were almost done with the game, and didn't wantto take the time to improve them.Unfortunately, in most of these cases, we were notreally almost done with the game.“
Genre Standards
25 / 60
StarCraft II Screenshot
Genre Standards
26 / 60
StarCraft II Screenshot
Genre Standards
27 / 60
StarCraft II Screenshot
Genre Standards
28 / 60
StarCraft II Screenshot
Genre Standards
29 / 60
StarCraft II Screenshot
Genre Standards
30 / 60
StarCraft II Screenshot
Genre Standards
31 / 60
StarCraft II Screenshot
Genre Standards
32 / 60
StarCraft II Screenshot
Genre Standards
33 / 60
Unreal Tournament 3 Splash Screen
Genre Standards
34 / 60
Unreal Tournament 3 Login Screen
Genre Standards
35 / 60
Hostile Worlds Screen Transitions
Genre Standards
36 / 60
Steam Server Browser
Genre Standards
37 / 60
WarCraft III Lobby
Genre Standards
38 / 60
WarCraft III Loading Screen
Genre Standards
39 / 60
WarCraft III Score Screen
Genre Standards
40 / 60
StarCraft II Options Screen
Open Game Sources
41 / 60
Doom 3 GPL Release on GitHub
Open Game Sources
42 / 60
Blizzard on GitHub
Open Game Sources
43 / 60
Blizzard QT on GitHub
Open Game Sources
44 / 60
Blizzard Premake on GitHub
Project Structure
45 / 60
Windows 10 - System32 Folder
Project Structure
46 / 60
> 3000 Libraries
Project Structure
48 / 60
Hearthstone Asset Bundles
Project Structure
49 / 60
Hearthstone Data Files
Project Structure
50 / 60
StarCraft II “Mods”
Project Structure
51 / 60
StarCraft Game Folder Size
Project Structure
52 / 60
StarCraft MPQ Files
Data Structure
53 / 60
https://en.wikipedia.org/wiki/MPQ
MPQ (Mo'PaQ, short for Mike O'Brien Pack, named after its creator[citation
needed]), is an archiving file format used in several of Blizzard Entertainment's games.MPQs used in Blizzard's games generally contain a game's data files, including graphics, sounds, and level data. The format's capabilities include compression, encryption, file segmentation, extensible file metadata, cryptographic signature and the ability to store multiple versions of the same file for internationalization and platform-specific differences. MPQ archives can use a variety of compression algorithms which may also be combined.
Data Structure
54 / 60
Hearthstone Localization Files (GAMEPLAY.txt)
TAG TEXT COMMENT
GAMEPLAY_COIN_TOSS_LOST You get an extra card
GAMEPLAY_COIN_TOSS_WON You go first
GAMEPLAY_FATIGUE_TITLE Fatigue
GAMEPLAY_FATIGUE_TEXT Out of cards! Take {0} damage.
GAMEPLAY_FATIGUE_HISTORY_TEXT Trying to draw from an empty deck
deals increasing damage to your hero.
GAMEPLAY_END_TURNEND TURN
GAMEPLAY_ENEMY_TURN ENEMY TURN
GAMEPLAY_YOUR_TURN Your Turn
GAMEPLAY_ERROR_PLAY_REJECTED Too late! Your turn is over.
GAMEPLAY_MOBILE_BATTLECRY_CANCELED Battlecry canceled.
GAMEPLAY_MANA_COUNTER {0}/{1} 0=unused mana 1=current total mana
Data Structure
55 / 60
Hearthstone Data Files (BOARD.xml)
<?xml version="1.0" encoding="UTF-8"?><Dbf><Column name="ID" type="Int" /><Column name="NOTE_DESC" type="String" /><Column name="PREFAB" type="AssetPath" /><Record><Field column="ID">1</Field><Field column="PREFAB">Assets/Game/Boards/STW/STW</Field><Field column="NOTE_DESC">Stormwind</Field></Record><Record><Field column="ID">2</Field><Field column="PREFAB">Assets/Game/Boards/ORG/ORG</Field><Field column="NOTE_DESC">Orgrimmar</Field></Record>
Log Files
56 / 60
Hearthstone Log File
Platform assembly:
D:\Games\Hearthstone\Hearthstone_Data\Managed\ICSharpCode.SharpZipLib.dll (this
message is harmless)
Loading D:\Games\Hearthstone\Hearthstone_Data\Managed\ICSharpCode.SharpZipLib.dll
into Unity Child Domain
Platform assembly: D:\Games\Hearthstone\Hearthstone_Data\Managed\PlayMaker.dll
(this message is harmless)
Loading D:\Games\Hearthstone\Hearthstone_Data\Managed\PlayMaker.dll into Unity
Child Domain
Log Files
57 / 60
League of Legends Log File
Function: Spell::Effect::SpellFXRenderer::Update
Expression: false
001567.413| 0.0000kb| 0.0000kb added| ERROR| Assertion
failed!
File: E:/jenkins/workspace/game-code-Releases-4-18-public-
win32/code/Game/LoL/Spell/Effect/Client/SpellFXRenderer.cpp
Line: 854
Replays
58 / 12
BWChart
World of WarcraftLUA UI API
59 / 60
Art Guides
60 / 12
Development Blogs
61 / 60
Post-Mortem of Campus Buddies
Development Blogs
62 / 60
Post-Mortem of WarCraft
Developer Conferences
63 / 60
Post-Mortem of Ochestrator
... but don’t copy blindly!
... but don’t copy blindly!
... but don’t copy blindly!
... but don’t copy blindly!
... but don’t copy blindly!
... but don’t copy blindly!
... but don’t copy blindly!
... but don’t copy blindly!
... but don’t copy blindly!
... but don’t copy blindly!
... but don’t copy blindly!
... but don’t copy blindly!
There might even be cookies.
76 / 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 :)