Game Technologies for Apple Watch

Size: px
Start display at page:

Download "Game Technologies for Apple Watch"

Transcription

1 Graphics and Games #WWDC16 Game Technologies for Apple Watch Session 612 Christy Warren Game Technologies Engineer Fatima Broom Game Technologies Engineer Tyler Casella Game Technologies Engineer 2016 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.

2 ios Fantastic platform for games

3 ios and watchos Fantastic platform for games

4 Games on Your Wrist What you will learn Input and feedback Graphics frameworks Social gaming Tools and best practices

5 Games on Your Wrist What you will learn Input and feedback Graphics frameworks Social gaming Tools and best practices

6 Available Technologies WatchKit 3 SpriteKit SceneKit Game Center Notification Glances Complications Watch Connectivity

7 Available Technologies WatchKit 3 SpriteKit SceneKit Game Center

8 Game Technologies NEW WatchKit Interfaces Input Gesture recognizers Digital Crown Accelerometer Haptic feedback

9 Game Technologies NEW SpriteKit and SceneKit Graphics Audio

10 Game Technologies NEW Game Center Social gaming Achievements Leaderboards Multiplayer

11 Demo Puzzle 3D

12 Demo Puzzle 3D

13 Input and Feedback

14 User Interaction At a glance Crown Touch Gestures Motion Haptic Feedback

15 Touch Gestures Types Tap Pan Swipe Long press

16 Touch Gestures Tap Target selection Move to position

17 Touch Gestures Tap Target selection Move to position

18 Touch Gestures Pan Scrolling Movement

19 Touch Gestures Pan Scrolling Movement

20 Touch Gestures Pan Scrolling Movement

21 Touch Gestures Pan Scrolling Movement

22 Touch Gestures Swipe Navigation Push Pop

23 Touch Gestures Swipe Navigation Push Pop

24 Touch Gestures Swipe Navigation Push Pop

25 Touch Gestures Long press Bring up menu

26 Touch Gestures Long press Bring up menu

27 Gesture Recognizers Four new classes Gesture Class Tap WKTapGestureRecognizer

28 Gesture Recognizers Four new classes Gesture Class Tap WKTapGestureRecognizer

29 Gesture Recognizers Four new classes Gesture Class Tap WKTapGestureRecognizer Pan WKPanGestureRecognizer

30 Gesture Recognizers Four new classes Gesture Class Tap WKTapGestureRecognizer Pan WKPanGestureRecognizer

31 Gesture Recognizers Four new classes Gesture Class Tap WKTapGestureRecognizer Pan WKPanGestureRecognizer Swipe WKSwipeGestureRecognizer

32 Gesture Recognizers Four new classes Gesture Class Tap WKTapGestureRecognizer Pan WKPanGestureRecognizer Swipe WKSwipeGestureRecognizer

33 Gesture Recognizers Four new classes Gesture Class Tap WKTapGestureRecognizer Pan WKPanGestureRecognizer Swipe WKSwipeGestureRecognizer Long Press WKLongPressGestureRecognizer

34 Gesture Recognizers Four new classes Gesture Class Tap WKTapGestureRecognizer Pan WKPanGestureRecognizer Swipe WKSwipeGestureRecognizer Long Press WKLongPressGestureRecognizer

35

36

37

38

39

40 Touch Gestures Conflicts

41 Touch Gestures Conflicts

42 Touch Gestures Conflicts

43 Touch Gestures Swipe vs. tap vs. pan Versus

44 Touch Gestures Swipe yields

45

46 WKGestureRecognizer Handling gestures Associate recognizer with action method IBAction func handlegesture(recognizer : WKGestureRecognizer?)

47 WKGestureRecognizer Handling gestures Associate recognizer with action method IBAction func handlegesture(recognizer : WKGestureRecognizer?) Recognizer properties func locationinobject() -> CGPoint func objectbounds() -> CGRect var state : WKGestureRecognizerState

48 // Adopting Touch Gestures // Handle pan func handlepan(pangesture: WKPanGestureRecognizer) { let location = pangesture.locationinobject() let bounds = pangesture.objectbounds() switch pangesture.state { case.begin: self.setuprotation(withlocation: location, bounds) case.changed,.ended,.cancelled: self.updaterotation(withlocation: location, bounds) } }

49 // Adopting Touch Gestures // Handle pan func handlepan(pangesture: WKPanGestureRecognizer) { let location = pangesture.locationinobject() let bounds = pangesture.objectbounds() switch pangesture.state { case.begin: self.setuprotation(withlocation: location, bounds) case.changed,.ended,.cancelled: self.updaterotation(withlocation: location, bounds) } }

50 // Adopting Touch Gestures // Handle pan func handlepan(pangesture: WKPanGestureRecognizer) { let location = pangesture.locationinobject() let bounds = pangesture.objectbounds() switch pangesture.state { case.begin: self.setuprotation(withlocation: location, bounds) case.changed,.ended,.cancelled: self.updaterotation(withlocation: location, bounds) } }

51 // Adopting Touch Gestures // Handle pan func handlepan(pangesture: WKPanGestureRecognizer) { let location = pangesture.locationinobject() let bounds = pangesture.objectbounds() switch pangesture.state { case.begin: self.setuprotation(withlocation: location, bounds) case.changed,.ended,.cancelled: self.updaterotation(withlocation: location, bounds) } }

52 Touch Gestures Considerations Short interactions Keep content visible Discoverable

53 Touch Gestures Considerations Short interactions Keep content visible Discoverable

54 Digital Crown Analog control Simple analog control Selection Scrolling Game paddle

55 Digital Crown Analog control Simple analog control Selection Scrolling Game paddle

56 Digital Crown Analog control Simple analog control Selection Scrolling Game paddle

57 Digital Crown Analog control Simple analog control Selection Scrolling Game paddle

58 Digital Crown Analog control Simple analog control Selection Scrolling Game paddle

59 Digital Crown Analog control Simple analog control Selection Scrolling Game paddle

60 Digital Crown Analog control Simple analog control Selection Scrolling Game paddle

61 Digital Crown Analog control Simple analog control Selection Scrolling Game paddle

62 Digital Crown Analog control Simple analog control Selection Scrolling Game paddle

63 Digital Crown Analog control Simple analog control Selection Scrolling Game paddle

64 WKCrownSequencer Direct access to crown events Object that reports state of digital crown Accessed through property on controller public var crownsequencer: WKCrownSequencer

65 WKCrownSequencer Direct access to crown events Object that reports state of digital crown Accessed through property on controller public var crownsequencer: WKCrownSequencer Current state var rotationspersecond : Double var isidle : Bool

66 WKCrownSequencer Direct access to crown events Object that reports state of digital crown Accessed through property on controller public var crownsequencer: WKCrownSequencer Current state var rotationspersecond : Double var isidle : Bool WKCrownDelegate Reports change deltas

67 WKCrownDelegate Protocol to track events optional func crowndidrotate(sequencer : WKCrownSequencer?, rotationaldelta: Double)

68 WKCrownDelegate Protocol to track events optional func crowndidrotate(sequencer : WKCrownSequencer?, rotationaldelta: Double) Direction of reported values + away from user - towards user True for left or right wrist

69 WKCrownDelegate Protocol to track events optional func crowndidrotate(sequencer : WKCrownSequencer?, rotationaldelta: Double) Direction of reported values + away from user - towards user True for left or right wrist optional func crowndidbecomeidle(sequencer : WKCrownSequencer?)

70 Digital Crown Recap Great for games Easy to adopt

71 Accelerometer CoreMotion Enhances other interactions Tilt on a pinball game Add spin to a pool shot

72 Accelerometer CoreMotion Enhances other interactions Tilt on a pinball game Add spin to a pool shot

73 Accelerometer CoreMotion Available through CMMotionManger()

74 Accelerometer CoreMotion Available through CMMotionManger() Considerations Screen may turn off due to user motion App put in background

