mobile game development in unity
TRANSCRIPT
Mobile Game Development Experience with Unity
by @hakansaglam
Hakan Saglam
5 Years Old as Game Developer 15 Years Old as Sofware Developer 25 Years Old as Gamer
present2010
Largest Okey community in Turkey
Largest Game community in Turkey
Largest Spades community
in US
Top 15 Mobile Games
in US
350M+ Users
Downloaded
300K+ Concurrent
Users
2GAMES IN US
TOP GROSSING LISTS
PEOPLE PLAYING OUR GAMES
CONCURRENTLY
300K+
COUNTRIES WHERE OUR USERS RESIDE
150
15GAMES IN APP
STORES
350MINSTALLS 100
TEAM MEMBERS
AgendaWhy do we move to Unity?
Editor in Unity
Coding in Unity
Testing in Unity
Debugging in Unity
Profiling in Unity
Continuous Integration and Delivery with Unity
Why do we move to Unity?
HAXERuntime Performance
Existing Experience
Open Source
Code Reusability
Not Popular / No Community
Development Environment
Difficult Prototyping
Open Source
Runtime Performance
Optimized for 2D Games
Low Level Language
Development Environment
Long Learning Curve
COCOS 2D-X
Open Source
Strong Community
Development Environment
Immature Technology
Limited / No Support
RoboVM Stopped !!!
LibGDX with RoboVM
Strong Community
Whole Integrated Solution
Development Environment
Asset Store and Services
Limited Canvas Support
Not Designed for Team Work
Limited Source Code Access
Unity 3D
Editor in Unity
Main Windows
Customize Menu Items
Add New Windows
Custom Windows
Put Custom Information into Main Windows
Customize Main Windows
Coding in Unity
Awake OnEnable Start Update FixedUpdate LateUpdate OnGUI OnApplicationPause OnDisable OnDestroy
Event Functions
Strange IoC
Component Driven Architecture
Call Fade Animation directly
Call Fade Animation by a Coroutine
Coroutines
Screen Management
Testing in Unity
for Game Logic
not for View Components
Unit Tests
Integration Tests
Test player scenarios in game scene with real player actions real player moves real player logs
Editor Tests
Debugging in Unity
Mono Develop
don’t use MonoDevelop Debugger
just use Debug.Log(); function
Editor Debugging
Play / Pause Go Frame by Frame Automatic Reset
Debug.Break(); Make changes on the fly
Frame Debugger
Optimize and Batch your Draw Calls
Debug on Xcode
Debug on Device
Debug via adb logcat
Profiling in Unity
Sprite Sheets
Use Atlas files for better GPU Performance
Organize your scene hierarchy for less Draw Calls
Stats Window CPU Usage Profiler Rendering Profiler Memory Profiler Audio Profiler Physics Profiler GPU Profiler Low Level Memory Profiler
Unity Profiler
Shorten startup time
Optimize runtime performance
Optimize memory usage
Xcode Instruments
Continuous Integration with Unity
Native Plugins
C# Libraries
Gaming Libraries
Game Repositories
released released soon
Binary Builds
Deploy to
HockeyApp
Deploy to
Test Flight
Deploy to
Play Store
Unity Services
Ads Analytics Cloud Build Multiplayer Performance Reporting Everyplay Collaborate Hardware Stats
Cloud Services
Asset Store
DOTween UniWebView Log Viewer JSON .NET TextMesh Pro Best HTTP Console Enhanced Enhanced Scroller Stats Monitor
Source Code
Open Source Libraries
Unity Labs
Unity Engine Source Code Access
Nikola Tesla
“Our virtues and our failings are inseparable, like force and matter. When they separate, man
is no more.”
Our team is growing, and we want you to join uswww.peakgames.net/careers
THANK YOU@hakansaglam