SlideShare una empresa de Scribd logo
1 de 47
Descargar para leer sin conexión
Creative Engineering 101
Tom Mejias
Who am I?
● Tom Mejias
● Creative Engineer @ Space Ape
● 10 years industry experience across console & mobile
● Specialisation in Gameplay / UX / Creative
● Blizzard fanboy / whale
Who are Space Ape?
● 6 years old
● Mobile Focus: 4 Games Released
○ Samurai Siege
○ Rival Kingdoms
○ Transformers
○ Fastlane
● Lots of new games & genres in the pipeline
● Recently part acquired by Supercell, creator of Clash of Clans
What will you learn today?
● Engineering & Industry Overview
● What is Creative Engineering
● How to do it
● What to keep in mind
● What to make
● What to learn
Engineering & Industry
Overview
Engineering Roles
Specialist (Depth)
● Gameplay
● UI
● Audio
● Engine
● Graphics/Rendering
● Tools
● Networking
● AI
Generalist (Breadth)
● Broader, but shallower
understanding of a number of the
disciplines above
● Can work on many areas at once
Engineering Roles
Generalist (Breadth)
● Broader, but shallower
understanding of multiple
disciplines
● Can work on many areas at once
Specialist (Depth)
● Gameplay
● UI
● Audio
● Engine
● Graphics/Rendering
● Tools
● Networking
● AI
Console / AAA
● Specialists more desirable
● Large teams -> Less agile
● More crunch
● Smaller cog in a big machine
● Established companies more
secure
The Industry
Mobile / Startup / Indie
● Generalists more desirable
● Smaller teams -> More agile
● Less crunch
● More personal impact
● Startups & Indie can be less secure
Console / AAA
● Specialists more desirable
● Large teams -> Less agile
● More crunch
● Smaller cog in a big machine
● Established companies more
secure
The Industry
Mobile / Startup / Indie
● Generalists more desirable
● Smaller teams -> More agile
● Less crunch
● More personal impact
● Startups & Indie can be less secure
What is creative
engineering?
My Engineering Focus
Labels / Responsibilities
● Gameplay Engineering
● Creative Engineering
● Rapid Development
● Concept Validation
● Prototyping
Scary mind map on the next slide, be warned!
High Level Overview
Internalise the mantra
“Write good, extendible code fast and for the express purpose of validating
a hypothesis”
High Level Overview
Internalise the mantra
“Write good, extendible code fast and for the express purpose of validating
a hypothesis”
● Being efficient with time
● Not duplicating code
● Not getting stuck in a code spaghetti loop
● Always thinking ahead
High Level Overview
Internalise the mantra
“Write good, extendible code fast and for the express purpose of validating
a hypothesis”
● Focusing on the user experience
● Focusing on feedback mechanisms
● Focusing on quality of play
● Focusing on answering your questions
How to do it?
Write Good Code
● Prototyping doesn't mean write bad code
● Refactor often & obsessively
● Scavenge code and refactor it, don't write it again
● Requirements will change, make your code extendible where you can
● Don’t get caught over optimizing
● Still be a means to an end programmer
Make Yourself a Toolkit
Most games have very similar common systems.
● Health System
● Damage System
● Buff System
● Ability System
● Stats Tracking System
● Profile / Persistence Systems
● UI / Dialog Systems
● Animation / Transition Systems
● Common architectural patterns
Make them generic and slot them in to every prototype you make.
Scavenge What You Can
Code
● Open source projects
● Your toolkit & past projects
Art
● Unity Asset Store
● Images.google.com
● poly.google.com
UX
● Find strong references to replicate and for inspiration
Plan your features
1. What - What is the feature you're about to make?
2. Why - Why are you making this feature, how does it tie in to your vision?
3. How - How could you go about building this feature?
4. Where - Where could you put this feature in order the maximise it's
extendibility
5. How - Now you know where, how could you build this feature to
maximise it's extendibility
6. When - Now you know the full picture, when should you do it?
Design for your players
● Have a good idea what you want your players to feel from every
mechanic
● Have a plan on how to elicit that feeling from them
● Q: Is this system here because it’s fun for me to write or because it’s fun
for the player?
● Show, don’t tell, the player wherever possible
● Keep it simple, stupid!
Summary
1. Get yourself into the habit of refactoring early. The longer you leave it,
the harder it will be to do
2. Make yourself a set of standalone systems that perform tasks, you will
move much faster by doing this
3. Be a scavenger
4. Always have a plan
5. Design for your players
What should I keep in mind?
Think about your scope
● Collate a wishlist of mechanics / abilities / interactions first
● Slice through them to find common systems / patterns
● Evaluate and prioritise what systems to make by how much value they
unlock
● This process will help you make more extendible code by forcing
yourself to think ahead and create flexible systems
Think about where you are
● Game Jam - Focus is on the interaction, forget about content, fake as
much stuff as humanly possible
● Prototyping - Focus is on the interaction and its interaction with
content, make things as multi-purpose as possible
● Production - Focus is on performance and maintainability, make things
as safe, understandable and single-purpose as possible
The Space Ape “Funnel”
Proof of
Concept
Spark
Prototyping
What is the game?
Can and should we
make it?
Make it and test it, and
then make it again!
Agile
Production
Think about your audience
● Internal prototype to a team? - Focus on the mechanic, loosen up on the
usability
● Internal prototype to a company? - Focus on the mechanic and the
usability equally
● External prototype to a user group? - Focus on the usability above all
Think of when/what/who to show
● First impressions will last through a prototype
● People are always most engaged the first time they try something new
● Show to a rotating subset of people
● Only show if you have a question you need answering, or to test
usability
● If you run surveys/playtests, have a consistent set of questions so you
can see change over time
Summary
1. Think ahead to be flexible
2. Form good habits while planning
3. Think holistically about your place in the project lifecycle
4. Think about your target audience, have empathy
5. Consider when, what, why and who to show work to
What should I make?
Have a strong vision
● The most important thing while making a game is having a clear,
consistent, and objective understanding of what you are making
● This is often called ‘the vision’
● There is often a ‘vision holder’ on a team who is in control of the vision
● The vision needs to be communicated clearly to everyone on the team
● There are many ways of finding and maintaining the vision
The Promise
1. Describe your vision for the game in a single statement
2. When adding a feature; does it “fit” with the statement?
3. Yes? Great! Continue on with implementation
4. No? Either the feature doesn't “fit” or the vision has changed, work that
out before continuing
5. If you updated the vision, reflect on previous features and their place
with the new vision
6. Repeat
The Promise
“A strategic mobile game where I play a commander of
an elite squad, outsmarting a real opponent to win in
quick, FPS-themed scenarios.”
“A racing themed game which gives me the fun,
competition, control and longevity I get from playing
Mario Kart.”
The Promise
“A strategic mobile game where I play a commander of
an elite squad, outsmarting a real opponent to win in
quick, FPS-themed scenarios.”
“A racing themed game which gives me the fun,
competition, control and longevity I get from playing
Mario Kart.”
Pillars / Ideation Gates
1. Describe your vision as a set of pillars to keep you honest
2. Ensure that for any new features, these pillars still remain strong
● This is especially useful when trying to filter out what NOT to make.
● If you develop a set of pillars; when you are brainstorming for new ideas
you can self validate by rating them out of 5 in each of your pillars and
culling ideas with low scores across the board
Pillars / Ideation Gates
Mobile
First
Evergreen
Gameplay
Scalable
Opportunity
for Mastery
Player Driven
Content
Know Your Complexity
1. Know where the complexity will exist in your game
○ Visual Complexity (visual noise, effects, reduced clarity, chaos, movement, camera shakes)
○ Cognitive Complexity (strategy of abilities, game state awareness, game rule combinations)
○ Interaction Complexity (input timing, frequency, accuracy, intuitiveness)
2. Make sure neither of the 3 complexities are too high and offset high
complexity in one with low in the others
3. Keep your complexities balanced! If you rate each complexity category
out of 5, aim for a grand total of 7 combined
Chart Your Complexity
(Complexity)
~ 7 = About Right?
<< 7 = Too Shallow?
>> 7 = Too Core?
Summary
1. Employ methods to find and maintain a strong vision
2. Think about how to best describe your vision
3. Think about ways to validate the levels of complexity
4. Think about “the opportunity”
What should I learn?
Learn User Experience
● Easy to understand - If you can't explain it in a sentence, either it
shouldn't be user facing or it doesn't belong in the game
● Does what is expected - Spend the lion's share of your time and effort
on making sure your UI/UX makes sense, feels good and guides the
player
● Good feedback on actions - If the user does a thing, always do a thing,
then tell them how great it is they just did a thing
Learn 3D Maths
Seriously guys, just learn the following by heart, they are on every interview
● Vectors - Used for everything, from positions to rotations to velocities.
● Dot Product - Used in almost everything, think of it as “how similar are
these two vectors”
● Cross Product - Used a lot, think of it as “find the perpendicular vector”
● Quaternions - Just understanding their benefits/drawbacks is a start,
look up gimbal lock and slerping
● Matrices - Mostly useful in rendering and mesh generation, really good
to be comfortable with them
Learn Common Design Patterns
Communication Strategies
● Event Bus
● Signals
General Game Architectures
● Entity Component System (Data Oriented Design) (See: Entitas)
● Model/View Separation
Inversion of Control
● Dependency Injection Frameworks (See: Zenject)
● Constructor/Interface Injection
Learn Data Structures
● Understand the pros and cons between all the major data structures
● Try and always think of your data structures first before making
anything else
● Write your own versions of the popular containers to understand how
they work, this will always be asked in interviews
● For better or worse, interviewers ALWAYS ask you to write a linked list
implementation on a whiteboard. Just learn it.
● Maybe even take a look at unit testing, for bonus points
Be Experienced
● It’s so easy to make games nowadays, go make one (now that you have
the time to do it!)
● Learn Unity & C# if you want to get into mobile
● Learn Unreal & C++ if you want to get into console
● If you don’t want to make a whole game, try implementing individual
mechanics you like from existing games - you can use them for a
portfolio!
● Let yourself be inspired and don’t let yourself get jaded
Summary
1. Value your end user; focus on their experience
2. Learn to manipulate 3D maths concepts effortlessly
3. Learn common design patterns
4. Be comfortable with all the popular data structures
5. Get experience everywhere you can
6. Be inspired and be inspiring
More Info
VARSITY@SPACEAPEGAMES.COM
QUESTIONS?

