/
todo.txt
432 lines (429 loc) · 17.2 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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
FEATURES
Structure letter tile in Unity
Layout letter tiles in Unity
Controller sets a letter in view from model.
Structure input letter tile in Unity
Layout input letter tiles in Unity
Press enter or space to submit word.
If word in word list, next trial.
Backspace removes letter.
Highlight selected letters.
Read help.
Read letters.
Read word 1 of 100.
On type and submit, hear sound.
On submit play animation.
Word approaches over time.
If word gets to bottom of screen, game over.
Letters scatter on submit and then crawl.
If repeat word, read help and shake sword.
Test case: 2015-04 Jennifer Russ expects to realize word was entered.
Cheat to level up.
Mouse down to select a letter.
Button to delete last letter.
Button to submit.
Play on Android phone.
Append word list levels from text asset.
Prerequisite levels with messages.
Adjust level by relative speed.
Convert syntax of model and levels by my repo: as2cs.
Standardize indent to tabs.
To level up slower could consider:
how many levels from the top
Cheat to go up and down levels.
Partially sort anagrams by word frequency. (example: stoure)
May go down in level.
Do not repeat words. Once a word was repeated.
Level up slower if taking several seconds.
To level up slower could consider:
lowest point of the word
time on a word
Beats the game. Expects to see she won.
Jennifer feels clear when repeating a word.
When tap a letter that is duplicated, select that letter tapped.
Jennifer feels clear when submitting a word successfully.
Jennifer reads equal letter spacing.
Game over. Likes that can continue to enter. Letters not overlapping delete or submit button.
Sword goes off to the right if repeating word. Read repeating word.
Repeat word. Jennifer Russ expects to see the word was repeated.
Slow sliding moving letters at 0.125 speed to tap conveniently.
Jennifer expected to not select a different letter by accident.
Tutor. Hide HUD except help.
Hint button. Outline next letter of most popular word behind input area.
Test case: 2016-05-21 Jennifer Russ demands a hint (+2016-05-22, 2016-05-28)
Hint button appears after next level would be lower.
Then each 2 subwords after.
Background scrolls indicating time and next word.
Tall image.
Show next position if completing word now.
Tween.
Test case: 2016-05-28 Jennifer expects to realize time lowers next word.
Large letter buttons to tap quickly: 4x3.
Save last level. Load last level.
http://gamedevelopment.tutsplus.com/tutorials/how-to-save-and-load-your-players-progress-in-unity--cms-20934
http://answers.unity3d.com/questions/8480/how-to-scrip-a-saveload-game-option.html
Press button to Continue from last level.
Game over. Continue button.
Checkpoint at each big flower.
Performance analytics:
Scatter plot:
start level vs level up.
start level vs response time.
start level vs hint count.
start level vs game over.
Log TSV: response time, start level, level up, hint count, game over, word.
Continue. No letters selected or partially typed.
Hint. No mismatch between letters selected or partially typed.
If attempt 5 shuffles until word not order of a word in dictionary, from left-to-right.
Scene node model portable GameObject name x, y.
Dictionary of string keys and dynamic values.
Unity 5.3 MonoDevelop-Unity debugger crashes.
Sort by delegate.
http://stackoverflow.com/a/3309397/1417849
No LINQ to be portable syntax.
Index reading order.
sort x, name.
Name reading order.
Lookup word.
Extract AnagramController from AnagramView
Variables assigned to game objects at addresses.
Update Unity version to 5.3
Remove unnecessary NUnit.
Letters complete animation. Then next word.
Hit and complete not so loud.
Letters do not overlap bottom buttons.
Title on menu screen.
Help text above word to be easy to read.
Clear letter select image.
Checkpoint. Congratulation text.
Spring color palette.
Help in front of word. Repeat help disappears on next letter selected.
Test case: 2016-06-25 Repeat word. Jennifer Russ expects to read message and see letters.
Scale down and preview in 480x852.
Test case: 2016-06-25 Nexus 5. Aspect ratio similar to 480x852: Expect letters not clipped.
Align row of flowers at checkpoint. Test case: 2016-06-25 Plateau around word 1700. Jennifer Russ expects checkpoint. Got no checkpoint till higher.
Hint button large at top right. Test case: 2016-06-25 Jennifer Russ doesn't select hint by accident.
Test case: 2016-06-25 Jennifer Russ expects to feel all words sound right. Examples: robusta, inanes. (both are accepted scrabble words and have definitions)
Least frequency cross-referenced from open subtitles:
https://invokeit.wordpress.com/frequency-word-lists/
Fourth power frequency percentile, since it has a long tail of infrequent words.
Exclude suggesting some words that ruffle prudes feathers.
Letters behind. Game Over. Continue and New Game button borders clear. Exported at 150 DPI.
Play in WebGL or WebPlayer.
Upload to Newgrounds, Itch.io, Kongregate, GameJolt:
https://ethankennerly.itch.io/word-garden
http://www.kongregate.com/games/ethankennerly/word-garden
http://gamejolt.com/games/word-garden/162413
http://www.newgrounds.com/portal/view/677432?updated=1467645753
Successful submit animation contacts word and disperses.
Word animation. Does not rotate.
Test case: 2016-06-25 Submit. Jennifer Russ expects to recognize word accepted.
Repeat help disappears on letter entry.
Do not see letter count in HUD.
Buttons not aliasing.
Scale canvas to web portrait coordinate space: 320x480.
Resize help and HUD text.
9-slice help button images.
UI button: Hint, New game, continue, delete, submit.
ButtonController, ButtonView, ButtonBehaviour
Outline area for hint, or show disabled hint button.
Approaching letters in grid.
Replace letters:
Tap to select.
Resize hints.
Animate word letters none, complete, hit.
Animate letters shuffling positions without seam.
At setup get position for each letter.
http://dentedpixel.com/video/leantween-speed-comparison-to-itween-and-hotween/#respond
DOTween
LeanTween
iTween
https://www.reddit.com/r/Unity3D/comments/2wxazw/itween_dotween_or_leantween/
http://blog.codestage.ru/2014/08/17/unity3d-tweening-performance/
http://zehfernando.com/2014/creating-a-tweening-library-for-unity/
Alternatives:
Set to next position. Tween from previous position.
Shuffle indexes until not in reading order.
Vector3.MoveTowards
Next trial. Reset tween positions.
Finish word. Unknown steps. Expect no letters overlapping. Sometimes got a letter was overlapped.
Can notice hint letter. Got low contrast.
Hint at top. Can see hint when word is near.
Next word. Tween intro word.
Test case: 2016-07-23 Neighbor Kristine expects time to enter word. Got word already near bottom of screen.
Tutor: TO ADD TIME, SPELL A SHORT WORD.
Test case: 2016-07-23 Read "knock back letter". Neighbor Kristine expects to realize can enter shorter word.
AnagramView: Expose wired game objects in editor. Can overwrite. If not found, throw error.
Inspect letter button. Select animation transition. Delete triggers. Select color tint transition.
http://answers.unity3d.com/questions/923853/why-do-i-get-these-messages-from-unity3d-ui.html
http://forum.unity3d.com/threads/weird-button-warning.298673/
Test case: Open editor. Letter nodes. Why does this warning appear in the editor?
Parameter 'Normal' does not exist.
UnityEngine.CanvasRenderer:RequestRefresh()
Simplify UnityToykit directories.
Rank file timesink. About a full-time month of hours (160). Mostly in model (15), editor (13), data utility (11).
minutes percent file
1289 12 todo.txt
897 8 Model.cs
738 7 anagram.unity
645 6 DataUtil.cs
354 3 session.vim
311 3 Levels.cs
298 3 README.md
271 3 View.cs
233 2 AnagramView.cs
225 2 Main.cs
Test case: 2016-07-23 Tutor. Game over. Continue. Finish tutor trial. Neighbor Kristine could expect word near top. Got word near bottom.
Expect hint button top left corner same size as other corners.
Main.cs to AnagramView.cs
C# CapitalCase style functions.
C# single line comment style.
Play one sound on timeline.
https://www.raywenderlich.com/116652/introduction-unity-animation-system
Fit HUD, buttons, and input to screen sizes.
Scale root to 1.0 to match camera and canvas.
Landscape layout
HUD and buttons on left.
Play in landscape or portrait.
Trigger HUD animations.
Journal and playback input.
Match scale.
Deep profile.
Story clarifies rules and stars the player:
Word Sword
RULE STORY
Anagram Grid of letters
Timer Letters falling
Bonus Knock letters back
Shuffle Letters slide
Spell Slide letters up and off
LevelUp Progress on map
Upgrade sword.
Letter snake.
Word Garden
RULE STORY
Anagram Grid of letters
Timer Letters falling
Bonus Knock letters back
Shuffle Letters slide
Spell Slide letters up and off
LevelUp Scroll flowers
Different scene for each theme.
Test case: 2016-08-13 Jennifer Russ expects to recognize marks at bottom of letter. Got arms.
Test case: 2016-08-13 In portrait view, Jennifer expects to see hilt of sword.
Test case: 2016-08-13 Jennifer could expect to tell a story. Got mushrooms.
Sword touches. Hats with letters slide up. Gold coin faces smile and slide down.
Test case: 2016-08-13 Jennifer expects to pause.
Button to goto menu with Continue and New Game.
Continue resumes.
On app backgrounded, auto-pause immediately.
Do not advance a level. Remember progress on the word.
Test case: 2016-08-14 First word. Expect to read about 3000 words. Got 1000 words.
Test case: 2016-08-20 Complete tutorial. Expect help disappears. Unpause. Expect help disappears.
Level select. First word. Read instruction.
Enter from two menus:
-1d: 50 levels in a grid. 60 words each in a grid.
Except first two levels only have 30.
Example: WordBrain by MAG Interactive has 10 levels in first 2. 20 in next.
But WordBrain has vertical layout group, not a grid.
-2d: Progress on button on grid.
Example: Fuse Clues has progress bar on highest unlocked level.
-3d: Map
Example: AlphaBetty Saga by King has 90 levels until first balloon.
Select level up to previous session.
Label level number (index plus one).
Back button out of submenu.
Map level displayed to number of words.
Hide buttons above max.
Unit test toggle change.
-1d Watcher:
isInMenu = true;
isInMenuWatcher = Watcher.Factory(isInMenu);
isInMenuWatcher.Setup(isInMenu);
isInMenuWatcher.Update(isInMenu);
isInMenuWatcher.IsChangeTo(false);
isInMenuWatcher.IsChange();
isInMenu = true;
isInMenu
+ Can watch external data structures.
+ Can also be used to store the state itself.
-2d ToggleChange:
isInMenu = new ToggleChange();
isInMenu.Setup(true);
isInMenu.Update();
isInMenu.IsChangeTo(false);
isInMenu.IsChange();
isInMenu.SetNow(true);
isInMenu.GetNow();
+ One less variable to access.
-3d Poll variables:
Setup:
isInMenuNow = IsInMenu();
isInMenuBefore = isInMenuNow;
isExitMenuNow = false;
Update:
isInMenuNow = IsInMenu();
isExitMenuNow = isInMenuBefore && !isInMenuNow;
isInMenuBefore = isInMenuNow;
Generic data type template: bool, string.
Use cases:
levelSelect.model.isInMenu
model.helpState
Select lower level. Retain access to higher level.
Game over: Expect exit button remains.
Exit button Rect Transform anchors at top-center. Was anchored at center.
Test case: 2016-09-23 Kelsey Kerlan, Nexus 5:
Hint. Expect to read first letter. Got hint behind exit button.
Lower letters to below HUD.
2016-09-18 Jennifer Russ: 9 letters or more. Expects to see top letter. Got behind HUD.
Replace X with Pause lines.
2016-09-18 Jennifer Russ may expect: Recognize can pause any time.
2016-09-18 Jennifer Russ:
Press X. Select level. Might expect highest level.
Level select. Return to highest unlocked.
2016-09-18 Jennifer Russ:
Could expect break every 10th word. (2016-09-23 +Kelsey Kerlan)
Reach break. Could expect to see message.
Repeat word. Read word repeated.
2016-09-18 Jennifer Russ:
Tap selected letter. Expects deselects letter. (2016-09-23 +Kelsey Kerlan).
Example: City of Words.
Hint:
Read hints remaining.
Hint button always available. Costs 1 hint.
Save and load hints.
Get more hints:
Tap exit.
Read hints.
Pause game.
Tap item. Add hints.
If tap hint button with no hints,
From start screen button: Get more hints.
Type second letter of a pair, such as word 1: "start" or word 506: "teens". Expect select letter. Got some letters skipped. Backspace. Crash.
Developer button to reset storage to no hints, no level, and reload.
Test subdivided AnagramModel:
Letter selection
Hints
Leveling
Test case: 2016-10-15 Level 1. Second word. Neighbor Kristine expects to read instruction. Got instruction for START.
Test case: 2016-10-15 Level 1. Second word. Neighbor Kristine spells the word SPELL. Expects new word. Got repeats.
Test case: 2016-10-15 Next word. Neighbor Kristine could expect next instruction. Got no instruction.
Test case: 2016-10-15 First screen. Kristine could expect callout to select level 1.
Test case: 2016-10-15 Word near bottom. Kristine could expect instruction to enter shorter words.
TODO
Test subdivided AnagramModel:
Word transform
Progress transform
Mode
Words: Contains word.
Toggle developer panel.
Scale word position to screen top and bottom.
Select level. No flicker of paused screen.
No longer refer to ArrayList.
Words do not appear in reading order.
Level select menu. In middle of levels. Highlight the current level.
Hint:
Hint menu. Select. Expect always selects.
Hints on random letter of some milestone words. Example: WordBrain Themes.
Spell with the letter to get a hint.
Progress to a hint on some milestone words. Example: WordBrain Themes.
From pause screen button: Get more hints.
At checkpoint goto grid.
At checkpoint goto map.
Map shows path with one button per word.
Milestone at 100 words.
Milestone at number of letters.
Double frequency of checkpoints.
Or checkpoint after 10 words.
Level select:
Set chapter and level text.
Lock icon if not available.
Example: WordBrain.
Show question mark icon (?) if not tried but available.
Highlighted if highest level unlocked.
When open, default to highest unlocked.
Speed if solved.
Watcher:
Use cases:
string:
journal.action
journal.command
Experiment with synonym hint for word. Only accept that word.
Synchronize complete animation on word state and letters.
Submit. Always all letters selected.
Each letter is a monster
https://pixabay.com/p-160205/?no_redirect
Centipede crawling closer.
http://previews.123rf.com/images/silantiy/silantiy1209/silantiy120900020/15529867-Set-of-amusing-caterpillars-on-a-white-background-Caterpillars-of-different-color-On-one-caterpillar-Stock-Vector.jpg
If tap same letter twice, do not select the other letter. Example: SPELL. Tap first L twice. Expect second L not selected.
Play to summarize opportunities to be consistent and clear.
Compare to profitable word games for clean look and feel.
Pass unit test of example journal and playback animation.
Remove scale from root.
Repeat. Different sound.
Not accepted. Different sound.
New word approach sound.
Clarify will lose when word at bottom.
Pause button: show menu: continue, new game.
Validate find letters at start.
Creep up to challenging word.
Checkpoint. Congratulation animation.
Cache letter nodes at setup.
Obvious buttons.
Letter creep animation.
Text not aliasing.
Profile. Optimize view update of letters.
Animate letters if repeating word.
Test case: 2016-08-13 Jennifer could expect to tell a story. Got mushrooms.
Sword touches. Hats with letters slide up. Faces smile and slide down.
Sword touches toast. Butter appears.
Centipede connected by letters. Serpent slides up.
Developer controls:
Type user name.
http://docs.unity3d.com/Manual/script-InputField.html
http://docs.unity3d.com/ScriptReference/TouchScreenKeyboard.Open.html
Reset user level.
Scale world coordinates to UI coordinate space.
Select user name from menu.
Letter graphic.
Menu to select any word. Example: WordBrain.
Animate word bug damaging plant and ground that it covers.
Animate repairing after defeating a bug.
Google Play Store.
Mouse down to select that letter when there are 2 copies.
Animate various outcomes: many subwords. fast. barely survive.
Theme:
WORD SWORD
BATTLE OF WORDS
WORDS VS ZOMBIES
https://itunes.apple.com/us/app/words-vs-zombies/id733299960?mt=8
http://techforteachers.com/wp-content/uploads/2014/01/Words-Vs-Zombies-App-Review.pdf
WORDCRAFT
WORD GARDEN
WORD SHARP
WORD STAR
WORD PEAK
WORD STAR
WORD QUEST
WORD FLOW
WAY WITH WORDS
WORD STREAM
WORD RAPIDS
WORD SPEED
WORD BLITZ
SPIDER WORD
WORD BLIZZARD
WORD BOWLING
WORD SWEEP
WORD BALL
WORD ODYSSEY
WORD VOYAGE
WORD WAR
WORDSMITH
WORD WIZ
If spell full word, auto-submit.
Experiment: Only letters knocked back that had been spelled. Knockback farther.
Button press.
Clean font.
Plant flower where you are.
Animate 11th and 12th letters.