Top Banner
2D Endless Runner in Unity for Mobile Murat Gürel @muratgurel GDG Devfest Istanbul, Dec 2014
45

2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Jul 17, 2015

Download

Software

Murat Gürel
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

2D Endless Runner in Unity for Mobile

Murat Gürel @muratgurel

GDG Devfest Istanbul, Dec 2014

Page 2: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

About Me• Software Engineer, iOS - Peak Games

• Native iOS development for 3 years - 2 years professionally.

• 4 games with Unity

Page 3: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Why am I here?

• Evliya Çelebi experiences

• Insufficient resources on the internet

• Project management from scratch

• Tips, tricks & time-savers

Page 4: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Evliya Çelebi

VIDEO

Page 5: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Evliya Çelebi

• Started in June 2014

• 1 month research prior

• 4 sceneries with 5 different sprite sets (20 total)

• More than 40 levels with various difficulties

Page 6: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Agenda• Components

• Colliders & Layers

• Tags & Camera

• State Machine

• Animations

• Level Editor & Level Design

• Performance

• Development Environment

Page 7: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Components

Page 8: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Components• Unity is a component based system. Don’t try to do

everything with inheritance

Page 9: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Components

• Try to separate functionality into components

Page 10: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014
Page 11: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Colliders & Layers

Page 12: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Colliders & Layers• Use compound colliders. Don’t use 1 collider for

everything

Page 13: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Colliders & Layers• Instead of hard-coded values, use triggers

Page 14: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Colliders & Layers• Use layers & collision matrix to disable collision

between layers

Page 15: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Tags & Camera

Page 16: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Tags• Try to be type safe. Don’t rely on tags too much

• GetComponent is fast & safe

Page 17: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Tags• Use tags for higher level stuff

• Enemy, Player, Obstacle etc. (Not LongObstacle)

PlayerObstacle Collectible

Collectible

Page 18: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Camera• Use layers to disable rendering for certain

cameras

Page 19: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

State Machine

Page 20: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

State Machine

• We have a state machine for our main character

• Listen for events & let state decide what to transition into

• Character listens to state changes

• Other scripts can also hook into changes

Page 21: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

State Machine

Page 22: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

State Machine

Run Slide

Page 23: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Animations

Page 24: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Animations• Use mecanim

Page 25: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Animations• Know about animation triggers

Page 26: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Animations• For smaller animations, we use the legacy

system

Page 27: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Level Design

Page 28: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Level Design

• We have separate level slices

• We append them together

• Random enough

• Easier on development & design

• Random enough to be fun

• Predictable enough to control economy

• Fully random is extremely hard & not good for game

Page 29: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Level Design

Page 30: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Level Design

VIDEO

Page 31: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Level Editor

Page 32: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Unity Editor• Do not use editor to set variables excessively

• Only expose variables a level designer should use

• Validate if needed

• Do it inside scripts for other stuff

Page 33: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Level Editor

• If you can, separate level design from coding

• Unity editor is highly extendible

• Can make a level editor inside Unity

Page 34: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Level Editor

• Sharing workload

• Faster level design

• Fewer bugs if done correctly

• Shorter overall project time

• Editor itself can have bugs

• Teaching designers

• Cannot prevent default unity actions

ADVANTAGES DISADVANTAGES

Page 35: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Level Editor

• Designers place placeholders

• Have convenience methods

• Can validate & test level individually

• Send us the final level

Page 36: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Cross-Platform

Page 37: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Cross-Platform

• 1 image set with resolution 1280x800

• Show more game area

• Use percentage for resolution dependant stuff

• Preprocessor macros or conditionals

• uGUI for UI

Page 38: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Performance

Page 39: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Performance• Try to use simple shaped colliders (circle,

rectangle)

Page 40: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Performance• Use texture atlases

• Unity sprite packer is not good, we used TexturePacker

• Better packing algorithm

• Exports for Unity

• 54 MB to 37 Mb memory gain

Page 41: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Performance• Do not load every asset at once

• Async load when needed

VIDEO

Page 42: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Performance

• Test on device, not just simulator

• Have a FPS gauge

Page 43: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Performance• Use profiler

Page 44: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Performance• Try to use static fonts

Page 45: 2D Endless Runner in Unity for Mobile - GDG DevFest Istanbul 2014

Thank You!

Twitter: @muratgurelE-mail: [email protected]