75 Accelerometer CoreMotion Available through CMMotionManger() Considerations Screen may turn off due to user motion App put in background Recommendation Background processing NSProcessInfo performexpiringactivitywithreason(_:,usingblock:)

76 // Adopting Accelerometer let motionmanager = CMMotionManager() override func willactivate() { super.willactivate() if motionmanager.isaccelerometeravailable { // set a sampling rate motionmanager.accelerometerupdateinterval = 1.0/30.0 } } // start getting updates motionmanager.startaccelerometerupdates(to: OperationQueue.current()!, withhandler: { (data: CMAccelerometerData?, error: NSError?) -> Void in if let data = data { self.gamescene.didreceiveaccelerometerupdate(accelerometerdata: data) } }) override func diddeactivate() { super.diddeactivate() motionmanager.stopaccelerometerupdates() }

77 // Adopting Accelerometer let motionmanager = CMMotionManager() override func willactivate() { super.willactivate() if motionmanager.isaccelerometeravailable { // set a sampling rate motionmanager.accelerometerupdateinterval = 1.0/30.0 } } // start getting updates motionmanager.startaccelerometerupdates(to: OperationQueue.current()!, withhandler: { (data: CMAccelerometerData?, error: NSError?) -> Void in if let data = data { self.gamescene.didreceiveaccelerometerupdate(accelerometerdata: data) } }) override func diddeactivate() { super.diddeactivate() motionmanager.stopaccelerometerupdates() }

78 // Adopting Accelerometer let motionmanager = CMMotionManager() override func willactivate() { super.willactivate() if motionmanager.isaccelerometeravailable { // set a sampling rate motionmanager.accelerometerupdateinterval = 1.0/30.0 } } // start getting updates motionmanager.startaccelerometerupdates(to: OperationQueue.current()!, withhandler: { (data: CMAccelerometerData?, error: NSError?) -> Void in if let data = data { self.gamescene.didreceiveaccelerometerupdate(accelerometerdata: data) } }) override func diddeactivate() { super.diddeactivate() motionmanager.stopaccelerometerupdates() }

79 // Adopting Accelerometer let motionmanager = CMMotionManager() override func willactivate() { super.willactivate() if motionmanager.isaccelerometeravailable { // set a sampling rate motionmanager.accelerometerupdateinterval = 1.0/30.0 } } // start getting updates motionmanager.startaccelerometerupdates(to: OperationQueue.current()!, withhandler: { (data: CMAccelerometerData?, error: NSError?) -> Void in if let data = data { self.gamescene.didreceiveaccelerometerupdate(accelerometerdata: data) } }) override func diddeactivate() { super.diddeactivate() motionmanager.stopaccelerometerupdates() }

80 // Adopting Accelerometer let motionmanager = CMMotionManager() override func willactivate() { super.willactivate() if motionmanager.isaccelerometeravailable { // set a sampling rate motionmanager.accelerometerupdateinterval = 1.0/30.0 } } // start getting updates motionmanager.startaccelerometerupdates(to: OperationQueue.current()!, withhandler: { (data: CMAccelerometerData?, error: NSError?) -> Void in if let data = data { self.gamescene.didreceiveaccelerometerupdate(accelerometerdata: data) } }) override func diddeactivate() { super.diddeactivate() motionmanager.stopaccelerometerupdates() }

81 // Adopting Accelerometer let motionmanager = CMMotionManager() override func willactivate() { super.willactivate() if motionmanager.isaccelerometeravailable { // set a sampling rate motionmanager.accelerometerupdateinterval = 1.0/30.0 } } // start getting updates motionmanager.startaccelerometerupdates(to: OperationQueue.current()!, withhandler: { (data: CMAccelerometerData?, error: NSError?) -> Void in if let data = data { self.gamescene.didreceiveaccelerometerupdate(accelerometerdata: data) } }) override func diddeactivate() { super.diddeactivate() motionmanager.stopaccelerometerupdates() }

82 Accelerometer Recap Enhances other interactions Screen blanking Use when needed

83 Haptic Feedback Makes game feel real Combination of vibration and tone

84 Haptic Feedback Makes game feel real Combination of vibration and tone

85 Haptic Feedback Makes game feel real Combination of vibration and tone Nine types Up/down Start/stop Success/failure/retry Notification Click

86 Haptic Feedback Notification

87 Haptic Feedback Notification

88 Haptic Feedback Direction down

89 Haptic Feedback Direction down

90 Haptic Feedback Direction up

91 Haptic Feedback Direction up

92 Haptic Feedback Start

93 Haptic Feedback Start

94 Haptic Feedback Stop

95 Haptic Feedback Stop

96 Haptic Feedback Success

97 Haptic Feedback Success

98 Haptic Feedback Failure

99 Haptic Feedback Failure

100 Haptic Feedback Click

101 Haptic Feedback Click

102 Click Open a lock

103 Click Open a lock

104 // Haptic Feedback // Example WKInterfaceDevice.currentDevice().play(.success)

105 // Haptic Feedback // Example WKInterfaceDevice.currentDevice().play(.success) enum WKHapticType : Int { case notification case directionup case directiondown case success case failure case retry case start case stop case click }

106 Haptic Feedback Considerations Distinct events Exercise restraint

107 Input and Feedback Recap Crown Touch Gestures Motion Haptic Feedback

108 Graphics Frameworks Fatima Broom Game Technologies Engineer

109 SpriteKit and SceneKit 2D and 3D graphics frameworks for games Super easy to use Integrated tools and editors Available on macos, ios, tvos, and watchos SpriteKit SceneKit

110 SpriteKit and SceneKit GPU-accelerated, real-time rendering

111 SpriteKit and SceneKit GPU-accelerated, real-time rendering

112 Features

113 Animations SpriteKit SceneKit

114 Animations SpriteKit SceneKit

115 Particles SpriteKit SceneKit

116 Particles SpriteKit SceneKit

117 Physics SpriteKit SceneKit

118 Physics SpriteKit SceneKit

119 Lighting SpriteKit SceneKit

120 Lighting SpriteKit SceneKit

121 Camera SpriteKit SceneKit

122 Camera SpriteKit SceneKit

123 Shapes and Text SpriteKit SceneKit

124 Shapes and Text SpriteKit SceneKit

125 Shaders SpriteKit SceneKit

126 Shaders SpriteKit SceneKit

127 SpriteKit Scene Graph

128 SpriteKit Scene Graph SKView

129 SpriteKit Scene Graph SKView SKScene

130 SpriteKit Scene Graph SKView SKScene SKSpriteNode SKFieldNode SKShapeNode SKVideoNode SKCameraNode SKCropNode SKLabelNode SKShapeNode CIFilter SKTileMapNode SKAudioNode SKLightNode SKEmitterNode

131 SpriteKit Scene Graph SKView SKScene SKSpriteNode SKFieldNode SKShapeNode SKVideoNode SKCameraNode SKCropNode SKLabelNode SKShapeNode CIFilter SKTileMapNode SKAudioNode SKLightNode SKEmitterNode

132 SpriteKit Scene Graph WKInterfaceSKScene SKScene SKSpriteNode SKFieldNode SKShapeNode SKVideoNode SKCameraNode SKCropNode SKLabelNode SKShapeNode CIFilter SKTileMapNode SKAudioNode SKLightNode SKEmitterNode

133 SpriteKit Scene Graph WKInterfaceSKScene SKView SKScene SKSpriteNode SKFieldNode SKShapeNode SKVideoNode SKCameraNode SKCropNode SKLabelNode SKShapeNode CIFilter SKTileMapNode SKAudioNode SKLightNode SKEmitterNode

134 SpriteKit Scene Graph WKInterfaceSKScene SKView SKScene SKSpriteNode SKFieldNode SKShapeNode SKVideoNode SKCameraNode SKCropNode SKLabelNode SKShapeNode SKShader SKTileMapNode SKAudioNode SKLightNode SKEmitterNode

