SlideShare a Scribd company logo
Game Development Challenges 
Nick Prühs
About Me 
“BestBachelor“ComputerScience 
KielUniversity,2009 
MasterGames 
HamburgUniversityofAppliedSciences,2011 
LeadProgrammer 
DaedalicEntertainment,2011-2012 
Co-Founder 
slashgames,2013 
2 / 113
Diversity of Games 
3 / 113
Diversity of Games 
4 / 113
Diversity of Games 
5 / 113
Diversity of Games 
6 / 113
Diversity of Games 
7 / 113
Diversity of Games 
8 / 113
Diversity of Games 
9 / 113
Game Development Roles 
Programming 
10 / 113
Game Development Roles 
2D Art 
11 / 113
Game Development Roles 
3D Art 
12 / 113
Game Development Roles 
Game Design 
13 / 113
Game Development Roles 
Sound Design 
14 / 113
Game Development Roles 
Cinematic Art 
15 / 113
Game Development Roles 
Game Author 
16 / 113
Game Development Roles 
Level Designer 
17 / 113
Game Development Roles 
Technical Artist 
18 / 113
Game Development Roles 
Localization 
19 / 113
Game Development Roles 
Producer 
20 / 113
Game Development Roles 
QA & Support 
21 / 113
Game Development Roles 
Marketing 
22 / 113
Game Development Roles 
PR 
23 / 113
Game Development Roles 
Community Management 
24 / 113
Game Development Roles 
Analytics 
25 / 113
Art Pipelines 
26 / 113
Art Pipelines 
27 / 113
Art Pipelines 
28 / 113
Art Pipelines 
29 / 113
Game Engines 
30 / 113
Game Engines 
31 / 113
Game Engines 
32 / 113
Game Engines 
33 / 113
Game Engines 
34 / 113
Example: Physics 
35 / 113
Example: Physics 
36 / 113
Example: Physics 
37 / 113 
−휖푣퐴퐵푛 
= 
푣퐴퐵 ′푛 
definition 
coefficient of restitution 
= 
(푣퐴′ −푣퐵′ )푛 
definition 
relativevelocity 
= 
(푣퐴+ 푗 푀퐴 푛−푣퐵+ 푗 푀퐵 푛)푛 
definition 
collision impulse 
= 
푣퐴푛+ 푗 푀퐴 푛푛−푣퐵푛+ 푗 푀퐵 푛푛 
distribution 
= 
푣퐴푛−푣퐵푛+ 푗 푀퐴 푛푛+ 푗 푀퐵 푛푛 
commutativeproperty 
= 
푣퐴퐵푛+ 푗 푀퐴 푛푛+ 푗 푀퐵 푛푛 
definition 
relativevelocity
Lessons Learned 
38 / 113
Campus Buddies 
39 / 113
Campus Buddies 
40 / 113
Campus Buddies 
41 / 113
Campus Buddies 
42 / 113
Campus BuddiesFeatures 
•Sharing ads using multiple channels (Email, Facebook, Twitter, Google+) 
•Lead verification as specified by Yourfone 
•Authentication by different providers (username/password, Facebook) 
•Classical gamification mechanics (achievements, level ups, …) 
•Periodic competitions resolved by the server 
•Dynamic news stream 
•Full moderation backend 
•Responsive mobile version 
•Facebook OpenGraph integration 
•Friend referral program 
•Customized reportings 
•Secure reward shop 
•Stateless Scalable Web Application 
•SSL-Encryption 
43 / 113
Campus BuddiesFeatures 
44 / 113 
Development Scope 
10 Weeks
Lessons Learned 
45 / 113
Gotcha! 
LESSON 1: 
ExpectchangesofexternalAPIs! 
46 / 113
External APIs 
47 / 113 
•Integrated three of the major social platforms: Facebook, Twitter and Google+ 
•During the development process, both Facebook and Google+ changed their APIs… 
•… effectively turning some of our code into useless rubbish 
•Took about a day or two to get everything up and running again
External APIs 
48 / 113
External APIs 
49 / 113 
•Talking to other web developers, we learned that social platform providers tend to change their APIs regularly 
•They won’t notify you about that. 
•Neither before, nor after. 
•Never.
Hint 
LESSON 2: 
Avoiddoingeverythingyourself! 
50 / 113
Don’t Reinvent The Wheel 
51 / 113 
•Got a problem that is not exactly related to just your application? 
•Maybe someone else has already solved it. 
•There’s lots of smart people having spent tens of hundreds of hours on your problem. 
•Use that knowledge!
Don’t Reinvent The Wheel 
52 / 113
Hint 
LESSON 3: 
Maketestingaseasy aspossible! 
53 / 113
Make testing easy! 
54 / 113 
Atthebeginningoftheproject,Christianhadtheideaofcreatingadebugwebpagecontaininglinksforseveraldebugfunctions 
•creating and logging in a test user 
•adding points for the current user 
•unlocking achievements 
•and many, many more
Make testing easy! 
55 / 113
Make testing easy! 
56 / 113 
This was arguably the best idea we had throughout the project.
Make testing easy! 
57 / 113 
•Debugging can be a pain in the ass 
•especially when network communication is involved 
•Our debug page saved us lots of blood, sweat and tears 
•The earlier you set up your debugging tools, the more you’ll benefit from them
Hint 
LESSON 4: 
Makedeploymentaseasy aspossible! 
58 / 113
Deploy often! 
59 / 113 
Creating a new version can involve a step or two: 
•Accessing source control 
•Syncing working copy 
•Creating tags 
•Writing version numbers 
•Performing the actual build 
•Packaging the build result 
•Publishing the game on a build page 
•Running unit tests 
•Sending email notifications
Deploy often! 
60 / 113
Deploy often! 
You wouldn’t wanna do all that by hand. 
Every time. 
Do you? 
61 / 113
Campus BuddiesLessons Learned 
62 / 113
Hint 
LESSON 5: 
Mock networkinteractionfortesting! 
63 / 113
Mocking 
•Everything that involves network communication is annoying to test. 
•Wemockedparts of the remote interaction of our application 
•sending e-mails 
•verifying leads 
•Whenever a mail was sent, it was written to the console instead, for instance. 
64 / 113
Mocking 
2013-05-19 19:36:29,980 -[INFO] -from applicationMOCK MAILER: send email 
2013-05-19 19:36:29,982 -[INFO] -from applicationFROM:"yourfone.deCampus Buddies" <keineantwort@campus-buddies.de> 
2013-05-19 19:36:29,983 -[INFO] -from applicationTO:"Nick" <mail@npruehs.de> 
2013-05-19 19:36:29,985 -[INFO] -from applicationTEXT: 
<html> <head> <title> ... 
65 / 113
Mocking 
Thisallowedustocheckallpartsofourapplicationthatincludesendingmailswithouthavingtospamour(oreveryones…)inboxes. 
66 / 113
Campus BuddiesLessons Learned 
67 / 113
Gotcha! 
LESSON 6: 
Standardizeyourcodestyle! 
68 / 113
Consistent Code Style 
•If you aren’t alone (and I sincerely hope you’re not), you’ll want to standardize your code styles. 
•Be clear about tiny details such as tabs vs. spaces 
•greatly increases maintainability 
•reduces the number of merge conflicts 
69 / 113
Merge Conflict 
70 / 113
StyleCop 
71 / 113
StyleCop 
72 / 113
Eclipse 
73 / 113
Eclipse 
74 / 113
Lessons Learned 
75 / 113
FreudBot 
76 / 113
FreudBot 
77 / 113
FreudBot 
78 / 113
FreudBot 
79 / 113
FreudBot Features 
•46 levels, 17 animated characters, 10 screens, 137 cards, 4 comics, 10 000 words, 45 sounds 
•Dedicated website and social media channels 
•Multiple ad providers and in-app purchases 
•Fully localized to five different languages 
•Full analytics integration 
•Cloud savegames 
•Native mobile features (loading screen, snap mode, suspend, charms, toasts) 
•Marketing (fan art, card contest, trailer, contests) 
•Multi-platform release on iOS, Android, Windows Store, Windows Phone (Windows and Mac to come) 
80 / 113
Lessons Learned 
81 / 113
Hint 
LESSON 1: 
Usea feature-basedprojectstructure! 
82 / 113
Feature Folders 
•Project Root 
•FingerGestures 
•FreudBot 
•HOTween 
•NGUI 
•NData 
•Unity Test Tools 
83 / 113
Feature Folders 
•Project Root 
•FingerGestures 
•FreudBot 
•Animations 
•Atlases 
•Fonts 
•Localization 
•Prefabs 
•Scenes 
•Sounds 
•Sprites 
•Scripts 
•HOTween 
•NGUI 
•NData 
•Unity Test Tools 
84 / 113
Feature Folders 
•Project Root 
•FreudBot 
•Scripts 
•Ads 
•Analytics 
•Comics 
•Core 
•Debug 
•Dialogue 
•IAP 
•Mobile 
•Progression 
•Sound 
•UI 
85 / 113
Feature Folders 
•Project Root 
•FreudBot 
•Scripts 
•Ads 
•Components 
•Events 
•Systems 
86 / 113
Feature Folders 
This way, features and plugins can easily be updated or removed without having to scan the full project tree. 
87 / 113
Hint 
LESSON 2: 
Collaborationfirst! 
88 / 113
Collaborationfirst! 
89 / 113
Collaborationfirst! 
Excel 
CSV 
XML 
Game 
90 / 113
Collaborationfirst! 
Excel 
CSV 
XML 
Game 
91 / 113
FreudBotLessons Learned 
Let everyone work with the tools they’re most experienced with, and provide a tool chain for data conversion as soon as possible. 
92 / 113
Hint 
LESSON 3: 
Listen toyourplayers! 
93 / 113
Analytics 
94 / 113
Analytics 
95 / 113
Analytics 
96 / 113 
This is okay. (Endboss)
Analytics 
97 / 113 
This is not. (Intermediate level)
Gotcha! 
LESSON 4: 
Don‘tforgetthetutorial! 
98 / 113
Tutorials 
99 / 113
Tutorials 
•Have players test your game early on 
•Don’t talk, just watch and listen. 
•Don’t underestimate the time required for implementing your tutorial. It introduces many special cases, such as 
•Prohibiting player actions (e.g. use ability, end turn) 
•Triggering unusual events (e.g. let turn timers expire) 
•TweeningUI in step by step 
•Providing fixed outcomes (e.g. always same card hand) 
100 / 113
Hint 
LESSON 5: 
There‘s2D skeletalanimation! 
101 / 113
Spine 
102 / 113
Spine Atlas Image 
103 / 113
Spine Atlas File 
104 / 113
Spine Animation File 
105 / 113
FreudBotLessons Learned 
106 / 113
Gotcha! 
LESSON 6: 
Localizationisa bitch! 
107 / 113
Localization Sheet 
108 / 113
Localization Pipeline 
109 / 113 
Game 
XML 
CSV 
Excel 
CSV 
XML
Localization Best Practice 
•Use unique, immutable localization keys 
•Changing any localization keys will invalidate any sheets handed out to your localization team 
•Highlight new texts, changed texts 
•These additional texts will have to be localized later 
•Provide a playable version of your game, as well as rich background information (e.g. characters, places) 
•People need to know the game before they can localize it. 
•Allow instant integration of the localized texts, if possible 
•Localization team can check for encoding issues, overlapping labels, missing texts immediately 
110 / 113
And there is more… 
•Learn from others! 
•Stick to your plan! 
•Build prototypes! 
•Use automatic testing! 
•Setup proper version control workflows! 
111 / 113
And there is more… 
•Learn from others! 
•Stick to your plan! 
•Build prototypes! 
•Use automatic testing! 
•Setup proper version control workflows! 
See Game Programminghttp://www.npruehs.de/teaching/game-programming/ 
Monday, 8.30 am, E 45 
112 / 113
Thankyouforyourattention! 
Contact 
Mail 
dev@npruehs.de 
Blog 
http://www.npruehs.de 
Twitter 
@npruehs 
Github 
https://github.com/npruehs 
113 / 113

