<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.2">Jekyll</generator><link href="https://history.jakelee.co.uk/feed.xml" rel="self" type="application/atom+xml" /><link href="https://history.jakelee.co.uk/" rel="alternate" type="text/html" /><updated>2025-07-03T17:18:33+01:00</updated><id>https://history.jakelee.co.uk/feed.xml</id><title type="html">Internet History</title><subtitle>Welcome to Internet History! A collection of technical deep dives into the long forgotten past of the internet</subtitle><author><name>Jake Lee</name></author><entry><title type="html">23 years ago today, LEGO’s Junkbot game was released, one of the most popular LEGO.com games of all time 🤖🧱</title><link href="https://history.jakelee.co.uk/lego-junkbot-technical-and-historical-decompiling/" rel="alternate" type="text/html" title="23 years ago today, LEGO’s Junkbot game was released, one of the most popular LEGO.com games of all time 🤖🧱" /><published>2024-08-09T00:00:00+01:00</published><updated>2025-07-03T00:00:00+01:00</updated><id>https://history.jakelee.co.uk/lego-junkbot-technical-and-historical-decompiling</id><content type="html" xml:base="https://history.jakelee.co.uk/lego-junkbot-technical-and-historical-decompiling/"><![CDATA[<p>Junkbot: The mysterious little LEGO robot that relentlessly walked forward, and deserved far more attention than it ever received. 23 years ago, the first of 2 games featuring the orange walker was released on LEGO.com! Who made it, and where is Junkbot today?</p>

<p>This is a long article (4k+ words), so you might want to skip straight to “<a href="#how-can-i-play-junkbot">How can I play Junkbot today?</a>”, or “<a href="#are-there-any-secrets">Are there any secrets?</a>”!</p>

<h2 id="what-is-junkbot">What is Junkbot?</h2>

<p>Junkbot is a puzzle game from 2001 with 60 levels, previously hosted on LEGO.com. Junkbot relentlessly walks forward, turning around when hitting a wall, with the goal of eating all the trashcans in a level.</p>

<p>There are environmental threats (fire, drips, fans, springs)<sup id="fnref:hazards" role="doc-noteref"><a href="#fn:hazards" class="footnote" rel="footnote">1</a></sup> and enemies (gearbot, climbbot, flybot), but the main challenge is just getting Junkbot around the level without dying. Whilst most levels can be solved through trial and error, there is also an optional maximum moves target for each level.</p>

<p>Junkbot itself is perhaps summarised best by <a href="#naomi-clark-lego-web--digital-producer">Naomi Clark</a><sup id="fnref:lego-podcast" role="doc-noteref"><a href="#fn:lego-podcast" class="footnote" rel="footnote">2</a></sup>:</p>

<blockquote>
  <p>He’s not super-powered. He just likes to eat trash … He’s a robot whose goal in life is to eat trash.</p>
</blockquote>

<p>There is a sequel, “<a href="https://en.brickimedia.org/wiki/Junkbot_Undercover">Junkbot Undercover</a>”, but this article is only interested in the first game!</p>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Guide</th>
      <th style="text-align: center">Gameplay</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><a href="/assets/images/2024/junkbot-guide.png"><img src="/assets/images/2024/junkbot-guide-thumbnail.png" alt="Junkbot in-game guide" /></a></td>
      <td style="text-align: center"><a href="/assets/images/2024/junkbot-gameplay.png"><img src="/assets/images/2024/junkbot-gameplay-thumbnail.png" alt="Junkbot gameplay" /></a></td>
    </tr>
  </tbody>
</table>

<h2 id="timeline">Timeline</h2>

<ul>
  <li><strong>Spring 2000</strong>: gameLab (Junkbot’s creator) founded<sup id="fnref:gamelab-founded" role="doc-noteref"><a href="#fn:gamelab-founded" class="footnote" rel="footnote">3</a></sup>.</li>
  <li><strong>October 2000</strong>: gameLab’s NYC office opened<sup id="fnref:gamelab-office" role="doc-noteref"><a href="#fn:gamelab-office" class="footnote" rel="footnote">4</a></sup>.</li>
  <li><strong>August 9th 2001</strong>: Junkbot released<sup id="fnref:junkbot-released" role="doc-noteref"><a href="#fn:junkbot-released" class="footnote" rel="footnote">5</a></sup> (also shown on gameLab’s Junkbot page<sup id="fnref:junkbot-on-gmlb" role="doc-noteref"><a href="#fn:junkbot-on-gmlb" class="footnote" rel="footnote">6</a></sup> and in a LEGO press release<sup id="fnref:lugnet" role="doc-noteref"><a href="#fn:lugnet" class="footnote" rel="footnote">7</a></sup>).</li>
  <li><strong>September / October 2001</strong>: First mentioned in official LEGO mania magazine<sup id="fnref:mania" role="doc-noteref"><a href="#fn:mania" class="footnote" rel="footnote">8</a></sup>.</li>
  <li><strong>October 5th 2001</strong>: First archive.org mention of Junkbot on LEGO’s site<sup id="fnref:archive-first" role="doc-noteref"><a href="#fn:archive-first" class="footnote" rel="footnote">9</a></sup>.</li>
  <li><strong>August 3rd 2002</strong>: First archive.org copy of Junkbot game files<sup id="fnref:archive-first-files" role="doc-noteref"><a href="#fn:archive-first-files" class="footnote" rel="footnote">10</a></sup>.</li>
  <li><strong>October 24th 2003</strong>: Junkbot included in a case study by gameLab’s CEO for “Design Research”<sup id="fnref:case-study" role="doc-noteref"><a href="#fn:case-study" class="footnote" rel="footnote">11</a></sup>.</li>
  <li><strong>September 29th 2009</strong>: gameLab acquired<sup id="fnref:gamelab-acquired" role="doc-noteref"><a href="#fn:gamelab-acquired" class="footnote" rel="footnote">12</a></sup>.</li>
  <li><strong>July 31st - September 30th 2012</strong>: Junkbot is removed from LEGO.com (<a href="https://web.archive.org/web/20120730042921/http://www.lego.com/build/junkbot/junkbot.asp?x=x&amp;login=0">July 30th</a>, <a href="https://web.archive.org/web/20120930001653/http://www.lego.com:80/build/junkbot/junkbot.asp?x=x&amp;login=0">September 30th</a>), likely as part of the 2012 site-wide redesign<sup id="fnref:lego-redesign" role="doc-noteref"><a href="#fn:lego-redesign" class="footnote" rel="footnote">13</a></sup>(?).</li>
  <li><strong>April 9th 2019</strong>: Shockwave Player (required for Junkbot) no longer available to download<sup id="fnref:shockwave-eol" role="doc-noteref"><a href="#fn:shockwave-eol" class="footnote" rel="footnote">14</a></sup>.</li>
</ul>

<p><a href="/assets/images/2024/junkbot-google-trends.png"><img src="/assets/images/2024/junkbot-google-trends-740w.png" alt="junkbot popularity trend" /></a>
<em>Interest since 2004 (earliest available) for “Junkbot”, from Google Trends<sup id="fnref:trends" role="doc-noteref"><a href="#fn:trends" class="footnote" rel="footnote">15</a></sup>.</em></p>

<h2 id="how-can-i-play-junkbot">How can I play Junkbot?</h2>

<p>Whilst you absolutely can install and play the original Junkbot, I’d actually recommend <a href="https://1j01.github.io/janitorial-android/#junkbot">a HTML5 remake</a> (more info later in <a href="#play-junkbot-online">Play Junkbot online</a>) for ease of use. It’s missing the music (for copyright reasons), but has extra features!</p>

<h3 id="installing-junkbot">Installing Junkbot</h3>

<p>If you’d rather play the original, the Flashpoint Archive project can help (<a href="https://flashpointarchive.org/faq">FAQs</a>). It’s on <a href="https://flashpointarchive.org/downloads">Windows</a>, <a href="https://flashpointarchive.org/datahub/Mac_Support">Mac</a> &amp; <a href="https://flashpointarchive.org/datahub/Linux_Support">Linux</a>, and currently makes 150k+ old Flash / Macromedia games playable. Here’s how to set it up:</p>

<ol>
  <li><strong>Download <a href="https://flashpointarchive.org/downloads">Flashpoint Infinity</a></strong>: “Ultimate” includes all games and is <em>massive</em>, you don’t want that!</li>
  <li><strong>Run the installer</strong>: I only installed the “Core Components”, since games prompt for any additional extensions they need.</li>
  <li><strong>Open Flashpoint &amp; search for Junkbot</strong>: The program can be a little unresponsive, but Junkbot should eventually show up.</li>
  <li><strong>Play</strong>!</li>
</ol>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Installing Flashpoint</th>
      <th style="text-align: center">Searching for Junkbot</th>
      <th>Playing Junkbot</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><a href="/assets/images/2024/junkbot-flashpoint-installer.png"><img src="/assets/images/2024/junkbot-flashpoint-installer-thumbnail.png" alt="Installing Flashpoint" /></a></td>
      <td style="text-align: center"><a href="/assets/images/2024/junkbot-flashpoint-browse.png"><img src="/assets/images/2024/junkbot-flashpoint-browse-thumbnail.png" alt="Searching for Junkbot" /></a></td>
      <td><a href="/assets/images/2024/junkbot-flashpoint-play.png"><img src="/assets/images/2024/junkbot-flashpoint-play-thumbnail.png" alt="Playing Junkbot" /></a></td>
    </tr>
  </tbody>
</table>

<p>Note the game files provided by Flashpoint have a created date of 24/12/1996. This is unrelated to Junkbot, and is <a href="https://www.reddit.com/r/emulation/comments/64ekk3/how_come_some_gba_games_have_12241996_as_last/">a quirk of the utility “TorrentZIP”</a>.</p>

<h2 id="technical">Technical</h2>

<h3 id="how-was-junkbot-created">How was Junkbot created?</h3>

<p>Junkbot was created in the now abandoned Adobe Director, a less popular relative of Adobe Flash. To decompile the game files I used “<a href="https://github.com/ProjectorRays/ProjectorRays">ProjectorRays</a>”, and <a href="https://blog.jakelee.co.uk/decompiling-adobe-director-files/">wrote a full decompiling guide</a>.</p>

<p>Whilst working on this post I also <a href="https://blog.jakelee.co.uk/lego-junkbot-files-and-director-tips/">extracted Junkbot’s source code</a>, meaning all the game’s code and assets are now <a href="https://github.com/JakeSteam/junkbot-code">available on GitHub</a>! This lets you dive into how every feature within the game works, like dynamically generated animations, all implemented using the obscure language “<a href="https://en.wikipedia.org/wiki/Lingo_(programming_language)">Lingo</a>”.</p>

<h3 id="are-there-any-secrets">Are there any secrets?</h3>

<p>There are some!</p>

<h4 id="level-editor">Level editor</h4>

<p>First, there’s a level editor used by the developers to create the game’s levels. This was accessible via a button in each level, and <a href="https://github.com/JakeSteam/junkbot-code/tree/main/files/editor">all of the code still exists in the game</a>.</p>

<p>This level editor has all the features you’d expect: selecting bricks to place, checking a brick fits, editing levels, exporting to text, and more. I couldn’t get this actually running in the game, but it exists!</p>

<h4 id="secret-level-names">Secret level names</h4>

<p>Before the game’s 60 levels were organised into 4 buildings, draft versions were built by various developers (mostly <a href="#frank-lantz-director-of-game-design">Frank</a> and <a href="#eric-zimmerman-founder--ceo">Eric</a>, with some by James(?), <a href="#nicholas-fortugno-game-designer">Nick</a>, <a href="#ranjit-bhatnagar-director-of-rd">Ranjit</a>, and <a href="#peter-lee-founder--president">Peter</a>).</p>

<p>How do I know who made the levels? There’s <a href="https://github.com/JakeSteam/junkbot-code/blob/main/files/catalog/catalog%20text.txt">a text file with the level names and authors</a>!</p>

<p>This is obviously an informal, casual level list, with some particular highlights being:</p>

<ul>
  <li><em>“Shit Stormsof Floaters by Eric (exciting!!! )”</em></li>
  <li><em>“Temple of Doom! by Eric (hard (but not too frustrating) complex level )”</em></li>
  <li><em>“fires and fans by Eric (a few ways to solve it… )”</em></li>
</ul>

<p>More importantly than the actual level names however, is the variety of people creating levels. The fact everyone from the CEO to programmers are playing around and making levels show how invested the entire gameLab team was in Junkbot.</p>

<h2 id="about-junkbot">About Junkbot</h2>

<h3 id="who-created-junkbot">Who created Junkbot?</h3>

<p>Junkbot was created by “gameLab”, a company of 6 founded in early 2001 by Eric Zimmerman and Peter Lee “<em>simply because we wanted to make games</em>”<sup id="fnref:vice" role="doc-noteref"><a href="#fn:vice" class="footnote" rel="footnote">16</a></sup>. They quickly found work creating web games for LEGO.com due to their connections made whilst working on the extremely popular Sissyfight 2000<sup id="fnref:sissyfight" role="doc-noteref"><a href="#fn:sissyfight" class="footnote" rel="footnote">17</a></sup>. gameLab’s story has been told in detail elsewhere (e.g. <a href="https://en.wikipedia.org/wiki/Gamelab">Wikipedia</a>), with a LEGO podcast episode centred around Junkbot<sup id="fnref:lego-podcast:1" role="doc-noteref"><a href="#fn:lego-podcast" class="footnote" rel="footnote">2</a></sup> (<a href="https://www.lego.com/cdn/cs/set/assets/blte95c26554f38a01a/bits_n_bricks_s03e29_feature_and_transcript.pdf">transcript</a>).</p>

<p>The game includes credits (image below), although the nature of a small company is roles often aren’t very strictly defined! For example, Peter is listed as contributing to Art, Code, and Project Management, but also credit for the “cheeky design of the Junkbot itself … [he] deserves credit for that original design”<sup id="fnref:junkbot-design" role="doc-noteref"><a href="#fn:junkbot-design" class="footnote" rel="footnote">18</a></sup>.</p>

<p><a href="/assets/images/2024/junkbot-credits.png"><img src="/assets/images/2024/junkbot-credits.png" alt="Junkbot credits" /></a></p>

<p>These names are mostly taken from gameLab’s website in October 2001<sup id="fnref:gamelab-people" role="doc-noteref"><a href="#fn:gamelab-people" class="footnote" rel="footnote">19</a></sup> and are all included in Junkbot’s August 9th press release<sup id="fnref:junkbot-release-date" role="doc-noteref"><a href="#fn:junkbot-release-date" class="footnote" rel="footnote">20</a></sup>. I’ve included their bios verbatim, plus added information on their work in the last 20 years when appropriate. It’s worth noting the extraordinarily high levels of continued collaboration even decades later, and how most continued to publicly talk about games and educate others.</p>

<h4 id="eric-zimmerman-founder--ceo">Eric Zimmerman (Founder &amp; CEO)</h4>

<blockquote>
  <p>Eric Zimmerman just can’t stop making games. After a childhood of roping friends and family into playtesting his game experiments, Eric has spent the last eight years in the game industry. Before founding gameLab with Peter Lee, Eric collaborated with Word.com on the underground online hit, SiSSYFiGHT 2000 (www.sissyfight.com). Other titles include the PC CD-ROM titles Gearheads (Philips Media, 1996) and The Robot Club (Southpeak Interactive, 1998). An unapologetic part-time academic, Eric has taught game design at MIT, NYU, and Parsons School of Design and he is the Director of RE:PLAY, a series of events examining game design and game culture. He is currently working on two books about game design and game culture, to be published in 2002 by MIT Press and Eyebeam Atelier. Eric has exhibited non-computer game projects at galleries and museums in the US and abroad.</p>
</blockquote>

<p>Zimmerman has continued creating / writing about / speaking about games <em>relentlessly</em> since Junkbot, with additional focuses on play and design both inside and outside of academia. He is on Twitter/X as <a href="https://twitter.com/zimmermaneric">@zimmermaneric</a>, and has links to much of his content on <a href="https://www.ericzimmerman.com/">ericzimmerman.com</a> (e.g. Junkbot!).</p>

<h4 id="peter-lee-founder--president">Peter Lee (Founder &amp; President)</h4>