135 SpriteKit Scene Graph WKInterfaceSKScene SKView SKScene SKSpriteNode SKFieldNode SKShapeNode SKVideoNode SKCameraNode SKCropNode SKLabelNode SKShapeNode CIFilter SKShader SKTileMapNode SKAudioNode SKLightNode SKEmitterNode

136 SpriteKit Scene Graph WKInterfaceSKScene SKView SKScene SKSpriteNode SKFieldNode SKShapeNode SKVideoNode SKCameraNode SKCropNode SKLabelNode SKShapeNode CIFilter SKShader SKTileMapNode SKAction SKLightNode SKEmitterNode playsoundfilename

137 SpriteKit Scene Graph WKInterfaceSKScene SKView SKScene SKSpriteNode SKFieldNode SKShapeNode SKVideoNode SKCameraNode SKCropNode SKLabelNode SKShapeNode CIFilter SKShader SKTileMapNode SKAudioNode SKAction SKLightNode SKEmitterNode playsoundfilename

138 SpriteKit Scene Graph WKInterfaceSKScene SKView SKScene SKSpriteNode SKFieldNode SKShapeNode WKInterfaceMovie SKCameraNode SKCropNode SKLabelNode SKShapeNode CIFilter SKShader SKTileMapNode SKAudioNode SKAction SKLightNode SKEmitterNode playsoundfilename

139 SpriteKit Scene Graph WKInterfaceSKScene SKView SKScene SKSpriteNode SKFieldNode SKShapeNode WKInterfaceMovie SKVideoNode SKCameraNode SKCropNode SKLabelNode SKShapeNode CIFilter SKShader SKTileMapNode SKAudioNode SKAction SKLightNode SKEmitterNode playsoundfilename

140 Summary ios watchos SpriteKit SKView WKInterfaceSKScene SKAudioNode CIFilter SKVideoNode/AVPlayer SKAction playsoundfilenamed SKShader WKInterfaceMovie, WKInterfaceInlineMovie

141 Summary ios watchos SpriteKit SKView WKInterfaceSKScene SKAudioNode CIFilter SKVideoNode/AVPlayer SKAction playsoundfilenamed SKShader WKInterfaceMovie, WKInterfaceInlineMovie SceneKit SCNView WKInterfaceSCNScene SCNAudioSource (Positional) SCNAudioSource (Standard) CIFilter SCNShadable (Shader Modifiers)

142 Getting Started

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161 // Interface Controller class InterfaceController: WKInterfaceController var skinterface: WKInterfaceSKScene! override func awake(withcontext context: AnyObject?) { super.awake(withcontext: context) // Configure interface objects here. // Load the SKScene from 'GameScene.sks' if let scene = GameScene(fileNamed: "GameScene") { // Set the scale mode to scale to fit the window scene.scalemode =.aspectfill // Present the scene self.skinterface.presentscene(scene) } } } // Use a value that will maintain a consistent frame rate self.skinterface.preferredframespersecond = 30

162 // Interface Controller class InterfaceController: WKInterfaceController var skinterface: WKInterfaceSKScene! override func awake(withcontext context: AnyObject?) { super.awake(withcontext: context) // Configure interface objects here. // Load the SKScene from 'GameScene.sks' if let scene = GameScene(fileNamed: "GameScene") { // Set the scale mode to scale to fit the window scene.scalemode =.aspectfill // Present the scene self.skinterface.presentscene(scene) } } } // Use a value that will maintain a consistent frame rate self.skinterface.preferredframespersecond = 30

163 // Interface Controller class InterfaceController: WKInterfaceController var skinterface: WKInterfaceSKScene! override func awake(withcontext context: AnyObject?) { super.awake(withcontext: context) // Configure interface objects here. // Load the SKScene from 'GameScene.sks' if let scene = GameScene(fileNamed: "GameScene") { // Set the scale mode to scale to fit the window scene.scalemode =.aspectfill // Present the scene self.skinterface.presentscene(scene) } } } // Use a value that will maintain a consistent frame rate self.skinterface.preferredframespersecond = 30

164 // Interface Controller class InterfaceController: WKInterfaceController var skinterface: WKInterfaceSKScene! override func awake(withcontext context: AnyObject?) { super.awake(withcontext: context) // Configure interface objects here. // Load the SKScene from 'GameScene.sks' if let scene = GameScene(fileNamed: "GameScene") { // Set the scale mode to scale to fit the window scene.scalemode =.aspectfill // Present the scene self.skinterface.presentscene(scene) } } } // Use a value that will maintain a consistent frame rate self.skinterface.preferredframespersecond = 30

165 Game Center Christy Warren Game Technologies Engineer

166 Game Center Introduction Social gaming Achievements Leaderboards Turn-based Multiplayer

167 Turn Based Multiplayer A good match Brief interaction Asynchronous Details Documentation and past sessions

168 Getting Started Authentication Adoption is similar to ios Streamlined Sign in on companion No view controller

169 // Authentication Implementation class InterfaceController: WKInterfaceController { override func awake(withcontext context: AnyObject?) { super.awake(withcontext: context) // setup Game Center Authenticate Handler GKLocalPlayer.localPlayer().authenticateHandler = {(error) in if (error == nil) { print("success!") // give feedback user that they are signed in } else { print("failed \(error)") // give feedback that game center failed to sign in } } } }

170 // Authentication Implementation class InterfaceController: WKInterfaceController { override func awake(withcontext context: AnyObject?) { super.awake(withcontext: context) // setup Game Center Authenticate Handler GKLocalPlayer.localPlayer().authenticateHandler = {(error) in if (error == nil) { print("success!") // give feedback user that they are signed in } else { print("failed \(error)") // give feedback that game center failed to sign in } } } }

171 Turn-Based Multiplayer Finding players Automatch Invite recent players

172 Turn-Based Multiplayer Automatch Pick Players Programmatic (Automatch) GKMatchRequest GKTurnBasedMatch.find(for: )

173 Turn-Based Multiplayer Automatch Pick Players Programmatic (Automatch) GKMatchRequest GKTurnBasedMatch.find(for: )

174 Turn-Based Multiplayer Automatch Pick Players Programmatic (Automatch) GKMatchRequest GKTurnBasedMatch.find(for: ) myturnbasedmatch

175 Automatch Quick and easy GKMatchRequest GKTurnBasedMatch