More Related Content

PDF
Scrum - but... Agile Game Development in Small Teams
PDF
Eight Rules for Making Your First Great Game
PDF
Game Programming 05 - Development Tools
PDF
Component-Based Entity Systems (Demo)
PDF
What Would Blizzard Do
PDF
Game Programming 13 - Debugging & Performance Optimization
PDF
Game Programming 09 - AI
PDF
School For Games 2015 - Unity Engine Basics
Scrum - but... Agile Game Development in Small Teams
Eight Rules for Making Your First Great Game
Game Programming 05 - Development Tools
Component-Based Entity Systems (Demo)
What Would Blizzard Do
Game Programming 13 - Debugging & Performance Optimization
Game Programming 09 - AI
School For Games 2015 - Unity Engine Basics

What's hot (19)

PDF
Style & Design Principles 03 - Component-Based Entity Systems
PDF
Game Programming 08 - Tool Development
PDF
Game Programming 07 - Procedural Content Generation
PDF
Game Programming 12 - Shaders
PDF
Game Programming 01 - Introduction
PDF
Game Programming 06 - Automated Testing
PDF
Game Programming 04 - Style & Design Principles
PPTX
GameDev 2017 - Анатолій Ландишев "AAA architecture in Unity3D"
PPTX
Maximize Your Production Effort (English)
PDF
Under the Wire PowerShell workshop - BSides Augusta 2018
PPTX
Owning windows 8 with human interface devices
PPTX
More fun using Kautilya
DOCX
Y1 gd engine_terminology ig2 game engines
DOCX
Y1 gd engine_terminology ig2 game engines
PDF
Confrontation Pipeline and SCons
PPTX
Supersize your production pipe enjmin 2013 v1.1 hd
PPTX
PPTX
Kautilya: Teensy beyond shell
DOC
Y1 gd engine_terminologY
Style & Design Principles 03 - Component-Based Entity Systems
Game Programming 08 - Tool Development
Game Programming 07 - Procedural Content Generation
Game Programming 12 - Shaders
Game Programming 01 - Introduction
Game Programming 06 - Automated Testing
Game Programming 04 - Style & Design Principles
GameDev 2017 - Анатолій Ландишев "AAA architecture in Unity3D"
Maximize Your Production Effort (English)
Under the Wire PowerShell workshop - BSides Augusta 2018
Owning windows 8 with human interface devices
More fun using Kautilya
Y1 gd engine_terminology ig2 game engines
Y1 gd engine_terminology ig2 game engines
Confrontation Pipeline and SCons
Supersize your production pipe enjmin 2013 v1.1 hd
Kautilya: Teensy beyond shell
Y1 gd engine_terminologY
Ad