<blockquote>
  <p>Peter is a digital media renaissance man, equally skilled in visual design, game design, and game programming. Peter began his career as a designer for TIME online, where he designed the award-winning web content feature “Last call: Face of Alcoholism.” He has held a number of positions since then, including Director of Technology at Churchill Communications, a New Jersey-based Medical Communication Company. where he managed web and CD-ROM projects and lead IT research and technical development. Peter also helped found the Game division at Funny Garbage, developing several online games for the Cartoon Network website. He currently holds an Adjunct Professorship at New York University’s Interactive Telecommunications Program, where he teaches Game Development.</p>
</blockquote>

<p>Lee (no relation) has continued contributing to games (often with Zimmerman) since his time at gameLab, including “Additional Thanks” in 2013’s Rogue Legacy<sup id="fnref:peter-lee-thanks" role="doc-noteref"><a href="#fn:peter-lee-thanks" class="footnote" rel="footnote">21</a></sup>. He has since helped start gaming festivals and nonprofit schools<sup id="fnref:lee-schools" role="doc-noteref"><a href="#fn:lee-schools" class="footnote" rel="footnote">22</a></sup>, a Korean “big game” (e.g. immersive experience) design studio Nolgong<sup id="fnref:nolgong" role="doc-noteref"><a href="#fn:nolgong" class="footnote" rel="footnote">23</a></sup>, and speaks at events worldwide (e.g. Germany<sup id="fnref:lee-germany" role="doc-noteref"><a href="#fn:lee-germany" class="footnote" rel="footnote">24</a></sup> &amp; Hong Kong<sup id="fnref:lee-hong-kong" role="doc-noteref"><a href="#fn:lee-hong-kong" class="footnote" rel="footnote">25</a></sup>).</p>

<h4 id="frank-lantz-director-of-game-design">Frank Lantz (Director of Game Design)</h4>

<blockquote>
  <p>Before joining gameLab, Frank was Creative Director of the New York design firm R/GA Interactive, where he worked on a wide variety of game projects including the PC games Gearheads and The Robot Club, as well as multiple online and site-based games for such clients as Microsoft, Sony, The Discovery Channel, NASDAQ, and Children’s Television Workshop. Frank is a member of the faculty of NYU’s Interactive Telecommunications Program, where he teaches classes in game design and interactive narrative. His writing on games, technology and culture has appeared in a variety of publications. Frank is also the co-designer of several massively multiplayer real-world conference games including Quorum for the Re:Play Conference, MANIFESTO for AIGA’s Collison conference, and LiNK for Flashforward 2000.</p>
</blockquote>

<p>Lantz (along with plenty of other former gameLab employees) teaches at NYU Game Center<sup id="fnref:lantz-interview" role="doc-noteref"><a href="#fn:lantz-interview" class="footnote" rel="footnote">26</a></sup>, and continues to create games. Many of his talks, papers, and games (e.g. Junkbot!) are available on <a href="https://www.franklantz.net/">franklantz.net</a>.</p>

<p>Coincidentally, I’ve unknowingly spent many hours with one of Lantz’s recent games (2017): <a href="https://decisionproblem.com/paperclips/">Universal Paperclips</a><sup id="fnref:lantz-paperclips" role="doc-noteref"><a href="#fn:lantz-paperclips" class="footnote" rel="footnote">27</a></sup>. This is one of the most popular incremental / clicker games of all time, with a detailed Wikipedia article<sup id="fnref:paperclips-wiki" role="doc-noteref"><a href="#fn:paperclips-wiki" class="footnote" rel="footnote">28</a></sup> and “In the first 11 days, 450,000 people played the game, most to completion”<sup id="fnref:paperclips-wired" role="doc-noteref"><a href="#fn:paperclips-wired" class="footnote" rel="footnote">29</a></sup>. It is based on the “<a href="https://en.wikipedia.org/wiki/Instrumental_convergence#Paperclip_maximizer">paperclip maximizer</a>” AI thought experiment, even more relevant today with the relentless pace of AI innovation.</p>

<h4 id="ranjit-bhatnagar-director-of-rd">Ranjit Bhatnagar (Director of R&amp;D)</h4>

<blockquote>
  <p>Ranjit has been involved with digital art on the Internet before the Web ever existed: he helped found sito.org, a pre-WWW collaborative arts community. For the last several years, Ranjit has been on the board of SCAN, an old-school annual digital arts conference dating back to 1979 . Ranjit was a member of the original design and implementation team for the Philadelphia Inquirer¹s website. Later, he worked as the Director of Technology at Word Magazine, where he led the technical development of the art toy Pixeltime (pixeltime.com) and the award-winning multiplayer game Sissyfight (www.sissyfight.com). Unsatisfied merely making games for a living, in his spare time Ranjit creates alternative musical instruments, such as the Silence Organ and the MIDI Ironing Board. His art and installations have appeared in solo and group exhibitions in California and Pennsylvania. Personal site: www.moonmilk.com.</p>
</blockquote>

<p>Bhatnagar has maintained <a href="https://moonmilk.com/">moonmilk.com</a> for the past 30(!) years, writing articles about various creative <em>things</em> he has been up to. Music, writing, programming, art, photography<sup id="fnref:ranjit-photography" role="doc-noteref"><a href="#fn:ranjit-photography" class="footnote" rel="footnote">30</a></sup>, it’s got it all.</p>

<p>Additionally, according to Brian Crecente<sup id="fnref:lego-podcast:2" role="doc-noteref"><a href="#fn:lego-podcast" class="footnote" rel="footnote">2</a></sup>: “<em>Of all the games he worked on Ranjit Bhatnagar said that Junkbot remains his favorite</em>”.</p>

<h4 id="nicholas-fortugno-game-designer">Nicholas Fortugno (Game Designer)</h4>

<blockquote>
  <p>Nick was inducted into role-playing life at the age of five, and has been an avid consumer and producer of role-playing, live-action, and game culture ever since. Nick’s bizarre sense of interactive aesthetics have led him to design a number of role-playing universes and narrative games; most notably, he founded and ran the Seasons of Darkness group, a 5 1/2 year live action project which was featured on Showtime. Nick’s work on Seasons introduced him to Eric Zimmerman, and that introduction eventually brought him to gameLab. Nick also holds a Adjunct Teaching position at Bronx Community College, where he teaches developmental and compositional English, and is currently pursuing graduate study at Hunter College. In his spare time, Nick studies classical guitar, apprentices in T’ai Chi, and subjects more hapless players to his role-playing/art experiments.</p>
</blockquote>

<p>Fortugno continued creating games at various studios (Rebel Monkey, Playmatics), and as with many other gameLab employees, continues writing and teaching<sup id="fnref:fortugno-teacher" role="doc-noteref"><a href="#fn:fortugno-teacher" class="footnote" rel="footnote">31</a></sup> about games. His work can be seen at <a href="https://www.nickfortugno.com/">nickfortugno.com</a>.</p>

<h4 id="michael-sweet-music--sound-design">Michael Sweet (Music &amp; Sound Design)</h4>

<blockquote>
  <p>Award winning composer and sound designer, Michael Sweet is a frequent collaborator with gameLab and his work can be heard in many of their games, including Shockwave’s audio award winning BliX. Michael is the Creative Director of his own Silicon Alley music and sound design house Blister Media. After graduating from highly regarded Berklee College of Music, Michael’s digital artistry led him to specialize in creating interactive scores for cutting edge new media projects. Credits include: the ground breaking multiplayer game Netwits for MSN, Shockwave’s Loop, award-winning kiosks for the Discovery Network stores, and Sesame Workshop’s Passport Kids. In broadcast, Michael’s work can also be heard in many commercials and network identities, including HBO-Zone, CNN, General Motors, Kodak, and AT&amp;T. Working with other digital artists, Michael sound sculptures have been exhibited at museums in London, Florence, Amsterdam, Toronto, and New York, and Hong Kong.</p>
</blockquote>

<p>Sweet wasn’t actually part of gameLab, but instead half of Blister Media<sup id="fnref:blister-media-half" role="doc-noteref"><a href="#fn:blister-media-half" class="footnote" rel="footnote">32</a></sup> (Creative Director, founded 1998<sup id="fnref:blister-media-founded" role="doc-noteref"><a href="#fn:blister-media-founded" class="footnote" rel="footnote">33</a></sup>) that frequently collaborated with gameLab. He’s an non-fiction author<sup id="fnref:sweet-author" role="doc-noteref"><a href="#fn:sweet-author" class="footnote" rel="footnote">34</a></sup> and currently a Professor at Berklee College of Music<sup id="fnref:sweet-berklee" role="doc-noteref"><a href="#fn:sweet-berklee" class="footnote" rel="footnote">35</a></sup>.</p>

<h4 id="naomi-clark-lego-web--digital-producer">Naomi Clark (LEGO Web &amp; Digital Producer)</h4>

<p>Whilst not part of gameLab, Naomi (who also teaches at NYU Game Center<sup id="fnref:naomi-nyu" role="doc-noteref"><a href="#fn:naomi-nyu" class="footnote" rel="footnote">36</a></sup>) was producer of Junkbot for LEGO.com<sup id="fnref:naomi-tweet" role="doc-noteref"><a href="#fn:naomi-tweet" class="footnote" rel="footnote">37</a></sup>. This period is summarised in the LEGO podcast “Bits n Bricks” S3E29<sup id="fnref:lego-podcast:3" role="doc-noteref"><a href="#fn:lego-podcast" class="footnote" rel="footnote">2</a></sup> (<a href="https://www.lego.com/cdn/cs/set/assets/blte95c26554f38a01a/bits_n_bricks_s03e29_feature_and_transcript.pdf">transcript</a>):</p>

<blockquote>
  <p>That connection between Clark, Zimmerman and the rest of the Gamelab crew would eventually lead to a lasting relationship between Gamelab and the LEGO Group, with the studio creating a dozen games for the website. But the first was, perhaps, the most memorable: Junkbot.
When Clark approached Gamelab about making a game, the studio came up with a twopart pitch document that explored the play values of the LEGO Group and offered up a number of ideas.</p>
</blockquote>

<p>She later ended up working at gameLab (and many other studios) as a Game Designer, and can be found on Twitter/X as <a href="https://twitter.com/metasynthie">@metasynthie</a>.</p>

<h3 id="what-inspired-junkbot">What inspired Junkbot?</h3>

<p>As shown by the <a href="#secret-level-names">draft list of levels</a>, most gameLab employees contributed directly to Junkbot in one way or another. Due to the highly collaborative nature of gameLab’s design process (see next section), it’s perhaps impossible to determine exactly who contributed what during the game’s under 6 month development<sup id="fnref:half-a-year" role="doc-noteref"><a href="#fn:half-a-year" class="footnote" rel="footnote">38</a></sup>.</p>

<p>Most of the details in this section are from a detailed podcast with some former gameLab / LEGO employees in 2021<sup id="fnref:lego-podcast:4" role="doc-noteref"><a href="#fn:lego-podcast" class="footnote" rel="footnote">2</a></sup>, with <a href="https://www.lego.com/cdn/cs/set/assets/blte95c26554f38a01a/bits_n_bricks_s03e29_feature_and_transcript.pdf">a transcript available</a>. The podcast covers Junkbot, LEGO’s game making process, and related topics.</p>

<p>The original idea pitched to LEGO as gameLab’s first provided game was, according to gameLab CEO Eric Zimmerman:</p>

<blockquote>
  <p>about a character that walked on its own, in a sort of a 2D platformer kind of world, and that you were building staircases and moving LEGO bricks around to kind of help them get around.</p>
</blockquote>

<p>Eric describes the “important design lesson” the team learned in creating Junkbot, as unlike most games where the core mechanic drives the game, in Junkbot:</p>

<blockquote>
  <p>Sometimes you make a cake and it’s so good you don’t need the frosting, and other times
the frosting makes the cake. So in the case of Junkbot, it was the frosting.</p>

  <p>…we had a hard time making levels. We just had to add stuff to the game. We had to add obstacles, hazards, enemies, power-ups, and then the game started getting fun</p>
</blockquote>

<p>By this, he presumably means the core mechanic of Junkbot walking and the player moving LEGO bricks is the “cake”. It works, it’s functional, but it doesn’t provide much fun. The enemies, hazards, and hints of story are the “frosting” that make the game what it is. Or, in his words:</p>

<blockquote>
  <p>The core mechanic was conceptually interesting but experientially lacking.</p>
</blockquote>

<p>The team evidently spent a lot of time on this core mechanic, as <a href="#michael-sweet-music--sound-design">Michael (Sound Design)</a> “<em>sent us dozens of different prototypes for the sounds of bricks clicking together and the sound of bricks being pried apart</em>”. Similarly, “<em>we had tons of brainstorming meetings, talking about possibilities for, how do you make something that feels like pulling apart and sticking together these LEGO bricks, but also then becomes a really challenging and interesting and fun game?</em>”.</p>

<p>This focus on LEGO bricks and their interactions were likely influenced by LEGO’s <a href="#naomi-clark-lego-web--digital-producer">Naomi</a>, as she “<em>was kind of really interested in making games that were genuine expressions of the fun of LEGO bricks as a toy</em>”.</p>

<p>One certainty is around the Junkbot character itself’s appearance, which according to Eric: “<em>Peter Lee deserves credit for that original design … I guess there’s a sort of R2-D2, like cute robot pet appeal to Junkbot.</em>”</p>

<h4 id="gamelabs-design-process">gameLab’s design process</h4>

<p>There’s an absolutely excellent academic paper by Alice J. Daer in 2010 focused on gameLab’s design processes<sup id="fnref:design-processes" role="doc-noteref"><a href="#fn:design-processes" class="footnote" rel="footnote">39</a></sup>, and covers them in far more detail than I ever could. The information is mostly provided by <a href="#nicholas-fortugno-game-designer">Nick Fortugno</a>, and covers collaboration within the team, designing experiences not levels, what it means to design, and far more. A few select quotes:</p>

<ul>
  <li>“<em>In sum, making games at Gamelab was a deeply contemplated effort, one that incorporated regular deliberative practices and reflections on those practices.</em>” (Alice)</li>
  <li>“<em>each member of the team was expected to be an equal contributor</em>” (Alice)</li>
  <li>“<em>employees were given a monthly allowance so that they could purchase games and game-related things to help stimulate their creativity and knowledge of a variety of ideas and rule systems</em>” (Alice)</li>
  <li>“<em>You can design a kind of emotional response. You can design a mental, physical, and social response and that’s when it’s interesting, because those things become meaningful experiences for people.</em>” (Nick)</li>
  <li>“<em>I noticed that Nick, as the lead on the project, turned the argument into a teaching moment, trying to lead Mattia to the same conclusions that he, Nick, had already reached.</em>” (Alice)</li>
  <li>“<em>Ultimately, an argument was settled through building the game prototype or level and then playing it</em>” (Alice)</li>
</ul>

<p>I’d highly recommend giving the full (free) paper a read if at all interested in game design: <a href="https://journals.sagepub.com/doi/pdf/10.2304/elea.2010.7.1.108">https://journals.sagepub.com/doi/pdf/10.2304/elea.2010.7.1.108</a></p>

<p>Note that Junkbot is incorrectly referred to only as “Jumpbot” on page 10, suggesting even by 2010 gameLab’s first LEGO game had mostly dropped from the public consciousness!</p>

<h2 id="junkbots-legacy">Junkbot’s legacy</h2>

<p>Despite Junkbot’s relatively obscure status as a cult classic over the last 20 years, it is by no means forgotten. As well as the occasional fan content or nostalgic Reddit post, there are even subtle references in official LEGO products.</p>

<h3 id="unofficial-lego-builds">Unofficial LEGO builds</h3>

<p>With the LEGO fanbase making unofficial sets of almost everything on Earth, it’s perhaps not too surprising that Junkbot has had plenty of MOCs (My Own Creations) created over the years.</p>

<p>Of special note is <a href="https://jkbrickworks.com/junkbot/">JK Brickworks</a>’ 8:1 scale model from 2003, and jxu’s <a href="https://rebrickable.com/mocs/MOC-50835/jxu/junkbot/#details">improved 2020 version</a> with instructions:</p>

<table>
  <thead>
    <tr>
      <th style="text-align: center">JK Brickworks<sup id="fnref:2003-moc" role="doc-noteref"><a href="#fn:2003-moc" class="footnote" rel="footnote">40</a></sup></th>
      <th style="text-align: center">jxu<sup id="fnref:2020-moc" role="doc-noteref"><a href="#fn:2020-moc" class="footnote" rel="footnote">41</a></sup></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><a href="/assets/images/2024/moc-2003.jpg"><img src="/assets/images/2024/moc-2003-thumbnail.jpg" alt="2003 Junkbot MOC" /></a></td>
      <td style="text-align: center"><a href="/assets/images/2024/moc-2020.jpg"><img src="/assets/images/2024/moc-2020-thumbnail.png" alt="2020 Junkbot MOC" /></a></td>
    </tr>
  </tbody>
