• Login
    • Report A Bug
    • System Information
    • System Tests
    • System Policies
    • Code Documentation
    • Occam Source Code
    • Web Client Source Code
    • About Occam
    • Acknowledgements
    • Guides / Documentation
    • Publications

translation missing: en.flash.saving
translation missing: en.flash.error
  • Bibliography Data
  • Metadata
ZZT World
    Upsidetown
    QmPyccJ7ayHUKpQMSaSM9MkBmnrsWuc8k4YbEDxoW79U2F
    5dtiWtKGBDrNNJHZZKjF1QyNDWWuum
      QmPyccJ7ayHUKpQMSaSM9MkBmnrsWuc8k4YbEDxoW79U2F
      5dtiWtKGBDrNNJHZZKjF1QyNDWWuum

      • View
      • Details
      • Files
      • History
        • JavaScript must be enabled.

          There was an error retrieving this content.

          The content could not be found.

        • Released

          August 19, 2020

          Source

          https://museumofzzt.com/file/view/upsidetown/
          • Adventure
          • Experimental
          • Font
          • Remake
          # Upsidetown
          
          Created conveniently for "GAMES MADE QUICK??? FOUR+" by Dr. Dos
          
          Requires [ZZT v3.2](https://museumofzzt.com/file/z/zzt.zip) and
          [Zeta](http://zeta.asie.pl/) to run.
          
          Windows users can run UPTOWN.BAT with Zeta and ZZT installed to load the font
          and Zeta automatically.
          
          Linux users should run `zeta86 -e UPSIDE.COM -e ZZT.EXE`
          
          To play without the font, just run Zeta directly.
          
          ## Description
          
          "Upsidetown" is simply Tim Sweeney's 1991 ZZT world "Town of ZZT" flipped
          vertically. It was done mostly as a goof. Something simple (so I thought) that
          could be finished quickly enough during a jam in which I was more invested in
          watching speedruns more than anything else.
          
          Originally, I was going to mirror the world horizontally but then I realized
          Upsidetown is a good pun.
          
          ## Guidance for non-ZZTers
          
          If you've never played ZZT before, simply choose keyboard and color on the main
          screen and hit "P" on the game's title to begin playing. If you're using the
          font the text will be a bit hard to read.
          
          Arrow keys move. Shift + arrow keys shoot. "T" lights a torch. "S" saves. Town is
          most people's first ZZT game so it shouldn't be too hard to learn what things
          do. It does however have a few possible softlocks, some of which won't be
          immediately obvious. (Save before you do anything in the bank.)
          
          You can use "?" to open a cheat prompt where you can use the following cheats:
          
          * "HEALTH"
          * "AMMO"
          * "TORCHES"
          * "GEMS"
          * "KEYS"
          * "ZAP"
          
          The cheats are not case sensitive. "?ZAP" can be used to erase the tiles
          adjacent to the player.
          
          ## Development
          
          The process for turning Town upsidedown begins with a script for Zookeeper
          that takes an input world and flips the board layout and stats. I actually wrote
          the script a few days prior to the jam as just a silly idea I had, then realized
          there was more effort needed to actually get a fully playable game out of the
          script and shelved it like most things I start.
          
          But then the jam happened and I didn't have any better ideas so I went back to
          it.
          
          The script only properly handled the most obvious of things which meant that
          after it was done generating a new world, I had to manually make several changes
          by hand including:
          
          * Replacing all directions in ZZT-OOP (so /n/n/n became /s/s/s)
          * Changing the direction of transporters
          * Changing the direction of blinkwalls
          * Changing the direction of duplicators
          * Changing the direction of conveyors[1]
          
          In reality, modifying the script to do everything but ZZT-OOP should have been
          trivial, but I already had flipped the OOP first and didn't want to have to
          merge my work with a better script output.
          
          Also in reality, the code in Town at least is simple enough that I probably
          could have rigged up ZZT-OOP flipping as well.
          
          Even as I wrote the script for flipping, I knew that a smarter idea would be to
          use the Reconstruction of ZZT's source code to straight up draw the board
          upsidedown and not have to modify the ZZT world whatsoever, but then I'd have
          to write Pascal instead of Python, and let's be real this is a novelty at best.
          
          With the project mostly completed I realized that actually the easiest way to
          play some upsidedown ZZT is to use a web browser build of Zeta and just apply
          the CSS `transform: rotate(180deg);` to the canvas.
          
          Also I made a font that turns code page 437 upsidedown as well. I tried doing
          my final full run test of the game with it, and promptly quit as it was totally
          messing with my mind and I was struggling to cross the three lakes board.
          
          Also also my script had a few bugs in it which meant more hand-fixing things
          than I would have liked, such as corrupting the last board, or breaking horribly
          when the player was located on the very top or very bottom row. This is one
          reason why I didn't release the script. The other reason is that it requires a
          yet unfinished updated version of the Zookeeper library for manipulating ZZT
          worlds that I'd also have to distribute for anybody to be able to use it.
          
          ## Cool Links
          
          * [Museum of ZZT](https://museumofzzt.com) - A modern archive of 2000+ ZZT
          worlds which can be downloaded, explored, or played in a browser
          * [Worlds of ZZT on Twitter](https://twitter.com/worldsofzzt) - A Twitter bot
          which posts screenshots of random ZZT boards every three hours and serves as
          the main source of news about ZZT
          * [Worlds of ZZT on Patreon](https://patreon.com/worldsofzzt) - I work on the
          Museum and write about ZZT games. This is patron supported if you'd like to
          offer financial support.
          * [Worlds of ZZT on Discord](https://museumofzzt.com/discord) - Come hang out
          with us and talk about ZZT games and make ZZT games. We'd love to have chill
          people who enjoy creating.
          
          [1] Depending on the way they're used, you might not have to change them at all.
          Boards like the mixer play just fine, and you can use the boulders in the armory
          to still get the guardian's key, but the final challenege needs them to be
          flipped in order for the player to be able to exit the room with the tigers
          unless the player wants to abuse ZZT's pause mechanics.
          

          Related

          • maintainer

            Museum of ZZT Mirror

          ResourcesHelp

          This section tracks other objects or external resources.

          The external resources, such as tarballs or Git repositories, are then available as part of the object. Their files can be considered local to the object and usable in scripts or as part of a build process.

          For resources that are only to be used as part of the build or runtime of the object, it is best to describe those local to those sections.

          • upsidetown.zip24.72KiB

            application/zip

            Upsidetown ZZT World Distribution

            https://museumofzzt.com/zgames/u/upsidetown.zip

            QmNmyiGB6Bf2EtL1fRZgFLGV9KiUWVowEwnSkoSSQGvyrK

            QmXjv7kgyakwqqNmFikuqboStBHDDsC6by2UcPozDebDrN

            Qme1NC72obhzLGSUMitMbF5daoUbchgqCMuAqQj6BfmqCQ

            download

          Share

          • URL

            Copy
          • Embed Link

            Copy
          • QR Code

        • JavaScript must be enabled.

          There was an error retrieving this content.

          The content could not be found.

        • JavaScript must be enabled.

          There was an error retrieving this content.

          The content could not be found.

        Confirm
        Do you wish to proceed?

        Confirm message?