Viewers also liked (14)

PDF
Game Programming 03 - Git Flow
PDF
Game Programming 10 - Localization
PDF
Tool Development A - Git
PDF
Game Programming 02 - Component-Based Entity Systems
PDF
Game Programming 11 - Game Physics
PPTX
Game Business Development
PDF
Game Models - A Different Approach
PDF
Entity System Architecture with Unity - Unite Europe 2015
PDF
Designing an actor model game architecture with Pony
PPTX
Learning Game Development
PDF
ECS architecture with Unity by example - Unite Europe 2016
PDF
Clean, fast and simple with Entitas and Unity - Unite Melbourne 2016
PPT
inlusio | game development process
PPTX
LAFS SVI Level 6 - Game Development
Game Programming 03 - Git Flow
Game Programming 10 - Localization
Tool Development A - Git
Game Programming 02 - Component-Based Entity Systems
Game Programming 11 - Game Physics
Game Business Development
Game Models - A Different Approach
Entity System Architecture with Unity - Unite Europe 2015
Designing an actor model game architecture with Pony
Learning Game Development
ECS architecture with Unity by example - Unite Europe 2016
Clean, fast and simple with Entitas and Unity - Unite Melbourne 2016
inlusio | game development process
LAFS SVI Level 6 - Game Development
Ad

