SlideShare a Scribd company logo
1 of 29
CreatingGreatUnity
Games forWindows 10
Part 2/2
Jiri Danihelka
Making it a great Windows Store game
• Live tiles & notifications
• Splash Image
• Contracts
– Settings, Share, Play To
• Snap
• In App purchase
• Ads
• Cloud storage
What are they?
• Draw call issued to the graphics API to draw object (DirectX)
• Think of it as an artist changing a paintbrush
– Except drawing images (textures)
• Each model has at least one draw call
– Unless they share a material
• Draw calls affect CPU
• On mobile, target about 50 for best device coverage
– Latest devices can handle more
• Reducing draw calls is key
Atlases
• Take multiple images and add to one larger one
– Textures, sprites, fonts, etc
• Essentially used as a paint brush of images
• Can draw different objects in one draw call
• Unity will auto-atlas UI elements (4.6 GUI)
• Unity has a sprite packer to create atlas
– Needs to be enabled and set a packing tag
How to reduce draw calls
• Enable static batching (Pro) to help
– Requires object to not move and checked ‘static
– Combines geometry
• Dynamic batching (free) works automatically
– Share same material, < 900 vertices, no real time shadows
• Atlas everything you can
– Textures, Sprites (UI atlases automatically)
• Avoid the old GUI system
– New one introduced in 4.6 - uGui
Compressing Textures
• Can compress per platform
– Figure out target device, mobile can be optimized
– Experiment with compression settings
• Universal Apps don’t yet support compression per platform
– Windows, iOS (iphone, ipad), Android
– Form factors include phones, tablets, laptops
– OwlChemy Labs Multiplatform Toolkit
Compressing Audio
• Compress longer files, stream from disk
• Unity will compress per platform
• Longer tracks go to ogg
• Smaller effects stay uncompressed
• Audio clips are either
– Loaded into memory
– Streamed from disk
• Saves load time, addresses storage a lot more on mobile
General Rules
• Cache references
– Managed to Native calls hurt performance
– GameObject.Find() and other references
– Component references if used a lot
– Cache via Editor reference
– Avoid lookups in loops
• Object pooling
– Instantiating() objects is expensive, Destroy() is expensive
– Reuse objects
– https://github.com/prime31/RecyclerKit
Neither are very efficient
• Unity terrain creates many draw calls
• Experiment with built in settings
• Third party tools
– T4M
– Topogun
• KGFSkyBox
– Can reduce for skyboxes (1 vs 6 draws)
Polygons & Triangles
• Polygons are drawn using triangles
• Unity uses triangles
• Graphics cards draw triangles
• A quad is two triangles
• Even 2D images use triangles
• Reduce triangles
Tools and techniques to reduce tris
• Cruncher
• Mixamo’s Decimator
• Blender’s Decimate
• simplygon.com
• Draw a separate low poly model for mobile
– Manually or use tools like Topogun
• Level of Detail
– Uses lower quality models when further away
– Pro only, but can be done manually via scripts
Visible Meta Files
• This should be required.
• Version control without is
possible, but difficult
How are indies doing it?
• More than just luck
– There is a science behind which apps succeed, and which fail
• Stand out from your competition
– Can’t clone to succeed
• It’s not about money!
– More budget doesn’t automatically mean better marketing
App Store Optimization
• Don’t neglect app store presence.
• Users will find you one of three ways:
– Rank
– Recommendations
– Search
App Store Optimization
• Icon
– You have 1.5 seconds
– Compare to competition
• Screenshots
– Have to be honest
– Show gameplay
• Description
– Hook and convince
– Call to action
How will they find you?
• Description text matters!
– Optimize for people and robots
• Keywords and keyphrases
– Use in title and description
– Reference competition
• Don’t assume, study
– What does your competition do?
– What should they be doing?
Outmaneuver your competition
Rank could possibly be judged by:
• Downloads
• Active Installs
• Velocity
• Ratings (Number and/or Quality)
• Usage
*Maybe?
Outmaneuver your competition
• Brute force is costly
• Think creatively
– Prevent uninstalls
– Cross Promote
– Acquire users intelligently
– Stack marketing
Outmaneuver your competition
• Encourage beneficial behavior
– Only ask users likely to rate 5 stars to review
• Use social when it makes sense
– Provide value!
• Have an outlet for bugs/problems/feedback
– Better to deal with emails than bad ratings!
Be remarkable, literally
• Make yourself easy to talk about
– Presence on social media
– Website
– Build a press kit
• Communicate with your audience
– Build a community
– Tell your story
– Playtest in public
Be remarkable, literally
• Become a lightning rod
– Plan for both success and failure
– Don’t just be a developer
– Treat yourself seriously
• Post release content
– Users always want more, keep them coming back
– Show that you care
Apps are a service
• Make lots of games
– Rovio made 51 games before Angry Bird.
• Don’t expect instant success!
– Antichamber took 7 years to make.
• Everything is a skill
– Start doodling!
What is a .DLL?
Dynamic Link library - a collection of code
and/or data, which may be used by several
applications (or other libraries/modules).
Common methods to process files, work
with GUI components etc. are made
available in libraries so several applications
may use the same functionality.
Handling .DLLs
For example:
Assets/Plugins/Metro
would hold my [prime31] .DLL which
connects to Azure.
Building .DLLs
First grabs all of the .DLLs within
the Assets/Plugins folder.
Then does another pass.
Is there is a platform-specific folder
containing plugins?
Live tiles
• Give the user info (ex weather, stocks)
• Show progress, entice the user to come back
How to
• Use a tile template
– Predefined tile sizes
– All available in Tile Template Catalog (aka.ms/TileTemplates)
• Local tile
– Image included in project
• Remote tile
– Can download from net
Privacy Policy
• Is required if your app sends any data to a third party
• 4. Windows Store apps put the customer in control
– 4.1 Your app must comply with the following privacy-related
requirements:
• 4.1.1 Your app must have a privacy statement if it is network-capable
– If your app has the technical ability to transmit data to you or a third party, you must
maintain a privacy policy. You must provide access to your privacy policy in the Description
page of your app, as well as in the app’s settings as displayed in the Windows Settings
charm.
• Privacy policy url is required during submission and in game
• Can display policy in game or redirect to website
Pausing
• What happens when user
– switches away?
– wants a break?
– gets a phone call?
• Pausing can be done 100% in Unity code