</table>

<p>In addition to builds of Junkbot itself, there’s been all kinds of related content:</p>

<ul>
  <li>A <a href="https://www.flickr.com/photos/100403937@N04/albums/72177720301763243/with/52325861091">Junkbot themed LEGO pirate ship</a>.</li>
  <li>An <a href="https://mackerelphones.com/2020/11/03/i-love-trash-an-ode-to-junkbot-the-lego-flash-game-legend/">ode to Junkbot</a>, that ends up asking surprisingly intriguing questions about the world of Junkbot!</li>
  <li>A <a href="https://downloads.khinsider.com/game-soundtracks/album/junkbot-online-gamerip-2002">rip of the game’s funky soundtrack</a>.</li>
  <li>MOCs of <a href="https://board.ttvchannel.com/t/junkbot-mini-mocs/26186">the game’s enemies</a>.</li>
</ul>

<h3 id="official-lego-easter-eggs">Official LEGO easter eggs</h3>

<p>Junkbot clearly has fans within LEGO too, since it continues to pop up in odd little places now and then. The first two sets are explicitly mentioned in a “Bits N’ Bricks” podcast, with the third being added as recently as 2025!</p>

<blockquote>
  <p>The little bot Junkbot, or references to it, have popped up in a Ninjago theme set and the Haunted House set as well<sup id="fnref:podcast-transcript" role="doc-noteref"><a href="#fn:podcast-transcript" class="footnote" rel="footnote">42</a></sup></p>
</blockquote>

<h4 id="70657-ninjago-city-docks">70657: NINJAGO City Docks</h4>

<p>2018’s <a href="https://www.lego.com/en-gb/product/ninjago-city-docks-70657">NINJAGO City Docks set</a> seems to have no relation to Junkbot initially, however there is an entire Junkbot-themed arcade cabinet hidden inside the blue arcade room.</p>

<p>This is just an arcade cabinet with Junkbot’s colours and some stickers, but it’s great to see the memory living on 17 years later. Here’s how it looks:</p>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Hand-held<sup id="fnref:ninjago-1" role="doc-noteref"><a href="#fn:ninjago-1" class="footnote" rel="footnote">43</a></sup></th>
      <th style="text-align: center">In context<sup id="fnref:ninjago-2" role="doc-noteref"><a href="#fn:ninjago-2" class="footnote" rel="footnote">44</a></sup></th>
      <th>All arcade machines<sup id="fnref:ninjago-3" role="doc-noteref"><a href="#fn:ninjago-3" class="footnote" rel="footnote">45</a></sup></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><a href="/assets/images/2024/ninjago-1.jpg"><img src="/assets/images/2024/ninjago-1-thumbnail.jpg" alt="handheld Junkbot arcade machine" /></a></td>
      <td style="text-align: center"><a href="/assets/images/2024/ninjago-2.jpg"><img src="/assets/images/2024/ninjago-2-thumbnail.jpg" alt="in situ Junkbot arcade machine" /></a></td>
      <td><a href="/assets/images/2024/ninjago-3.jpg"><img src="/assets/images/2024/ninjago-3-thumbnail.jpg" alt="all arcade machines" /></a></td>
    </tr>
  </tbody>
</table>

<h4 id="10273-haunted-house">10273: Haunted House</h4>

<p>2020’s <a href="https://www.lego.com/en-us/product/haunted-house-10273">Haunted House set</a> is even further detached from Junkbot, and the reference is far more subtle!</p>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Minifigure <sup id="fnref:hauntedhouse-1" role="doc-noteref"><a href="#fn:hauntedhouse-1" class="footnote" rel="footnote">46</a></sup></th>
      <th style="text-align: center">In disguise as a “box of junk” <sup id="fnref:hauntedhouse-1:1" role="doc-noteref"><a href="#fn:hauntedhouse-1" class="footnote" rel="footnote">46</a></sup></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><a href="/assets/images/2024/hauntedhouse-1.jpg"><img src="/assets/images/2024/hauntedhouse-1-thumbnail.jpg" alt="Junkbot minifigure" /></a></td>
      <td style="text-align: center"><a href="/assets/images/2024/hauntedhouse-2.jpg"><img src="/assets/images/2024/hauntedhouse-2-thumbnail.jpg" alt="hidden Junkbot minifigure" /></a></td>
    </tr>
  </tbody>
</table>

<h4 id="40805-arcade-machine">40805: Arcade Machine</h4>

<p>2025’s <a href="https://www.lego.com/en-gb/product/arcade-machine-40805">Arcade Machine set</a> has an absolutely adorable mini-arcade machine directly referencing Junkbot!</p>

<table>
  <thead>
    <tr>
      <th style="text-align: center">Junkbot arcade machine<sup id="fnref:arcademachine-1" role="doc-noteref"><a href="#fn:arcademachine-1" class="footnote" rel="footnote">47</a></sup></th>
      <th style="text-align: center">In context<sup id="fnref:arcademachine-1:1" role="doc-noteref"><a href="#fn:arcademachine-1" class="footnote" rel="footnote">47</a></sup></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td style="text-align: center"><a href="/assets/images/2024/arcade-machine-1.png"><img src="/assets/images/2024/arcade-machine-1-thumbnail.png" alt="Junkbot arcade machine" /></a></td>
      <td style="text-align: center"><a href="/assets/images/2024/arcade-machine-2.png"><img src="/assets/images/2024/arcade-machine-2-thumbnail.png" alt="Junkbot within arcade machine" /></a></td>
    </tr>
  </tbody>
</table>

<h3 id="lego-builders-journey">LEGO Builder’s Journey</h3>

<p>With the excellent <a href="https://store.steampowered.com/app/1544360/LEGO_Builders_Journey/">LEGO Builder’s Journey</a> having many similarities to Junkbot, albeit in a more relaxed style, it might seem obvious that one inspired the other. Alas, this isn’t the case, as described by Brian Crecente<sup id="fnref:lego-podcast:5" role="doc-noteref"><a href="#fn:lego-podcast" class="footnote" rel="footnote">2</a></sup>:</p>

<blockquote>
  <p>I actually spoke with Karsten Lund, the Creative Director of Builder’s Journey about it, and he said, he actually hadn’t heard about Junkbot until after Builder’s Journey was designed and someone at the LEGO Group pointed out that this other much earlier web game existed.</p>
</blockquote>

<blockquote>
  <p>… I can’t help but think that, you know, two decades apart, you have these really thoughtful game designers sitting down and trying to figure out what is at the core of LEGO bricks and play and creation, and how can you translate that into something that’s fun … [they] came to the same conclusion and created two very different sorts of games with the same sort of idea at its heart</p>
</blockquote>

<h3 id="play-junkbot-online">Play Junkbot online</h3>

<p>Whilst Junkbot’s game files can be downloaded from LEGO’s site directly via archive.org<sup id="fnref:can-be-downloaded" role="doc-noteref"><a href="#fn:can-be-downloaded" class="footnote" rel="footnote">48</a></sup>, the game has also been recreated in more modern software (HTML / JavaScript), making it playable in a browser!</p>

<p><a href="https://1j01.github.io/janitorial-android/#junkbot"><img src="/assets/images/2024/junkbot-html5.png" alt="play LEGO Junkbot online" /></a></p>

<p><a href="https://1j01.github.io/janitorial-android/#junkbot">1j01’s “Janitorial Android”</a> has clearly had extreme amounts of care put into it, and maybe even made a (controversially!) better game than the original, at least in my opinion. It contains all original functionality, plus lots of new extras. So, what’s changed? Well, here’s what I noticed:</p>

<ol>
  <li>A complete custom level creator has been added<sup id="fnref:custom-level-creator" role="doc-noteref"><a href="#fn:custom-level-creator" class="footnote" rel="footnote">49</a></sup>, as well as the ability to export &amp; import.</li>
  <li>All levels in all 4 buildings are unlocked from the start, instead of further buildings requiring level completion.</li>
  <li>Zooming in and out with mouse wheel (or <code class="language-kotlin highlighter-rouge"><span class="p">+</span></code> / <code class="language-kotlin highlighter-rouge"><span class="p">-</span></code>).</li>
  <li>Minor changes to the audio (e.g. no music)<sup id="fnref:html5-sound-effects" role="doc-noteref"><a href="#fn:html5-sound-effects" class="footnote" rel="footnote">50</a></sup>.</li>
</ol>

<p>There are tens of additional ideas on the <a href="https://github.com/1j01/janitorial-android?tab=readme-ov-file#various-ideas">project’s GitHub page</a> if you’re interested in contributing. The impressive project is similar on <a href="https://github.com/rozniak/Junkbot">rozniak’s earlier C# rebuild</a>, but has realistically surpassed it. It’s worth mentioning the two developers <a href="https://github.com/rozniak/Junkbot/issues/6">were in contact</a>, so there’s no rivalry!</p>

<h2 id="conclusion">Conclusion</h2>

<p>I spent tens of hours playing Junkbot as a child, although I’m sure most of that time was in the first few levels! Junkbot’s excellent character design just made the game irresistable, especially at a time when the quality of web games was typically very low.</p>

<p>Junkbot’s legacy lives on via projects like Flashpoint, references within LEGO sets, and unofficial rewrites. I hope it makes a proper return one day, I feel like Junkbot never quite got the attention it deserved! Hopefully this article helps the legacy last a little bit longer, and reminds people of the little trash-loving robot that just keeps walking.</p>

<p><img src="/assets/images/2024/junkbot-conclusion.png" alt="Junkbot walking to the right" /></p>

