-
Notifications
You must be signed in to change notification settings - Fork 7
/
TODO.txt
82 lines (77 loc) · 4.78 KB
/
TODO.txt
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
* all the todo's noted in code comments.
* this has quickly become an empirical big ball of mud. :-(
* warning: things in code tend to not be simply what they seem / what you'd expect, even for me.
* comment out asserts in out/* somehow, for perf.
* the general coding suck of not knowing which things must/not be done via property functions.
* the level index, game mode, single player stuff is now a nightmare.
* 2 player mode should not have levels, just be zen mode.
* high score totalling across levels (esp. for zen single player).
* gLevelIndex is a code smell, but is a nightmare to fix. i tried.
* the ownership graph is heck even if done right.
* figure out per-game high score ui ux.
* need to specify first puck speed specifically rather than ratio?
* better (yet safe) color for low hp on xtra and barrier?
* quit should really ask ays?
* maybe have rare 3x split into even smaller, faster pucks?
* do i need clearFn() for gamepad buttons and joystick? or what else instead?
* check that the gamepad buttons & sticks non/repeat is sane/right.
* really test all the possible inputs!
* hm, original pucks must also speed up at the end of the level?
* playtest all the speedup/timeout/english factors, sheesh.
* animate the menu opening/closing?
* my other metal band name really is The Wrong Abstractions. :-(
* deperately need to refactor so many globals away (re: events, below).
* what the heck is the difference of Step() vs. Draw() vs. Process*().
* especially since they seem different for buttons vs. *States. :-(
* also nice how Process*Input don't all have the same signature.
* (aside: debugging dx is just horrible industrially-wide if you ask me.)
* confusing how i have activate key & gamepad, but esc key vs. option gamepad button.
* needing clearFn() for events hints i should push the keys through eventqueue only, never globals.
* (esc) shouldn't disappear after staring via touch.
* cannot tap (esc) if the rhs pointer is already down? also check how it works in 1 vs. 2 player.
* be backwards compatible with "2 keys held down at once"?
* ClearPointer() when clicking outside open menu to close it feels ugly.
* uh, how about handling non-en-us keyboard layouts? ha ha :-(.
* perf is worse in firefox vs. chrome/edge?
* actually profiled, but it just says "gc" so who knows what as root cause... need placement-new object pooling?
* handle device pixel ratio.
* orientation hell, including effing manifest.json?
* support rotation resizing w/out destroying game in progress.
* wish i could hide the mouse cursor when not in use.
* move A,B,SwapBuffers into reusableArray.
* play blip if puck collides and doesn't split? too noisy?
* the ForSide()/P1/P2 thing has gotten ever more ugly & confusing.
* i feel like isUrgent isn't weighted high enough by ai cf. engorge.
* maybe add english based on paddle y velocity.
* i know "!!" et. al. are dangerous but i can't stop using them sometimes.
* very bad code smell wrt maxVX and order of how it gets set and used.
* also uh no idea how/why/where puck.vx gets to be > than {gameState,level}.maxVX
* super fugly inconsistencies, some but not all of them include:
* should extract all the left vs. right stuff into a Side class, parent of Paddle etc.
* sorry the "class" coding style is so randomly ugly.
* things probably should always get 1 last draw call when lifespan is zero?
* compatibility / browser bugs:
* check the "bug:" comments, safari is killing me?!@#
* safari ios/ipados alpha bug on MakeRadarAnimation.
* safari crt outline clipping not working, see the touch target!?
* msft edge 92.0.902.67 was crashing saying gCx.roundRect doesn't exist!?
* suddenly the machine's edge updated itself to 125.0.2535.92 fixing it.
* are there easy to use polyfills for "new" canvas calls!?!@#?@!?!?!
* bounties (spiritual, not cash):
* see misc bounty comments in code.
* ie. actually implementing levels.
* power meter that goes up/down on hit/missed pucks, for some kind of bonus.
* power meter also goes up with things like decimate powerup.
* if ai has no line of sight through barrier, ignore pucks on that row.
* fix the crt outline drawing order to not leave those little corner gaps.
* a pause menu command to swap sides (proably only in single player mode).
----------------------------------------
i frankly kinda hate javascript at times like these, perf is entirely too unclear and arbitrary across all js engines:
* at lest in v8 apparently don't use delete on {}'s, set the value to undefined or false, because performance.
* is deleting required to avoid memory leaking? i feel like logically it should be.
* is {...nocmds} better than {} and setting entries to true/false? no idea, no way to know.
----------------------------------------
zen mode hell:
* local storage for menu.
* high score is different.
* ugh even more of lots of conditionals now.