More Related Content

Similar to Creating great Unity games for Windows 10 - Part 2

Power Platform Leeds - November 2019 - Microsoft Ignite Announcements
Power Platform Leeds - November 2019 - Microsoft Ignite AnnouncementsPower Platform Leeds - November 2019 - Microsoft Ignite Announcements
Power Platform Leeds - November 2019 - Microsoft Ignite AnnouncementsSimon Doy
 
Multi View Constructed Right
Multi View Constructed RightMulti View Constructed Right
Multi View Constructed RightOpenBossa
 
Making A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You ThinkMaking A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You ThinkGorm Lai
 
Sharpest tool in the box: Choosing the right authoring tool for your learning...
Sharpest tool in the box: Choosing the right authoring tool for your learning...Sharpest tool in the box: Choosing the right authoring tool for your learning...
Sharpest tool in the box: Choosing the right authoring tool for your learning...Brightwave Group
 
Consistent UI Across Android Devices
Consistent UI Across Android DevicesConsistent UI Across Android Devices
Consistent UI Across Android DevicesIrene Duke
 
The Final Frontier
The Final FrontierThe Final Frontier
The Final FrontierjClarity
 
Maximize Your Production Effort (English)
Maximize Your Production Effort (English)Maximize Your Production Effort (English)
Maximize Your Production Effort (English)slantsixgames
 
Unity - Internals: memory and performance
Unity - Internals: memory and performanceUnity - Internals: memory and performance
Unity - Internals: memory and performanceCodemotion
 
Categories of Computers in Information Technology.pdf
Categories of Computers in Information Technology.pdfCategories of Computers in Information Technology.pdf
Categories of Computers in Information Technology.pdfrljruga
 
Introduction to Android Development and Security
Introduction to Android Development and SecurityIntroduction to Android Development and Security
Introduction to Android Development and SecurityKelwin Yang
 
C maksymchuk android
C maksymchuk androidC maksymchuk android
C maksymchuk androidsdeconf
 
From DTrace to Linux
From DTrace to LinuxFrom DTrace to Linux
From DTrace to LinuxBrendan Gregg
 
Cerebro general overiew eng
Cerebro general overiew engCerebro general overiew eng
Cerebro general overiew engCineSoft
 