Más contenido relacionado

La actualidad más candente

On the way to good Game Design
On the way to good Game DesignOn the way to good Game Design
On the way to good Game DesignAndrew Dotsenko
 
LAFS PREPRO Session 7 - Staffing
LAFS PREPRO Session 7 - StaffingLAFS PREPRO Session 7 - Staffing
LAFS PREPRO Session 7 - StaffingDavid Mullich
 
LAFS PREPRO Session 2 - Game Concepts
LAFS PREPRO Session 2 - Game ConceptsLAFS PREPRO Session 2 - Game Concepts
LAFS PREPRO Session 2 - Game ConceptsDavid Mullich
 
Lessons from the Trenches of Learning Game Design
Lessons from the Trenches of Learning Game DesignLessons from the Trenches of Learning Game Design
Lessons from the Trenches of Learning Game DesignSharon Boller
 
A Primer On Play: How to use Games for Learning and Results
A Primer On Play: How to use Games for Learning and ResultsA Primer On Play: How to use Games for Learning and Results
A Primer On Play: How to use Games for Learning and ResultsSharon Boller
 
Digital Learning Game Design: Lessons from the Trenches
Digital Learning Game Design: Lessons from the TrenchesDigital Learning Game Design: Lessons from the Trenches
Digital Learning Game Design: Lessons from the TrenchesSharon Boller
 