<h2 id="references">References</h2>
<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:hazards" role="doc-endnote">
      <p><a href="https://en.brickimedia.org/wiki/Junkbot#Hazards">https://en.brickimedia.org/wiki/Junkbot#Hazards</a> <a href="#fnref:hazards" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:lego-podcast" role="doc-endnote">
      <p><a href="https://www.youtube.com/watch?v=SKfeyeHIuCY">https://www.youtube.com/watch?v=SKfeyeHIuCY</a> <a href="#fnref:lego-podcast" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:lego-podcast:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a> <a href="#fnref:lego-podcast:2" class="reversefootnote" role="doc-backlink">&#8617;<sup>3</sup></a> <a href="#fnref:lego-podcast:3" class="reversefootnote" role="doc-backlink">&#8617;<sup>4</sup></a> <a href="#fnref:lego-podcast:4" class="reversefootnote" role="doc-backlink">&#8617;<sup>5</sup></a> <a href="#fnref:lego-podcast:5" class="reversefootnote" role="doc-backlink">&#8617;<sup>6</sup></a></p>
    </li>
    <li id="fn:gamelab-founded" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20011108122328/http://www.onemedia.com/archive/zimmerman_jun01.html">https://web.archive.org/web/20011108122328/http://www.onemedia.com/archive/zimmerman_jun01.html</a> <a href="#fnref:gamelab-founded" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:gamelab-office" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20011027060409/http://www.gmlb.com/pr1.html">https://web.archive.org/web/20011027060409/http://www.gmlb.com/pr1.html</a> <a href="#fnref:gamelab-office" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:junkbot-released" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20011027062145/http://www.gmlb.com/pr4.html">https://web.archive.org/web/20011027062145/http://www.gmlb.com/pr4.html</a> <a href="#fnref:junkbot-released" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:junkbot-on-gmlb" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20031009033531/http://gmlb.com/games/junkbot.html">https://web.archive.org/web/20031009033531/http://gmlb.com/games/junkbot.html</a> <a href="#fnref:junkbot-on-gmlb" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:lugnet" role="doc-endnote">
      <p><a href="https://news.lugnet.com/lego/announce/?n=39">https://news.lugnet.com/lego/announce/?n=39</a> <a href="#fnref:lugnet" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:mania" role="doc-endnote">
      <p><a href="https://www.parrygamepreserve.com/media/magazines/lego_mania_magazine/2001/lego_mania_magazine_2001_09_September.php">https://www.parrygamepreserve.com/media/magazines/lego_mania_magazine/2001/lego_mania_magazine_2001_09_September.php</a> (specifically <a href="https://www.parrygamepreserve.com/images/media/magazines/lego_mania_magazine/2001/09_September/lego_mania_magazine_2001_09_September_14_L.jpg">Page 23</a>) <a href="#fnref:mania" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:archive-first" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20011005164311/http://www.lego.com:80/build/">https://web.archive.org/web/20011005164311/http://www.lego.com:80/build/</a> <a href="#fnref:archive-first" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:archive-first-files" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20020803205407/http://www.lego.com:80/build/junkbot/junkbot.asp?x=x&amp;login=0">https://web.archive.org/web/20020803205407/http://www.lego.com:80/build/junkbot/junkbot.asp?x=x&amp;login=0</a> <a href="#fnref:archive-first-files" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:case-study" role="doc-endnote">
      <p><a href="https://www.google.co.uk/books/edition/Design_Research/xVeFdy44qMEC?hl=en">https://www.google.co.uk/books/edition/Design_Research/xVeFdy44qMEC?hl=en</a> - Available for free <a href="https://archive.org/details/designresearchme0000unse/mode/2up">on archive.org</a> or <a href="https://ericzimmerman.com/assets/pdfs/Iterative_Design.pdf">from Zimmerman’s site</a>. <a href="#fnref:case-study" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:gamelab-acquired" role="doc-endnote">
      <p><a href="https://venturebeat.com/business/arkadium-acquires-gamelabcom-game-development-firm/">https://venturebeat.com/business/arkadium-acquires-gamelabcom-game-development-firm/</a> <a href="#fnref:gamelab-acquired" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:lego-redesign" role="doc-endnote">
      <p><a href="https://winners.webbyawards.com/2012/websites-and-mobile-sites/general-websites-and-mobile-sites/retail/148871/lego-e-commerce-redesign">https://winners.webbyawards.com/2012/websites-and-mobile-sites/general-websites-and-mobile-sites/retail/148871/lego-e-commerce-redesign</a> <a href="#fnref:lego-redesign" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:shockwave-eol" role="doc-endnote">
      <p><a href="https://helpx.adobe.com/uk/enterprise/kb/eol-adobe-flash-shockwave-player.html#:~:text=About%20Shockwave%20Player%20end%2Dof,of%2Dlife%2Dfaq.html">https://helpx.adobe.com/uk/enterprise/kb/eol-adobe-flash-shockwave-player.html#:~:text=About%20Shockwave%20Player%20end%2Dof,of%2Dlife%2Dfaq.html</a> <a href="#fnref:shockwave-eol" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:trends" role="doc-endnote">
      <p><a href="https://trends.google.com/trends/explore?date=all&amp;q=junkbot&amp;hl=en-GB">https://trends.google.com/trends/explore?date=all&amp;q=junkbot&amp;hl=en-GB</a> <a href="#fnref:trends" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:vice" role="doc-endnote">
      <p><a href="https://www.vice.com/en/article/xyvnkj/peter-lee-5899ce1770caae4f186fc1ea">https://www.vice.com/en/article/xyvnkj/peter-lee-5899ce1770caae4f186fc1ea</a> <a href="#fnref:vice" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:sissyfight" role="doc-endnote">
      <p><a href="https://en.wikipedia.org/wiki/Sissyfight_2000">https://en.wikipedia.org/wiki/Sissyfight_2000</a> <a href="#fnref:sissyfight" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:junkbot-design" role="doc-endnote">
      <p><a href="https://www.lego.com/cdn/cs/set/assets/blte95c26554f38a01a/bits_n_bricks_s03e29_feature_and_transcript.pdf">https://www.lego.com/cdn/cs/set/assets/blte95c26554f38a01a/bits_n_bricks_s03e29_feature_and_transcript.pdf</a> (Page 16) <a href="#fnref:junkbot-design" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:gamelab-people" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20011010051452/http://www.gmlb.com/people.html">https://web.archive.org/web/20011010051452/http://www.gmlb.com/people.html</a> <a href="#fnref:gamelab-people" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:junkbot-release-date" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20011027062145/http://www.gmlb.com/pr4.html">https://web.archive.org/web/20011027062145/http://www.gmlb.com/pr4.html</a> <a href="#fnref:junkbot-release-date" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:peter-lee-thanks" role="doc-endnote">
      <p><a href="https://www.mobygames.com/person/146620/peter-lee/">https://www.mobygames.com/person/146620/peter-lee/</a> <a href="#fnref:peter-lee-thanks" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:lee-schools" role="doc-endnote">
      <p><a href="https://g4c2020.sched.com/speaker/peter_seung_taek_lee.212e7q1s">https://g4c2020.sched.com/speaker/peter_seung_taek_lee.212e7q1s</a> <a href="#fnref:lee-schools" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:nolgong" role="doc-endnote">
      <p><a href="https://zip-scene.com/2016/07/12/mobile-technology-for-analogue-experience/">https://zip-scene.com/2016/07/12/mobile-technology-for-analogue-experience/</a> <a href="#fnref:nolgong" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:lee-germany" role="doc-endnote">
      <p><a href="https://amazeberlin2019.sched.com/speaker/peter_lee_kr.1zducbw8">https://amazeberlin2019.sched.com/speaker/peter_lee_kr.1zducbw8</a> <a href="#fnref:lee-germany" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:lee-hong-kong" role="doc-endnote">
      <p><a href="https://form.hktdc.com/UI_VisitorIntranet/Public/SpeakerDetailPublic.aspx?EVENTID=4621611f-69ea-4ad4-90ea-3826e95d0ee9&amp;SPEAKERID=36bdd58a-fba9-447f-8241-67caa634f2b1&amp;LANGID=1">https://form.hktdc.com/UI_VisitorIntranet/Public/SpeakerDetailPublic.aspx?EVENTID=4621611f-69ea-4ad4-90ea-3826e95d0ee9&amp;SPEAKERID=36bdd58a-fba9-447f-8241-67caa634f2b1&amp;LANGID=1</a> <a href="#fnref:lee-hong-kong" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:lantz-interview" role="doc-endnote">
      <p><a href="https://nodontdie.com/interviews/frank-lantz">https://nodontdie.com/interviews/frank-lantz</a> <a href="#fnref:lantz-interview" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:lantz-paperclips" role="doc-endnote">
      <p><a href="https://www.franklantz.net/work#/universal-paperclips/">https://www.franklantz.net/work#/universal-paperclips/</a> <a href="#fnref:lantz-paperclips" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:paperclips-wiki" role="doc-endnote">
      <p><a href="https://en.wikipedia.org/wiki/Universal_Paperclips">https://en.wikipedia.org/wiki/Universal_Paperclips</a> <a href="#fnref:paperclips-wiki" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:paperclips-wired" role="doc-endnote">
      <p><a href="https://www.wired.com/story/the-way-the-world-ends-not-with-a-bang-but-a-paperclip/">https://www.wired.com/story/the-way-the-world-ends-not-with-a-bang-but-a-paperclip/</a> <a href="#fnref:paperclips-wired" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:ranjit-photography" role="doc-endnote">
      <p><a href="https://www.flickr.com/photos/ranjit/with/52755632468/">https://www.flickr.com/photos/ranjit/with/52755632468/</a> <a href="#fnref:ranjit-photography" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:fortugno-teacher" role="doc-endnote">
      <p><a href="https://www.nytimes.com/2005/11/22/arts/design/video-games-are-their-major-so-dont-call-them-slackers.html">https://www.nytimes.com/2005/11/22/arts/design/video-games-are-their-major-so-dont-call-them-slackers.html</a> <a href="#fnref:fortugno-teacher" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:blister-media-half" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20020602203847/http://www.blistermedia.com/press/ia/ia.html">https://web.archive.org/web/20020602203847/http://www.blistermedia.com/press/ia/ia.html</a> <a href="#fnref:blister-media-half" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:blister-media-founded" role="doc-endnote">
      <p><a href="https://criticalnoise.blogspot.com/1998/10/blister-media-founded-101598.html">https://criticalnoise.blogspot.com/1998/10/blister-media-founded-101598.html</a> <a href="#fnref:blister-media-founded" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:sweet-author" role="doc-endnote">
      <p><a href="https://www.amazon.com/Writing-Interactive-Music-Video-Games/dp/0321961587/">https://www.amazon.com/Writing-Interactive-Music-Video-Games/dp/0321961587/</a> <a href="#fnref:sweet-author" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:sweet-berklee" role="doc-endnote">
      <p><a href="https://www.berklee.edu/people/michael-sweet">https://www.berklee.edu/people/michael-sweet</a> <a href="#fnref:sweet-berklee" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:naomi-nyu" role="doc-endnote">
      <p><a href="https://gamecenter.nyu.edu/faculty/naomi-clark/">https://gamecenter.nyu.edu/faculty/naomi-clark/</a> <a href="#fnref:naomi-nyu" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:naomi-tweet" role="doc-endnote">
      <p><a href="https://twitter.com/LEGO_Group/status/1427963526002401285">https://twitter.com/LEGO_Group/status/1427963526002401285</a> <a href="#fnref:naomi-tweet" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:half-a-year" role="doc-endnote">
      <p>“Junkbot hit LEGO.com in 2001 after less than half a year of development.” <a href="https://www.lego.com/cdn/cs/set/assets/blte95c26554f38a01a/bits_n_bricks_s03e29_feature_and_transcript.pdf">https://www.lego.com/cdn/cs/set/assets/blte95c26554f38a01a/bits_n_bricks_s03e29_feature_and_transcript.pdf</a> <a href="#fnref:half-a-year" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:design-processes" role="doc-endnote">
      <p><a href="https://journals.sagepub.com/doi/pdf/10.2304/elea.2010.7.1.108">https://journals.sagepub.com/doi/pdf/10.2304/elea.2010.7.1.108</a> <a href="#fnref:design-processes" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2003-moc" role="doc-endnote">
      <p><a href="https://jkbrickworks.com/junkbot/">https://jkbrickworks.com/junkbot/</a> <a href="#fnref:2003-moc" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2020-moc" role="doc-endnote">
      <p><a href="https://rebrickable.com/mocs/MOC-50835/jxu/junkbot/#details">https://rebrickable.com/mocs/MOC-50835/jxu/junkbot/#details</a> <a href="#fnref:2020-moc" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:podcast-transcript" role="doc-endnote">
      <p><a href="https://www.lego.com/cdn/cs/set/assets/blte95c26554f38a01a/bits_n_bricks_s03e29_feature_and_transcript.pdf">https://www.lego.com/cdn/cs/set/assets/blte95c26554f38a01a/bits_n_bricks_s03e29_feature_and_transcript.pdf</a> (page 7) <a href="#fnref:podcast-transcript" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:ninjago-1" role="doc-endnote">
      <p><a href="https://www.reddit.com/r/lego/comments/d173wv/junkbot_arcade_game_from_ninjago_city/">https://www.reddit.com/r/lego/comments/d173wv/junkbot_arcade_game_from_ninjago_city/</a> <a href="#fnref:ninjago-1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:ninjago-2" role="doc-endnote">
      <p><a href="https://www.eurobricks.com/forum/index.php?/forums/topic/170396-review-70657-ninjago-city-docks/">https://www.eurobricks.com/forum/index.php?/forums/topic/170396-review-70657-ninjago-city-docks/</a> <a href="#fnref:ninjago-2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:ninjago-3" role="doc-endnote">
      <p><a href="https://brickset.com/article/36147/review-70657-ninjago-city-docks-(2)">https://brickset.com/article/36147/review-70657-ninjago-city-docks-(2)</a> <a href="#fnref:ninjago-3" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:hauntedhouse-1" role="doc-endnote">
      <p><a href="https://www.eurobricks.com/forum/index.php?/forums/topic/178084-review-creator-expert-10273-haunted-house/">https://www.eurobricks.com/forum/index.php?/forums/topic/178084-review-creator-expert-10273-haunted-house/</a> <a href="#fnref:hauntedhouse-1" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:hauntedhouse-1:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:arcademachine-1" role="doc-endnote">
      <p><a href="https://www.lego.com/en-gb/product/arcade-machine-40805">https://www.lego.com/en-gb/product/arcade-machine-40805</a> <a href="#fnref:arcademachine-1" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:arcademachine-1:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:can-be-downloaded" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20020803205407oe_/http://www.lego.com/build/junkbot/junkbot2_13g_asp.dcr">https://web.archive.org/web/20020803205407oe_/http://www.lego.com/build/junkbot/junkbot2_13g_asp.dcr</a> (Note that this will directly download the <code class="language-kotlin highlighter-rouge"><span class="p">.</span><span class="n">dcr</span></code> file) <a href="#fnref:can-be-downloaded" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:custom-level-creator" role="doc-endnote">
      <p><a href="https://1j01.github.io/janitorial-android/#level-editor">https://1j01.github.io/janitorial-android/#level-editor</a> <a href="#fnref:custom-level-creator" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:html5-sound-effects" role="doc-endnote">
      <p><a href="https://github.com/1j01/janitorial-android?tab=readme-ov-file#some-sounds-taken-from">https://github.com/1j01/janitorial-android?tab=readme-ov-file#some-sounds-taken-from</a> <a href="#fnref:html5-sound-effects" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Jake Lee</name></author><category term="2001" /><category term="LEGO" /><category term="Gaming" /><summary type="html"><![CDATA[Junkbot: The mysterious little LEGO robot that relentlessly walked forward, and deserved far more attention than it ever received. 23 years ago, the first of 2 games featuring the orange walker was released on LEGO.com! Who made it, and where is Junkbot today?]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://history.jakelee.co.uk/assets/images/banners/junkbot-banner.png" /><media:content medium="image" url="https://history.jakelee.co.uk/assets/images/banners/junkbot-banner.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">18 years ago today, ‘The Scary Maze Game’ was released, a screamer game that terrified millions</title><link href="https://history.jakelee.co.uk/the-scary-maze-game-screamer-decompiled/" rel="alternate" type="text/html" title="18 years ago today, ‘The Scary Maze Game’ was released, a screamer game that terrified millions" /><published>2023-10-25T00:00:00+01:00</published><updated>2023-10-25T00:00:00+01:00</updated><id>https://history.jakelee.co.uk/the-scary-maze-game-screamer-decompiled</id><content type="html" xml:base="https://history.jakelee.co.uk/the-scary-maze-game-screamer-decompiled/"><![CDATA[<p>If you’re reading this and <em>don’t</em> know the blue &amp; black “scary maze game” from the mid 2000s, congratulations on escaping a horrific experience. This short “game” by Jeremy Winterrowd required moving your mouse through a maze. The difficulty increases, and inevitable failure causes a loud scream to play and Linda Blair from The Exorcist appears. It’s scarier than it sounds, so consider this post me getting revenge on it!</p>

<p>Before I dive into how the game works, here’s some helpful links:</p>

<ul>
  <li>If you’d like to download the game to play yourself, <a href="/assets/other/scary-maze-game.swf">here’s a link</a>. Remember it’s intentionally a scary game! There are a few ways to play SWF files, I used JPEXS decompiler<sup id="fnref:jpexs" role="doc-noteref"><a href="#fn:jpexs" class="footnote" rel="footnote">1</a></sup>.</li>
  <li>If you’d like more of an overview, <a href="https://videogaming.fandom.com/wiki/The_Maze_(Winterrowd)">Videogaming wiki has a summary</a>.</li>
  <li>If you’d like to see more reaction videos, <a href="https://knowyourmeme.com/memes/scary-maze-game/videos/sort/score">KnowYourMeme has lots</a>.</li>
</ul>

<h2 id="timeline">Timeline</h2>

<p>Like many early viral games / sites from the 2000s, the timeline of “The Scary Maze Game” is hard to determine with certainty, despite it’s <a href="#impact">impact</a> in helping trigger the “reaction” video format. The release date is often reported as either 2003<sup id="fnref:2003" role="doc-noteref"><a href="#fn:2003" class="footnote" rel="footnote">2</a></sup>, 2004<sup id="fnref:2004" role="doc-noteref"><a href="#fn:2004" class="footnote" rel="footnote">3</a></sup>, or 2005<sup id="fnref:2005" role="doc-noteref"><a href="#fn:2005" class="footnote" rel="footnote">4</a></sup>, however this doesn’t match up with the fact that its popularity started in 2006 (and the game’s metadata reports a similar date).</p>

<p>After some research, I can partially explain the discrepancy. The original version of the game (V1.0) is from 2003-4, but the version everyone knows is actually from Oct 2005! Considering the major differences between the two (see <a href="#multiple-versions">multiple versions</a>), these should be considered distinct games. This post will be about V1.1, as that version is by far the most widely known.</p>

<ul>
  <li><strong>2003-2004(?)</strong>: V1.0 of the game (yellow / black) is created. A very unverified Yahoo Answers answerer claiming to be the creator states October 2004<sup id="fnref:yahoo" role="doc-noteref"><a href="#fn:yahoo" class="footnote" rel="footnote">5</a></sup>.</li>
  <li><strong>25th October 2005</strong>: V1.1 of the game (blue / black) is created<sup id="fnref:original-release" role="doc-noteref"><a href="#fn:original-release" class="footnote" rel="footnote">6</a></sup>.</li>
  <li><strong>27th November 2005</strong>: The creator’s website has received over 65,000 visitors since V1.1 was released<sup id="fnref:original-release:1" role="doc-noteref"><a href="#fn:original-release" class="footnote" rel="footnote">6</a></sup>.</li>
  <li><strong>January 2006</strong>: “scary maze game” starts being Googled a non-negligible amount (see trend chart below).</li>
  <li><strong>May 2006</strong>: The “first internet screamer reaction video”<sup id="fnref:wiki" role="doc-noteref"><a href="#fn:wiki" class="footnote" rel="footnote">7</a></sup> (a reaction to the maze) is uploaded to YouTube (<a href="https://www.youtube.com/watch?v=oh87njiWTmw">now deleted</a>) as per the game’s creator’s request<sup id="fnref:afhv" role="doc-noteref"><a href="#fn:afhv" class="footnote" rel="footnote">8</a></sup>.</li>
  <li><strong>July 2006</strong>: The game is featured in VH1’s “Web Junk” (now lost media<sup id="fnref:webjunk" role="doc-noteref"><a href="#fn:webjunk" class="footnote" rel="footnote">9</a></sup>) and “E! The Soup”.</li>
  <li><strong>29th October 2006</strong>: Reaction videos to the game are shown on America’s Funniest Home Videos.<sup id="fnref:afhv:1" role="doc-noteref"><a href="#fn:afhv" class="footnote" rel="footnote">8</a></sup></li>
  <li><strong>7th July 2007</strong>: “Scary Maze Game” is uploaded on YouTube, a simple playthrough that eventually amasses 48m+ views<sup id="fnref:youtube" role="doc-noteref"><a href="#fn:youtube" class="footnote" rel="footnote">10</a></sup> (warning: jumpscare).</li>
  <li><strong>8th June 2008</strong>: “Scary Maze Game (official version)” is uploaded on YouTube, one of the most popular reaction videos that reaches 43m+ views<sup id="fnref:youtube2" role="doc-noteref"><a href="#fn:youtube2" class="footnote" rel="footnote">11</a></sup> (warning: jumpscare).</li>
  <li><strong>30th October 2010</strong>: “Scary Maze Game” is used / parodied on Saturday Night Live, albeit with the copyrighted image replaced<sup id="fnref:snl" role="doc-noteref"><a href="#fn:snl" class="footnote" rel="footnote">12</a></sup>.</li>
</ul>

<p><a href="/assets/images/2023/maze-trend.png"><img src="/assets/images/2023/maze-trend-740w.png" alt="the maze game popularity trend" /></a>
<em>Interest over time for “scary maze game”, from Google Trends<sup id="fnref:trends" role="doc-noteref"><a href="#fn:trends" class="footnote" rel="footnote">13</a></sup>.</em></p>

<h2 id="impact">Impact</h2>

<p>“The Scary Maze Game” might not have entirely hit the mainstream (besides the SNL appearance), but for those who experienced the shock first hand it had a lasting impact! Within the niche of free online games from a single developer, it’s hard to think of any other game that spread as quickly and as widely in these earlier days of the internet.</p>

<p>Despite the game’s age it still resurfaces from time to time, either as nostalgia-bait<sup id="fnref:buzzfeed" role="doc-noteref"><a href="#fn:buzzfeed" class="footnote" rel="footnote">14</a></sup> or by finding a new generation of children to scare via TikTok<sup id="fnref:tiktok" role="doc-noteref"><a href="#fn:tiktok" class="footnote" rel="footnote">15</a></sup>. An article in 2010 describes the game as “the most well known of the screamer genre … is still the most popular example of its kinda today”<sup id="fnref:urlesque" role="doc-noteref"><a href="#fn:urlesque" class="footnote" rel="footnote">16</a></sup> whilst one from 2021 calls it “one of the most infamous jump scares in internet history”<sup id="fnref:denofgeek" role="doc-noteref"><a href="#fn:denofgeek" class="footnote" rel="footnote">17</a></sup>.</p>