Similar to Game Development Challenges (20)

PDF
Augernaut js
PDF
Testing Blockbuster Games: Lessons for All Testers
PPTX
2016 NDC - 모바일 게임 서버 엔진 개발 후기
PPTX
Bridging the Gap: Lessons in Adversarial Tradecraft
PPTX
From SLO to GOTY
PPTX
Bridging the Gap
PPTX
Sandbox detection: leak, abuse, test - Hacktivity 2015
PPTX
Software Security : From school to reality and back!
KEY
Beyond TDD: Enabling Your Team to Continuously Deliver Software
PPTX
Deploying ML models to production (frequently and safely) - PYCON 2018
PDF
RAD Studio XE5 in Action Tech Preview
PDF
Owasp tds
PDF
ProdSec: A Technical Approach
PDF
OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...
PDF
Quality Assurance 1: Why Quality Matters
PPTX
Game Development with TouchDevelop
PDF
Truth and Consequences
PDF
Groovy Domain Specific Languages - SpringOne2GX 2012
PPTX
A Tale Of Ten SDKs: Cross-Platform Development Best Practices - Unite LA
PDF
"How To Race Squirrels" at Develop Conference in Brighton, 21st July 2011
Augernaut js
Testing Blockbuster Games: Lessons for All Testers
2016 NDC - 모바일 게임 서버 엔진 개발 후기
Bridging the Gap: Lessons in Adversarial Tradecraft
From SLO to GOTY
Bridging the Gap
Sandbox detection: leak, abuse, test - Hacktivity 2015
Software Security : From school to reality and back!
Beyond TDD: Enabling Your Team to Continuously Deliver Software
Deploying ML models to production (frequently and safely) - PYCON 2018
RAD Studio XE5 in Action Tech Preview
Owasp tds
ProdSec: A Technical Approach
OSDC 2016 - Continous Integration in Data Centers - Further 3 Years later by ...
Quality Assurance 1: Why Quality Matters
Game Development with TouchDevelop
Truth and Consequences
Groovy Domain Specific Languages - SpringOne2GX 2012
A Tale Of Ten SDKs: Cross-Platform Development Best Practices - Unite LA
"How To Race Squirrels" at Develop Conference in Brighton, 21st July 2011

