Monday, March 16, 2009

Genesis

The idea for the Online Memory Challenge came from a comment by 'Mike' in James Kemp's memory training blog. James had lost his motivation for training, and Mike suggested working on a multi-user online memory competition as an alternative to monotonous training exercises.

The seed was sown, and a couple of weeks later I gave the idea some serious thought. I knew that the concept was at least feasible, having seen a website on which people could play the word game 'Boggle' against others in real time, and I had started learning JavaScript, the language used for the Boggle website.

I thought about the various disciplines used in standard competitions, and decided to work on three initially for the online competition: Speed Random Words, Speed Numbers, and Speed Cards. I thought they would provide a nice variety to begin with, and I could always add more disciplines later if the concept proved successful.

The design for the Words and Numbers seemed relatively straightforward - just show the words/numbers on the screen for 5 minutes, then allow competitors to type in their recall. Designing an online version of Speed Cards was more challenging. How could I simulate a competitor flipping through a deck of cards in their own way and at their own pace? Some people start from the bottom of the deck, others from the top; some take the cards two at a time, others three at a time; some go through the deck once, others twice. In the end, I decided that the easiest approach was just to show all the cards spread out on the screen, and allow people to memorise them in whatever way they wanted.

For the Speed Cards recall, I wanted to give competitors the freedom to sort the cards in any groupings they like, as they can when sorting physical cards on a table. So rather than having fixed positions for the cards to go into, I decided to allow the competitor to position the cards freely and have the program read their order logically at the end. I think it works well - it takes me about 2 minutes to sort the deck on screen when I know the cards perfectly, and that's about the same time it takes me to sort a physical deck.

Technically, the approach was to use a technique called AJAX to communicate between the browser and the server. With AJAX, the data is sent in the background, without interrupting the user. I planned to use this to send each competitor's score to the server at the end of the recall time, and again to send the combined results back to each competitor. But as I thought further about this, I realised that data could be sent more or less continuously between the browser and server, potentially allowing two great features:
  1. spectators could view competitors' recall in real time
  2. competitors and spectators could 'chat' to each other on the challenge site.
When I realised that these things may be possible, I became very excited about the project. Being able to view recall in real time had the potential to turn memory competitions into something of a spectator sport, and the chat feature would make the challenge much more fun and engaging.

Over the next few weeks I gradually got each of the basic components working in isolation. While I mostly enjoyed the development process, it was very frustrating at times. I was testing on both Firefox 1.5 and Internet Explorer 6, and often something would work fine in one browser but not at all in the other. This was only my second website (the first being the Memory Sports Statistics site) and I had a lot to learn about the technologies I was using: JavaScript, CSS, PHP and MySQL.

Once I had demonstrated to myself that everything I wanted to do was in fact possible, I decided to announce the first challenge in the Yahoo 'Memory Sports' group. I chose a Sunday about 4 weeks away. That wasn't a lot of time to get everything working, but I was very keen to make the challenge a reality and that was about the earliest date I could imagine it might be ready.

I didn't get much sleep over the next 4 weeks. I worked on the challenge site at every opportunity - on the train to and from work (on paper, as I didn't have a laptop), and late into the evenings. I was also very busy with my paid job, and with making arrangements for my wedding, scheduled for November. I finally finished work on the challenge site on the morning of Sunday 21st October 2007 - a comfortable 10 hours before the challenge was due to start.

When I announced the first challenge, I had no idea how many registrations to expect. The number of competitors could have been anything from 1 (just me) to potentially hundreds, if everyone that had previously competed in a memory championship decided to compete in the online competition. As it turned out, there were 6 competitors (including myself) and 1 spectator, which was perfect - enough for a decent competition, but not too many people to disappoint if things went wrong.

Fortunately, everything worked as intended. We were able to chat to each other, the memorisation and recall screens appeared at the right time, and competitors were able to get reasonable scores despite the fact that it was their first time using the site. Everyone seemed to enjoy the experience, and I was thrilled that it had all gone so well (and also to read Ben Pridmore's blog entry about the challenge the following morning).

No comments:

Post a Comment