<p>Speaking personally, I discovered this game whilst I was alone through one of the free online game sites I frequented when I was around 12-13. Even ~15 years later I can still remember the cold spike of fear and clammy hands that immediately followed, and how it absolutely stuck with me for weeks afterwards. Those that played it in a shared context (pranked by friends) might have had a less memorable shock, but for me it was easily one of the scariest things I’ve experienced.</p>

<p>Besides the immediate impact of the game itself, it undeniably had a hand in ushering in the era of “reaction” style content that is still extremely widespread today. As mentioned in the <a href="#timeline">timeline</a>, a filmed reaction to the game is often credited as “first Internet screamer reaction video”<sup id="fnref:wiki:1" role="doc-noteref"><a href="#fn:wiki" class="footnote" rel="footnote">7</a></sup>. Whilst it’s too much of a stretch to say the game is responsible for the rise of “personal branding” (in the style of Instagram, TikTok, etc), it seems reasonable to see it as partially responsible for the sustained popularity of “Let’s Plays” and gaming on Twitch.</p>

<h2 id="who-created-it">Who created it?</h2>

<p>Jeremy Winterrowd, a programmer from Texas.</p>

<p>He’s a pretty elusive guy, with his site now offline and the in-game linked Twitter inactive since 2012<sup id="fnref:twitter" role="doc-noteref"><a href="#fn:twitter" class="footnote" rel="footnote">18</a></sup>. Whilst I did find more up-to-date social media (only inactive for 3 years!) and personal information, I won’t link them in case they are intended to be private.</p>

<h2 id="decompiling-the-maze">Decompiling The Maze</h2>

<p>Later in this post I describe <a href="#how-was-it-decompiled">how I decompiled the scary maze game</a>, but if you’d like to view the game’s source code I’ve <a href="https://gist.github.com/JakeSteam/fc1614c3f5a92b281dba55f6081e7288">made it available as a GitHub Gist</a>.</p>

<h3 id="how-does-the-detection-work">How does the detection work?</h3>

<p>A level is failed when your mouse leaves the blue area. You might think this means the game logic is to fail when you are no longer on blue but… nope! It’s actually the opposite: You fail when you touch a black area.</p>

<p>These black areas are actually multiple giant rectangles, each of which has their own mouseover detection. Here’s a walkthrough of what happens when you touch one of these black rectangles, using part of level 1 as an example:</p>

<table>
  <thead>
    <tr>
      <th>Component</th>
      <th>Explanation</th>
      <th>Screenshot</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Failure rectangle</td>
      <td>“Wall3” is a rectangle at the top of “frame 4”, highlighted in red.</td>
      <td><a href="/assets/images/2023/maze-walkthrough-1.png"><img src="/assets/images/2023/maze-walkthrough-1-thumbnail.png" alt="the maze game failure area" /></a></td>
    </tr>
    <tr>
      <td>Mouseover event</td>
      <td>The <code class="language-kotlin highlighter-rouge"><span class="nf">frame4</span><span class="p">()</span></code> function sets a <code class="language-kotlin highlighter-rouge"><span class="nc">MOUSE_OVER</span></code> event listener on “Wall3”, so that <code class="language-kotlin highlighter-rouge"><span class="nc">Level1Wall_MouseOverHandler</span></code> is triggered when the mouse touches it.</td>
      <td><a href="/assets/images/2023/maze-walkthrough-2.png"><img src="/assets/images/2023/maze-walkthrough-2.png" alt="the maze game mouseover" /></a></td>
    </tr>
    <tr>
      <td>Reset</td>
      <td><code class="language-kotlin highlighter-rouge"><span class="nc">Level1Wall_MouseOverHandler</span></code> removes the “dot” (player) from the screen, and sends the player back to frame 3.</td>
      <td><a href="/assets/images/2023/maze-walkthrough-3.png"><img src="/assets/images/2023/maze-walkthrough-3.png" alt="the maze game failure event" /></a></td>
    </tr>
    <tr>
      <td>Retry</td>
      <td>Frame 3 is the main game screen.</td>
      <td><a href="/assets/images/2023/maze-frame-3.png"><img src="/assets/images/2023/maze-frame-3-thumbnail.png" alt="the maze game main screen" /></a></td>
    </tr>
  </tbody>
</table>

<h3 id="is-there-a-level-4">Is there a level 4?</h3>

<p>Despite the many claims online (e.g., a video from 2008 with 1.4m views<sup id="fnref:level-4" role="doc-noteref"><a href="#fn:level-4" class="footnote" rel="footnote">19</a></sup>) and the game’s original description (below) there is no level 4:</p>

<blockquote>
  <p>The Maze! Test your skills! Try to reach the goal without touching the walls! How steady is your hand? Let’s find out! Try and beat all four levels! Play NOW!</p>
</blockquote>

<p>This can be proven definitively in the game’s files:</p>

<table>
  <thead>
    <tr>
      <th>Proof</th>
      <th>Screenshot</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>The ActionScript code that handles failing a level only has code for levels 1-3.</td>
      <td><a href="/assets/images/2023/maze-3-levels.png"><img src="/assets/images/2023/maze-3-levels-thumbnail.png" alt="the maze game no level 4 code" /></a></td>
    </tr>
    <tr>
      <td>In Flash files, any unused font characters are removed. The font used for level titles (Arial Black) only includes the numbers 1-3.</td>
      <td><a href="/assets/images/2023/maze-3-font.png"><img src="/assets/images/2023/maze-3-font-thumbnail.png" alt="the maze game no level 4 fonts" /></a></td>
    </tr>
    <tr>
      <td>All the strings within the game’s files can be shown at once. There is no “Level 4”.</td>
      <td><a href="/assets/images/2023/maze-3-text.png"><img src="/assets/images/2023/maze-3-text-thumbnail.png" alt="the maze game no level 4 text" /></a></td>
    </tr>
  </tbody>
</table>

<h3 id="is-there-anything-hidden">Is there anything hidden?</h3>

<p>Short answer: No.</p>

<p>Longer answer: Using the list of frames in the game, we can see everywhere the player could possibly go. There’s nothing besides what you’ll see on a normal playthrough:</p>

<table>
  <thead>
    <tr>
      <th>Frame #</th>
      <th>Content</th>
      <th>Screenshot</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1</td>
      <td>The initial loading screen.</td>
      <td><a href="/assets/images/2023/maze-frame-1.png"><img src="/assets/images/2023/maze-frame-1-thumbnail.png" alt="the maze game frame 1" /></a></td>
    </tr>
    <tr>
      <td>2</td>
      <td>The splash screen, once all content is loaded.</td>
      <td><a href="/assets/images/2023/maze-frame-2.png"><img src="/assets/images/2023/maze-frame-2-thumbnail.png" alt="the maze game frame 2" /></a></td>
    </tr>
    <tr>
      <td>3</td>
      <td>The main game screen, this is also where failing on level 1 takes players.</td>
      <td><a href="/assets/images/2023/maze-frame-3.png"><img src="/assets/images/2023/maze-frame-3-thumbnail.png" alt="the maze game frame 3" /></a></td>
    </tr>
    <tr>
      <td>4</td>
      <td>Level 1</td>
      <td><a href="/assets/images/2023/maze-frame-4.png"><img src="/assets/images/2023/maze-frame-4-thumbnail.png" alt="the maze game frame 4" /></a></td>
    </tr>
    <tr>
      <td>5</td>
      <td>Level 2</td>
      <td><a href="/assets/images/2023/maze-frame-5.png"><img src="/assets/images/2023/maze-frame-5-thumbnail.png" alt="the maze game frame 5" /></a></td>
    </tr>
    <tr>
      <td>6</td>
      <td>Level 3</td>
      <td><a href="/assets/images/2023/maze-frame-6.png"><img src="/assets/images/2023/maze-frame-6-thumbnail.png" alt="the maze game frame 6" /></a></td>
    </tr>
    <tr>
      <td>7</td>
      <td>The initial screamer, adds the face image and the scream sound.</td>
      <td><a href="/assets/images/2023/maze-frame-7.png"><img src="/assets/images/2023/maze-frame-7-thumbnail.png" alt="the maze game frame 7" /></a></td>
    </tr>
    <tr>
      <td>8 - 112</td>
      <td>Scream sound plays.</td>
      <td><a href="/assets/images/2023/maze-frame-8.png"><img src="/assets/images/2023/maze-frame-8-thumbnail.png" alt="the maze game frame 8" /></a></td>
    </tr>
    <tr>
      <td>113 - 163</td>
      <td>Scream sound continues to play, whilst “www.winterrowd.com” slides down the screen.</td>
      <td><a href="/assets/images/2023/maze-frame-113.png"><img src="/assets/images/2023/maze-frame-113-thumbnail.png" alt="the maze game frame 113" /></a></td>
    </tr>
    <tr>
      <td>164</td>
      <td>Ending screen, with options to share the maze and contact the creator.</td>
      <td><a href="/assets/images/2023/maze-frame-164.png"><img src="/assets/images/2023/maze-frame-164-thumbnail.png" alt="the maze game frame 164" /></a></td>
    </tr>
  </tbody>
</table>

<h3 id="final-technical-notes">Final technical notes</h3>

<h4 id="how-was-it-decompiled">How was it decompiled?</h4>

<p>I used <a href="https://github.com/jindrapetrik/jpexs-decompiler/releases/tag/version18.3.0">JPEXS Decompiler v18.3.0</a> for all of this post, it’s open source and very easy to use. I recommend using the “Mute frame sounds” button to avoid accidentally falling for the screamer repeatedly whilst navigating the the game files!</p>

<p><a href="/assets/images/2023/maze-mute.png"><img src="/assets/images/2023/maze-mute.png" alt="JPEXS decompiler mute" /></a></p>

<h4 id="multiple-versions">Multiple versions?</h4>

<p>The popular game file’s metadata after downloading it from multiple independent sources shows it has a SWF version of 9. This maps to Flash Player 9.0.115.0<sup id="fnref:flash-mapping" role="doc-noteref"><a href="#fn:flash-mapping" class="footnote" rel="footnote">20</a></sup>, which was released December 2007<sup id="fnref:flash-release" role="doc-noteref"><a href="#fn:flash-release" class="footnote" rel="footnote">21</a></sup>, seemingly… 2 years after the game was released.</p>

<p>Initially I wondered how this was possible, then I realised the first time the game appeared on the author’s site it was called “v1.1”<sup id="fnref:first-visible" role="doc-noteref"><a href="#fn:first-visible" class="footnote" rel="footnote">22</a></sup>. Eventually I found the original version<sup id="fnref:original" role="doc-noteref"><a href="#fn:original" class="footnote" rel="footnote">23</a></sup> described as “maze1.swf” from an archived version of the creator’s blog<sup id="fnref:archived-blog" role="doc-noteref"><a href="#fn:archived-blog" class="footnote" rel="footnote">24</a></sup>. It is pretty similar overall, but has a yellow colour scheme and only 1 level. This original version was made with SWF version 7, released in September 2003, which explains the reported release date!</p>

<p>My guess is that the original file gained limited popularity, then the creator created v1.1 that was far more convincing (and encouraged turning sounds up). This version went far, far more viral, and may have received further updates to add advertising (without incrementing the version number).</p>

<h2 id="conclusion">Conclusion</h2>

<p>The scary maze game was released at a perfect time, when “pranks” combined with simple content could spread extremely quickly around the world. Whilst it is a more damaging prank than a simple Rickroll, ultimately the shock is very short-lived, and counteracted by sharing the game to let others share your pain.</p>

<p>With reaction-style content still widespread today (as parodied by Bo Burnham in “<a href="https://www.youtube.com/watch?v=FZVMB8mrNO0">Unpaid Intern</a>”), it’s a relief that online “prank” videos / games have mostly disappeared. There are a few reasons for this engagingly <a href="https://www.denofgeek.com/culture/forgotten-era-of-internet-jump-scares/">explored by Den of Geek in 2021</a>, theorising</p>

<blockquote>
  <p>the internet itself isn’t as much of an unchartable frontier as it once was</p>
</blockquote>

<p>or</p>

<blockquote>
  <p>Perhaps we all as Internet citizens came to an implicit understanding that enough was enough and we would no longer attempt to scare one another</p>
</blockquote>

<p>before ultimately coming to a somewhat depressing yet convincing conclusion:</p>

<blockquote>
  <p>Moneyed interests like Amazon, Facebook, Twitter, Google, and more have bought up a considerable amount of online real estate and they have a vested interest in ensuring that the visitors to their many sites aren’t viewing them with their hands over their eyes.</p>
</blockquote>

<p>The rapid spread of a very simple concept reminds me of more modern phenomena such as Wordle, that quickly become a talking point online without any marketing budget. I’ve reached out to the game’s creator via every medium I could find at the start of the year, but unfortunately didn’t get a response. If you know him and think he might be willing to talk, please send him this article, I’d love to get his memories / comments on the topic!</p>

