-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathpresentationNotes
More file actions
128 lines (90 loc) · 6.08 KB
/
Copy pathpresentationNotes
File metadata and controls
128 lines (90 loc) · 6.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
SMS - Hi, my name is Shanna.
JCL - I'm Jazz *sly smile*.
DLN
====== product intro ============
SMS - We're here to introduce you to Dream Dash, a cross-platform single-player continuous runner game for people of all ages available on web, Android, and iOS..
====== game vision ==============
SMS - Our vision for Dream Dash imagine that you're in a dream trying to wake up. You'll continue to dream if the ghosts catch you, but the alarm clocks will wake you up and the candles will guide the way. With that vision in mind, I'll take you through the game itself while Darryl explains what's happening in the gameplay.
===== game demo ================================
JCL - play game
DLN - create illusion of ghosts coming towards you
- background scrolls
- avoid ghosts that come at you from all angles
- collect clocks to get to the next level, could pop up anywhere
- collect candles if you get hit by a ghost (ghosts take away your candle)
- when hit, character flashes to signify temporary invincibility
- get points for collecting candles and clocks
- when the game ends, users can add themselves to the top 5 on leaderboard
====================================================================
JCL
Giving a high-level overview of our tech stack, to make our leaderboard go from concept to reality we used postgres to retain and store user scores in a database. We created a server with Express to make sure the game ran properly after deployed to the web and compiled our app for deployment to Android and iOS with CocoonJS, a compiler built on top of Cordova with available plugins to handle our game's audio and vibration requirements, ultimately turning our Javascript into native mobile code. After all of this, the glue that held it all together was developing our game with PhaserJS, a Javascript gaming library with built-in physics. Once created, we optimized and compress our game with build tools.
- tech stack
- phaser
- cocoon
- ajax
- node/express
- postgres
- gulp
DLN - testing
- emulators, user testing
As this is a multiplatform application - we wanted to test out our game on each device. This process included using coocoonjs as a compiling tool and user testing the game in its native environment. We also used emulators such as the ones provided by apple and google. For our web code, we used jasmine as a testing suite for our code.
==== challenges/tasks =====================================
DLN - challenges/tasks
- persisting scores throughout level change
- accessing database from within game
- reporting final score with a username
Some of the challenges I experienced working on dream dash began with implementing a scoring system. In efforts of keeping a persistant log of the player score throughout levels and game state transitions, the score had to be designed in a way that would utilize your devices local storage to make this successful. With the completion of that feature, we wanted to create a way for user highscores to be displayed on a leaderboard. The challenge involved with this feature was creating a client side call to the server to the database from inside the game and posting the score, then fetching the highscores and have them render inside the game
JCL
Every challenge can be overcome, but it can never be surpassed without difficulty. Some challenges I faced working on this project included managing the game state transitions between directions to menu, the game and onward, integrating a responsive design for the web app version of the game for view on either computer or mobile, asset management for different sized devices and services requiring unminified versions of our files, optimizing our application and git workflow with gulp to build and compress the size down for all anticipated possibilities and Android deployment and testing.
- challenges/tasks
- mobile deployment/testing
- asset management
- state transitions
- responsive design - web/mobile
- gulp/build tools/git integration
SMS - challenges/tasks
- arcade physics/sprite movement
- arcade physics/collision detection
- accouting for different screen/game sizes
- debugging within the game
SMS - Some of the challenges I encountered while building Dream Dash included sprite movement, collision detection, and accounting for different screen and game sizes. We were able to program the characters to move using physics-like qualities with help from a physics engine, but it was still tricky to create the illusion of perspective. Ultimately, we were able to accomplish this by using a combination of physics and tweening, which is a way of programming the 'in-between' motion of a character to give it the illusion of being in motion. Programming the collision detection, which is involved whenever the player collides or overlaps with another character, was also tricky to make precise enough so that it was conducive to a good user experience. In Dream Dash, we used what is called the 'box model', which means that each character has an invisible box around it or within it, which is what the collision detection listens for. Finally, since our goal was to make Dream Dash widely available, we had to figure out the most efficient way to make our game playable on a variety of screen sizes, which turns out is much trickier than just enabling full screen.
======= closing/credits ==================
JCL - roll credits
SMS - That is an introduction to Dream Dash. Check us out in the app store, google play store, and online at playdreamdash.com. Thanks for listening, and now we'd like to open up the floor for questions.
Presentation Notes - not part of actual presentation
=================================================================
project tasks -
compiling
asset management
scoring
music
fonts
user flow
collisions
collecting items
sprite physics
phaser debugging
pausing
gulp
deploying to app/play stores
fonts
challenges -
this
compiling
bounding boxes
music
state management
templates
lives
persisting total score
invinsibility
sizing
fonts
minifying
gulp
additional -
animation
inputs
stateful game logic
cross platform integration/compatibility
incorporate credits