176 Automatch Quick and easy GKMatchRequest GKTurnBasedMatch let request = GKMatchRequest() matchrequest.maxplayers = 2 GKTurnBasedMatch.find(for: request, withcompletionhandler: { (match, error) in if (error == nil) { self.startgame(withmatch: match) } } else { // give feedback that game center failed to find a match }

177 Automatch Quick and easy GKMatchRequest GKTurnBasedMatch let request = GKMatchRequest() matchrequest.maxplayers = 2 GKTurnBasedMatch.find(for: request, withcompletionhandler: { (match, error) in if (error == nil) { self.startgame(withmatch: match) } } else { // give feedback that game center failed to find a match }

178 Automatch Quick and easy GKMatchRequest GKTurnBasedMatch let request = GKMatchRequest() matchrequest.maxplayers = 2 GKTurnBasedMatch.find(for: request, withcompletionhandler: { (match, error) in if (error == nil) { self.startgame(withmatch: match) } } else { // give feedback that game center failed to find a match }

179 Programmatic Invites Sending the invite GKMatchRequest GKTurnBasedMatch let request = GKMatchRequest() matchrequest.maxplayers = 2 request.recipients = self.availableplayers GKTurnBasedMatch.find(for: request, withcompletionhandler: { (match, error) in if (error == nil) { self.startgame(withmatch: match) } } else { // give feedback that game center failed to find a match }

180 Programmatic Invites Sending the invite GKMatchRequest GKTurnBasedMatch let request = GKMatchRequest() matchrequest.maxplayers = 2 request.recipients = self.availableplayers GKTurnBasedMatch.find(for: request, withcompletionhandler: { (match, error) in if (error == nil) { self.startgame(withmatch: match) } } else { // give feedback that game center failed to find a match }

181 // Programmatic Invites // Loading recent players class PlayerPickerInterface: WKInterfaceController { override func awake(withcontext context: AnyObject?) { super.awake(withcontext: context) // if we are not authenticated authenticate first GKLocalPlayer.localPlayer().loadRecentPlayers {(players, error) in if (error == nil) { self.availableplayers = players } else { print("failed \(error)") // give feedback that game center failed to sign in } } } }

182 // Programmatic Invites // Loading recent players class PlayerPickerInterface: WKInterfaceController { override func awake(withcontext context: AnyObject?) { super.awake(withcontext: context) // if we are not authenticated authenticate first GKLocalPlayer.localPlayer().loadRecentPlayers {(players, error) in if (error == nil) { self.availableplayers = players } else { print("failed \(error)") // give feedback that game center failed to sign in } } } }

183 // Programmatic Invites // Loading recent players class PlayerPickerInterface: WKInterfaceController { override func awake(withcontext context: AnyObject?) { super.awake(withcontext: context) // if we are not authenticated authenticate first GKLocalPlayer.localPlayer().loadRecentPlayers {(players, error) in if (error == nil) { self.availableplayers = players } else { print("failed \(error)") // give feedback that game center failed to sign in } } } }

184 HelloGameKit Sample Turn-based game Based on SpriteKit template Uses gesture recognizers

185 HelloGameKit Walkthrough

186 HelloGameKit Walkthrough

187 HelloGameKit Walkthrough

188 HelloGameKit Walkthrough

189 HelloGameKit Walkthrough

190 HelloGameKit Walkthrough

191 HelloGameKit Walkthrough

192 HelloGameKit Walkthrough

193 HelloGameKit Walkthrough

194 HelloGameKit Walkthrough

195 HelloGameKit Walkthrough

196 HelloGameKit Resources

197 Turn-Based Gaming Recap Streamlined authentication Programmatic API Sample app

198 Tools and Best Practices Tyler Casella Game Technologies Engineer

199 Game Tools for Apple Watch Scene editor SpriteKit SceneKit

200 Game Tools for Apple Watch Action editor SpriteKit SceneKit

201 Game Tools for Apple Watch Particle editor SpriteKit SceneKit

202 Game Tools for Apple Watch Texture atlas cave_destroyed.png big_tree_base.png cave_base.png big_tree_middle.png cave_top.png minionsplort.png big_tree_top.png

203 Game Tools for Apple Watch Texture atlas

204 Game Tools for Apple Watch Texture atlas

205 FPS Performance Gauge Real-time performance

206 FPS Performance Gauge Real-time performance

207 FPS Performance Gauge Real-time performance Frame rate GPU utilization CPU / GPU frame time

208 FPS Performance Gauge Real-time performance Frame rate

209 FPS Performance Gauge Real-time performance Frame rate GPU utilization

210 FPS Performance Gauge Real-time performance Frame rate GPU utilization

211 FPS Performance Gauge Real-time performance Frame rate GPU utilization CPU / GPU frame time

212 FPS Performance Gauge Real-time performance Frame rate GPU utilization CPU / GPU frame time

213 FPS Performance Gauge Real-time performance Breakdown of update loop Render Client update Actions Physics Easy to identify bottlenecks

214 FPS Performance Gauge Real-time performance Breakdown of update loop Render Client update Actions Physics Easy to identify bottlenecks

215 FPS Performance Gauge Real-time performance Breakdown of update loop Render Client update Actions Physics Easy to identify bottlenecks

216 FPS Performance Gauge Real-time performance Breakdown of update loop Render Client update Actions Physics Easy to identify bottlenecks

217 FPS Performance Gauge Real-time performance Breakdown of update loop Render Client update Actions Physics Easy to identify bottlenecks

218 FPS Performance Gauge Real-time performance Breakdown of update loop Render Client update Actions Physics Easy to identify bottlenecks

219 FPS Performance Gauge Real-time performance Breakdown of update loop Render Client update Actions Physics Easy to identify bottlenecks

220 Best Practices Performance Avoid continuous updates Preload assets to avoid bottlenecks Maintain consistent frame rate If experiencing performance issues Reduce particle count Reduce asset details Reduce object count

221 Best Practices Game considerations Lightweight interactions See progress at a glance On the go Concise interface Avoid busy scenes Large touch targets Visual continuity Tint color Black background

222 Summary Exciting year for Apple Watch developers New input and feedback Powerful graphics frameworks Easy social gaming integration Full suite of tools

223 More Information

224 Related Sessions Quick Interaction Techniques for watchos Presidio Wednesday 11:00AM Visual Debugging with Xcode Presidio Wednesday 4:00PM Advances in SceneKit Rendering Mission Thursday 11:00AM What s New in SpriteKit Presidio Thursday 5:00PM What s New in Game Center Mission Friday 10:00AM

225 Labs watchos Graphics and Games Lab Xcode Open Hours Graphics, Games, and Media Lab B Developer Tools Lab B Friday 4:00PM Friday 3:00PM

226

Deeper into GameplayKit with DemoBots

Deeper into GameplayKit with DemoBots Graphics and Games #WWDC15 Deeper into GameplayKit with DemoBots Session 609 Dave Addey Sample Code Engineer Dave Schaefgen Sample Code Engineer Michael DeWitt Sample Code Engineer 2015 Apple Inc. All

More information

Gesture and Motion Controls. Dr. Sarah Abraham

Gesture and Motion Controls. Dr. Sarah Abraham Gesture and Motion Controls Dr. Sarah Abraham University of Texas at Austin CS329e Fall 2016 Controller Interfaces Allow humans to issue commands to computer Mouse Keyboard Microphone Tablet Touch-based

More information

Ingredients of Great Games

Ingredients of Great Games Graphics and Games #WWDC14 Ingredients of Great Games Session 602 Geoff Stahl Director, Games and Graphics Software 2014 Apple Inc. All rights reserved. Redistribution or public display not permitted without

More information

Chapter 23: Game Center Achievements... 4!

Chapter 23: Game Center Achievements... 4! Bonus Chapters Chapter 23: Game Center Achievements... 4! Introduction to Game Center... 4! Getting started... 7! Authenticating local players... 13! Adding achievements... 19! Initializing the built-in

More information

Apple ARKit Overview. 1. Purpose. 2. Apple ARKit. 2.1 Overview. 2.2 Functions

Apple ARKit Overview. 1. Purpose. 2. Apple ARKit. 2.1 Overview. 2.2 Functions Apple ARKit Overview 1. Purpose In the 2017 Apple Worldwide Developers Conference, Apple announced a tool called ARKit, which provides advanced augmented reality capabilities on ios. Augmented reality

More information

2D ios & tvos Games. by Tutorials. Bonus Chapters

2D ios & tvos Games. by Tutorials. Bonus Chapters 2D ios & tvos Games by Tutorials Bonus Chapters Table of Contents: Overview Chapter 25: Game Center Achievements... 6 Chapter 26: Game Center Leaderboards... 32 Chapter 27: ReplayKit... 49 Chapter 28:

More information

Department of Computer Science and Engineering The Chinese University of Hong Kong. Year Final Year Project

Department of Computer Science and Engineering The Chinese University of Hong Kong. Year Final Year Project Digital Interactive Game Interface Table Apps for ipad Supervised by: Professor Michael R. Lyu Student: Ng Ka Hung (1009615714) Chan Hing Faat (1009618344) Year 2011 2012 Final Year Project Department

More information

Game Development with Swift

Game Development with Swift www.itbookshub.com Game Development with Swift Embrace the mobile gaming revolution and bring your iphone game ideas to life with Swift Stephen Haney BIRMINGHAM - MUMBAI www.itbookshub.com Game Development

More information

Introduction to Game Design. Truong Tuan Anh CSE-HCMUT

Introduction to Game Design. Truong Tuan Anh CSE-HCMUT Introduction to Game Design Truong Tuan Anh CSE-HCMUT Games Games are actually complex applications: interactive real-time simulations of complicated worlds multiple agents and interactions game entities

More information

Unity Certified Programmer

Unity Certified Programmer Unity Certified Programmer 1 unity3d.com The role Unity programming professionals focus on developing interactive applications using Unity. The Unity Programmer brings to life the vision for the application

More information

Michigan State University Team MSUFCU Money Smash Chronicle Project Plan Spring 2016

Michigan State University Team MSUFCU Money Smash Chronicle Project Plan Spring 2016 Michigan State University Team MSUFCU Money Smash Chronicle Project Plan Spring 2016 MSUFCU Staff: Whitney Anderson-Harrell Austin Drouare Emily Fesler Ben Maxim Ian Oberg Michigan State University Capstone

More information

CSE 115. Introduction to Computer Science I

CSE 115. Introduction to Computer Science I CSE 115 Introduction to Computer Science I FINAL EXAM Tuesday, December 11, 2018 7:15 PM - 10:15 PM SOUTH CAMPUS (Factor in travel time!!) Room assignments will be published on last day of classes CONFLICT?

More information

INTRODUCTION TO GAME AI

INTRODUCTION TO GAME AI CS 387: GAME AI INTRODUCTION TO GAME AI 3/31/2016 Instructor: Santiago Ontañón santi@cs.drexel.edu Class website: https://www.cs.drexel.edu/~santi/teaching/2016/cs387/intro.html Outline Game Engines Perception

More information

VR with Metal 2 Session 603

VR with Metal 2 Session 603 Graphics and Games #WWDC17 VR with Metal 2 Session 603 Rav Dhiraj, GPU Software 2017 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.

More information

Easy Input Helper Documentation

Easy Input Helper Documentation Easy Input Helper Documentation Introduction Easy Input Helper makes supporting input for the new Apple TV a breeze. Whether you want support for the siri remote or mfi controllers, everything that is

More information

SPIDERMAN VR. Adam Elgressy and Dmitry Vlasenko

SPIDERMAN VR. Adam Elgressy and Dmitry Vlasenko SPIDERMAN VR Adam Elgressy and Dmitry Vlasenko Supervisors: Boaz Sternfeld and Yaron Honen Submission Date: 09/01/2019 Contents Who We Are:... 2 Abstract:... 2 Previous Work:... 3 Tangent Systems & Development

More information

User Guide. PTT Radio Application. ios. Release 8.3

User Guide. PTT Radio Application. ios. Release 8.3 User Guide PTT Radio Application ios Release 8.3 March 2018 1 Table of Contents 1. Introduction and Key Features... 5 2. Application Installation & Getting Started... 6 Prerequisites... 6 Download... 6

More information

Unity Game Development Essentials

Unity Game Development Essentials Unity Game Development Essentials Build fully functional, professional 3D games with realistic environments, sound, dynamic effects, and more! Will Goldstone 1- PUBLISHING -J BIRMINGHAM - MUMBAI Preface

More information

Push-to-talk ios User Guide (v8.0)

Push-to-talk ios User Guide (v8.0) Push-to-talk ios User Guide (v8.0) PTT 8.0 ios - Table of Contents 1 Activating PTT on your ios device... 4 How to activate PTT on your Android Smartphone... 4 How to Logout and Login to the PTT Service...

More information

VoiceOver: App Testing Beyond The Visuals

VoiceOver: App Testing Beyond The Visuals Session #WWDC18 VoiceOver: App Testing Beyond The Visuals 226 James Vest, Apple Quality Assurance Engineer 2018 Apple Inc. All rights reserved. Redistribution or public display not permitted without written

More information

Live Agent for Administrators

Live Agent for Administrators Live Agent for Administrators Salesforce, Summer 16 @salesforcedocs Last updated: July 28, 2016 Copyright 2000 2016 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark of salesforce.com,

More information

CS 354R: Computer Game Technology

CS 354R: Computer Game Technology CS 354R: Computer Game Technology http://www.cs.utexas.edu/~theshark/courses/cs354r/ Fall 2017 Instructor and TAs Instructor: Sarah Abraham theshark@cs.utexas.edu GDC 5.420 Office Hours: MW4:00-6:00pm

More information

IMGD 3100 Novel Interfaces for Interactive Environments: Physical Input

IMGD 3100 Novel Interfaces for Interactive Environments: Physical Input IMGD 3100 Novel Interfaces for Interactive Environments: Physical Input Robert W. Lindeman Associate Professor Human Interaction in Virtual Environments (HIVE) Lab Department of Computer Science Worcester

More information

User Guide: PTT Radio Application - ios. User Guide. PTT Radio Application. ios. Release 8.3

User Guide: PTT Radio Application - ios. User Guide. PTT Radio Application. ios. Release 8.3 User Guide PTT Radio Application ios Release 8.3 December 2017 Table of Contents Contents 1. Introduction and Key Features... 5 2. Application Installation & Getting Started... 6 Prerequisites... 6 Download...

More information

Heads up interaction: glasgow university multimodal research. Eve Hoggan

Heads up interaction: glasgow university multimodal research. Eve Hoggan Heads up interaction: glasgow university multimodal research Eve Hoggan www.tactons.org multimodal interaction Multimodal Interaction Group Key area of work is Multimodality A more human way to work Not

More information

Learning Core Image Guanshan Liu

Learning Core Image Guanshan Liu Learning Core Image Guanshan Liu @guanshanliu CocoaHeads Shanghai Meetup in Dec. 1 Who Am I Working on TTPod for ios at Alibaba Inc. I love design and make apps Twitter: @guanshanliu Email: guanshan.liu@gmail.com

More information

Beginning ios 3D Unreal

Beginning ios 3D Unreal Beginning ios 3D Unreal Games Development ' Robert Chin/ Apress* Contents Contents at a Glance About the Author About the Technical Reviewers Acknowledgments Introduction iii ix x xi xii Chapter 1: UDK

More information

Enhanced Push-to-Talk Application for iphone

Enhanced Push-to-Talk Application for iphone AT&T Business Mobility Enhanced Push-to-Talk Application for iphone Land Mobile Radio (LMR) Version Release 8.3 Table of Contents Introduction and Key Features 2 Application Installation & Getting Started

More information

University of California, Santa Barbara. CS189 Fall 17 Capstone. VR Telemedicine. Product Requirement Documentation

University of California, Santa Barbara. CS189 Fall 17 Capstone. VR Telemedicine. Product Requirement Documentation University of California, Santa Barbara CS189 Fall 17 Capstone VR Telemedicine Product Requirement Documentation Jinfa Zhu Kenneth Chan Shouzhi Wan Xiaohe He Yuanqi Li Supervised by Ole Eichhorn Helen

More information

Propietary Engine VS Commercial engine. by Zalo

Propietary Engine VS Commercial engine. by Zalo Propietary Engine VS Commercial engine by Zalo zalosan@gmail.com About me B.S. Computer Engineering 9 years of experience, 5 different companies 3 propietary engines, 2 commercial engines I have my own

More information

Official Documentation

Official Documentation Official Documentation Doc Version: 1.0.0 Toolkit Version: 1.0.0 Contents Technical Breakdown... 3 Assets... 4 Setup... 5 Tutorial... 6 Creating a Card Sets... 7 Adding Cards to your Set... 10 Adding your

More information

E90 Project Proposal. 6 December 2006 Paul Azunre Thomas Murray David Wright

E90 Project Proposal. 6 December 2006 Paul Azunre Thomas Murray David Wright E90 Project Proposal 6 December 2006 Paul Azunre Thomas Murray David Wright Table of Contents Abstract 3 Introduction..4 Technical Discussion...4 Tracking Input..4 Haptic Feedack.6 Project Implementation....7

More information

Gaming Development. Resources

Gaming Development. Resources Gaming Development Resources Beginning Game Programming Fourth Edition Jonathan S. Harbour 9781305258952 Beginning Game Programming will introduce students to the fascinating world of game programming

More information

gfm-app.com User Manual

gfm-app.com User Manual gfm-app.com User Manual 03.07.16 CONTENTS 1. MAIN CONTROLS Main interface 3 Control panel 3 Gesture controls 3-6 2. CAMERA FUNCTIONS Exposure 7 Focus 8 White balance 9 Zoom 10 Memory 11 3. AUTOMATED SEQUENCES

More information

Assignment V: Animation

Assignment V: Animation Assignment V: Animation Objective In this assignment, you will let your users play the game Breakout. Your application will not necessarily have all the scoring and other UI one might want, but it will

More information

PASSENGER. Story of a convergent pipeline. Thomas Felix TG - Passenger Ubisoft Montréal. Pierre Blaizeau TWINE Ubisoft Montréal

PASSENGER. Story of a convergent pipeline. Thomas Felix TG - Passenger Ubisoft Montréal. Pierre Blaizeau TWINE Ubisoft Montréal PASSENGER Story of a convergent pipeline Thomas Felix TG - Passenger Ubisoft Montréal Pierre Blaizeau TWINE Ubisoft Montréal Technology Group PASSENGER How to expand your game universe? How to bridge game

More information

Computer Science Education: A Game to Teach Children about Programming. Xiaoxiao Wang

Computer Science Education: A Game to Teach Children about Programming. Xiaoxiao Wang Computer Science Education: A Game to Teach Children about Programming by Xiaoxiao Wang A Thesis Presented in Partial Fulfillment of the Requirements for the Degree Master of Science Approved April 2017

More information

Official Documentation

Official Documentation Official Documentation Doc Version: 1.2.0 Toolkit Version: 1.2.0 Contents Recommended Editor Setup... 3 Technical Breakdown... 4 Assets... 6 Setup... 7 Out-of-the-box Options... 8 Deck Builder Overview...

More information

A Quick Spin on Autodesk Revit Building

A Quick Spin on Autodesk Revit Building 11/28/2005-3:00 pm - 4:30 pm Room:Americas Seminar [Lab] (Dolphin) Walt Disney World Swan and Dolphin Resort Orlando, Florida A Quick Spin on Autodesk Revit Building Amy Fietkau - Autodesk and John Jansen;

More information

Revision for Grade 6 in Unit #1 Design & Technology Subject Your Name:... Grade 6/

Revision for Grade 6 in Unit #1 Design & Technology Subject Your Name:... Grade 6/ Your Name:.... Grade 6/ SECTION 1 Matching :Match the terms with its explanations. Write the matching letter in the correct box. The first one has been done for you. (1 mark each) Term Explanation 1. Gameplay

More information

Final Year Project Report

Final Year Project Report Final Year Project Report ios Game Utilising an A* Path Finding Algorithm Project ID: R002 BSc Applied Computer Science University of Reading School of Systems Engineering SE3IP11 Individual Project Blair

More information

Live Agent for Administrators

Live Agent for Administrators Salesforce, Spring 18 @salesforcedocs Last updated: January 11, 2018 Copyright 2000 2018 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark of salesforce.com, inc., as are other

More information

Live Agent for Administrators

Live Agent for Administrators Live Agent for Administrators Salesforce, Spring 17 @salesforcedocs Last updated: April 3, 2017 Copyright 2000 2017 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark of salesforce.com,

More information

Enhanced Push-to-Talk Application for Android

Enhanced Push-to-Talk Application for Android AT&T Business Mobility Enhanced Push-to-Talk Application for Android Land Mobile Radio (LMR) Version Release 8.3 Table of Contents Introduction and Key Features 2 Application Installation & Getting Started

More information

Ad Specifications July, 2016

Ad Specifications July, 2016 Ad Specifications 2016 July, 2016 Advertising Specifications General Spil Games Requirements 1. All final campaign assets must be received according to spec 3 business days in advance in order to guarantee

More information

Getting started with AutoCAD mobile app. Take the power of AutoCAD wherever you go

Getting started with AutoCAD mobile app. Take the power of AutoCAD wherever you go Getting started with AutoCAD mobile app Take the power of AutoCAD wherever you go Getting started with AutoCAD mobile app Take the power of AutoCAD wherever you go i How to navigate this book Swipe the

More information

User Guide. PTT Radio Application. Android. Release 8.3

User Guide. PTT Radio Application. Android. Release 8.3 User Guide PTT Radio Application Android Release 8.3 March 2018 1 Table of Contents 1. Introduction and Key Features... 5 2. Application Installation & Getting Started... 6 Prerequisites... 6 Download...

More information

Lab 4: Creating Your Own Device Class

Lab 4: Creating Your Own Device Class Department of Mechanical Engineering ME EN 7960 - Haptics Lab 4: Creating Your Own Device Class Out: Thursday 2/24/2011 Due: Thursday 3/8/2011 by class time Please read this entire document before starting

More information

Enhanced Push-to-Talk Application for iphone

Enhanced Push-to-Talk Application for iphone AT&T Business Mobility Enhanced Push-to-Talk Application for iphone Standard Version Release 8.3 Table of Contents Introduction and Key Features 2 Application Installation & Getting Started 2 Navigating

More information

Beginning Swift Games Development For IOS By Wesley Matlock, James Goodwill READ ONLINE

Beginning Swift Games Development For IOS By Wesley Matlock, James Goodwill READ ONLINE Beginning Swift Games Development For IOS By Wesley Matlock, James Goodwill READ ONLINE Learn the fundamental elements of the new Swift 3 programming language as applied to game development for new ios

More information

DEMIGOD DEMIGOD. characterize stalls and pop-ups during game play. Serious gamers play games at their maximum settings driving HD monitors.

DEMIGOD DEMIGOD. characterize stalls and pop-ups during game play. Serious gamers play games at their maximum settings driving HD monitors. Intel Solid-State Drives (Intel SSDs) are revolutionizing storage performance on desktop and laptop PCs, delivering dramatically faster load times than hard disk drives (HDDs). When Intel SSDs are used

More information

Abstract. Keywords: Multi Touch, Collaboration, Gestures, Accelerometer, Virtual Prototyping. 1. Introduction

Abstract. Keywords: Multi Touch, Collaboration, Gestures, Accelerometer, Virtual Prototyping. 1. Introduction Creating a Collaborative Multi Touch Computer Aided Design Program Cole Anagnost, Thomas Niedzielski, Desirée Velázquez, Prasad Ramanahally, Stephen Gilbert Iowa State University { someguy tomn deveri

More information

Motion Blur with Mental Ray

Motion Blur with Mental Ray Motion Blur with Mental Ray In this tutorial we are going to take a look at the settings and what they do for us in using Motion Blur with the Mental Ray renderer that comes with 3D Studio. For this little

More information

Virtual Reality Mobile 360 Nanodegree Syllabus (nd106)

Virtual Reality Mobile 360 Nanodegree Syllabus (nd106) Virtual Reality Mobile 360 Nanodegree Syllabus (nd106) Join the Creative Revolution Before You Start Thank you for your interest in the Virtual Reality Nanodegree program! In order to succeed in this program,

More information

Install the App. Search the App/Play Store for SiOnyx Aurora. Tap Get/Install. (Screens will differ slightly between ios and Android devices.

Install the App. Search the App/Play Store for SiOnyx Aurora. Tap Get/Install. (Screens will differ slightly between ios and Android devices. SiOnyx Aurora ios/android Mobile App The mobile app will allow you to take remote control of your camera. This guide will assist you with installing and using the app. (Screens will differ slightly between

More information

DIGITAL WATERMARKING GUIDE

DIGITAL WATERMARKING GUIDE link CREATION STUDIO DIGITAL WATERMARKING GUIDE v.1.4 Quick Start Guide to Digital Watermarking Here is our short list for what you need BEFORE making a linking experience for your customers Step 1 File

More information

Assignment 5: Virtual Reality Design

Assignment 5: Virtual Reality Design Assignment 5: Virtual Reality Design Version 1.0 Visual Imaging in the Electronic Age Assigned: Thursday, Nov. 9, 2017 Due: Friday, December 1 November 9, 2017 Abstract Virtual reality has rapidly emerged

More information

Moving Web 3d Content into GearVR

Moving Web 3d Content into GearVR Moving Web 3d Content into GearVR Mitch Williams Samsung / 3d-online GearVR Software Engineer August 1, 2017, Web 3D BOF SIGGRAPH 2017, Los Angeles Samsung GearVR s/w development goals Build GearVRf (framework)

More information

Obduction User Manual - Menus, Settings, Interface

Obduction User Manual - Menus, Settings, Interface v1.6.5 Obduction User Manual - Menus, Settings, Interface As you walk in the woods on a stormy night, a distant thunderclap demands your attention. A curious, organic artifact falls from the starry sky

More information

Getting Started with Osmo Super Studio Mickey Mouse & Friends

Getting Started with Osmo Super Studio Mickey Mouse & Friends Getting Started with Mickey Mouse & Friends Updated 9.06.2018 Version 1.0.0 Page 1 Table of Contents What s Included? 3 Main Menu Navigation 4 Game Set Up 5 Chapters & Scenes 6 Drawing Activities 7 Decoration

More information

WORKING TITLE: The Jump App

WORKING TITLE: The Jump App WORKING TITLE: The Jump App Hariharan Ramakrishnan EDUCrate Table of Contents Abstract... 3 The Jump App... 4 Research... 4 Exisiting Games... 5 Market Analysis... 7 Design... 7 Gameplay Mechanism... 9

More information

Shoot It Game Template - 1. Tornado Bandits Studio Shoot It Game Template - Documentation.

Shoot It Game Template - 1. Tornado Bandits Studio Shoot It Game Template - Documentation. Shoot It Game Template - 1 Tornado Bandits Studio Shoot It Game Template - Documentation Shoot It Game Template - 2 Summary Introduction 4 Game s stages 4 Project s structure 6 Setting the up the project

More information

Ball Color Switch. Game document and tutorial

Ball Color Switch. Game document and tutorial Ball Color Switch Game document and tutorial This template is ready for release. It is optimized for mobile (iphone, ipad, Android, Windows Mobile) standalone (Windows PC and Mac OSX), web player and webgl.

More information

Getting Started with Coding Awbie. Updated

Getting Started with Coding Awbie. Updated Updated 10.25.17 1.5.1 What s Included Each set contains 19 magnetic coding blocks to control Awbie, a playful character who loves delicious strawberries. With each coding command, you guide Awbie on a

More information

Beginning 3D Game Development with Unity:

Beginning 3D Game Development with Unity: Beginning 3D Game Development with Unity: The World's Most Widely Used Multi-platform Game Engine Sue Blackman Apress* Contents About the Author About the Technical Reviewer Acknowledgments Introduction

More information

Pangolin: A Look at the Conceptual Architecture of SuperTuxKart. Caleb Aikens Russell Dawes Mohammed Gasmallah Leonard Ha Vincent Hung Joseph Landy

Pangolin: A Look at the Conceptual Architecture of SuperTuxKart. Caleb Aikens Russell Dawes Mohammed Gasmallah Leonard Ha Vincent Hung Joseph Landy Pangolin: A Look at the Conceptual Architecture of SuperTuxKart Caleb Aikens Russell Dawes Mohammed Gasmallah Leonard Ha Vincent Hung Joseph Landy Abstract This report will be taking a look at the conceptual

More information

VR/AR with ArcGIS. Pascal Mueller, Rex Hansen, Eric Wittner & Adrien Meriaux

VR/AR with ArcGIS. Pascal Mueller, Rex Hansen, Eric Wittner & Adrien Meriaux VR/AR with ArcGIS Pascal Mueller, Rex Hansen, Eric Wittner & Adrien Meriaux Agenda Introduction & Terminology Pascal Mobile VR with ArcGIS 360VR Eric Premium VR with CityEngine & Game Engines Pascal Dedicated

More information

LOOKING AHEAD: UE4 VR Roadmap. Nick Whiting Technical Director VR / AR

LOOKING AHEAD: UE4 VR Roadmap. Nick Whiting Technical Director VR / AR LOOKING AHEAD: UE4 VR Roadmap Nick Whiting Technical Director VR / AR HEADLINE AND IMAGE LAYOUT RECENT DEVELOPMENTS RECENT DEVELOPMENTS At Epic, we drive our engine development by creating content. We

More information

User Guide: PTT Application - Android. User Guide. PTT Application. Android. Release 8.3

User Guide: PTT Application - Android. User Guide. PTT Application. Android. Release 8.3 User Guide PTT Application Android Release 8.3 March 2018 1 1. Introduction and Key Features... 6 2. Application Installation & Getting Started... 7 Prerequisites... 7 Download... 8 First-time Activation...

More information

Quantum Entangled Chess

Quantum Entangled Chess Carleton University Honours Project Quantum Entangled Chess Author: Alex Honeywell 100708572 Supervisor: Dr. Tony White School of Computer Science April 12, 2011 Abstract In a quantum entanglement system

More information

Design Document for: Name of Game. One Liner, i.e. The Ultimate Racing Game. Something funny here! All work Copyright 1999 by Your Company Name

Design Document for: Name of Game. One Liner, i.e. The Ultimate Racing Game. Something funny here! All work Copyright 1999 by Your Company Name Design Document for: Name of Game One Liner, i.e. The Ultimate Racing Game Something funny here! All work Copyright 1999 by Your Company Name Written by Chris Taylor Version # 1.00 Thursday, September

More information

Introduction to Alice. Alice is named in honor of Lewis Carroll s Alice in Wonderland

Introduction to Alice. Alice is named in honor of Lewis Carroll s Alice in Wonderland Introduction to Alice Alice is named in honor of Lewis Carroll s Alice in Wonderland Computer Programming Step by step set of instructions telling a computer how to perform a specific task 2 problems some

More information

Tips on how to save battery life on an iphone (and a common myth busted)

Tips on how to save battery life on an iphone (and a common myth busted) Tips on how to save battery life on an iphone (and a common myth busted) Simon Hill @iamsimonhill POSTED ON 11.28.17-6:00AM Digital Trends Fullscreen The iphone is a great companion that provides plenty

More information

REPORT ON THE CURRENT STATE OF FOR DESIGN. XL: Experiments in Landscape and Urbanism

REPORT ON THE CURRENT STATE OF FOR DESIGN. XL: Experiments in Landscape and Urbanism REPORT ON THE CURRENT STATE OF FOR DESIGN XL: Experiments in Landscape and Urbanism This report was produced by XL: Experiments in Landscape and Urbanism, SWA Group s innovation lab. It began as an internal

More information

Figure 1. The game was developed to be played on a large multi-touch tablet and multiple smartphones.

Figure 1. The game was developed to be played on a large multi-touch tablet and multiple smartphones. Capture The Flag: Engaging In A Multi- Device Augmented Reality Game Suzanne Mueller Massachusetts Institute of Technology Cambridge, MA suzmue@mit.edu Andreas Dippon Technische Universitat München Boltzmannstr.

More information

Game Design Document (GDD)

Game Design Document (GDD) Game Design Document (GDD) (Title) Tower Defense Version: 1.0 Created: 5/9/13 Last Updated: 5/9/13 Contents Intro... 3 Gameplay Description... 3 Platform Information... 3 Artistic Style Outline... 3 Systematic

More information

Camera & Photos Apps ios10

Camera & Photos Apps ios10 2017 Class Camera & Photos Apps ios10 iphone and ipad 1 Camera iphone also has filter options Live Photos, iphone 6s, 7 and ipad Pro Grid HDR - High Dynamic Range Timer Flash Switch Cameras Exposure Adjust

More information

Falsework & Formwork Visualisation Software

Falsework & Formwork Visualisation Software User Guide Falsework & Formwork Visualisation Software The launch of cements our position as leaders in the use of visualisation technology to benefit our customers and clients. Our award winning, innovative

More information

Android User manual. Intel Education Lab Camera by Intellisense CONTENTS

Android User manual. Intel Education Lab Camera by Intellisense CONTENTS Intel Education Lab Camera by Intellisense Android User manual CONTENTS Introduction General Information Common Features Time Lapse Kinematics Motion Cam Microscope Universal Logger Pathfinder Graph Challenge

More information

Rhythm Game Development Toolkit For Touchscreen Devices

Rhythm Game Development Toolkit For Touchscreen Devices Rhythm Game Development Toolkit For Touchscreen Devices Members: Philip H. Peng Advisor: Dr. Stephen H. Lane CIS 400, Fall 2011, University of Pennsylvania All images used in this belong to their rightful

More information

ArcGIS Runtime: Analysis. Lucas Danzinger Mark Baird Mike Branscomb

ArcGIS Runtime: Analysis. Lucas Danzinger Mark Baird Mike Branscomb ArcGIS Runtime: Analysis Lucas Danzinger Mark Baird Mike Branscomb ArcGIS Runtime session tracks at DevSummit 2018 ArcGIS Runtime SDKs share a common core, architecture and design Functional sessions promote

More information

SteamVR Unity Plugin Quickstart Guide

SteamVR Unity Plugin Quickstart Guide The SteamVR Unity plugin comes in three different versions depending on which version of Unity is used to download it. 1) v4 - For use with Unity version 4.x (tested going back to 4.6.8f1) 2) v5 - For

More information

Games made with Phaser

Games made with Phaser Welcome to Issue 52 of Phaser World Greetings everyone! Next week I'll be speaking at a local JavaScript development group here in the UK. It's the first talk I've given on Phaser for quite some time,

More information

Digital Gaming and Simulation Course Syllabus GAME Project Development I

Digital Gaming and Simulation Course Syllabus GAME Project Development I Digital Gaming and Simulation Course Syllabus GAME 2332 - Project Development I Semester with Course Reference Number (CRN) Instructor contact information (phone number and email address) Office Location

More information

Unity 3.x. Game Development Essentials. Game development with C# and Javascript PUBLISHING

Unity 3.x. Game Development Essentials. Game development with C# and Javascript PUBLISHING Unity 3.x Game Development Essentials Game development with C# and Javascript Build fully functional, professional 3D games with realistic environments, sound, dynamic effects, and more! Will Goldstone

More information

Pass It On. Lo-Fi Prototype

Pass It On. Lo-Fi Prototype Pass It On Lo-Fi Prototype ALISTAIR INGLIS, DESIGNER & USER TESTING HALEY SAYRES, MANAGER & DOCUMENTATION REBECCA WANG, DEVELOPER & USER TESTING THOMAS ZHAO, DEVELOPER & USER TESTING 1 Introduction Pass

More information

Fpglappy Bird: A side-scrolling game. Overview

Fpglappy Bird: A side-scrolling game. Overview Fpglappy Bird: A side-scrolling game Wei Low, Nicholas McCoy, Julian Mendoza 6.111 Project Proposal Draft Fall 2015 Overview On February 10th, 2014, the creator of Flappy Bird, a popular side-scrolling

More information

The Who. Intel - no introduction required.

The Who. Intel - no introduction required. Delivering Demand-Based Worlds with Intel SSD GDC 2011 The Who Intel - no introduction required. Digital Extremes - In addition to be great developers of AAA games, they are also the authors of the Evolution

More information

How to Create a Touchless Slider for Human Interface Applications

How to Create a Touchless Slider for Human Interface Applications How to Create a Touchless Slider for Human Interface Applications By Steve Gerber, Director of Human Interface Products Silicon Laboratories Inc., Austin, TX Introduction Imagine being able to control

More information

Naturey Snake. Cal Poly Computer Science Department. By Oliver Wei Hao Xia Fall 2015 SENIOR PROJECT REPORT

Naturey Snake. Cal Poly Computer Science Department. By Oliver Wei Hao Xia Fall 2015 SENIOR PROJECT REPORT Naturey Snake Cal Poly Computer Science Department By Oliver Wei Hao Xia Fall 2015!1 Intro My senior project is a game called Naturey Snake. It is developed for the ios platform and optimized for the iphone

More information

Firmware version 1.05 supports all CMOS sensor based digital backs IQ150, IQ250 and A- series IQ250.

Firmware version 1.05 supports all CMOS sensor based digital backs IQ150, IQ250 and A- series IQ250. RELEASE NOTE January, 2015 Firmware version 1.05 for IQ150, IQ250 and A-series IQ250 Firmware version 1.05 supports all CMOS sensor based digital backs IQ150, IQ250 and A- series IQ250. New functionality

More information

Videos get people excited, they get people educated and of course, they build trust that words on a page cannot do alone.

Videos get people excited, they get people educated and of course, they build trust that words on a page cannot do alone. Time and time again, people buy from those they TRUST. In today s world, videos are one of the most guaranteed ways to build trust within minutes, if not seconds and get a total stranger to enter their

More information

SCOUT Mobile User Guide 3.0

SCOUT Mobile User Guide 3.0 SCOUT Mobile User Guide 3.0 Android Guide 3864 - SCOUT February 2017 SCOUT Mobile Table of Contents Supported Devices...1 Multiple Manufacturers...1 The Three Tabs of SCOUT TM Mobile 3.0...1 SCOUT...1

More information

A game by DRACULA S CAVE HOW TO PLAY

A game by DRACULA S CAVE HOW TO PLAY A game by DRACULA S CAVE HOW TO PLAY How to Play Lion Quest is a platforming game made by Dracula s Cave. Here s everything you may need to know for your adventure. [1] Getting started Installing the game

More information

COMPASS NAVIGATOR PRO QUICK START GUIDE

COMPASS NAVIGATOR PRO QUICK START GUIDE COMPASS NAVIGATOR PRO QUICK START GUIDE Contents Introduction... 3 Quick Start... 3 Inspector Settings... 4 Compass Bar Settings... 5 POIs Settings... 6 Title and Text Settings... 6 Mini-Map Settings...

More information

A Closed-Loop System to Monitor and Reduce Parkinson s Tremors

A Closed-Loop System to Monitor and Reduce Parkinson s Tremors A Closed-Loop System to Monitor and Reduce Parkinson s Tremors Tremors Group: Anthony Calvo, Linda Gong, Jake Miller, and Mike Sander Faculty Advisor: Dr. Gary H. Bernstein 8 March 2018 Design Review I

More information

by Camille St Martin

by Camille St Martin @ by Camille St Martin Why does social media matter for child care centers? Your Facebook page is the face of your business, a complement to your website, where potential clients interact with you. Your

More information

Ansible Tower Quick Setup Guide

Ansible Tower Quick Setup Guide Ansible Tower Quick Setup Guide Release Ansible Tower 3.2.2 Red Hat, Inc. Mar 08, 2018 CONTENTS 1 Quick Start 2 2 Login as a Superuser 3 3 Import a License 5 4 Examine the Tower Dashboard 7 5 The Settings

More information

Have you ever been playing a video game and thought, I would have

Have you ever been playing a video game and thought, I would have In This Chapter Chapter 1 Modifying the Game Looking at the game through a modder s eyes Finding modding tools that you had all along Walking through the making of a mod Going public with your creations

More information

Sensible Chuckle SuperTuxKart Concrete Architecture Report

Sensible Chuckle SuperTuxKart Concrete Architecture Report Sensible Chuckle SuperTuxKart Concrete Architecture Report Sam Strike - 10152402 Ben Mitchell - 10151495 Alex Mersereau - 10152885 Will Gervais - 10056247 David Cho - 10056519 Michael Spiering Table of

More information