The most noticeable change in this new version is that when accelerating your WPM by looking right, a green halo appears around your vision, and when decelerating your WPM by looking left, a red halo appears. When no halo appears, your WPM is not changing. The halo (and the rate of acceleration/deceleration) becomes more noticeable as you look more to the left/right. It was hard to visually estimate acceleration before and this should help.
Because I needed to fade in/out the color halo, the implementation of this required a (relatively simple) custom shader that could handle both the transparency of the texture and the alpha multiply. I call it “Unlit/Transparent Alpha” and you can grab it at pastebin.
I replaced the blur for now with a simpler rectangular highlight around the current word. This encourages the user to focus at a particular point while still allowing them to use their peripheral vision to the maximum potential. I’m not sure yet though if it might lead to their attention wandering away from the target word.
I added a delay to the first word at the beginning of each paragraph. This helps deal with the momentary disorientation and the (illusory) perceived speedup that occurs when jumping from one paragraph to the next. The associated code refactoring also allows me to arbitrarily customize the amount of time spent on each word.
I added a WPM informational pop-up to the pause screen that appears when touching the touchpad, using Unity 4.6’s world-space UI.
Here is the current prototype:
I experimented a bit with combining short, common words into a single word, like “in the”, so they could be read together. Results were mixed. Sometimes it seemed to help and sometimes it was confusing. After further reflection I think the right thing to do here is actually to group together 2-grams that occur frequently enough in written text. This raises the interesting idea of having the time per word, rather than being constant, actually depend in some way on how “expected” the word is (e.g. its likelihood in context given a simple n-gram model). With this, more time would be spent on unfamiliar words and less time on familiar words, and common words like “Alice” would have less and less time dedicated to them as the text went on. This might be something to revisit at a later time.