DoubleDutch Games: Teaching Game Design
DoubleDutch Games: Teaching Game DesignDoubleDutch Games: Teaching Game Design
DoubleDutch Games: Teaching Game DesignDevGAMM Conference
 
2. initial plans finished
2. initial plans finished2. initial plans finished
2. initial plans finishedLouisbiddles7
 
Building Gameplay
Building GameplayBuilding Gameplay
Building GameplayBen Garney
 
Developing your Agile skills through social Games
Developing your Agile skills through social GamesDeveloping your Agile skills through social Games
Developing your Agile skills through social GamesAgile Montréal
 
Teaching Game Design to Teach Interaction Design
Teaching Game Design to Teach Interaction DesignTeaching Game Design to Teach Interaction Design
Teaching Game Design to Teach Interaction DesignChristina Wodtke
 
Boston games forum universal design lessons - dave bisceglia
Boston games forum   universal design lessons - dave biscegliaBoston games forum   universal design lessons - dave bisceglia
Boston games forum universal design lessons - dave biscegliaElizabeth Cormack
 
LAFS SVI Level 1 - Introduction
LAFS SVI Level 1 - IntroductionLAFS SVI Level 1 - Introduction
LAFS SVI Level 1 - IntroductionDavid Mullich
 
Bethesda's Iterative Level Design Process for Skyrim and Fallout 3
Bethesda's Iterative Level Design Process for Skyrim and Fallout 3Bethesda's Iterative Level Design Process for Skyrim and Fallout 3
Bethesda's Iterative Level Design Process for Skyrim and Fallout 3Joel Burgess
 