<h2 id="references">References</h2>
<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:jpexs" role="doc-endnote">
      <p><a href="https://github.com/jindrapetrik/jpexs-decompiler/releases">https://github.com/jindrapetrik/jpexs-decompiler/releases</a> <a href="#fnref:jpexs" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2003" role="doc-endnote">
      <p><a href="https://knowyourmeme.com/memes/scary-maze-game#fn5:~:text=Jeremy%20Winterrowd%20in-,2003,-.%20Upon%20completion%20of">https://knowyourmeme.com/memes/scary-maze-game#fn5:~:text=Jeremy%20Winterrowd%20in-,2003,-.%20Upon%20completion%20of</a> <a href="#fnref:2003" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2004" role="doc-endnote">
      <p><a href="https://videogaming.fandom.com/wiki/The_Maze_(Winterrowd)">https://videogaming.fandom.com/wiki/The<em>Maze</em>(Winterrowd)</a> <a href="#fnref:2004" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2005" role="doc-endnote">
      <p><a href="https://www.mobygames.com/game/browser/the_maze_2004/release-info">https://www.mobygames.com/game/browser/the_maze_2004/release-info</a> <a href="#fnref:2005" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:yahoo" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20210422070459/https://answers.yahoo.com/question/index?qid=20080810043147AA2Ssol">https://web.archive.org/web/20210422070459/https://answers.yahoo.com/question/index?qid=20080810043147AA2Ssol</a> <a href="#fnref:yahoo" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:original-release" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20051231034746/http://www.winterrowd.com/Blog/tabid/57/Default.aspx#:~:text=was%20created%20on-,October%2025th,-.%20That%27s%20only%C2%A0tracking">https://web.archive.org/web/20051231034746/http://www.winterrowd.com/Blog/tabid/57/Default.aspx</a> <a href="#fnref:original-release" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:original-release:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:wiki" role="doc-endnote">
      <p><a href="https://en.wikipedia.org/w/index.php?title=Jump_scare&amp;oldid=679919634#cite_note-16">https://en.wikipedia.org/w/index.php?title=Jump_scare&amp;oldid=679919634#cite_note-16</a> <a href="#fnref:wiki" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:wiki:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:afhv" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20070128184925/http://www.winterrowd.com/Blog/tabid/57/Default.aspx">https://web.archive.org/web/20070128184925/http://www.winterrowd.com/Blog/tabid/57/Default.aspx</a> <a href="#fnref:afhv" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:afhv:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:webjunk" role="doc-endnote">
      <p><a href="https://www.reddit.com/r/lostmedia/comments/netxx7/vh1_show_web_junk_20/">https://www.reddit.com/r/lostmedia/comments/netxx7/vh1_show_web_junk_20/</a> <a href="#fnref:webjunk" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:youtube" role="doc-endnote">
      <p><a href="https://www.youtube.com/watch?v=0WjDrQ0IhBw">https://www.youtube.com/watch?v=0WjDrQ0IhBw</a> <a href="#fnref:youtube" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:youtube2" role="doc-endnote">
      <p><a href="https://www.youtube.com/watch?v=W2R9YTXJeWE">https://www.youtube.com/watch?v=W2R9YTXJeWE</a> <a href="#fnref:youtube2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:snl" role="doc-endnote">
      <p><a href="https://youtu.be/4CD0ZbvIyQE?t=38">https://youtu.be/4CD0ZbvIyQE?t=38</a> <a href="#fnref:snl" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:trends" role="doc-endnote">
      <p><a href="https://trends.google.com/trends/explore?date=all&amp;q=scary%20maze%20game">https://trends.google.com/trends/explore?date=all&amp;q=scary%20maze%20game</a> <a href="#fnref:trends" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:buzzfeed" role="doc-endnote">
      <p><a href="https://www.buzzfeed.com/hannahmarder/is-anyone-else-still-scarred-by-the-maze-game">https://www.buzzfeed.com/hannahmarder/is-anyone-else-still-scarred-by-the-maze-game</a> <a href="#fnref:buzzfeed" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:tiktok" role="doc-endnote">
      <p><a href="https://www.the-sun.com/lifestyle/3959426/parents-slam-mum-pranked-son-scary-maze-game-terrifying/">https://www.the-sun.com/lifestyle/3959426/parents-slam-mum-pranked-son-scary-maze-game-terrifying/</a> <a href="#fnref:tiktok" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:urlesque" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20150116083142/http://www.urlesque.com/2010/10/13/screamers-the-history-of-the-scary-maze-prank/">https://web.archive.org/web/20150116083142/http://www.urlesque.com/2010/10/13/screamers-the-history-of-the-scary-maze-prank/</a> <a href="#fnref:urlesque" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:denofgeek" role="doc-endnote">
      <p><a href="https://www.denofgeek.com/culture/forgotten-era-of-internet-jump-scares/">https://www.denofgeek.com/culture/forgotten-era-of-internet-jump-scares/</a> <a href="#fnref:denofgeek" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:twitter" role="doc-endnote">
      <p><a href="https://twitter.com/winterrowd">https://twitter.com/winterrowd</a> <a href="#fnref:twitter" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:level-4" role="doc-endnote">
      <p><a href="https://www.youtube.com/watch?v=NedCSuGt0eg">https://www.youtube.com/watch?v=NedCSuGt0eg</a> <a href="#fnref:level-4" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:flash-mapping" role="doc-endnote">
      <p><a href="https://stackoverflow.com/a/10900792/608312">https://stackoverflow.com/a/10900792/608312</a> <a href="#fnref:flash-mapping" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:flash-release" role="doc-endnote">
      <p><a href="https://en.wikipedia.org/wiki/Adobe_Flash_Player#:~:text=Adobe%20Flash%20Player%209%20Update%203">https://en.wikipedia.org/wiki/Adobe_Flash_Player#:~:text=Adobe%20Flash%20Player%209%20Update%203</a> <a href="#fnref:flash-release" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:first-visible" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20060408211659/http://www.winterrowd.com/maze/">https://web.archive.org/web/20060408211659/http://www.winterrowd.com/maze/</a> <a href="#fnref:first-visible" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:original" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20051230032809/http://www.winterrowd.com:80/maze1.swf">https://web.archive.org/web/20051230032809/http://www.winterrowd.com:80/maze1.swf</a> <a href="#fnref:original" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:archived-blog" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20051231034746/http://www.winterrowd.com/Blog/tabid/57/Default.aspx">https://web.archive.org/web/20051231034746/http://www.winterrowd.com/Blog/tabid/57/Default.aspx</a> <a href="#fnref:archived-blog" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Jake Lee</name></author><category term="2005" /><category term="2006" /><category term="2007" /><category term="Gaming" /><summary type="html"><![CDATA[If you’re reading this and don’t know the blue &amp; black “scary maze game” from the mid 2000s, congratulations on escaping a horrific experience. This short “game” by Jeremy Winterrowd required moving your mouse through a maze. The difficulty increases, and inevitable failure causes a loud scream to play and Linda Blair from The Exorcist appears. It’s scarier than it sounds, so consider this post me getting revenge on it!]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://history.jakelee.co.uk/assets/images/banners/maze-header.png" /><media:content medium="image" url="https://history.jakelee.co.uk/assets/images/banners/maze-header.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">20 years ago today, the ‘Most Annoying Webpage’ was launched, trapping victims in popups for a few minutes</title><link href="https://history.jakelee.co.uk/most-annoying-webpage/" rel="alternate" type="text/html" title="20 years ago today, the ‘Most Annoying Webpage’ was launched, trapping victims in popups for a few minutes" /><published>2023-03-20T00:00:00+00:00</published><updated>2023-03-20T00:00:00+00:00</updated><id>https://history.jakelee.co.uk/most-annoying-webpage</id><content type="html" xml:base="https://history.jakelee.co.uk/most-annoying-webpage/"><![CDATA[<p>In 2003, the internet was a lot more innocent. People happily clicked suspicious looking links, browsers trusted websites implicitly, and instead of malware we had pranks and time-wasters. “Most Annoying Webpage” was one of these, taking a few precious minutes out of any victim’s day.</p>

<h2 id="what-was-it">What was it?</h2>

<p>The “Most Annoying Webpage” realistically wasn’t <em>that</em> annoying. It queued up 151 alerts, forcing the user to click “OK” on each one individually. Due to browsers being a bit too trusting of websites in the early internet, there was no way to change tab, dismiss all remaining alerts or any similar workaround. Additionally, as many users weren’t expert computer users, many would have manually clicked the “OK” button instead of holding down enter.</p>

<p>You can view an <a href="https://web.archive.org/web/20030402051520/http://www.mostannoyingwebpage.com/v1/">archived version of the site here</a> and click “Yes, I’m Sure” to begin displaying the alerts. On any modern browser they won’t cause any issues, and can be dismissed by just changing tab.</p>

<p><a href="/assets/images/2023/annoying-example.png"><img src="/assets/images/2023/annoying-example.png" alt="" /></a></p>

<p>Once a victim makes their way through all the alerts, they are prompted to send their friends a link via “TAF Master”, an advertising link manager (similar to adf.ly today). Considering this link was active throughout the site’s lifetime, it’s likely advertising revenue was the main goal of the developer. The preticked boxes for the referral form<sup id="fnref:referral-form" role="doc-noteref"><a href="#fn:referral-form" class="footnote" rel="footnote">1</a></sup> give a good indicator of how much spam you’d likely receive!</p>

<p><a href="/assets/images/2023/annoying-spam.png"><img src="/assets/images/2023/annoying-spam.png" alt="" /></a></p>

<h2 id="timeline">Timeline</h2>

<ul>
  <li><strong>20th March 2003</strong>: Most Annoying Webpage created and launched<sup id="fnref:registered" role="doc-noteref"><a href="#fn:registered" class="footnote" rel="footnote">2</a></sup>.</li>
  <li><strong>1st April 2003</strong>: First Wayback Machine archive of Most Annoying Webpage, appropriately on April Fool’s Day<sup id="fnref:first-archive" role="doc-noteref"><a href="#fn:first-archive" class="footnote" rel="footnote">3</a></sup>.</li>
  <li><strong>14th April 2003</strong>: First mention of Most Annoying Webpage online, on Slashdot<sup id="fnref:first-mention" role="doc-noteref"><a href="#fn:first-mention" class="footnote" rel="footnote">4</a></sup></li>
  <li><strong>May 2003</strong>: Most Annoying Webpage spreads through technology forum’s threads (Anandtech<sup id="fnref:anandtech" role="doc-noteref"><a href="#fn:anandtech" class="footnote" rel="footnote">5</a></sup>, Howard Forums<sup id="fnref:howard-forums" role="doc-noteref"><a href="#fn:howard-forums" class="footnote" rel="footnote">6</a></sup>, Blender Artists<sup id="fnref:blender-artists" role="doc-noteref"><a href="#fn:blender-artists" class="footnote" rel="footnote">7</a></sup>)</li>
  <li><strong>July 2003</strong>: Most Annoying Webpage spreads through general forum’s threads (Digital Photography Challenge<sup id="fnref:dpchallenge" role="doc-noteref"><a href="#fn:dpchallenge" class="footnote" rel="footnote">8</a></sup>, Airliners.net<sup id="fnref:airliners" role="doc-noteref"><a href="#fn:airliners" class="footnote" rel="footnote">9</a></sup>)</li>
  <li><strong>11th July 2003</strong>: First and only mention of Most Annoying Webpage in a (political) news site<sup id="fnref:national-review" role="doc-noteref"><a href="#fn:national-review" class="footnote" rel="footnote">10</a></sup>.</li>
  <li><strong>20th March 2005</strong>: Most Annoying Webpage becomes owned by a series of advertising / parking services<sup id="fnref:full-dns-records" role="doc-noteref"><a href="#fn:full-dns-records" class="footnote" rel="footnote">11</a></sup>.</li>
  <li>Between <strong>17th May - 14th October 2014</strong>, Most Annoying Webpage begins hosting a german spam blog<sup id="fnref:german-spam" role="doc-noteref"><a href="#fn:german-spam" class="footnote" rel="footnote">12</a></sup>, and continues to this day.</li>
</ul>

<h2 id="alert-analysis">Alert analysis</h2>

<p>The site’s source code is available at <a href="/assets/txt/annoying-source.txt">annoying-source.txt</a>, and the plaintext alerts can be viewed at <a href="/assets/txt/annoying-alerts.txt">annoying-alerts.txt</a>.</p>

<h3 id="dynamic-alerts">Dynamic alerts</h3>

<p>In the plaintext alert file, there are 2 sets of messages that I have annotated with <code class="language-kotlin highlighter-rouge"><span class="p">(</span><span class="nc">DYNAMIC</span><span class="p">)</span></code>. In the original source code these are small JavaScript functions that accept input from the user (for their name and a topic suggestion) before lightly mocking them.</p>

<h3 id="alert-miscount">Alert miscount</h3>

<p>Despite the creator’s claim of 150 alerts, there are actually 151! This miscount seems to creep in between alerts #105 and #116:</p>

<p><a href="/assets/images/2023/annoying-miscount.png"><img src="/assets/images/2023/annoying-miscount.png" alt="" /></a></p>

<h3 id="metadata">Metadata</h3>

<p>According to an online text analyser<sup id="fnref:text-analyser" role="doc-noteref"><a href="#fn:text-analyser" class="footnote" rel="footnote">13</a></sup>:</p>

<ul>
  <li>There are <strong>893 words</strong>.</li>
  <li>The most used word is <strong>you</strong>, with <strong>59 occurrences</strong>.</li>
  <li>The most used phrase is <strong>you know</strong> with <strong>11 occurrences</strong>.</li>
  <li>The longest reused phrases are <strong>alert after alert after alert</strong> and <strong>to get through 150 alerts</strong>, both used twice.</li>
</ul>

<p>Whilst this was perhaps obvious from reading a few dialogs, basic online automated readability tools<sup id="fnref:readability-tools" role="doc-noteref"><a href="#fn:readability-tools" class="footnote" rel="footnote">14</a></sup> agreed the writing was very, very simple and easy to read for almost all ages:</p>

<p><a href="/assets/images/2023/annoying-readability.png"><img src="/assets/images/2023/annoying-readability.png" alt="" /></a></p>

<h2 id="legacy">Legacy</h2>

<h3 id="better-alert-blocking">Better alert blocking</h3>

<p>As described in the talk embedded below, alerts used to be all-powerful. They could lock your browser up, trapping you on the web page, potentially forcing you to restart your entire machine. Most of the web had this power, and due to countless abuses we finally ended up in the more regimented security structure we have now. The talk also discusses how that’s now starting to change, potentially making the web more risky:</p>

<iframe width="100%" height="400" src="https://www.youtube.com/embed/QFZ-pwErSl4?start=202" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen=""></iframe>

<p>Essentially every browser / OS with a public bug tracker saw complaints about these alert traps in the early-mid 2000s (e.g., Mozilla<sup id="fnref:mozilla" role="doc-noteref"><a href="#fn:mozilla" class="footnote" rel="footnote">15</a></sup>, GNOME<sup id="fnref:gnome" role="doc-noteref"><a href="#fn:gnome" class="footnote" rel="footnote">16</a></sup>). Since then, a number of changes have happened that took away any risk from these sorts of sites:</p>

<ol>
  <li>Tabs became isolated. Now if a page shows you an alert, you can just change tabs and the problem is solved.</li>
  <li>Browsers became more aware of maliciuous JavaScript. If you change to another tab, when you return only the final alert will be shown.</li>
  <li>The ability to block additional dialogs was added to Chromium browsers (although this doesn’t work for Most Annoying Webpage):</li>
</ol>

<p><a href="/assets/images/2023/annoying-dialogs.png"><img src="/assets/images/2023/annoying-dialogs.png" alt="" /></a></p>

<h3 id="rehosts">Rehosts</h3>

<p>There are still a few copies of the site available online, since it’s very simple to copy the basic JavaScript &amp; HTML. It is available on the previously popular Albino Blacksheep<sup id="fnref:albino" role="doc-noteref"><a href="#fn:albino" class="footnote" rel="footnote">17</a></sup>, as well as direct copies without referral links<sup id="fnref:non-referral" role="doc-noteref"><a href="#fn:non-referral" class="footnote" rel="footnote">18</a></sup>, and with<sup id="fnref:with-referral" role="doc-noteref"><a href="#fn:with-referral" class="footnote" rel="footnote">19</a></sup>.</p>

<h3 id="similar-sites">Similar sites</h3>

<p>Whilst looking into this topic, I found <code class="language-kotlin highlighter-rouge"><span class="nc">TheAnnoyingSite</span><span class="p">.</span><span class="n">com</span></code> from 2017/2018. I’m not going to link to it directly, since it lives up to the name far more than “Most Annoying Webpage” does! Looking at <a href="https://github.com/feross/TheAnnoyingSite.com/blob/master/static/index.js">the source code</a>, it makes odd Google searches, plays noises, spawns popups, logs you out of various sites, and other things that might actually cause a problem. There’s a full explanation in the <a href="https://www.youtube.com/watch?v=QFZ-pwErSl4">creator Feross Aboukhadijeh’s talk on YouTube</a> (also <a href="#better-alert-blocking">embedded above</a>). In comparison, Most Annoying Webpage is far more innocent.</p>

<p>However, considering the different directions &amp; complexity both sites took from the core concept (“What if a site was annoying?”), I highly doubt there’s any connection. I reached out to Feross, and he confirmed the sites were unrelated, although he did remember stumbling across “Most Annoying Webpage” when younger!</p>

<h2 id="notes">Notes</h2>

<h3 id="author">Author</h3>

<p>I tried to find the creator behind this site, and completely failed:</p>

<ul>
  <li>Original DNS records have privacy protection.</li>
  <li>No contact details are provided, the only name in the source code is for a free-to-use code snippet.</li>
  <li>As mentioned in <a href="#similar-sites">Similar sites</a>, I reached out to the author of a similar site who confirmed there was no connection.</li>
  <li>The referral link<sup id="fnref:referral-link" role="doc-noteref"><a href="#fn:referral-link" class="footnote" rel="footnote">20</a></sup> is on the now defunct “TAFMaster”, which appears to have disappeared sometime between 2011 and 2017, with very little trace. It does not appear to have had any customer lookup / database leak.</li>
</ul>

<h3 id="technical">Technical</h3>

<p>It’s unlikely the creator had much JavaScript experience. The source code shows the only non-trivial JavaScript (using text from the user) is copied from elsewhere. More tellingly, the exact same code is used both times the site asks for user feedback, even down to the variable names! Storing both the user’s name and their conversation topic in <code class="language-kotlin highlighter-rouge"><span class="n">namePrompt</span></code> for no reason is unlikely to be the work of an experienced programmer.</p>

<h3 id="webpage-vs-website">Webpage vs website</h3>

<p>It’s entirely possible the phrase “webpage” looks weird to some readers! For a while this was a common term to refer to a page on a website. Looking at Google Trends however, it’s clear “webpage” is now essentially unused, even in comparison to 2004. If the chart extended further back in time, I would expect an even sharper drop.</p>

<table>
  <thead>
    <tr>
      <th>Webpage over time</th>
      <th>Webpage vs website</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a href="/assets/images/2023/annoying-webpage.png"><img src="/assets/images/2023/annoying-webpage-thumbnail.png" alt="" /></a></td>
      <td><a href="/assets/images/2023/annoying-webpage-website.png"><img src="/assets/images/2023/annoying-webpage-website-thumbnail.png" alt="" /></a></td>
    </tr>
  </tbody>
</table>

<h2 id="conclusion">Conclusion</h2>

<p>I’m stunned with how quickly this site dropped off the internet’s radar. The fact that I must have experienced it aged 11-13, yet still remember it distinctly 18-20 years later is somewhat startling. This is the closest I’ve come to “lost media” on this site, hopefully I’ve helped ensure it lives on a little bit longer.</p>

