YOUR APP IS

ACTUALLY A
GAME
Snow*Mobile 2014
YOUR APP IS

ACTUALLY A
GAME
Snow*Mobile 2014
SOME GUY WITH A MICROPHONE
SOME GUY WITH A MICROPHONE
• An iOS / Android engineer
SOME GUY WITH A MICROPHONE
• An iOS / Android engineer
• Only a hobbyist game developer or designer
WHAT ISTHIS ABOUT?
WHAT ISTHIS ABOUT?
• A list of important questions, with context
WHAT ISTHIS ABOUT?
• A list of important questions, with context
• A challenge for future apps
WHAT ISTHIS ABOUT?
• A list of important questions, with context
• A challenge for future apps
• An example with a top cur...
FORTHE BUSINESS FOLKS
FORTHE BUSINESS FOLKS
• From Distimo’s Report for 2013:
FORTHE BUSINESS FOLKS
• From Distimo’s Report for 2013:
• “The vast majority of mobile app revenue was
generated in the Ga...
FORTHE BUSINESS FOLKS
• From Distimo’s Report for 2013:
• “The vast majority of mobile app revenue was
generated in the Ga...
FORTHE BUSINESS FOLKS
• From Distimo’s Report for 2013:
• “The vast majority of mobile app revenue was
generated in the Ga...
WHAT IS NOT A GAME?
WHAT IS NOT A GAME?
• “You win or you die.”
WHAT IS NOT A GAME?
• “You win or you die.”
WHAT IS NOT A GAME?
• “You win or you die.”
WHAT IS NOT A GAME?
• “You win or you die.”
• “Everything in life!” -
my mother, often as I was
growing up.
WHAT IS NOT A GAME?
• “You win or you die.”
• “Everything in life!” -
my mother, often as I was
growing up.
• “The only wi...
WHAT IS NOT A GAME?
• “You win or you die.”
• “Everything in life!” -
my mother, often as I was
growing up.
• “The only wi...
WHAT IS NOT A GAME?
• “You win or you die.”
• “Everything in life!” -
my mother, often as I was
growing up.
• “The only wi...
WHAT IS A GAME?
WHAT IS A GAME?
• Goals, rules, challenges, and
interactions.
WHAT IS A GAME?
• Goals, rules, challenges, and
interactions.
WHAT IS A GAME?
• Goals, rules, challenges, and
interactions.
WHAT IS A GAME?
• Goals, rules, challenges, and
interactions.
• “A series of meaningful
choices.” - Sid Meier
WHAT IS A GAME?
• Goals, rules, challenges, and
interactions.
• “A series of meaningful
choices.” - Sid Meier
WHAT IS A GAME?
• Goals, rules, challenges, and
interactions.
• “A series of meaningful
choices.” - Sid Meier
WHAT IS A GAME?
• Goals, rules, challenges, and
interactions.
• “A series of meaningful
choices.” - Sid Meier
• Iconic dep...
STAGES OF PATTERNHOOD
STAGES OF PATTERNHOOD
• NOISE
STAGES OF PATTERNHOOD
• NOISE
STAGES OF PATTERNHOOD
• NOISE
STAGES OF PATTERNHOOD
• NOISE
• Learning
STAGES OF PATTERNHOOD
• NOISE
• Learning
STAGES OF PATTERNHOOD
• NOISE
• Learning
STAGES OF PATTERNHOOD
• NOISE
• Learning
• Mastery
STAGES OF PATTERNHOOD
• NOISE
• Learning
• Mastery
STAGES OF PATTERNHOOD
• NOISE
• Learning
• Mastery
STAGES OF PATTERNHOOD
• NOISE
• Learning
• Mastery
• Comfort / Boredom
STAGES OF PATTERNHOOD
• NOISE
• Learning
• Mastery
• Comfort / Boredom
SPATIAL / COLOR
SPATIAL / COLOR
Blue always makes you win!	

-or-	

Always go to the left!
PHYSICS /TIMING
PHYSICS /TIMING
Button-smashing!
LIFE / DEATH
LIFE / DEATH
Infinite lives, no consequences!
WARFARE
WARFARE
Play as the “Good Guys” to win!
REWARDS
REWARDS
Awkward “Gamification"

- or -	

Manipulation / Social Referencing
SOCIAL STATUS / ROLES
SOCIAL STATUS / ROLES
“Save the princess”	

- or -	