Play to Learn: Learning Games and Gamification that Get Results
Play to Learn: Learning Games and Gamification that Get ResultsPlay to Learn: Learning Games and Gamification that Get Results
Play to Learn: Learning Games and Gamification that Get ResultsHRDQ-U
 
Jeongseoyeon [Monster Super League] Report on 15% improvement in player reten...
Jeongseoyeon [Monster Super League] Report on 15% improvement in player reten...Jeongseoyeon [Monster Super League] Report on 15% improvement in player reten...
Jeongseoyeon [Monster Super League] Report on 15% improvement in player reten...Jeong Seoyeon
 
'Another Case Solved' post-mortem
'Another Case Solved' post-mortem'Another Case Solved' post-mortem
'Another Case Solved' post-mortemArtur Ganszyniec
 

La actualidad más candente (20)

On the way to good Game Design
On the way to good Game DesignOn the way to good Game Design
On the way to good Game Design
 
LAFS PREPRO Session 7 - Staffing
LAFS PREPRO Session 7 - StaffingLAFS PREPRO Session 7 - Staffing
LAFS PREPRO Session 7 - Staffing
 
LAFS PREPRO Session 2 - Game Concepts
LAFS PREPRO Session 2 - Game ConceptsLAFS PREPRO Session 2 - Game Concepts
LAFS PREPRO Session 2 - Game Concepts
 
Lessons from the Trenches of Learning Game Design
Lessons from the Trenches of Learning Game DesignLessons from the Trenches of Learning Game Design
Lessons from the Trenches of Learning Game Design
 
A Primer On Play: How to use Games for Learning and Results
A Primer On Play: How to use Games for Learning and ResultsA Primer On Play: How to use Games for Learning and Results
A Primer On Play: How to use Games for Learning and Results
 
Digital Learning Game Design: Lessons from the Trenches
Digital Learning Game Design: Lessons from the TrenchesDigital Learning Game Design: Lessons from the Trenches
Digital Learning Game Design: Lessons from the Trenches
 
Game prototyping 101
Game prototyping 101Game prototyping 101
Game prototyping 101
 
DoubleDutch Games: Teaching Game Design
DoubleDutch Games: Teaching Game DesignDoubleDutch Games: Teaching Game Design
DoubleDutch Games: Teaching Game Design
 
2. initial plans finished
2. initial plans finished2. initial plans finished
2. initial plans finished
 
Building Gameplay
Building GameplayBuilding Gameplay
Building Gameplay
 
Developing your Agile skills through social Games
Developing your Agile skills through social GamesDeveloping your Agile skills through social Games
Developing your Agile skills through social Games
 
Teaching Game Design to Teach Interaction Design
Teaching Game Design to Teach Interaction DesignTeaching Game Design to Teach Interaction Design
Teaching Game Design to Teach Interaction Design
 
Gameplay Concept Tool
Gameplay Concept ToolGameplay Concept Tool
Gameplay Concept Tool
 
Boston games forum universal design lessons - dave bisceglia
Boston games forum   universal design lessons - dave biscegliaBoston games forum   universal design lessons - dave bisceglia
Boston games forum universal design lessons - dave bisceglia
 
LAFS SVI Level 1 - Introduction
LAFS SVI Level 1 - IntroductionLAFS SVI Level 1 - Introduction
LAFS SVI Level 1 - Introduction
 
Bethesda's Iterative Level Design Process for Skyrim and Fallout 3
Bethesda's Iterative Level Design Process for Skyrim and Fallout 3Bethesda's Iterative Level Design Process for Skyrim and Fallout 3
Bethesda's Iterative Level Design Process for Skyrim and Fallout 3
 
Play to Learn: Learning Games and Gamification that Get Results
Play to Learn: Learning Games and Gamification that Get ResultsPlay to Learn: Learning Games and Gamification that Get Results
Play to Learn: Learning Games and Gamification that Get Results
 
Jeongseoyeon [Monster Super League] Report on 15% improvement in player reten...
Jeongseoyeon [Monster Super League] Report on 15% improvement in player reten...Jeongseoyeon [Monster Super League] Report on 15% improvement in player reten...
Jeongseoyeon [Monster Super League] Report on 15% improvement in player reten...
 
'Another Case Solved' post-mortem
'Another Case Solved' post-mortem'Another Case Solved' post-mortem
'Another Case Solved' post-mortem
 
Introduction to Game Design
Introduction to Game DesignIntroduction to Game Design
Introduction to Game Design
 

