StegaVorto: The Game that came to James in a Dream

 Posted by Bob the Hamster on November 23rd, 2008

Last tuesday night I had a dream… In this dream, Michael Sweet, frontman of 1980’s glam-rock hair-band “Stryper” appeared to me.. except he was wearing a business suit, and standing on the front lawn of a public library… and he challenged me to play a game, a strange game that I had never played before. When I awoke I knew that I had to program it…

Your challenge is to discover secret messages embedded in the works of great authors.. Secrets that have been waiting all along for you to find…

Download the Windows version of StegaVorto
Download the Mac OS X version of StegaVorto
Debian packages (preliminary) thanks to Miriam Ruiz
Android App (preliminary)
Download the source-code of StegaVorto (Linux, BSD, Other)

The source code is written using python and pygame.

Alternatively you can get the source code using Subversion to check out


The source code is under the GPL

2008-11-24: Updated! Check out new features such as author portraits, difficulty levels, and visualization of missed letters.
2008-12-10: Updated! More polish on levels, added a victory screen when you complete a level, and default to full-screen
2008-12-23: Many thanks to pygame developer René Dudfield who discovered how to fix the music problem (not just for StegaVorto, but for all pygame games that play music the same way StegaVorto does on the Mac)
2011-08-17: Updated! Added an Android version. Removed the flakey picsearch feature, and replace it with additional joyous kittens!

10 Responses to “StegaVorto: The Game that came to James in a Dream”

  1. hughster Says:

    OS X 10.5.5 – I’m not a python programmer, so the source is no use to me. Can’t run the app at all.

    12/12/2008 09:21:22 StegaVorto[782] StegaVorto Error
    An unexpected error has occurred during execution of the main script

    AttributeError: ‘module’ object has no attribute ‘music’

    12/12/2008 09:21:22 [0x0-0x62062].org.pythonmac.unspecified.StegaVorto[782] Traceback (most recent call last):
    12/12/2008 09:21:22 [0x0-0x62062].org.pythonmac.unspecified.StegaVorto[782] File “/Volumes/StegaVorto/”, line 137, in
    12/12/2008 09:21:22 [0x0-0x62062].org.pythonmac.unspecified.StegaVorto[782] _run(‘’)
    12/12/2008 09:21:22 [0x0-0x62062].org.pythonmac.unspecified.StegaVorto[782] File “/Volumes/StegaVorto/”, line 134, in _run
    12/12/2008 09:21:22 [0x0-0x62062].org.pythonmac.unspecified.StegaVorto[782] execfile(path, globals(), globals())
    12/12/2008 09:21:22 [0x0-0x62062].org.pythonmac.unspecified.StegaVorto[782] File “/Volumes/StegaVorto/”, line 1028, in
    12/12/2008 09:21:22 [0x0-0x62062].org.pythonmac.unspecified.StegaVorto[782] game = StegaVorto()
    12/12/2008 09:21:22 [0x0-0x62062].org.pythonmac.unspecified.StegaVorto[782] File “/Volumes/StegaVorto/”, line 661, in __init__
    12/12/2008 09:21:22 [0x0-0x62062].org.pythonmac.unspecified.StegaVorto[782]“data”, “song_my_life_changed.ogg”))
    12/12/2008 09:21:22 [0x0-0x62062].org.pythonmac.unspecified.StegaVorto[782] AttributeError: ‘module’ object has no attribute ‘music’
    12/12/2008 09:21:26[195] ([0x0-0x62062].org.pythonmac.unspecified.StegaVorto[782]) Exited with exit code: 255

  2. James Paige Says:

    Ooh, interesting. Okay, I’ll check it out and see if I can identify the problem. Thanks for reporting it!

  3. Myles Skinner Says:

    I was poking about, looking for a good word game, and I downloaded this rather entertaining diversion. Imagine my surprise when one of the graphics from my dissertation popped up when I successfully completed the word “respelled”…I don’t object at all; I just find it amusing to see one of my JPEGs repurposed in this way. (And what were the odds of me actually stumbling across this, eh?) Anyway, just thought I’d say hello. Interesting game; I think now that I own a small part of its content, I’ll have to link to the download when I redesign my website in the new year!

  4. James Paige Says:

    Wow, Myles, that is awesome that you happened upon that word. It only appears in hard mode as one of 30447 random words. Actually the way the pictures work is that it does a search on and shows the first search result for that word, and your picture came up at the top of the list for the word “respelled”.

    I am curious now what does “respelled” mean?

  5. Myles Skinner Says:

    “Spelling” in music refers to the choice between enharmonic equivalents. On a piano keyboard, some of the keys have more than one note name associated with them. For example, C-sharp and D-flat are distinct pitches, (and depending on context, have different syntactical interpretations, especially in classical music) but sound identical when played on a piano, because the same black piano key is used for C-sharp and D-flat; we call these pitches “enharmonically equivalent”. In the right context, pitches can set up expectations in the listener; in my little example above, we might hear C-sharp and expect it to go up, or hear D-flat and expect it to go down. Composers like to play a little trick with this phenomenon, where they approach a chord with a C-sharp in it (setting up an expectation) and respell that C-sharp as a D-flat (thwarting that expectation). Wow, that was a little more detailed than I’d intended, but I hope it’s reasonably clear. I don’t know if there’s an equivalent in English spelling, although I suppose you could say, for example, “Americans respell ‘doughnut’ as ‘donut'”

  6. Myles Skinner Says:

    So are the pictures in the distribution or are they pulled from picsearch on the fly?

  7. James Paige Says:

    Nah, the pictures are pulled off picsearch on the fly. There are so many words in the wordlists that if I included pictures for every one of them, the download would be *gigantic*

  8. James Paige Says:

    That is pretty cool. I know just barely enough about reading music to have mostly understood your explanation :)

    And I respell “doughnut” as “delicious”!

  9. zerothis Says:

    Fascinating. So very fascinating you dreamed of a word game since it is impossible to read in a dream. May we please discuss it further? zeroc6h12o6 AT gmail DOT com

  10. James Paige Says:

    I know what you are talking about. I have had those dreams where I try to read something, but all the letters shift and change, and the harder I try to read the faster they shift around.

    However, I have occasionally had dreams where I am able to read a few worlds at a glance, like a sign on a store, or the cover of a book.

    The dream that inspired Stegavorto was not really about reading. It was about words. It was about the abstract concept of words and letters and words within words, but it was not about any specific real words that I read in the dream.

Leave a Reply

You must be logged in to post a comment.