Adventures in cross platform ConnectJS / TiConnect 2014
Adventures in cross platform ConnectJS / TiConnect 2014Adventures in cross platform ConnectJS / TiConnect 2014
Adventures in cross platform ConnectJS / TiConnect 2014Jason Kneen
 
Preventing Complexity in Game Programming
Preventing Complexity in Game ProgrammingPreventing Complexity in Game Programming
Preventing Complexity in Game ProgrammingYaser Zhian
 
Memory management in Andoid
Memory management in AndoidMemory management in Andoid
Memory management in AndoidMonkop Inc
 
Supersize Your Production Pipe
Supersize Your Production PipeSupersize Your Production Pipe
Supersize Your Production Pipeslantsixgames
 
Global Azure Bootcamp - ML.NET for developers
Global Azure Bootcamp - ML.NET for developersGlobal Azure Bootcamp - ML.NET for developers
Global Azure Bootcamp - ML.NET for developersChris Melinn
 
Choosing the right Technologies for your next unicorn.
Choosing the right Technologies for your next unicorn.Choosing the right Technologies for your next unicorn.
Choosing the right Technologies for your next unicorn.Gladson DSouza
 

Similar to Creating great Unity games for Windows 10 - Part 2 (20)

Power Platform Leeds - November 2019 - Microsoft Ignite Announcements
Power Platform Leeds - November 2019 - Microsoft Ignite AnnouncementsPower Platform Leeds - November 2019 - Microsoft Ignite Announcements
Power Platform Leeds - November 2019 - Microsoft Ignite Announcements
 
Multi View Constructed Right
Multi View Constructed RightMulti View Constructed Right
Multi View Constructed Right
 
Making A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You ThinkMaking A Game Engine Is Easier Than You Think
Making A Game Engine Is Easier Than You Think
 
Sharpest tool in the box: Choosing the right authoring tool for your learning...
Sharpest tool in the box: Choosing the right authoring tool for your learning...Sharpest tool in the box: Choosing the right authoring tool for your learning...
Sharpest tool in the box: Choosing the right authoring tool for your learning...
 
Consistent UI Across Android Devices
Consistent UI Across Android DevicesConsistent UI Across Android Devices
Consistent UI Across Android Devices
 
The Final Frontier
The Final FrontierThe Final Frontier
The Final Frontier
 
Maximize Your Production Effort (English)
Maximize Your Production Effort (English)Maximize Your Production Effort (English)
Maximize Your Production Effort (English)
 
Unity - Internals: memory and performance
Unity - Internals: memory and performanceUnity - Internals: memory and performance
Unity - Internals: memory and performance
 
Categories of Computers in Information Technology.pdf
Categories of Computers in Information Technology.pdfCategories of Computers in Information Technology.pdf
Categories of Computers in Information Technology.pdf
 
Introduction to Android Development and Security
Introduction to Android Development and SecurityIntroduction to Android Development and Security
Introduction to Android Development and Security
 
C maksymchuk android
C maksymchuk androidC maksymchuk android
C maksymchuk android
 
From DTrace to Linux
From DTrace to LinuxFrom DTrace to Linux
From DTrace to Linux
 
Cerebro general overiew eng
Cerebro general overiew engCerebro general overiew eng
Cerebro general overiew eng
 
Adventures in cross platform ConnectJS / TiConnect 2014
Adventures in cross platform ConnectJS / TiConnect 2014Adventures in cross platform ConnectJS / TiConnect 2014
Adventures in cross platform ConnectJS / TiConnect 2014
 
Preventing Complexity in Game Programming
Preventing Complexity in Game ProgrammingPreventing Complexity in Game Programming
Preventing Complexity in Game Programming
 
Memory management in Andoid
Memory management in AndoidMemory management in Andoid
Memory management in Andoid
 
Supersize Your Production Pipe
Supersize Your Production PipeSupersize Your Production Pipe
Supersize Your Production Pipe
 
Global Azure Bootcamp - ML.NET for developers
Global Azure Bootcamp - ML.NET for developersGlobal Azure Bootcamp - ML.NET for developers
Global Azure Bootcamp - ML.NET for developers
 
Choosing the right Technologies for your next unicorn.
Choosing the right Technologies for your next unicorn.Choosing the right Technologies for your next unicorn.
Choosing the right Technologies for your next unicorn.
 
Software
SoftwareSoftware
Software
 

More from Jiri Danihelka

Distributed Mobile Graphics
Distributed Mobile GraphicsDistributed Mobile Graphics
Distributed Mobile GraphicsJiri Danihelka
 