Similar a Creative Engineering 101

Scrum training day 1
Scrum training day 1Scrum training day 1
Scrum training day 1Elad Sofer
 
Agile Estimation Accuracy by Mark Layton presented PMI-OC dinner meeting Aug1...
Agile Estimation Accuracy by Mark Layton presented PMI-OC dinner meeting Aug1...Agile Estimation Accuracy by Mark Layton presented PMI-OC dinner meeting Aug1...
Agile Estimation Accuracy by Mark Layton presented PMI-OC dinner meeting Aug1...DeborahCantwell
 
Being an Agile Tester
Being an Agile TesterBeing an Agile Tester
Being an Agile Testerliorf
 
How to be a 10x Engineer
How to be a 10x EngineerHow to be a 10x Engineer
How to be a 10x EngineerNick Sullivan
 
Scrum simulation-with-lego-bricks-v2.0
Scrum simulation-with-lego-bricks-v2.0Scrum simulation-with-lego-bricks-v2.0
Scrum simulation-with-lego-bricks-v2.0Juan Bohorquez
 
How to Develop with the UAT Studios - IGDA UAT Greenlight Guide
How to Develop with the UAT Studios - IGDA UAT Greenlight GuideHow to Develop with the UAT Studios - IGDA UAT Greenlight Guide
How to Develop with the UAT Studios - IGDA UAT Greenlight GuideBen Reichert
 
Simulator Game Group report EB
Simulator Game Group report EBSimulator Game Group report EB
Simulator Game Group report EBElliotBlack
 
How to make your retrospectives the heart of your agile proces
How to make your retrospectives the heart of your agile procesHow to make your retrospectives the heart of your agile proces
How to make your retrospectives the heart of your agile procesYves Hanoulle
 
Game Storming Overview- Big Design
Game Storming Overview- Big DesignGame Storming Overview- Big Design
Game Storming Overview- Big DesignTracey Kelly
 
How to Design Effective Learning Games: Sharon Boller and Karl Kapp
How to Design Effective Learning Games: Sharon Boller and Karl KappHow to Design Effective Learning Games: Sharon Boller and Karl Kapp
How to Design Effective Learning Games: Sharon Boller and Karl KappSharon Boller
 
Primer on Play: Case Study for Knowledge Guru
Primer on Play: Case Study for Knowledge GuruPrimer on Play: Case Study for Knowledge Guru
Primer on Play: Case Study for Knowledge GuruMarlo Gorelick
 
Engaging Tomorrows Learners with Impact Focused Virtual Reality Games
Engaging Tomorrows Learners with Impact Focused Virtual Reality GamesEngaging Tomorrows Learners with Impact Focused Virtual Reality Games
Engaging Tomorrows Learners with Impact Focused Virtual Reality GamesClinical Tools, Inc
 
Uncharted lands, or why games are not designed but discovered
Uncharted lands, or why games are not designed but discoveredUncharted lands, or why games are not designed but discovered
Uncharted lands, or why games are not designed but discoveredJakub Stokalski
 
Pair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick WestPair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick WestXP Conference India
 
User Experience 6: Qualitative Methods, Playtesting and Interviews
User Experience 6: Qualitative Methods, Playtesting and InterviewsUser Experience 6: Qualitative Methods, Playtesting and Interviews
User Experience 6: Qualitative Methods, Playtesting and InterviewsMarc Miquel
 
New Microsoft PowerPoint Presentation.pptx
New Microsoft PowerPoint Presentation.pptxNew Microsoft PowerPoint Presentation.pptx
New Microsoft PowerPoint Presentation.pptxnilesh405711
 

Similar a Creative Engineering 101 (20)

Scrum training day 1
Scrum training day 1Scrum training day 1
Scrum training day 1
 
Agile Estimation Accuracy by Mark Layton presented PMI-OC dinner meeting Aug1...
Agile Estimation Accuracy by Mark Layton presented PMI-OC dinner meeting Aug1...Agile Estimation Accuracy by Mark Layton presented PMI-OC dinner meeting Aug1...
Agile Estimation Accuracy by Mark Layton presented PMI-OC dinner meeting Aug1...
 
Being an Agile Tester
Being an Agile TesterBeing an Agile Tester
Being an Agile Tester
 
How to be a 10x Engineer
How to be a 10x EngineerHow to be a 10x Engineer
How to be a 10x Engineer
 
Scrum simulation-with-lego-bricks-v2.0
Scrum simulation-with-lego-bricks-v2.0Scrum simulation-with-lego-bricks-v2.0
Scrum simulation-with-lego-bricks-v2.0
 