<p>I was hoping to be able to find the original creator, but as I write this (Jan 2023), there’s no remaining avenues to follow. A couple of DMs / emails might still come back fruitful, but for now it will have to remain a mystery.</p>

<p>Finally, the domain’s registration expires <em>today</em>. I’d love to rescue the domain from the German spam blog and resurrect the original site, but I strongly suspect it will just be automatically renewed by the current owner and continue to be forgotten about! Perhaps it’s a satirical masterpiece, creating a site even more annoying than the original?</p>

<h2 id="references">References</h2>
<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:referral-form" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20040207121316/http://tafmaster-v.focalex.com/taf/1641/250646/?cookie_refresh=1&amp;focalex_aa_f=os=,id=8dO148cOwHUuFabddZmLKQ&amp;gatherer_id=http://www.MostAnnoyingWebpage.com">https://web.archive.org/web/20040207121316/http://tafmaster-v.focalex.com/taf/1641/250646/?cookie_refresh=1&amp;focalex_aa_f=os=,id=8dO148cOwHUuFabddZmLKQ&amp;gatherer_id=http://www.MostAnnoyingWebpage.com</a> <a href="#fnref:referral-form" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:registered" role="doc-endnote">
      <p>March 2003 date from DNS records<sup id="fnref:full-dns-records:1" role="doc-noteref"><a href="#fn:full-dns-records" class="footnote" rel="footnote">11</a></sup>, exact date from <a href="https://www.domainiq.com/domain?mostannoyingwebpage.com">Domain IQ</a>. <a href="#fnref:registered" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:first-archive" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20030401194229/http://mostannoyingwebpage.com/">https://web.archive.org/web/20030401194229/http://mostannoyingwebpage.com/</a> <a href="#fnref:first-archive" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:first-mention" role="doc-endnote">
      <p><a href="https://developers.slashdot.org/story/03/04/14/1154210/java-for-the-gameboy-advance">https://developers.slashdot.org/story/03/04/14/1154210/java-for-the-gameboy-advance</a> <a href="#fnref:first-mention" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:anandtech" role="doc-endnote">
      <p><a href="https://forums.anandtech.com/threads/mostannoyingwebpage.1054836/">https://forums.anandtech.com/threads/mostannoyingwebpage.1054836/</a> <a href="#fnref:anandtech" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:howard-forums" role="doc-endnote">
      <p><a href="https://howardforums.com/showthread.php/137149-good-old-mindless-fun">https://howardforums.com/showthread.php/137149-good-old-mindless-fun</a> <a href="#fnref:howard-forums" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:blender-artists" role="doc-endnote">
      <p><a href="https://blenderartists.org/t/weird-web-sites/305796">https://blenderartists.org/t/weird-web-sites/305796</a> <a href="#fnref:blender-artists" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:dpchallenge" role="doc-endnote">
      <p><a href="https://www.dpchallenge.com/forum.php?action=read&amp;FORUM_THREAD_ID=32387&amp;page=1#352609">https://www.dpchallenge.com/forum.php?action=read&amp;FORUM_THREAD_ID=32387&amp;page=1#352609</a> <a href="#fnref:dpchallenge" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:airliners" role="doc-endnote">
      <p><a href="https://airliners.net/forum/viewtopic.php?t=1082967">https://airliners.net/forum/viewtopic.php?t=1082967</a> <a href="#fnref:airliners" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:national-review" role="doc-endnote">
      <p><a href="https://www.nationalreview.com/corner/most-annoying-site-jonah-goldberg/">https://www.nationalreview.com/corner/most-annoying-site-jonah-goldberg/</a> <a href="#fnref:national-review" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:full-dns-records" role="doc-endnote">
      <p><a href="/assets/images/2023/annoying-dns.png">DNS records</a> according to <a href="https://completedns.com/dns-history/">Complete DNS</a>. <a href="#fnref:full-dns-records" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:full-dns-records:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:german-spam" role="doc-endnote">
      <p><a href="http://mostannoyingwebpage.com/">http://mostannoyingwebpage.com/</a> <a href="#fnref:german-spam" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:text-analyser" role="doc-endnote">
      <p><a href="https://www.online-utility.org/text/analyzer.jsp">https://www.online-utility.org/text/analyzer.jsp</a> <a href="#fnref:text-analyser" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:readability-tools" role="doc-endnote">
      <p><a href="https://readabilityformulas.com/freetests/six-readability-formulas.php">https://readabilityformulas.com/freetests/six-readability-formulas.php</a> <a href="#fnref:readability-tools" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:mozilla" role="doc-endnote">
      <p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=253239">https://bugzilla.mozilla.org/show_bug.cgi?id=253239</a> <a href="#fnref:mozilla" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:gnome" role="doc-endnote">
      <p><a href="https://bugzilla.gnome.org/show_bug.cgi?id=112636">https://bugzilla.gnome.org/show_bug.cgi?id=112636</a> <a href="#fnref:gnome" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:albino" role="doc-endnote">
      <p><a href="https://www.albinoblacksheep.com/text/#:~:text=Annoying%20Joey%20Kilaita">https://www.albinoblacksheep.com/text/#:~:text=Annoying%20Joey%20Kilaita</a> <a href="#fnref:albino" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:non-referral" role="doc-endnote">
      <p><a href="http://www.vipergc.com/annoying.html">http://www.vipergc.com/annoying.html</a> <a href="#fnref:non-referral" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:with-referral" role="doc-endnote">
      <p><a href="http://www.justanotherpc.com/annoyance/alerts/alerts.htm">http://www.justanotherpc.com/annoyance/alerts/alerts.htm</a> <a href="#fnref:with-referral" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:referral-link" role="doc-endnote">
      <p>(Dead) <code class="language-kotlin highlighter-rouge"><span class="n">http</span><span class="p">:</span><span class="c1">//tafmaster.com/taf/1641/250646/</span></code> <a href="#fnref:referral-link" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Jake Lee</name></author><category term="2003" /><category term="2004" /><category term="Pranks" /><summary type="html"><![CDATA[In 2003, the internet was a lot more innocent. People happily clicked suspicious looking links, browsers trusted websites implicitly, and instead of malware we had pranks and time-wasters. “Most Annoying Webpage” was one of these, taking a few precious minutes out of any victim’s day.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://history.jakelee.co.uk/assets/images/banners/annoying-header.png" /><media:content medium="image" url="https://history.jakelee.co.uk/assets/images/banners/annoying-header.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">17 years ago today, the Million Dollar Homepage was completed, making a student $1m in 5 months</title><link href="https://history.jakelee.co.uk/million-dollar-homepage/" rel="alternate" type="text/html" title="17 years ago today, the Million Dollar Homepage was completed, making a student $1m in 5 months" /><published>2023-01-11T00:00:00+00:00</published><updated>2023-01-11T00:00:00+00:00</updated><id>https://history.jakelee.co.uk/million-dollar-homepage</id><content type="html" xml:base="https://history.jakelee.co.uk/million-dollar-homepage/"><![CDATA[<p>When I was at school in the early 2000s, the internet was a very different place. Websites could be built in a couple of days, and if they had a good idea end up making $1m like Alex Tew’s Million Dollar Homepage. Read on for an analysis of the links, popularity, colours used, and a bit of history!</p>

<h2 id="what-was-the-million-dollar-homepage">What was the Million Dollar Homepage?</h2>

<p>Tew’s concept was simple: A page with 1,000,000 pixels for $1 each, anyone can purchase blocks of them for advertising, and once they’re gone they’re gone.</p>

<p>This basic idea, simple execution, and astonishing success truly embodied the “novel idea makes thousands overnight” vibe a lot of the early internet had. There was no reason for the website to be of any value to advertisers besides the fact… it was there. There was no product, no investors, no corporate backing, just 1,000,000 pixels of unused advertising space.</p>

<p>Of course, this was back when online adverts were a beautiful wild west, where gambling, dating, free software (or malware) and illegal video downloads were all fair game. The end result is a stunning montage of mid-2000s internet, preserved in a 1000 x 1000 pixel bubble. Whilst I’d recommend visiting <a href="http://www.milliondollarhomepage.com/">the eye burning original</a> for a pixel-perfect version, here’s a smaller version (click to view full size):</p>

<p><a href="/assets/images/banners/milliondollarhomepage.png"><img src="/assets/images/banners/milliondollarhomepage.png" alt="million dollar homepage" /></a></p>

<p>So how on earth did this <del>monstrosity</del> masterpiece happen?</p>

<h2 id="why-did-it-happen">Why did it happen?</h2>

<p>Alex Tew was a student looking to make a bit of cash to pay for his university degree, understandably wanting to break the “broke student” stereotype. The idea’s origin story listed in the (currently broken) FAQ<sup id="fnref:broken-faq" role="doc-noteref"><a href="#fn:broken-faq" class="footnote" rel="footnote">1</a></sup> describes the situation in Tew’s own words:</p>

<blockquote>
  <p>It was a muggy summer’s night late in August (2005), the time around midnight, and there I was, lying on my bed with a notepad, brainstorming ideas to make money for uni. I think I’m quite a creative person, so I wanted to come up with an idea that was unique and would hopefully capture people’s imagination, but with the whole purpose of making money. No point being shy about it! I think we brits can sometimes be too shy about money. Well bugger that, I DO NOT want to be a broke student!</p>

  <p>So anyway, after an hour of two of jotting random things on paper, the idea seemingly popped out of nowhere. Almost like my subconscious mind had been ticking over in the background, working it all out. So it just kind of happened. That’s about it. I scribbled it down and within about 10 minutes a picture of what needed to be done had emerged.</p>
</blockquote>

<h2 id="whats-the-timeline">What’s the timeline?</h2>

<ul>
  <li>2005-08-24: Domain is registered<sup id="fnref:domain-registered" role="doc-noteref"><a href="#fn:domain-registered" class="footnote" rel="footnote">2</a></sup>, for an initial cost of £50 for both the domain and hosting<sup id="fnref:domain-cost" role="doc-noteref"><a href="#fn:domain-cost" class="footnote" rel="footnote">3</a></sup></li>
  <li>2005-08-26: Site is launched<sup id="fnref:site-launched" role="doc-noteref"><a href="#fn:site-launched" class="footnote" rel="footnote">4</a></sup></li>
  <li>2005-08-29: First pixel sold<sup id="fnref:first-sale" role="doc-noteref"><a href="#fn:first-sale" class="footnote" rel="footnote">5</a></sup>, with the first $1,000 from family and friends</li>
  <li>2005-09-22: Covered on BBC<sup id="fnref:bbc-coverage" role="doc-noteref"><a href="#fn:bbc-coverage" class="footnote" rel="footnote">6</a></sup></li>
  <li>2005-10-26: Over half of all pixels sold<sup id="fnref:half-sold" role="doc-noteref"><a href="#fn:half-sold" class="footnote" rel="footnote">7</a></sup></li>
  <li>2006-01-01: Auction opened for final 1000 pixels<sup id="fnref:auction-opened" role="doc-noteref"><a href="#fn:auction-opened" class="footnote" rel="footnote">8</a></sup></li>
  <li>2006-01-11: Final pixels sold<sup id="fnref:final-sale" role="doc-noteref"><a href="#fn:final-sale" class="footnote" rel="footnote">9</a></sup></li>
</ul>

<h2 id="do-all-the-links-still-work">Do all the links still work?</h2>

<ul>
  <li>2017: 37% of links broken<sup id="fnref:2017-links" role="doc-noteref"><a href="#fn:2017-links" class="footnote" rel="footnote">10</a></sup>.</li>
  <li>2019: 40% of links broken<sup id="fnref:2019-links" role="doc-noteref"><a href="#fn:2019-links" class="footnote" rel="footnote">11</a></sup>.</li>
  <li>2022: 40% of links broken, as per the investigation below:</li>
</ul>

<h3 id="link-overview">Link overview</h3>

<p>In total, the 1,000,000 pixels have 3,306 different adverts. Many of these are by the same websites or companies, but this is the number defined on the page.</p>

<p>Out of these, 143 are “pending”, “reserved”, or otherwise never valid URLs for one reason or another. This leaves us with 3,163 valid adverts (see <a href="/assets/txt/valids.txt">valids.txt</a>). However, some of these are for the same domains (e.g. myspace), so we end up with 2,804 unique domains that our adverts point to (see <a href="/assets/txt/domains.txt">domains.txt</a>).</p>

<p>From these 2,804 domains, 550 completely fail to respond or don’t exist, 29 give server errors, and 531 give other errors, usually that the content is forbidden or can’t be found.</p>

<p><strong>In conclusion, 1,694 of the 2,804 advert domains are still alive and responding properly!</strong></p>

<h3 id="detailed-results">Detailed results</h3>

<table>
  <thead>
    <tr>
      <th>Result</th>
      <th>Count</th>
      <th>Response Code Breakdown</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>2XX Success</td>
      <td>1694 (60.4%)</td>
      <td>200 OK: 1682<br />204 No Content: 12</td>
    </tr>
    <tr>
      <td>4XX Client Error</td>
      <td>531 (19.0%)</td>
      <td>400 Bad Request: 9<br />401 Unauthorized: 1<br />403 Forbidden: 203<br />404 Not Found: 158<br />405 Method Not Allowed: 88<br />406 Not Acceptable: 63<br />409 Conflict: 1<br />410 Gone: 1<br />412 Precondition Failed: 5<br />429 Too Many Requests: 2</td>
    </tr>
    <tr>
      <td>5XX Server Error</td>
      <td>29 (1.0%)</td>
      <td>500 Internal Server Error: 12<br />501 Not Implemented: 1<br />502 Bad Gateway: 2<br />503 Service Unavailable: 11<br />521: 1<br />530: 1<br />999: 1</td>
    </tr>
    <tr>
      <td>Timed out / unreachable</td>
      <td>550 (19.6%)</td>
      <td> </td>
    </tr>
  </tbody>
</table>

<p>A full set of response codes (and errors) is available at <a href="/assets/txt/domain-status.txt">domain-status.txt</a></p>

<h3 id="https">HTTPS</h3>

<p>Interestingly, only 8 of these domains are HTTPS addresses on the site, whereas now almost all sites use it by default.</p>

<p>I had a theory that many of the errors above might be due to HTTPS redirects not working properly. To test this, I changed the list of 2,804 domains to all use HTTPS by default, and ran my checker again.</p>

<p>I was wrong however, and the 2,257 / 2,804 domains that could at least be connected to enough to throw an error dropped to a rather awful 1,498 / 2,804. Further investigation showed that this was likely due to my tool using an outdated HTTPS (technically SSL) protocol however, with the failed sites consisting of a mixture of very outdated (doesn’t support HTTPS) to very up-to-date (only supports modern HTTPS).</p>

<h3 id="link-rot">Link rot</h3>

<p>Whilst I was fairly surprised only 40% of the links no longer work, I am curious how many of these domains only still exist <em>due to</em> their presence on Million Dollar Homepage. Considering link rot (old links slowly breaking) is estimated at around 50% of links per year<sup id="fnref:link-rot" role="doc-noteref"><a href="#fn:link-rot" class="footnote" rel="footnote">12</a></sup>, so many links surviving 17 years later is truly astounding! Using average link rot figures, we would expect around 6% of links to still be working.</p>

<p>However, it’s worth mentioning that these link rot estimates are for random web pages, not those explicitly used for advertising which may be assumed to have higher value in keeping active.</p>

<p>Somewhat ironically, since most of the Million Dollar Homepage’s internal pages no longer work, the site itself has suffered much higher bit rot than the domains the adverts link to!</p>

<h2 id="what-colours-are-used">What colours are used?</h2>

<p>When looking at the image, your eyes are drawn to… all of it at once. However, certain colours “pop” more, such as neon pink, green, or yellow. A logical question is… which colours are most used, and does this match how our eyes see the image?</p>

<p>Here are the top 10 colours used:</p>

