-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathTODO
132 lines (119 loc) · 5.53 KB
/
TODO
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
129
130
131
- add CCapture.js for recording in-progress movies during development
game feature
============
- puzzle logic
[sunday]
- [x] basic UI to render notes as rings
- [x] glow effect while a note is playing
[monday]
- [x] randomize current song's notes on puzzle start
- [x] larger rings and trail so drag & drop is easier
- [x] rings drag & drop
- [x] visually drag the ring (different color again? accompany the crosshair)
- [x] insert ring at destination (rather than with destination, easier to reorder notes)
- [x] mobile friendly controls
- [x] compare current song's notes to original on each ring reordered
- [x] if notes matches, move on to next puzzle
[tuesday]
- [x] nicer UI to render rings
- [x] planets
- [x] star field
- [x] ask for feedback
[wednesday/thursday]
- puzzles
- feedback
- [x] when notes in correct order, disable crosshair drag and reveal the song name
- [x] bug: darth vader song has similar notes, but their ID prevent them from matching is in a place of an equal note
=> compare key/hold/next rather than IDs to indices
- [x] may be easier if only keys where swapped rather than key/hold/next
=> would require the same comparison than fixing the bug anyway
- [x] maybe red/warm should be high pitch, and blue/cold should be low pitch
- [x] cursor position broken in Firefox... either debug or make the canvas full screen (even though just render the current viewport)
- [x] tuto explaining the color, width (and glow) significance on space odyssey
- [x] tiny ring in puzzle #1 impossible to grab
- ring move animated would help understand what's happening
- [x] remove hover and drag colors, since cursor is now explicit... less confusion with hue
- more tunes
- [x] 2001 a space odyssey (tuto)
- [x] star wars force (short/easy)
- [x] star wars darth vader (long/hard)
[friday]
- [x] star field
- [x] lower sound with a gain node
[saturday]
- mobile bugs
- [x] coordinates seem to be off
- [x] rings are too small (hover the whole ring+trail if mobile?)
- tunes
- [x] star trek theme (short/easy)
- [x] star trek TNG theme?
- [x] lost in Space
- [x] battle star galactica
- alien
- [x] galaxy quest
- david bowie space oddity
- https://vertfromage.github.io/miniPiano/pianoPlayback.html
- [x] coil
- if monetization, show which rings are correctly placed
- end screen
- tweet? number of ring moved?
- static noise while playing song in Firefox... (dangerous, could break code)
- optimize formula as much as possible to avoid repeats?
- get logic off the pointer event loop
- planets
- color planet
- fix planet not loading on Firefox
- [x] crosshair via CSS cursor default/pointer, grab, move/grabbing
- [x] intro screen / better font
- [x] restart / title screen
- [x] stop/resume music on tab change
[sunday]
- [x] animated loading screen, as the more songs I added, the longer it took to generate their audio data on startup
- some notes too similar to get right
- [x] dynamic color range based on highest/lowest keys in the tune, vs static across all tunes. (bc it's not always possible to tweak hold/next without damaging the tune)
- ring gap reflect next (more visually intuitive, but make rings harder to grab and will break a lot of code assumptions)
- [x] resume music on tab focus play all the missed notes at once, stop/start music instead?
- [x] screenshots
- [x] update README & repo
- [x] submit
[post competition]
- bugs
- fix planet not loading on Firefox
- static noise during song in Firefox
- optimize calculations in variables as much as possible to avoid repeats?
- get logic off the pointer event loop
- end screen
- tweet number of ring moved to win game
- animate a transition from one planet to another (with canvas translate and lerp)
https://shrinkme.app/?s=e <- optimize SVG paths even further
alternate splats from vectezy
<a href="https://www.vecteezy.com/free-vector/paint-splatter">Paint Splatter Vectors by Vecteezy</a>
boilerplate
===========
- key/touch press/release should be recorded outside of hero, simpler to access
- moveLeft should be called leftKeyPressTime or whatever
- could viewportOffsets be applied one time as a translation of the VIEWPORT/MAP canvas at render time, rather than pop up in all kind of places?
- find a cleaner way to order all the updates that need to happen
- input to velocity
- velocity to position
- position to adjusted position for collision response
- position to adjusted position to stay within map bounds (could that be done by collision or is that overkill?)
- camera window to viewport offsets
- updating animation/firing times and other counters <- oh good name, counters
- lerp-smoothing?
- gamepad support?
- tinyfont.js? https://github.com/darkwebdev/tinyfont.js
- support multiple voices for speech synthesis?
build chain
===========
custom:
- replace all the global variables by arguments with default value of the IIFE (e.g. const foo = 'bar' => (foo = 'bar') => { ... })
libs:
- ECT (https://github.com/fhanau/Efficient-Compression-Tool) in place of AdvZip?
- Mac build https://github.com/fhanau/Efficient-Compression-Tool/releases/download/v0.8.3/ect-0.8.3-macOS.zip (need manual install & permission shenanigans)
- npm package https://www.npmjs.com/package/ect-bin (but didn't seem to be available in command line afterwards... postinstall failed?)
- avif in place of png/webp (not enough browser support yet)
click handler, no memo: 1.2~1.5s
click handler, wt memo: 0.6~0.7s
main thread, no memo: 1.4~2.5s
main thread, wt memo: 0.8~1.1s