Mixed reality for Windows 10
Mixed reality for Windows 10Mixed reality for Windows 10
Mixed reality for Windows 10Jiri Danihelka
 
New Xaml components for Windows developers
New Xaml components for Windows developersNew Xaml components for Windows developers
New Xaml components for Windows developersJiri Danihelka
 
MVVM Windows UWP apps with Template 10
MVVM Windows UWP apps with Template 10MVVM Windows UWP apps with Template 10
MVVM Windows UWP apps with Template 10Jiri Danihelka
 
An introduction to development of universal applications
An introduction to development of universal applicationsAn introduction to development of universal applications
An introduction to development of universal applicationsJiri Danihelka
 
Windows game development with Unity 5
Windows game development with Unity 5Windows game development with Unity 5
Windows game development with Unity 5Jiri Danihelka
 
Prism library and MVVM
Prism library and MVVMPrism library and MVVM
Prism library and MVVMJiri Danihelka
 
UWP apps development - Part 3
UWP apps development - Part 3UWP apps development - Part 3
UWP apps development - Part 3Jiri Danihelka
 
UWP apps development - Part 2
UWP apps development - Part 2UWP apps development - Part 2
UWP apps development - Part 2Jiri Danihelka
 
UWP apps development - Part 1
UWP apps development - Part 1UWP apps development - Part 1
UWP apps development - Part 1Jiri Danihelka
 
Designing Windows apps with Xaml
Designing Windows apps with XamlDesigning Windows apps with Xaml
Designing Windows apps with XamlJiri Danihelka
 
Advanced MVVM Windows UWP apps with Template 10
Advanced MVVM Windows UWP apps with Template 10Advanced MVVM Windows UWP apps with Template 10
Advanced MVVM Windows UWP apps with Template 10Jiri Danihelka
 
Blend for Visual Studio 2015
Blend for Visual Studio 2015Blend for Visual Studio 2015
Blend for Visual Studio 2015Jiri Danihelka
 
Security misconfiguration
Security misconfigurationSecurity misconfiguration
Security misconfigurationJiri Danihelka
 
Windows 10 Mobile and Distributed Graphics
Windows 10 Mobile and Distributed GraphicsWindows 10 Mobile and Distributed Graphics
Windows 10 Mobile and Distributed GraphicsJiri Danihelka
 
Security hardening and drown attack prevention for mobile backend developers
Security hardening and drown attack prevention for mobile backend developersSecurity hardening and drown attack prevention for mobile backend developers
Security hardening and drown attack prevention for mobile backend developersJiri Danihelka
 
Top 10 security risks for mobile backend developers
Top 10 security risks for mobile backend developersTop 10 security risks for mobile backend developers
Top 10 security risks for mobile backend developersJiri Danihelka
 
Programování Windows 8
Programování Windows 8Programování Windows 8
Programování Windows 8Jiri Danihelka
 
Vývoj pro Microsoft Surface a HoloLens
Vývoj pro Microsoft Surface a HoloLensVývoj pro Microsoft Surface a HoloLens
Vývoj pro Microsoft Surface a HoloLensJiri Danihelka
 

More from Jiri Danihelka (20)

Distributed Mobile Graphics
Distributed Mobile GraphicsDistributed Mobile Graphics
Distributed Mobile Graphics
 
Mixed reality for Windows 10
Mixed reality for Windows 10Mixed reality for Windows 10
Mixed reality for Windows 10
 
New Xaml components for Windows developers
New Xaml components for Windows developersNew Xaml components for Windows developers
New Xaml components for Windows developers
 
MVVM Windows UWP apps with Template 10
MVVM Windows UWP apps with Template 10MVVM Windows UWP apps with Template 10
MVVM Windows UWP apps with Template 10
 
An introduction to development of universal applications
An introduction to development of universal applicationsAn introduction to development of universal applications
An introduction to development of universal applications
 
Windows game development with Unity 5
Windows game development with Unity 5Windows game development with Unity 5
Windows game development with Unity 5
 
Prism library and MVVM
Prism library and MVVMPrism library and MVVM
Prism library and MVVM
 
UWP apps development - Part 3
UWP apps development - Part 3UWP apps development - Part 3
UWP apps development - Part 3
 
UWP apps development - Part 2
UWP apps development - Part 2UWP apps development - Part 2
UWP apps development - Part 2
 