Reinforcing stereotypes
EXAMPLES OF PATTERNS
Type Example Done Irresponsibly
Spatial / Color Tetris Blue is the best!
Physics /Timing Super Mario ...
YOUR APP:
YOUR APP:
• At first, it is just NOISE
YOUR APP:
• At first, it is just NOISE
• Use design patterns
YOUR APP:
• At first, it is just NOISE
• Use design patterns
• Reflect real-world patterns
YOUR APP:
• At first, it is just NOISE
• Use design patterns
• Reflect real-world patterns
• Introduce your new patterns
YOUR APP:
• At first, it is just NOISE
• Use design patterns
• Reflect real-world patterns
• Introduce your new patterns
• A...
ISYOUR APPTIC-TAC-TOE?
ISYOUR APPTIC-TAC-TOE?
QUESTIONSTO ASK
QUESTIONSTO ASK
• What patterns does my app have?
QUESTIONSTO ASK
• What patterns does my app have?
• At what stage are they presented?
QUESTIONSTO ASK
• What patterns does my app have?
• At what stage are they presented?
• Are they presented responsibly?
QUESTIONSTO ASK
• What patterns does my app have?
• At what stage are they presented?
• Are they presented responsibly?
• ...
BUDDING GAME ENVIRONMENTS
BUDDING GAME ENVIRONMENTS
• Game Center and Google Play Game Services
BUDDING GAME ENVIRONMENTS
• Game Center and Google Play Game Services
• Leaderboards
BUDDING GAME ENVIRONMENTS
• Game Center and Google Play Game Services
• Leaderboards
• Achievements
BUDDING GAME ENVIRONMENTS
• Game Center and Google Play Game Services
• Leaderboards
• Achievements
• Matchmaking
BUDDING GAME ENVIRONMENTS
• Game Center and Google Play Game Services
• Leaderboards
• Achievements
• Matchmaking
• What s...
SPRITE KIT
SPRITE KIT
• Apple Framework for iOS 7+ and OS X 10.9+
SPRITE KIT
• Apple Framework for iOS 7+ and OS X 10.9+
• Introduced at WWDC 2013
SPRITE KIT
• Apple Framework for iOS 7+ and OS X 10.9+
• Introduced at WWDC 2013
• Integrated into Xcode 5
SPRITE KIT
• Apple Framework for iOS 7+ and OS X 10.9+
• Introduced at WWDC 2013
• Integrated into Xcode 5
• Aids 2-D anim...
SPRITE KIT
• Apple Framework for iOS 7+ and OS X 10.9+
• Introduced at WWDC 2013
• Integrated into Xcode 5
• Aids 2-D anim...
SPRITE KIT
• Apple Framework for iOS 7+ and OS X 10.9+
• Introduced at WWDC 2013
• Integrated into Xcode 5
• Aids 2-D anim...
WHAT IS A SPRITE?
WHAT IS A SPRITE?
WHAT IS A SPRITE?
• An image or animation integrated into a larger scene
WHAT IS A SPRITE?
• An image or animation integrated into a larger scene
• Characters
WHAT IS A SPRITE?
• An image or animation integrated into a larger scene
• Characters
• Other moving objects
NODES
NODES
• BTW, everything has an SK in front of it
NODES
• BTW, everything has an SK in front of it
• SKNodes have parent-child relationships
NODES
• BTW, everything has an SK in front of it
• SKNodes have parent-child relationships
THE SNOWY PLANET BATTLE MENU
THE SNOWY PLANET BATTLE MENU
• Snowfall in the background
THE SNOWY PLANET BATTLE MENU
• Snowfall in the background
• Snow buildup on the buttons
THE SNOWY PLANET BATTLE MENU
• Snowfall in the background
• Snow buildup on the buttons
• A floating title (with orbiting l...
THE SNOWY PLANET BATTLE MENU
• Snowfall in the background
• Snow buildup on the buttons
• A floating title (with orbiting l...
THE SNOWY PLANET BATTLE MENU
• Snowfall in the background
• Snow buildup on the buttons
• A floating title (with orbiting l...
FIRSTTHINGS FIRST
FIRSTTHINGS FIRST
• Import SpriteKit into your Xcode project
FIRSTTHINGS FIRST
• Import SpriteKit into your Xcode project
• Create an SKView
FIRSTTHINGS FIRST
• Import SpriteKit into your Xcode project
• Create an SKView
• Have that SKView present a custom-made s...
FIRSTTHINGS FIRST
• Import SpriteKit into your Xcode project
• Create an SKView
• Have that SKView present a custom-made s...
SNOWFALL
SNOWFALL
• SKEmitterNode
SNOWFALL
• SKEmitterNode
• automatically creates small sprites
SNOWFALL
• SKEmitterNode
• automatically creates small sprites
• created and edited in Xcode 5
SNOWFALL
• SKEmitterNode
• automatically creates small sprites
• created and edited in Xcode 5
• Just add to a parent SKNo...
SNOWFLAKE SPRITES
SNOWFLAKE SPRITES
• To make each snowflake:
SNOWFLAKE SPRITES
• To make each snowflake:
• Create a new SKSpriteNode with a horizontally-
random starting position
SNOWFLAKE SPRITES
• To make each snowflake:
• Create a new SKSpriteNode with a horizontally-
random starting position
• Giv...
SNOWFLAKE SPRITES
• To make each snowflake:
• Create a new SKSpriteNode with a horizontally-
random starting position
• Giv...
THE FLOATINGTITLE
THE FLOATINGTITLE
• Create an SKLabelNode with text, font, etc.
THE FLOATINGTITLE
• Create an SKLabelNode with text, font, etc.
• Create a forever-repeating SKAction to float
THE FLOATINGTITLE
• Create an SKLabelNode with text, font, etc.
• Create a forever-repeating SKAction to float
• Assign it ...
THE FLOATINGTITLE
• Create an SKLabelNode with text, font, etc.
• Create a forever-repeating SKAction to float
• Assign it ...
ADD LASERS!
ADD LASERS!
• Create SKSpriteNodes
ADD LASERS!
• Create SKSpriteNodes
• Create + Assign flash and orbit SKActions
ADD LASERS!
• Create SKSpriteNodes
• Create + Assign flash and orbit SKActions
• Positions are automatically relative to th...
ADD LASERS!
• Create SKSpriteNodes
• Create + Assign flash and orbit SKActions
• Positions are automatically relative to th...
CHOOSING A MENU OPTION
CHOOSING A MENU OPTION
• Add plain old UIButtons
CHOOSING A MENU OPTION
• Add plain old UIButtons
• Also add non-dynamic SKNodes for snow to accumulate
CHOOSING A MENU OPTION
• Add plain old UIButtons
• Also add non-dynamic SKNodes for snow to accumulate
• When pressed:
CHOOSING A MENU OPTION
• Add plain old UIButtons
• Also add non-dynamic SKNodes for snow to accumulate
• When pressed:
• R...
CHOOSING A MENU OPTION
• Add plain old UIButtons
• Also add non-dynamic SKNodes for snow to accumulate
• When pressed:
• R...
CHOOSING A MENU OPTION
• Add plain old UIButtons
• Also add non-dynamic SKNodes for snow to accumulate
• When pressed:
• R...
EXPLODETHE BUTTON
EXPLODETHE BUTTON
• SKActions can execute completion blocks
EXPLODETHE BUTTON
• SKActions can execute completion blocks
• So once lasers hit, remove button and add another
SKEmitterN...
EXPLODETHE BUTTON
• SKActions can execute completion blocks
• So once lasers hit, remove button and add another
SKEmitterN...
EXPLODETHE BUTTON
• SKActions can execute completion blocks
• So once lasers hit, remove button and add another
SKEmitterN...
FRAME RATE
CHECKYOUR FRAME RATE
CHECKYOUR FRAME RATE
• Show on-screen using SKView’s showFPS property
CHECKYOUR FRAME RATE
• Show on-screen using SKView’s showFPS property
• Debug Navigator in Xcode
CHECKYOUR FRAME RATE
• Show on-screen using SKView’s showFPS property
• Debug Navigator in Xcode
CHECKYOUR FRAME RATE
• Show on-screen using SKView’s showFPS property
• Debug Navigator in Xcode
• Profile using Instruments
CHECKYOUR FRAME RATE
• Show on-screen using SKView’s showFPS property
• Debug Navigator in Xcode
• Profile using Instrument...
TO LEAVE WITH…
TO LEAVE WITH…
• There is a lot of exciting research going on around
games and learning.
TO LEAVE WITH…
• There is a lot of exciting research going on around
games and learning.
• There are a lot of unexplored p...
TO LEAVE WITH…
• There is a lot of exciting research going on around
games and learning.
• There are a lot of unexplored p...
THANKYOU
• @matt_luedke	

• mattluedke.com	

• github.com/mluedke2/snowy-planet-battle-menu
Upcoming SlideShare
Loading in …5
×

Your App Is Actually A Game @ Snow*Mobile 2014

883 views

Published on

Maybe you’re not setting out to make the next “Angry Birds.” But there are lessons to learn from mobile game design principles– from user training and motivation strategies to fun and engaging graphics– that are valuable to a wide variety of apps. First we’ll glance at a little “theory” about what makes games fun. Then we’ll come back to our non-game apps and see how those concepts could apply. Next, we’ll dive into an introductory example using iOS 7′s new, easy-to-use SpriteKit framework to make a fun, interactive app menu. Finally, we’ll use Instruments in Xcode to check on our frame rate to make sure we’re not compromising performance.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
883
On SlideShare
0
From Embeds
0
Number of Embeds
299
Actions
Shares
0
Downloads
9
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Your App Is Actually A Game @ Snow*Mobile 2014

  1. 1. YOUR APP IS
 ACTUALLY A GAME Snow*Mobile 2014
  2. 2. YOUR APP IS
 ACTUALLY A GAME Snow*Mobile 2014
  3. 3. SOME GUY WITH A MICROPHONE
  4. 4. SOME GUY WITH A MICROPHONE • An iOS / Android engineer
  5. 5. SOME GUY WITH A MICROPHONE • An iOS / Android engineer • Only a hobbyist game developer or designer
  6. 6. WHAT ISTHIS ABOUT?
  7. 7. WHAT ISTHIS ABOUT? • A list of important questions, with context
  8. 8. WHAT ISTHIS ABOUT? • A list of important questions, with context • A challenge for future apps
  9. 9. WHAT ISTHIS ABOUT? • A list of important questions, with context • A challenge for future apps • An example with a top current game engine
  10. 10. FORTHE BUSINESS FOLKS
  11. 11. FORTHE BUSINESS FOLKS • From Distimo’s Report for 2013:
  12. 12. FORTHE BUSINESS FOLKS • From Distimo’s Report for 2013: • “The vast majority of mobile app revenue was generated in the Games category.”
  13. 13. FORTHE BUSINESS FOLKS • From Distimo’s Report for 2013: • “The vast majority of mobile app revenue was generated in the Games category.” • The top 10 grossing apps in the App Store were games.
  14. 14. FORTHE BUSINESS FOLKS • From Distimo’s Report for 2013: • “The vast majority of mobile app revenue was generated in the Games category.” • The top 10 grossing apps in the App Store were games. • App Store: 75% of US revenue, 63% world
  15. 15. WHAT IS NOT A GAME?
  16. 16. WHAT IS NOT A GAME? • “You win or you die.”
  17. 17. WHAT IS NOT A GAME? • “You win or you die.”
  18. 18. WHAT IS NOT A GAME? • “You win or you die.”
  19. 19. WHAT IS NOT A GAME? • “You win or you die.” • “Everything in life!” - my mother, often as I was growing up.
  20. 20. WHAT IS NOT A GAME? • “You win or you die.” • “Everything in life!” - my mother, often as I was growing up. • “The only winning move is not to play.”
  21. 21. WHAT IS NOT A GAME? • “You win or you die.” • “Everything in life!” - my mother, often as I was growing up. • “The only winning move is not to play.”
  22. 22. WHAT IS NOT A GAME? • “You win or you die.” • “Everything in life!” - my mother, often as I was growing up. • “The only winning move is not to play.” • actually, this is a game.
  23. 23. WHAT IS A GAME?
  24. 24. WHAT IS A GAME? • Goals, rules, challenges, and interactions.
  25. 25. WHAT IS A GAME? • Goals, rules, challenges, and interactions.
  26. 26. WHAT IS A GAME? • Goals, rules, challenges, and interactions.
  27. 27. WHAT IS A GAME? • Goals, rules, challenges, and interactions. • “A series of meaningful choices.” - Sid Meier
  28. 28. WHAT IS A GAME? • Goals, rules, challenges, and interactions. • “A series of meaningful choices.” - Sid Meier
  29. 29. WHAT IS A GAME? • Goals, rules, challenges, and interactions. • “A series of meaningful choices.” - Sid Meier
  30. 30. WHAT IS A GAME? • Goals, rules, challenges, and interactions. • “A series of meaningful choices.” - Sid Meier • Iconic depictions of patterns in the world.
  31. 31. STAGES OF PATTERNHOOD
  32. 32. STAGES OF PATTERNHOOD • NOISE
  33. 33. STAGES OF PATTERNHOOD • NOISE
  34. 34. STAGES OF PATTERNHOOD • NOISE
  35. 35. STAGES OF PATTERNHOOD • NOISE • Learning
  36. 36. STAGES OF PATTERNHOOD • NOISE • Learning
  37. 37. STAGES OF PATTERNHOOD • NOISE • Learning
  38. 38. STAGES OF PATTERNHOOD • NOISE • Learning • Mastery
  39. 39. STAGES OF PATTERNHOOD • NOISE • Learning • Mastery
  40. 40. STAGES OF PATTERNHOOD • NOISE • Learning • Mastery
  41. 41. STAGES OF PATTERNHOOD • NOISE • Learning • Mastery • Comfort / Boredom
  42. 42. STAGES OF PATTERNHOOD • NOISE • Learning • Mastery • Comfort / Boredom
  43. 43. SPATIAL / COLOR
  44. 44. SPATIAL / COLOR Blue always makes you win! -or- Always go to the left!
  45. 45. PHYSICS /TIMING
  46. 46. PHYSICS /TIMING Button-smashing!
  47. 47. LIFE / DEATH
  48. 48. LIFE / DEATH Infinite lives, no consequences!
  49. 49. WARFARE
  50. 50. WARFARE Play as the “Good Guys” to win!
  51. 51. REWARDS
  52. 52. REWARDS Awkward “Gamification"
 - or - Manipulation / Social Referencing
  53. 53. SOCIAL STATUS / ROLES
  54. 54. SOCIAL STATUS / ROLES “Save the princess” - or - Reinforcing stereotypes
  55. 55. EXAMPLES OF PATTERNS Type Example Done Irresponsibly Spatial / Color Tetris Blue is the best! Physics /Timing Super Mario Bros. Button-smashing! Life / Death Chess No consequences. Warfare Starcraft The “good guys” always win! Rewards Olympic Medals Manipulation, social referencing Social Status / Roles The Sims Save the princess, stereotyping
  56. 56. YOUR APP:
  57. 57. YOUR APP: • At first, it is just NOISE
  58. 58. YOUR APP: • At first, it is just NOISE • Use design patterns
  59. 59. YOUR APP: • At first, it is just NOISE • Use design patterns • Reflect real-world patterns
  60. 60. YOUR APP: • At first, it is just NOISE • Use design patterns • Reflect real-world patterns • Introduce your new patterns
  61. 61. YOUR APP: • At first, it is just NOISE • Use design patterns • Reflect real-world patterns • Introduce your new patterns • Avoid comfort / boredom
  62. 62. ISYOUR APPTIC-TAC-TOE?
  63. 63. ISYOUR APPTIC-TAC-TOE?
  64. 64. QUESTIONSTO ASK
  65. 65. QUESTIONSTO ASK • What patterns does my app have?
  66. 66. QUESTIONSTO ASK • What patterns does my app have? • At what stage are they presented?
  67. 67. QUESTIONSTO ASK • What patterns does my app have? • At what stage are they presented? • Are they presented responsibly?
  68. 68. QUESTIONSTO ASK • What patterns does my app have? • At what stage are they presented? • Are they presented responsibly? • Are there any other patterns it should have?
  69. 69. BUDDING GAME ENVIRONMENTS
  70. 70. BUDDING GAME ENVIRONMENTS • Game Center and Google Play Game Services
  71. 71. BUDDING GAME ENVIRONMENTS • Game Center and Google Play Game Services • Leaderboards
  72. 72. BUDDING GAME ENVIRONMENTS • Game Center and Google Play Game Services • Leaderboards • Achievements
  73. 73. BUDDING GAME ENVIRONMENTS • Game Center and Google Play Game Services • Leaderboards • Achievements • Matchmaking
  74. 74. BUDDING GAME ENVIRONMENTS • Game Center and Google Play Game Services • Leaderboards • Achievements • Matchmaking • What should be added?
  75. 75. SPRITE KIT
  76. 76. SPRITE KIT • Apple Framework for iOS 7+ and OS X 10.9+
  77. 77. SPRITE KIT • Apple Framework for iOS 7+ and OS X 10.9+ • Introduced at WWDC 2013
  78. 78. SPRITE KIT • Apple Framework for iOS 7+ and OS X 10.9+ • Introduced at WWDC 2013 • Integrated into Xcode 5
  79. 79. SPRITE KIT • Apple Framework for iOS 7+ and OS X 10.9+ • Introduced at WWDC 2013 • Integrated into Xcode 5 • Aids 2-D animations and physics
  80. 80. SPRITE KIT • Apple Framework for iOS 7+ and OS X 10.9+ • Introduced at WWDC 2013 • Integrated into Xcode 5 • Aids 2-D animations and physics • Doesn’t require going into OpenGL
  81. 81. SPRITE KIT • Apple Framework for iOS 7+ and OS X 10.9+ • Introduced at WWDC 2013 • Integrated into Xcode 5 • Aids 2-D animations and physics • Doesn’t require going into OpenGL • Meaning: not scary
  82. 82. WHAT IS A SPRITE?
  83. 83. WHAT IS A SPRITE?
  84. 84. WHAT IS A SPRITE? • An image or animation integrated into a larger scene
  85. 85. WHAT IS A SPRITE? • An image or animation integrated into a larger scene • Characters
  86. 86. WHAT IS A SPRITE? • An image or animation integrated into a larger scene • Characters • Other moving objects
  87. 87. NODES
  88. 88. NODES • BTW, everything has an SK in front of it
  89. 89. NODES • BTW, everything has an SK in front of it • SKNodes have parent-child relationships
  90. 90. NODES • BTW, everything has an SK in front of it • SKNodes have parent-child relationships
  91. 91. THE SNOWY PLANET BATTLE MENU
  92. 92. THE SNOWY PLANET BATTLE MENU • Snowfall in the background
  93. 93. THE SNOWY PLANET BATTLE MENU • Snowfall in the background • Snow buildup on the buttons
  94. 94. THE SNOWY PLANET BATTLE MENU • Snowfall in the background • Snow buildup on the buttons • A floating title (with orbiting lasers)
  95. 95. THE SNOWY PLANET BATTLE MENU • Snowfall in the background • Snow buildup on the buttons • A floating title (with orbiting lasers) • Choosing an option causes lasers to fire
  96. 96. THE SNOWY PLANET BATTLE MENU • Snowfall in the background • Snow buildup on the buttons • A floating title (with orbiting lasers) • Choosing an option causes lasers to fire • And an EXPLOSION
  97. 97. FIRSTTHINGS FIRST
  98. 98. FIRSTTHINGS FIRST • Import SpriteKit into your Xcode project
  99. 99. FIRSTTHINGS FIRST • Import SpriteKit into your Xcode project • Create an SKView
  100. 100. FIRSTTHINGS FIRST • Import SpriteKit into your Xcode project • Create an SKView • Have that SKView present a custom-made subclass of SKScene
  101. 101. FIRSTTHINGS FIRST • Import SpriteKit into your Xcode project • Create an SKView • Have that SKView present a custom-made subclass of SKScene • Note that SKScene extends SKNode, so it has a parent-child setup
  102. 102. SNOWFALL
  103. 103. SNOWFALL • SKEmitterNode
  104. 104. SNOWFALL • SKEmitterNode • automatically creates small sprites
  105. 105. SNOWFALL • SKEmitterNode • automatically creates small sprites • created and edited in Xcode 5
  106. 106. SNOWFALL • SKEmitterNode • automatically creates small sprites • created and edited in Xcode 5 • Just add to a parent SKNode and it runs until you remove it
  107. 107. SNOWFLAKE SPRITES
  108. 108. SNOWFLAKE SPRITES • To make each snowflake:
  109. 109. SNOWFLAKE SPRITES • To make each snowflake: • Create a new SKSpriteNode with a horizontally- random starting position
  110. 110. SNOWFLAKE SPRITES • To make each snowflake: • Create a new SKSpriteNode with a horizontally- random starting position • Give it a new SKPhysicsBody and let Newton take over
  111. 111. SNOWFLAKE SPRITES • To make each snowflake: • Create a new SKSpriteNode with a horizontally- random starting position • Give it a new SKPhysicsBody and let Newton take over • It melts after some time or when it leaves the screen
  112. 112. THE FLOATINGTITLE
  113. 113. THE FLOATINGTITLE • Create an SKLabelNode with text, font, etc.
  114. 114. THE FLOATINGTITLE • Create an SKLabelNode with text, font, etc. • Create a forever-repeating SKAction to float
  115. 115. THE FLOATINGTITLE • Create an SKLabelNode with text, font, etc. • Create a forever-repeating SKAction to float • Assign it an SKPhysicsBody
  116. 116. THE FLOATINGTITLE • Create an SKLabelNode with text, font, etc. • Create a forever-repeating SKAction to float • Assign it an SKPhysicsBody • But turn off the dynamic boolean
  117. 117. ADD LASERS!
  118. 118. ADD LASERS! • Create SKSpriteNodes
  119. 119. ADD LASERS! • Create SKSpriteNodes • Create + Assign flash and orbit SKActions
  120. 120. ADD LASERS! • Create SKSpriteNodes • Create + Assign flash and orbit SKActions • Positions are automatically relative to their parent
  121. 121. ADD LASERS! • Create SKSpriteNodes • Create + Assign flash and orbit SKActions • Positions are automatically relative to their parent • So as the title floats, lasers move with it
  122. 122. CHOOSING A MENU OPTION
  123. 123. CHOOSING A MENU OPTION • Add plain old UIButtons
  124. 124. CHOOSING A MENU OPTION • Add plain old UIButtons • Also add non-dynamic SKNodes for snow to accumulate
  125. 125. CHOOSING A MENU OPTION • Add plain old UIButtons • Also add non-dynamic SKNodes for snow to accumulate • When pressed:
  126. 126. CHOOSING A MENU OPTION • Add plain old UIButtons • Also add non-dynamic SKNodes for snow to accumulate • When pressed: • Remove all SKActions from the laser nodes
  127. 127. CHOOSING A MENU OPTION • Add plain old UIButtons • Also add non-dynamic SKNodes for snow to accumulate • When pressed: • Remove all SKActions from the laser nodes • Assign new SKAction to move to the center of pressed button
  128. 128. CHOOSING A MENU OPTION • Add plain old UIButtons • Also add non-dynamic SKNodes for snow to accumulate • When pressed: • Remove all SKActions from the laser nodes • Assign new SKAction to move to the center of pressed button • BUT NOW WE WANT IT TO EXPLODE
  129. 129. EXPLODETHE BUTTON
  130. 130. EXPLODETHE BUTTON • SKActions can execute completion blocks
  131. 131. EXPLODETHE BUTTON • SKActions can execute completion blocks • So once lasers hit, remove button and add another SKEmitterNode
  132. 132. EXPLODETHE BUTTON • SKActions can execute completion blocks • So once lasers hit, remove button and add another SKEmitterNode • After an action-film-worthy period of time, remove the emitter
  133. 133. EXPLODETHE BUTTON • SKActions can execute completion blocks • So once lasers hit, remove button and add another SKEmitterNode • After an action-film-worthy period of time, remove the emitter • Navigate to some other screen
  134. 134. FRAME RATE
  135. 135. CHECKYOUR FRAME RATE
  136. 136. CHECKYOUR FRAME RATE • Show on-screen using SKView’s showFPS property
  137. 137. CHECKYOUR FRAME RATE • Show on-screen using SKView’s showFPS property • Debug Navigator in Xcode
  138. 138. CHECKYOUR FRAME RATE • Show on-screen using SKView’s showFPS property • Debug Navigator in Xcode
  139. 139. CHECKYOUR FRAME RATE • Show on-screen using SKView’s showFPS property • Debug Navigator in Xcode • Profile using Instruments
  140. 140. CHECKYOUR FRAME RATE • Show on-screen using SKView’s showFPS property • Debug Navigator in Xcode • Profile using Instruments • Core Animation preset will work
  141. 141. TO LEAVE WITH…
  142. 142. TO LEAVE WITH… • There is a lot of exciting research going on around games and learning.
  143. 143. TO LEAVE WITH… • There is a lot of exciting research going on around games and learning. • There are a lot of unexplored patterns for apps
  144. 144. TO LEAVE WITH… • There is a lot of exciting research going on around games and learning. • There are a lot of unexplored patterns for apps • Introducing game dynamics and physics is easy and fun!
  145. 145. THANKYOU • @matt_luedke • mattluedke.com • github.com/mluedke2/snowy-planet-battle-menu

×