-
Notifications
You must be signed in to change notification settings - Fork 10
/
todo.txt
127 lines (123 loc) · 7.42 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
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
SHIP BLOCKERS
BUGS
- Right click to remove start/end doesn't respect symmetry rules
- Audio is laggy -- Try preloading?
- "Seren✩: I let Witness Puzzles run until it resolved. It found some... questionable results."
https://cdn.discordapp.com/attachments/155773038908932097/866773427703644160/unknown.png
- Solution viewer shows wrong solution on solve
- iOS is scrolling while solving, looks like I broke this when I tried to fix android.
- Android is still fairly buggy.
- while solving a puzzle the page scrolling is annoying af, practically not even usable
- it only does the annoying scrolling in editor
- also sensitivity is scuffed
- if you re tap on an incomplete path and go down it can refresh the page
- doing that also lags tf out of the line rendering properly
- Some nonsense with floodfill going *through* single lines, which of course makes everything *weird*.
- Puzzle titles are overlapping with the rest of the menu bar (on play_template)
- Perf:
* Early validate for triangles... specifically 1 & 2 (if they have 2/3 sides covered)
* Find a way to make color counts cheaper, *especially* when there are no elements that care.
* https://webpagetest.org/result/210722_AiDcS6_eb9ed4f976a30bb47350686c9e404676/
(FCP on the main page is 1s, could be faster)
* performance.mark apparently appears in devtools, which sounds actually useful
* performance.getEntriesByType('resource')
* source-map-explorer
* coverage-ext sam saccone
* pollyfill.io ?
- editor is a bit buggy with manual/auto solve mode
FEATURES
- Add send_last_lines from speedrunbot and send that when we 500.
- Autocommit for the database?
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy(session_options={'autocommit': True})
- Dedupe telemetry rows by error text (and show a count of unique/total session IDs?)
Ensure that "delete" deletes *all* rows that share that identifier.
- Telemetry page is only semi-compatible with dark theme; fix table borders & buttons
- Create a boolean which governs the early-validation logic, and compute it at entry. Also, don't run this logic for triangle-only puzzles, it's clearly not faster.
- Try to make webcrow async, even a little bit -- the lag when waiting on a click is not ideal.
- Clicking the Auto-Solve repeatedly makes the progress bar freak out and displays the wrong number of solutions.
- There is also no way to cancel an auto-solve, and
- it is possible to edit the puzzle while the auto-solve is loading, causing an incorrect number of solutions.
- symmetry puzzles should still show line colors when solved (Add two more fade colors, shouldn't be too too hard)
Also, add MONOCHROME_SYMMETRY.
This is about coloring. It should probably wait until I steal the css variables from prodzpod.
- Editor undo/redo
> Only for active puzzle
> Keep in-memory (do not write to local storage)
> Linear (overwritten once a change is made)
Just keep an array of serialized puzzles and an index, then when you call writePuzzle it should splice at index.
Undo & Redo w/ gray out once we hit the limit. Pretty easy IMO.
*** (This probably should only happen once I have new serialization. Just for memory consumption reasons.) ***
Also hook C-Z and C-Y and C-S-Z
- Reduce puzzle serialization size? [WIP, test against editor (again) before shipping.]
This is the main play I have against people attacking my system -- make it harder to send bad data.
- Per-puzzle statistics, using new telemetry table
- Number of solves
- Completion rate
- avg Completion time
- Steal back stuff from prodzpod (https://github.com/prodzpod/witness)
- CSS variables in engine/display2.js, engine/svg.js, engine.utilities.js, theme/*.css
- Editor layout is a bit tighter -- consider smaller buttons & more rows?
- engine/custom_mechanics.js (and also engine/polyominos.js) (and also engine/validate.js, carefully)
- maybe engine/play.js
- steal some svg shapes from engine/svg.js
- trace2.js
- login-gated page for "show (and dismiss) all errors/feedback"
- Put the license *somewhere* into the header, so that if someone clones the repo they don't have to do it.
- Track puzzle solve count + solve duration, then provide a way to sort puzzles by count/duration (maybe only visible on /browse, or maybe not ever visible?)
Part 1 shipping whenever AWS stops screwing me.
- RGB filters
- Support OUT_OF_BOUNDS_POLY
- Changing theme (or otherwise refreshing the browse/ page) does not retain your scroll offset
Maybe use a fragment for this? Then, on reload, auto-scroll until we reach the fragment?
Fragment should probably be a puzzle ID, not an offset. Wellll maybe not, what if we delete one?
- Retake all images (due to new background style) [WIP]
Also, I should take images in dark theme, and have some way to show the appropriate ones.
Some complaints about background color being too close to line color? Make background brighter. Just a bit.
Complaint about contrast between black and background on the dark theme.
Ok, I think it's time for a script to finish this.
- Some graphical indication that cancel actually fired?
Hard, because we don't have an easy differentation between 'we got results bc cancelled' and 'we got results bc finished'. I guess we could set a flag...
- Work on speedrunning solver / improving "unique puzzles"
Can't do this just with a cache key -- but I can recompute the key for all the regions after the fact.
Or I could make a key for the puzzle as a whole? Regardless, not as easy as just hacking the cache key.
and move on.
- Editor dot button should act like triangles
Hard, requires changing when the style changes
- No need for "Mouse Speed 2D" on mobile.
- Work on making a stable (github pages) version of WP
Database needs to be checked in (can be fetched via XMLHttpRequest)
Folder layout probably needs to change, though now that prod is hosting a gh-pages version, I can try to support both at once.
Validation & database additions can be done via github issues + github actions (or some other public forum...)
Hopefully this can do validation & pictures too.
images need to be checked in, so git commit as part of the github action.
Might want a separate DB repo, if only to avoid the commit spam.
- Custom mechanics
- pillar puzzles are too easy when you can see the whole thing.
- Add a "Save screenshot to clipboard" button
Needs some actual support from javascript. Soon!
-- Add all puzzles in the game to the system. Maybe a separate category / identifier?
Add tests & speedrunner solver
Tutorial
-- Internal names:
dots (aka hexagons)
stones (aka squares)
shapers (aka polyominos, tetrominos, tetris)
erasers (aka negations, deleters, eliminators)
groupers (aka stars, suns)
counters (aka triangles, doritos)
[proposed custom mechanics]
sizers (aka
-- Make a list of all the differences from the game (each needs a tutorial or a setting)
Have a 'left/right arrows' with a bunch of puzzle images (or maybe animated static objects)
[image]\n[explanation]\n[left arrow] step # [right arrow]
-- Need to explain complex mechanics
Double negation
Polys outside the grid
Poly overlapping
Precise polyominos
Two-stage negation
-- Sadly, need to explain normal mechanics
The best option here is to cherry-pick puzzles from the base game.
That way, people can recognize mechanics. That said, since I'll provide text, there's no reason to go that slowly.
-- Should also have an explanation for the different 'styles' (which is probably how I'll implement settings)