Retrospective & review
Retrospective & reviewRetrospective & review
Retrospective & review
 
Agile Retrospective & review
Agile Retrospective & review Agile Retrospective & review
Agile Retrospective & review
 
Planning tools
Planning toolsPlanning tools
Planning tools
 
How to Develop with the UAT Studios - IGDA UAT Greenlight Guide
How to Develop with the UAT Studios - IGDA UAT Greenlight GuideHow to Develop with the UAT Studios - IGDA UAT Greenlight Guide
How to Develop with the UAT Studios - IGDA UAT Greenlight Guide
 
Simulator Game Group report EB
Simulator Game Group report EBSimulator Game Group report EB
Simulator Game Group report EB
 
How to make your retrospectives the heart of your agile proces
How to make your retrospectives the heart of your agile procesHow to make your retrospectives the heart of your agile proces
How to make your retrospectives the heart of your agile proces
 
402 w2
402 w2402 w2
402 w2
 
Game Storming Overview- Big Design
Game Storming Overview- Big DesignGame Storming Overview- Big Design
Game Storming Overview- Big Design
 
How to Design Effective Learning Games: Sharon Boller and Karl Kapp
How to Design Effective Learning Games: Sharon Boller and Karl KappHow to Design Effective Learning Games: Sharon Boller and Karl Kapp
How to Design Effective Learning Games: Sharon Boller and Karl Kapp
 
Primer on Play: Case Study for Knowledge Guru
Primer on Play: Case Study for Knowledge GuruPrimer on Play: Case Study for Knowledge Guru
Primer on Play: Case Study for Knowledge Guru
 
Engaging Tomorrows Learners with Impact Focused Virtual Reality Games
Engaging Tomorrows Learners with Impact Focused Virtual Reality GamesEngaging Tomorrows Learners with Impact Focused Virtual Reality Games
Engaging Tomorrows Learners with Impact Focused Virtual Reality Games
 
Uncharted lands, or why games are not designed but discovered
Uncharted lands, or why games are not designed but discoveredUncharted lands, or why games are not designed but discovered
Uncharted lands, or why games are not designed but discovered
 
Pair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick WestPair Programming in Theory and Practice By Garrick West
Pair Programming in Theory and Practice By Garrick West
 
User Experience 6: Qualitative Methods, Playtesting and Interviews
User Experience 6: Qualitative Methods, Playtesting and InterviewsUser Experience 6: Qualitative Methods, Playtesting and Interviews
User Experience 6: Qualitative Methods, Playtesting and Interviews
 
New Microsoft PowerPoint Presentation.pptx
New Microsoft PowerPoint Presentation.pptxNew Microsoft PowerPoint Presentation.pptx
New Microsoft PowerPoint Presentation.pptx
 

Último

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 

Último (20)

Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 