UWP apps development - Part 1
UWP apps development - Part 1UWP apps development - Part 1
UWP apps development - Part 1
 
Designing Windows apps with Xaml
Designing Windows apps with XamlDesigning Windows apps with Xaml
Designing Windows apps with Xaml
 
Advanced MVVM Windows UWP apps with Template 10
Advanced MVVM Windows UWP apps with Template 10Advanced MVVM Windows UWP apps with Template 10
Advanced MVVM Windows UWP apps with Template 10
 
Windows UX
Windows UXWindows UX
Windows UX
 
Blend for Visual Studio 2015
Blend for Visual Studio 2015Blend for Visual Studio 2015
Blend for Visual Studio 2015
 
Security misconfiguration
Security misconfigurationSecurity misconfiguration
Security misconfiguration
 
Windows 10 Mobile and Distributed Graphics
Windows 10 Mobile and Distributed GraphicsWindows 10 Mobile and Distributed Graphics
Windows 10 Mobile and Distributed Graphics
 
Security hardening and drown attack prevention for mobile backend developers
Security hardening and drown attack prevention for mobile backend developersSecurity hardening and drown attack prevention for mobile backend developers
Security hardening and drown attack prevention for mobile backend developers
 
Top 10 security risks for mobile backend developers
Top 10 security risks for mobile backend developersTop 10 security risks for mobile backend developers
Top 10 security risks for mobile backend developers
 
Programování Windows 8
Programování Windows 8Programování Windows 8
Programování Windows 8
 
Vývoj pro Microsoft Surface a HoloLens
Vývoj pro Microsoft Surface a HoloLensVývoj pro Microsoft Surface a HoloLens
Vývoj pro Microsoft Surface a HoloLens
 

Recently uploaded

Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 

Recently uploaded (20)

Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 