<table>
  <thead>
    <tr>
      <th>Colour</th>
      <th>Hex code</th>
      <th># of pixels</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><span style="background-color:#010101">#1</span></td>
      <td>#010101</td>
      <td>146147</td>
    </tr>
    <tr>
      <td><span style="background-color:#ffffff">#2</span></td>
      <td>#ffffff</td>
      <td>144104</td>
    </tr>
    <tr>
      <td><span style="background-color:#ff0000">#3</span></td>
      <td>#ff0000</td>
      <td>45829</td>
    </tr>
    <tr>
      <td><span style="background-color:#fefd00">#4</span></td>
      <td>#fefd00</td>
      <td>37516</td>
    </tr>
    <tr>
      <td><span style="background-color:#05ff05">#5</span></td>
      <td>#05ff05</td>
      <td>26514</td>
    </tr>
    <tr>
      <td><span style="background-color:#1700ff">#6</span></td>
      <td>#1700ff</td>
      <td>23572</td>
    </tr>
    <tr>
      <td><span style="background-color:#ff07fb">#7</span></td>
      <td>#ff07fb</td>
      <td>16545</td>
    </tr>
    <tr>
      <td><span style="background-color:#e7e6e8">#8</span></td>
      <td>#e7e6e8</td>
      <td>15473</td>
    </tr>
    <tr>
      <td><span style="background-color:#251026">#9</span></td>
      <td>#251026</td>
      <td>10657</td>
    </tr>
    <tr>
      <td><span style="background-color:#d8d8d9">#10</span></td>
      <td>#d8d8d9</td>
      <td>9894</td>
    </tr>
  </tbody>
</table>

<p>As expected, the neon colours are the most widely used, in addition to the greyscale black / white colours.</p>

<p>Interestingly though, despite red, yellow, green being the top 3, looking at the site green pixels seem much more visible. This may be because green pixels tend to be part of larger advertisements, whilst yellow pixels are usually smaller adverts trying to be noticed.</p>

<p>A full list of colours (and # of pixels) are available <a href="/assets/txt/colours.json">as a JSON object</a>.</p>

<h2 id="what-is-million-dollar-homepages-legacy">What is Million Dollar Homepage’s legacy?</h2>

<p>As with any simple idea that makes $1m in a few months, there were thousands of copycats! Most of these got negligible attention, and without the media attention quickly shut down.</p>

<h3 id="rplace-a-spiritual-successor">r/place, a spiritual successor?</h3>

<p>Perhaps more surprisingly, elements of this “canvas of pixels” idea can be seen alive today in concepts like Reddit’s r/place. Besides the general “individuals placing pixels, that form something greater than its parts” concept though, the differences are far more numerous than the similarities. r/place is free, pixels can be overwritten, and battles over areas of it are expected.</p>

<p>For evidence of their similarity, compare the Million Dollar Homepage’s final canvas to the 2017 and 2022 r/place results (click to view fullsize):</p>

<table>
  <thead>
    <tr>
      <th>Million Dollar Homepage</th>
      <th>r/place 2017</th>
      <th>r/place 2022</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><a href="/assets/images/banners/milliondollarhomepage.png"><img src="/assets/images/2023/milliondollarhomepage-thumbnail.png" alt="million dollar homepage" /></a></td>
      <td><a href="/assets/images/2023/rplace2017.png"><img src="/assets/images/2023/rplace2017-thumbnail.png" alt="r/place 2017" /></a></td>
      <td><a href="/assets/images/2023/rplace2022.png"><img src="/assets/images/2023/rplace2022-thumbnail.png" alt="r/place 2017" /></a></td>
    </tr>
  </tbody>
</table>

<p>Perhaps even more impressive given how quickly events and websites can fade into obscurity on the internet, Tew’s Million Dollar Homepage is still referenced pretty regularly today, usually as a motivational “your idea can go big too!” example. Considering it still lives in mine and others<sup id="fnref:rent-free" role="doc-noteref"><a href="#fn:rent-free" class="footnote" rel="footnote">13</a></sup> heads 17 years later, it’s hard to understate the effect this relatively simple idea has had on countless online creators over the years.</p>

<h3 id="popularity-over-time">Popularity over time</h3>

<p>Using Google Trends<sup id="fnref:google-trends" role="doc-noteref"><a href="#fn:google-trends" class="footnote" rel="footnote">14</a></sup>, we can get an idea of how interested the internet was in Million Dollar Homepage throughout the last ~18 years.</p>

<p>Whilst I expected one large spike of interest around the first media coverage (September ‘05), it turns out we actually have a “triple spike” pattern during the peak period. During this initial media coverage, there is an expected spike in search queries. However, there were over 5x as many around January ‘06, when the final pixels were being sold!</p>

<p>The third spike is less explainable, exactly a year later in January ‘07. My own theory is this is due to people remembering events from exactly a year ago. This theory unfortunately doesn’t have any evidence, and is perhaps countered by later years not experiencing this same pattern.</p>

<p><a href="/assets/images/2023/googletrends-mdh.png"><img src="/assets/images/2023/googletrends-mdh-740w.png" alt="million dollar homepage google trends over time" /></a></p>

<p>Finally, the site is unsurprisingly very popular in the UK (given Alex Tew’s nationality), but… also inexplicably Cyprus, Austria, Sweden, and Ireland. I have no idea why this is the case, suggestions welcome!</p>

<p><a href="/assets/images/2023/googletrends-mdh-country.png"><img src="/assets/images/2023/googletrends-mdh-country-740w.png" alt="million dollar homepage google trends by country" /></a></p>

<h2 id="what-order-were-the-pixels-purchased-in">What order were the pixels purchased in?</h2>

<p>The Web Design Museum has created a wonderful timelapse video showing the order the pixels were purchased in, and it’s worth watching the 14 seconds yourself:</p>

<iframe width="700" height="700" src="https://www.youtube.com/embed/MTZ8N2VJyl4" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen=""></iframe>

<p>A video of course speaks a thousand (million?) words, here’s a few observations:</p>

<ul>
  <li><strong>Unsurprisingly pixels at the top sell first</strong>. This is due to monitors at the time not being able to fit the entire page on the screen, leading to lower pixels being “below the fold” that 57% of viewing time is spent on<sup id="fnref:viewing-time" role="doc-noteref"><a href="#fn:viewing-time" class="footnote" rel="footnote">15</a></sup>. The top half of the pixels are almost full before many bottom half pixels are sold.</li>
  <li><strong>Pixels towards the left sell slightly better</strong>. This matches user experience research about horizontal attention<sup id="fnref:horizontal-attention" role="doc-noteref"><a href="#fn:horizontal-attention" class="footnote" rel="footnote">16</a></sup>.</li>
  <li><strong>Digital-first businesses moved in first</strong>. Companies offering web hosting, online betting, and online financial services were the first big spenders, presumably due to existing experience with a competitive online advertising marketplace.</li>
  <li><strong>Over time, the advert customers get less and less “seedy”</strong>. Whilst the first adverts are “free” online content, dating, gambling, and similar services, towards the end adverts for Yahoo, eBay, The Times, and other large corporations are present. Of course, there’s no guarantee they were put there by the actual companies, it is feasible they’re intended to trick customers via an obscure method!</li>
  <li><strong>There are very few creative pixel structures</strong>. Unlike r/place’s experience (see above), almost all purchased pixels were in rectangular blocks. The only visible exception is “Wizard Trivia”, which went for an interesting diagonal approach despite plenty of rectangles remaining. This approach seems unwise by the end though, with the advert almost invisible amongst the general chaos.</li>
</ul>

<h2 id="where-is-the-creator-now">Where is the creator now?</h2>

<p>Even more impressive than Alex Tew’s first $1m business idea was his ability to eventually spin this online clout and creativity into the meditation-focused startup Calm.com in 2013, now a unicorn (valuation &gt;$1bn)<sup id="fnref:unicorn-startup" role="doc-noteref"><a href="#fn:unicorn-startup" class="footnote" rel="footnote">17</a></sup>.</p>

<p>For a more detailed story of his journey from Million Dollar Homepage to co-founder of a billion-dollar company, I recommend <a href="https://thehustle.co/million-dollar-homepage-alex-tew/">The Hustle’s biopiece</a>.</p>

<h2 id="conclusion">Conclusion</h2>

<p>Million Dollar Homepage is the perfect artefact of a forgotten era of the internet. Despite (because of?) having broken links, eye-burning colours, and services of various legality and safety offered, the juxtaposition of serious businesses, one-man startups, and hobbyists provides a better description of the 2000s internet than any words could.</p>

<p>For me, the two most surprising discoveries during the creation of this article were:</p>

<ol>
  <li>Alex Tew is flourishing and seems to have survived the early internet excellently. Many early internet online entrepreneurs have a much more mundane fate!</li>
  <li>There are more red and yellow pixels than green, despite being less noticeable. Modern advertising generally aims for a bit more design subtlety, and I struggled to find an article justifying this perception.</li>
</ol>

<p>Finally, Million Dollar Homepage’s continued presence in hearts and minds 17 years later is a testament to how a fun little idea can quickly evolve into a major career contributor, and the importance of using family and friends for sales &amp; promotion when possible!</p>

<h2 id="notes">Notes</h2>

<h3 id="how-were-the-domains-checked">How were the domains checked?</h3>

<p>The process to check links was straightforward, but somewhat technical:</p>

<ol>
  <li>Pull the full list of links from the source code of Million Dollar Homepage.</li>
  <li>Remove the surrounding HTML using regexes <code class="language-kotlin highlighter-rouge"><span class="p">^.*?(</span><span class="n">href</span><span class="p">=</span><span class="err">"</span><span class="p">)</span></code> &amp; <code class="language-kotlin highlighter-rouge"><span class="p">(</span><span class="err">"</span> <span class="n">title</span><span class="p">).*</span><span class="err">$</span></code>.</li>
  <li><a href="https://thechrisgreen.com/2021/08/vs-code-sort-lines-of-code-in-ascending-or-descending-order/">Sort the domains alphabetically</a>, and <a href="https://stackoverflow.com/a/45829605/608312">remove duplicate domains</a>.</li>
  <li>Manually look for &amp; remove any fake domains (e.g. <code class="language-kotlin highlighter-rouge"><span class="n">http</span><span class="p">:</span><span class="c1">//reserved</span></code>).</li>
  <li>Check the domains <a href="https://www.ilovefreesoftware.com/26/programming/how-to-bulk-check-http-status-codes-for-urls-from-command-line.html">using <code class="language-kotlin highlighter-rouge"><span class="n">vl</span></code></a> (installed via <code class="language-kotlin highlighter-rouge"><span class="n">pip</span> <span class="n">install</span> <span class="n">vl</span></code>), specifically <code class="language-kotlin highlighter-rouge"><span class="n">vl</span> <span class="n">domains</span><span class="p">.</span><span class="n">txt</span> <span class="p">--</span><span class="n">debug</span> <span class="p">&gt;</span> <span class="n">domain-status</span><span class="p">.</span><span class="n">txt</span></code> taking around 10 minutes.</li>
  <li>Sorting the results alphabetically, resulting in a list of domains grouped by response codes.</li>
</ol>

<h3 id="how-were-the-colours-counted-and-sorted">How were the colours counted and sorted?</h3>

<p>This ended up being pretty technical, so a full write-up is available on my programming blog as <a href="https://blog.jakelee.co.uk/counting-pixel-colours-in-an-image">How to count the number of pixels for each colour in an image</a>.</p>

<h2 id="references">References</h2>
<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:broken-faq" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20120311152809/http://milliondollarhomepage.com/faq.php">https://web.archive.org/web/20120311152809/http://milliondollarhomepage.com/faq.php</a> <a href="#fnref:broken-faq" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:domain-registered" role="doc-endnote">
      <p><a href="https://www.whatsmydns.net/domain-age?q=milliondollarhomepage.com">https://www.whatsmydns.net/domain-age?q=milliondollarhomepage.com</a> <a href="#fnref:domain-registered" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:domain-cost" role="doc-endnote">
      <p><a href="http://news.bbc.co.uk/1/hi/magazine/4585026.stm#:~:text=Snowballing-,Alex%20spent%20%C2%A350,-on%20buying%20the">http://news.bbc.co.uk/1/hi/magazine/4585026.stm#:~:text=Snowballing-,Alex%20spent%20%C2%A350,-on%20buying%20the</a> <a href="#fnref:domain-cost" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:site-launched" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20090201203927/http://milliondollarhomepage.com/blog-archive.php#:~:text=Friday%2026th%20Aug%202005">https://web.archive.org/web/20090201203927/http://milliondollarhomepage.com/blog-archive.php#:~:text=Friday%2026th%20Aug%202005</a> <a href="#fnref:site-launched" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:first-sale" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20090201203927/http://milliondollarhomepage.com/blog-archive.php#:~:text=Monday%2029th%20Aug%202005">https://web.archive.org/web/20090201203927/http://milliondollarhomepage.com/blog-archive.php#:~:text=Monday%2029th%20Aug%202005</a> <a href="#fnref:first-sale" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:bbc-coverage" role="doc-endnote">
      <p><a href="http://news.bbc.co.uk/1/hi/england/wiltshire/4271694.stm">http://news.bbc.co.uk/1/hi/england/wiltshire/4271694.stm</a> <a href="#fnref:bbc-coverage" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:half-sold" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20090201203927/http://milliondollarhomepage.com/blog-archive.php#:~:text=Wednesday%2026th%20October%202005">https://web.archive.org/web/20090201203927/http://milliondollarhomepage.com/blog-archive.php#:~:text=Wednesday%2026th%20October%202005</a> <a href="#fnref:half-sold" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:auction-opened" role="doc-endnote">
      <p><a href="https://web.archive.org/web/20090201203927/http://milliondollarhomepage.com/blog-archive.php#:~:text=%40%2011%3A56pm-,Sunday%201st%20January%202006,-Last%201%2C000%20pixels">https://web.archive.org/web/20090201203927/http://milliondollarhomepage.com/blog-archive.php#:~:text=%40%2011%3A56pm-,Sunday%201st%20January%202006,-Last%201%2C000%20pixels</a> <a href="#fnref:auction-opened" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:final-sale" role="doc-endnote">
      <p><a href="https://www.theregister.com/2006/01/12/million_pixels/">https://www.theregister.com/2006/01/12/million_pixels/</a> <a href="#fnref:final-sale" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2017-links" role="doc-endnote">
      <p><a href="https://lil.law.harvard.edu/blog/2017/07/21/a-million-squandered-the-million-dollar-homepage-as-a-decaying-digital-artifact/">https://lil.law.harvard.edu/blog/2017/07/21/a-million-squandered-the-million-dollar-homepage-as-a-decaying-digital-artifact/</a> <a href="#fnref:2017-links" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2019-links" role="doc-endnote">
      <p><a href="https://www.bbc.com/future/article/20190401-why-theres-so-little-left-of-the-early-internet">https://www.bbc.com/future/article/20190401-why-theres-so-little-left-of-the-early-internet</a> <a href="#fnref:2019-links" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:link-rot" role="doc-endnote">
      <p><a href="https://blog.zomdir.com/2017/10/the-half-life-of-link-is-two-year.html">https://blog.zomdir.com/2017/10/the-half-life-of-link-is-two-year.html</a> <a href="#fnref:link-rot" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:rent-free" role="doc-endnote">
      <p><a href="https://justinferriman.com/your-1m-dollar-homepage">https://justinferriman.com/your-1m-dollar-homepage</a> <a href="#fnref:rent-free" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:google-trends" role="doc-endnote">
      <p><a href="https://trends.google.com/trends/explore?date=all&amp;q=million%20dollar%20homepage">https://trends.google.com/trends/explore?date=all&amp;q=million%20dollar%20homepage</a> <a href="#fnref:google-trends" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:viewing-time" role="doc-endnote">
      <p><a href="https://www.nngroup.com/articles/scrolling-and-attention/">https://www.nngroup.com/articles/scrolling-and-attention/</a> <a href="#fnref:viewing-time" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:horizontal-attention" role="doc-endnote">
      <p><a href="https://www.nngroup.com/articles/horizontal-attention-original-research/">https://www.nngroup.com/articles/horizontal-attention-original-research/</a> <a href="#fnref:horizontal-attention" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:unicorn-startup" role="doc-endnote">
      <p><a href="https://www.bloomberg.com/news/articles/2019-02-06/meditation-app-backed-by-ashton-kutcher-is-valued-at-1-billion">https://www.bloomberg.com/news/articles/2019-02-06/meditation-app-backed-by-ashton-kutcher-is-valued-at-1-billion</a> <a href="#fnref:unicorn-startup" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Jake Lee</name></author><category term="2005" /><category term="2006" /><category term="Advertising" /><summary type="html"><![CDATA[When I was at school in the early 2000s, the internet was a very different place. Websites could be built in a couple of days, and if they had a good idea end up making $1m like Alex Tew’s Million Dollar Homepage. Read on for an analysis of the links, popularity, colours used, and a bit of history!]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://history.jakelee.co.uk/assets/images/banners/milliondollarhomepage.png" /><media:content medium="image" url="https://history.jakelee.co.uk/assets/images/banners/milliondollarhomepage.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>