Creative Engineering 101

  • 2. Who am I? ● Tom Mejias ● Creative Engineer @ Space Ape ● 10 years industry experience across console & mobile ● Specialisation in Gameplay / UX / Creative ● Blizzard fanboy / whale
  • 3. Who are Space Ape? ● 6 years old ● Mobile Focus: 4 Games Released ○ Samurai Siege ○ Rival Kingdoms ○ Transformers ○ Fastlane ● Lots of new games & genres in the pipeline ● Recently part acquired by Supercell, creator of Clash of Clans
  • 4. What will you learn today? ● Engineering & Industry Overview ● What is Creative Engineering ● How to do it ● What to keep in mind ● What to make ● What to learn
  • 6. Engineering Roles Specialist (Depth) ● Gameplay ● UI ● Audio ● Engine ● Graphics/Rendering ● Tools ● Networking ● AI Generalist (Breadth) ● Broader, but shallower understanding of a number of the disciplines above ● Can work on many areas at once
  • 7. Engineering Roles Generalist (Breadth) ● Broader, but shallower understanding of multiple disciplines ● Can work on many areas at once Specialist (Depth) ● Gameplay ● UI ● Audio ● Engine ● Graphics/Rendering ● Tools ● Networking ● AI
  • 8. Console / AAA ● Specialists more desirable ● Large teams -> Less agile ● More crunch ● Smaller cog in a big machine ● Established companies more secure The Industry Mobile / Startup / Indie ● Generalists more desirable ● Smaller teams -> More agile ● Less crunch ● More personal impact ● Startups & Indie can be less secure
  • 9. Console / AAA ● Specialists more desirable ● Large teams -> Less agile ● More crunch ● Smaller cog in a big machine ● Established companies more secure The Industry Mobile / Startup / Indie ● Generalists more desirable ● Smaller teams -> More agile ● Less crunch ● More personal impact ● Startups & Indie can be less secure
  • 11. My Engineering Focus Labels / Responsibilities ● Gameplay Engineering ● Creative Engineering ● Rapid Development ● Concept Validation ● Prototyping Scary mind map on the next slide, be warned!
  • 12.
  • 13. High Level Overview Internalise the mantra “Write good, extendible code fast and for the express purpose of validating a hypothesis”
  • 14. High Level Overview Internalise the mantra “Write good, extendible code fast and for the express purpose of validating a hypothesis” ● Being efficient with time ● Not duplicating code ● Not getting stuck in a code spaghetti loop ● Always thinking ahead
  • 15. High Level Overview Internalise the mantra “Write good, extendible code fast and for the express purpose of validating a hypothesis” ● Focusing on the user experience ● Focusing on feedback mechanisms ● Focusing on quality of play ● Focusing on answering your questions
  • 16. How to do it?
  • 17. Write Good Code ● Prototyping doesn't mean write bad code ● Refactor often & obsessively ● Scavenge code and refactor it, don't write it again ● Requirements will change, make your code extendible where you can ● Don’t get caught over optimizing ● Still be a means to an end programmer
  • 18. Make Yourself a Toolkit Most games have very similar common systems. ● Health System ● Damage System ● Buff System ● Ability System ● Stats Tracking System ● Profile / Persistence Systems ● UI / Dialog Systems ● Animation / Transition Systems ● Common architectural patterns Make them generic and slot them in to every prototype you make.
  • 19. Scavenge What You Can Code ● Open source projects ● Your toolkit & past projects Art ● Unity Asset Store ● Images.google.com ● poly.google.com UX ● Find strong references to replicate and for inspiration
  • 20. Plan your features 1. What - What is the feature you're about to make? 2. Why - Why are you making this feature, how does it tie in to your vision? 3. How - How could you go about building this feature? 4. Where - Where could you put this feature in order the maximise it's extendibility 5. How - Now you know where, how could you build this feature to maximise it's extendibility 6. When - Now you know the full picture, when should you do it?
  • 21. Design for your players ● Have a good idea what you want your players to feel from every mechanic ● Have a plan on how to elicit that feeling from them ● Q: Is this system here because it’s fun for me to write or because it’s fun for the player? ● Show, don’t tell, the player wherever possible ● Keep it simple, stupid!
  • 22. Summary 1. Get yourself into the habit of refactoring early. The longer you leave it, the harder it will be to do 2. Make yourself a set of standalone systems that perform tasks, you will move much faster by doing this 3. Be a scavenger 4. Always have a plan 5. Design for your players
  • 23. What should I keep in mind?
  • 24. Think about your scope ● Collate a wishlist of mechanics / abilities / interactions first ● Slice through them to find common systems / patterns ● Evaluate and prioritise what systems to make by how much value they unlock ● This process will help you make more extendible code by forcing yourself to think ahead and create flexible systems
  • 25. Think about where you are ● Game Jam - Focus is on the interaction, forget about content, fake as much stuff as humanly possible ● Prototyping - Focus is on the interaction and its interaction with content, make things as multi-purpose as possible ● Production - Focus is on performance and maintainability, make things as safe, understandable and single-purpose as possible
  • 26. The Space Ape “Funnel” Proof of Concept Spark Prototyping What is the game? Can and should we make it? Make it and test it, and then make it again! Agile Production
  • 27. Think about your audience ● Internal prototype to a team? - Focus on the mechanic, loosen up on the usability ● Internal prototype to a company? - Focus on the mechanic and the usability equally ● External prototype to a user group? - Focus on the usability above all
  • 28. Think of when/what/who to show ● First impressions will last through a prototype ● People are always most engaged the first time they try something new ● Show to a rotating subset of people ● Only show if you have a question you need answering, or to test usability ● If you run surveys/playtests, have a consistent set of questions so you can see change over time
  • 29. Summary 1. Think ahead to be flexible 2. Form good habits while planning 3. Think holistically about your place in the project lifecycle 4. Think about your target audience, have empathy 5. Consider when, what, why and who to show work to
  • 30. What should I make?
  • 31. Have a strong vision ● The most important thing while making a game is having a clear, consistent, and objective understanding of what you are making ● This is often called ‘the vision’ ● There is often a ‘vision holder’ on a team who is in control of the vision ● The vision needs to be communicated clearly to everyone on the team ● There are many ways of finding and maintaining the vision
  • 32. The Promise 1. Describe your vision for the game in a single statement 2. When adding a feature; does it “fit” with the statement? 3. Yes? Great! Continue on with implementation 4. No? Either the feature doesn't “fit” or the vision has changed, work that out before continuing 5. If you updated the vision, reflect on previous features and their place with the new vision 6. Repeat
  • 33. The Promise “A strategic mobile game where I play a commander of an elite squad, outsmarting a real opponent to win in quick, FPS-themed scenarios.” “A racing themed game which gives me the fun, competition, control and longevity I get from playing Mario Kart.”
  • 34. The Promise “A strategic mobile game where I play a commander of an elite squad, outsmarting a real opponent to win in quick, FPS-themed scenarios.” “A racing themed game which gives me the fun, competition, control and longevity I get from playing Mario Kart.”
  • 35. Pillars / Ideation Gates 1. Describe your vision as a set of pillars to keep you honest 2. Ensure that for any new features, these pillars still remain strong ● This is especially useful when trying to filter out what NOT to make. ● If you develop a set of pillars; when you are brainstorming for new ideas you can self validate by rating them out of 5 in each of your pillars and culling ideas with low scores across the board
  • 36. Pillars / Ideation Gates Mobile First Evergreen Gameplay Scalable Opportunity for Mastery Player Driven Content
  • 37. Know Your Complexity 1. Know where the complexity will exist in your game ○ Visual Complexity (visual noise, effects, reduced clarity, chaos, movement, camera shakes) ○ Cognitive Complexity (strategy of abilities, game state awareness, game rule combinations) ○ Interaction Complexity (input timing, frequency, accuracy, intuitiveness) 2. Make sure neither of the 3 complexities are too high and offset high complexity in one with low in the others 3. Keep your complexities balanced! If you rate each complexity category out of 5, aim for a grand total of 7 combined
  • 38. Chart Your Complexity (Complexity) ~ 7 = About Right? << 7 = Too Shallow? >> 7 = Too Core?
  • 39. Summary 1. Employ methods to find and maintain a strong vision 2. Think about how to best describe your vision 3. Think about ways to validate the levels of complexity 4. Think about “the opportunity”
  • 40. What should I learn?
  • 41. Learn User Experience ● Easy to understand - If you can't explain it in a sentence, either it shouldn't be user facing or it doesn't belong in the game ● Does what is expected - Spend the lion's share of your time and effort on making sure your UI/UX makes sense, feels good and guides the player ● Good feedback on actions - If the user does a thing, always do a thing, then tell them how great it is they just did a thing
  • 42. Learn 3D Maths Seriously guys, just learn the following by heart, they are on every interview ● Vectors - Used for everything, from positions to rotations to velocities. ● Dot Product - Used in almost everything, think of it as “how similar are these two vectors” ● Cross Product - Used a lot, think of it as “find the perpendicular vector” ● Quaternions - Just understanding their benefits/drawbacks is a start, look up gimbal lock and slerping ● Matrices - Mostly useful in rendering and mesh generation, really good to be comfortable with them
  • 43. Learn Common Design Patterns Communication Strategies ● Event Bus ● Signals General Game Architectures ● Entity Component System (Data Oriented Design) (See: Entitas) ● Model/View Separation Inversion of Control ● Dependency Injection Frameworks (See: Zenject) ● Constructor/Interface Injection
  • 44. Learn Data Structures ● Understand the pros and cons between all the major data structures ● Try and always think of your data structures first before making anything else ● Write your own versions of the popular containers to understand how they work, this will always be asked in interviews ● For better or worse, interviewers ALWAYS ask you to write a linked list implementation on a whiteboard. Just learn it. ● Maybe even take a look at unit testing, for bonus points
  • 45. Be Experienced ● It’s so easy to make games nowadays, go make one (now that you have the time to do it!) ● Learn Unity & C# if you want to get into mobile ● Learn Unreal & C++ if you want to get into console ● If you don’t want to make a whole game, try implementing individual mechanics you like from existing games - you can use them for a portfolio! ● Let yourself be inspired and don’t let yourself get jaded
  • 46. Summary 1. Value your end user; focus on their experience 2. Learn to manipulate 3D maths concepts effortlessly 3. Learn common design patterns 4. Be comfortable with all the popular data structures 5. Get experience everywhere you can 6. Be inspired and be inspiring