Creating great Unity games for Windows 10 - Part 2

  • 2. Making it a great Windows Store game • Live tiles & notifications • Splash Image • Contracts – Settings, Share, Play To • Snap • In App purchase • Ads • Cloud storage
  • 3. What are they? • Draw call issued to the graphics API to draw object (DirectX) • Think of it as an artist changing a paintbrush – Except drawing images (textures) • Each model has at least one draw call – Unless they share a material • Draw calls affect CPU • On mobile, target about 50 for best device coverage – Latest devices can handle more • Reducing draw calls is key
  • 4. Atlases • Take multiple images and add to one larger one – Textures, sprites, fonts, etc • Essentially used as a paint brush of images • Can draw different objects in one draw call • Unity will auto-atlas UI elements (4.6 GUI) • Unity has a sprite packer to create atlas – Needs to be enabled and set a packing tag
  • 5. How to reduce draw calls • Enable static batching (Pro) to help – Requires object to not move and checked ‘static – Combines geometry • Dynamic batching (free) works automatically – Share same material, < 900 vertices, no real time shadows • Atlas everything you can – Textures, Sprites (UI atlases automatically) • Avoid the old GUI system – New one introduced in 4.6 - uGui
  • 6. Compressing Textures • Can compress per platform – Figure out target device, mobile can be optimized – Experiment with compression settings • Universal Apps don’t yet support compression per platform – Windows, iOS (iphone, ipad), Android – Form factors include phones, tablets, laptops – OwlChemy Labs Multiplatform Toolkit
  • 7. Compressing Audio • Compress longer files, stream from disk • Unity will compress per platform • Longer tracks go to ogg • Smaller effects stay uncompressed • Audio clips are either – Loaded into memory – Streamed from disk • Saves load time, addresses storage a lot more on mobile
  • 8. General Rules • Cache references – Managed to Native calls hurt performance – GameObject.Find() and other references – Component references if used a lot – Cache via Editor reference – Avoid lookups in loops • Object pooling – Instantiating() objects is expensive, Destroy() is expensive – Reuse objects – https://github.com/prime31/RecyclerKit
  • 9. Neither are very efficient • Unity terrain creates many draw calls • Experiment with built in settings • Third party tools – T4M – Topogun • KGFSkyBox – Can reduce for skyboxes (1 vs 6 draws)
  • 10. Polygons & Triangles • Polygons are drawn using triangles • Unity uses triangles • Graphics cards draw triangles • A quad is two triangles • Even 2D images use triangles • Reduce triangles
  • 11. Tools and techniques to reduce tris • Cruncher • Mixamo’s Decimator • Blender’s Decimate • simplygon.com • Draw a separate low poly model for mobile – Manually or use tools like Topogun • Level of Detail – Uses lower quality models when further away – Pro only, but can be done manually via scripts
  • 12. Visible Meta Files • This should be required. • Version control without is possible, but difficult
  • 13. How are indies doing it? • More than just luck – There is a science behind which apps succeed, and which fail • Stand out from your competition – Can’t clone to succeed • It’s not about money! – More budget doesn’t automatically mean better marketing
  • 14. App Store Optimization • Don’t neglect app store presence. • Users will find you one of three ways: – Rank – Recommendations – Search
  • 15. App Store Optimization • Icon – You have 1.5 seconds – Compare to competition • Screenshots – Have to be honest – Show gameplay • Description – Hook and convince – Call to action
  • 16. How will they find you? • Description text matters! – Optimize for people and robots • Keywords and keyphrases – Use in title and description – Reference competition • Don’t assume, study – What does your competition do? – What should they be doing?
  • 17. Outmaneuver your competition Rank could possibly be judged by: • Downloads • Active Installs • Velocity • Ratings (Number and/or Quality) • Usage *Maybe?
  • 18. Outmaneuver your competition • Brute force is costly • Think creatively – Prevent uninstalls – Cross Promote – Acquire users intelligently – Stack marketing
  • 19. Outmaneuver your competition • Encourage beneficial behavior – Only ask users likely to rate 5 stars to review • Use social when it makes sense – Provide value! • Have an outlet for bugs/problems/feedback – Better to deal with emails than bad ratings!
  • 20. Be remarkable, literally • Make yourself easy to talk about – Presence on social media – Website – Build a press kit • Communicate with your audience – Build a community – Tell your story – Playtest in public
  • 21. Be remarkable, literally • Become a lightning rod – Plan for both success and failure – Don’t just be a developer – Treat yourself seriously • Post release content – Users always want more, keep them coming back – Show that you care
  • 22. Apps are a service • Make lots of games – Rovio made 51 games before Angry Bird. • Don’t expect instant success! – Antichamber took 7 years to make. • Everything is a skill – Start doodling!
  • 23. What is a .DLL? Dynamic Link library - a collection of code and/or data, which may be used by several applications (or other libraries/modules). Common methods to process files, work with GUI components etc. are made available in libraries so several applications may use the same functionality.
  • 24. Handling .DLLs For example: Assets/Plugins/Metro would hold my [prime31] .DLL which connects to Azure.
  • 25. Building .DLLs First grabs all of the .DLLs within the Assets/Plugins folder. Then does another pass. Is there is a platform-specific folder containing plugins?
  • 26. Live tiles • Give the user info (ex weather, stocks) • Show progress, entice the user to come back
  • 27. How to • Use a tile template – Predefined tile sizes – All available in Tile Template Catalog (aka.ms/TileTemplates) • Local tile – Image included in project • Remote tile – Can download from net
  • 28. Privacy Policy • Is required if your app sends any data to a third party • 4. Windows Store apps put the customer in control – 4.1 Your app must comply with the following privacy-related requirements: • 4.1.1 Your app must have a privacy statement if it is network-capable – If your app has the technical ability to transmit data to you or a third party, you must maintain a privacy policy. You must provide access to your privacy policy in the Description page of your app, as well as in the app’s settings as displayed in the Windows Settings charm. • Privacy policy url is required during submission and in game • Can display policy in game or redirect to website
  • 29. Pausing • What happens when user – switches away? – wants a break? – gets a phone call? • Pausing can be done 100% in Unity code

Editor's Notes

  1. Optimization- Create Hi Res terrain in Unity, then use the “Export to Obj” script that is freely available. Take the hirez obj and import into a program like “Topogun” and manually retopologize keeping in mind the polygon / tris count. More Polys for detailed areas, less polys for the flat terrain areas. Allows more flexibility on getting a a faux hi quality look using low quality models. Reimport your new terrain into Unity after retopoligizing in Topogun and run the T4M- Terrain for Mobile Plugin on the model. You can now paint blended shaders on the model for nice terrain texture blends.
  2. Check out our colleague’s blog post for some great info http://indiedevspot.azurewebsites.net/2014/03/12/optimizing-mobile-games-in-unity/# Manual lod http://answers.unity3d.com/questions/216698/how-to-implement-lod-in-unity.html