More from Nick Pruehs (10)

PDF
Unreal Engine Basics 06 - Animation, Audio, Visual Effects
PDF
Unreal Engine Basics 05 - User Interface
PDF
Unreal Engine Basics 04 - Behavior Trees
PDF
Unreal Engine Basics 03 - Gameplay
PDF
Unreal Engine Basics 02 - Unreal Editor
PDF
Unreal Engine Basics 01 - Game Framework
PDF
Game Programming - Cloud Development
PDF
Game Programming - Git
PDF
Game Programming 00 - Exams
PDF
Tool Development 10 - MVVM, Tool Chains
Unreal Engine Basics 06 - Animation, Audio, Visual Effects
Unreal Engine Basics 05 - User Interface
Unreal Engine Basics 04 - Behavior Trees
Unreal Engine Basics 03 - Gameplay
Unreal Engine Basics 02 - Unreal Editor
Unreal Engine Basics 01 - Game Framework
Game Programming - Cloud Development
Game Programming - Git
Game Programming 00 - Exams
Tool Development 10 - MVVM, Tool Chains

Recently uploaded (20)

PPTX
Big Data Technologies - Introduction.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
KodekX | Application Modernization Development
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Spectroscopy.pptx food analysis technology
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
Big Data Technologies - Introduction.pptx
Review of recent advances in non-invasive hemoglobin estimation
Digital-Transformation-Roadmap-for-Companies.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
KodekX | Application Modernization Development
Diabetes mellitus diagnosis method based random forest with bat algorithm
sap open course for s4hana steps from ECC to s4
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Unlocking AI with Model Context Protocol (MCP)
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Electronic commerce courselecture one. Pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Machine learning based COVID-19 study performance prediction
Spectroscopy.pptx food analysis technology
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Network Security Unit 5.pdf for BCA BBA.

Game Development Challenges