ZZT

ZZT is a 1991 action-adventure puzzle video game and game creation system developed and published by Potomac Computer Systems for MS-DOS. It was later released as freeware in 1997. It is an early game allowing user-generated content using object-oriented programming. Players control a smiley face to battle various creatures and solve puzzles in different grid-based boards in a chosen world. It has four worlds where players explore different boards and interact with objects such as ammo, bombs, and scrolls to reach the end of the game. It includes an in-game editor, allowing players to develop worlds using the game's scripting language, ZZT-OOP.

The game was designed by mechanical engineering student Tim Sweeney in roughly six to nine months. It was built from a text editor conceived in 1989 to build a better editor for Pascal, after he disliked editors that came with other programming languages. During development, he experimented with adding creatures and characters. He built boards that grew into worlds and refined the editor he used to create his own games—while studying at university. Initially, he made the game for himself, but after positive reception from his friends and neighbors, and seeing the potential for making a profit by releasing the game under shareware, he released it publicly. He marketed the game by distributing it across shareware vendors and bulletin board systems, earning money through mail orders for registered worlds.

ZZT was a commercial success, with around 4,000–5,000 copies by 2009. The game received mixed reception. Much of the positive reception focused on the gameplay, editor, and the community it developed. Criticisms focused on the game's graphical and audio limitations and perceived unfair difficulty. The sequel is Super ZZT (1991). Other ZZT worlds were published later as Best of ZZT (1992) and ZZT's Revenge (1992). ZZT's success led Sweeney to change his company's name to Epic MegaGames, and focus on competing as a video game company using shareware to distribute commercial games. Epic MegaGames later developed other successful games including Jill of the Jungle (1992) and Unreal (1998), using lessons from ZZT's success by focusing on developing the editor and engine to allow others to more easily make games. The game inspired one of the earliest active modding communities, which has grown by making new worlds, editing tools, and source ports, and inspiring some in the community to pursue a career in the video game industry.

Gameplay
ZZT is a top-down action-adventure puzzle video game and game creation system. Players control a white smiley face on a navy blue rectangle that can move around in four directions. Players can interact with objects by touching or shooting at them. Touching ammo containers, gems, torches, and keys adds them to your status bar. Boxes of ammo allow players to fire bullets at objects, gems increase health and are used as currency, torches light up a small area around the player in dark boards, and colored keys allow players to open same-colored doors. Other objects in the game include bombs, doors, and scrolls. One type of object called "Object" interacts based on written scripts using the game's scripting language, ZZT-OOP. As an example, the object could be programmed to give the player health, or fire bullets at the player, flashing text in response. At any time, players can save their progress, and return to the game's exact state.

Game worlds are made up of objects within grid boards that connect to each other. Players can move across different boards by either reaching the edge of the board or entering teleporters. Six game worlds were made for the game's release; four of them are game worlds, and each of the four starts in a different area. Town of ZZT starts in a hub world with four buildings mixed with six exits, Caves of ZZT opens with a sparse area of torches and a scroll, Dungeons of ZZT starts with a linear opening sequence with gates that lock the player inside, and City of ZZT opens with a city street as a hub with a few structures. Two other worlds were included, serving different purposes. Guided Tour ZZT's Other Worlds previews boards of each game worlds, and Demo of the ZZT World Editor creates parallels to a museum by showing all of the items, terrains, and creatures that make up ZZT. The goal for players are to reach the end board, progressing either by collecting purple keys to open locked doors, or gathering objects throughout the world. Boards can contain action or puzzles. Action boards have the player face off against creatures. Creatures include lions, tigers, and bears. When creatures, bullets, or stars touch the player, health is lost. Once the player runs out of health, the game ends. Puzzles consist of untangling combinations of boulders, sliders, and pushers, or mazes that can include invisible walls and teleporters. Some puzzles can trap the player, leading players to require returning to an earlier save.

ZZT includes an in-game editor, allowing players to make their own worlds. Players start with yellow normal walls surrounding a new board as a blank screen. The editor allows players to add and arrange items, creatures, and terrain, and connect different boards together. Each board can be set to include specific settings, such as adding a time limit, making the board dark so the player could not see the board without a torch, or limiting the number of bullets on screen at any given time. Each board had its own isolated variables within the game, and through scripting players could create ten different boolean flags for the environment, shared across boards. Using ZZT-OOP, objects can be named, given commands for actions, and can send and receive messages. Everything within ZZT is displayed in the 255 characters of the IBM PC's character set to create environments. The game supports sixteen colors, but the editor only permits seven colors for colorable objects, and has limits in the amount of objects being placed in each board. Players eventually learned additional ways to add more colors to the game utilizing commands and different text characters, and editing world files. The PC speaker permits seven notes at several different octaves, and instruments with unique pitches of clicks, pops, and snaps to represent percussion. Sounds are played through normal gameplay, or making custom sounds through scripting.

Development
Video game programmer Tim Sweeney, studying mechanical engineering at the University of Maryland, first developed ZZT as a text editor in Turbo Pascal. During this time, Tim did not know how to program graphics and only had a 286 computer and a Model M keyboard. The text editor idea came from disliking the included editors for the programming languages he tried on his PC. Instead he wanted to recreate his previously made Pascal-like programming environment for the Apple II. He experimented with adding collision to text characters, and made the cursor a controllable character. He found it more fun to make it into a game by adding bullets and creatures to fight. From there, he designed his first levels from text files, creating different boards similar in style to Atari's Adventure, while continually offering additions to the game and editor. Sweeney studied during the day, and worked on his game during the night. The text-based graphics allowed him to produce ideas such as talking trees or interesting characters without breaking immersion. Most of these additions were his own, but he occasionally took ideas from Kroz, such as the bomb. Development took around six to nine months, with under 1,000 hours of time spent developing the game, and making around 20,000 lines of Pascal code.

He shared it with friends and neighborhood kids, taking notes of their joy and excitement playing his own game. He discovered that making games allowed him to share something to the world, and could earn more income compared to wage earners, and chose to sell the game. The game's episodic model took inspiration from Apogee's shareware model, and he encouraged spreading the game across shareware vendors, user groups, and bulletin board systems. He operated his company out of his bedroom, having orders sent to his parents' address, where he would send the remaining episodes on floppy disks by mail delivery. During development, he wrote to Scott Miller for advice and to learn more about the industry. Miller responded with advice and encouragement. Sweeney chose the name so it would be listed last alphabetically in shareware catalogs and on bulletin board systems, though a fan later suggested the backronym of "Zoo of Zero Tolerance", which Sweeney endorsed. He sold it as the first major game with object-oriented programming. ZZT was released on January 15, 1991. Town of ZZT alongside the in-game editor was distributed freely, while the other official worlds could be ordered to receive a single floppy disk including the purchased worlds, and drawn maps of each of the worlds. At one point, City of ZZT was also distributed as ZZT's City, through Softdisk's On Disk Monthly service. Each of the remaining official worlds, along with other ZZT games were later released as freeware on October 10, 1997.

Reception
Following ZZT's release, about three to four copies were sold daily, at around 800 copies by November 1991, and around 4,000 to 5,000 copies in total by 2009. Sweeney earned around US$100 1991 per day by November 1991, and around US$30000 1999 from ZZT by May 1999, of which most of the profit came from its first year. After Sweeney moved out of his parents' house to establish proper corporate headquarters for Potomac Computer Systems, then renamed Epic MegaGames, his father Paul Sweeney, continued fulfilling mail orders to the original address under the Epic Classics label, allowing for purchase of physical copies of ZZT. The final copy of ZZT was shipped to game designer Zack Hiwiller in November 2013.

Contemporary and retrospective reviews from critics were mixed. A comment from Computer Gaming World billed ZZT as "truly charming", finding the gameplay simple to learn. Scott Wolf of PC Gamer (US) stated the graphics and sound for ZZT to be "truly awful", while the gameplay serves as a flashback to "when gameplay was not overshadowed by flashy video and animation". Benj Edwards has called ZZT an "influential and underrated game", crediting its current enjoyment from playing community made worlds and making unexpected things with the "fairly robust" built in editor. This is while crediting the official worlds for being a "depthy adventure game full of puzzles, challenge, and humor". Chris Kohler of Wired called it a simple, fun, and not always intuitive game design tool under the façade of a simple adventure game, blending seamless game design and play that makes it attractive and user-friendly. He found making a game fun, due to the interface being nearly identical to the game, allowing for the easy placement of objects and terrain. Rock Paper Shotgun's Ollie Toms focused on the editor, finding the game to be "a colourful, characterful, years-long course in scripting and programming games". He wrote that though ZZT-OOP was basic and limited, children could learn about and make games without knowing anything about programming. Hardcore Gaming 101 in a podcast episode stated ZZT was "not all that fun", criticizing that official worlds and community made worlds included unavoidable damage, and instant death. They found that games that attempted to expand and push the engine further are generally "rough around the edges", or "more functional rather than good". Rather, they admired ZZT like a science experiment or a demo from a demoscene, existing to study and push the limits of ZZT, finding the game itself and the community that built from it technically impressive.

Legacy
By getting $100 per day from ZZT, Sweeney was convinced he could earn enough from the shareware industry, and decided to work in the video game industry. He renamed the company to Epic MegaGames in October 1991. Shortly after the release of ZZT, Sweeney started a level designer contest for registered users to make their own worlds and submit them to him. Over 200 users submitted their custom worlds. The best collaboration games that won the contest were included in The Best of ZZT and ZZT's Revenge, released in 1992. The winners of the contest received prizes of gift certificates, while others would receive honorable mentions. The six winning custom worlds that made up ZZT's Revenge earned the designers employment in Epic MegaGames, with the winning worlds being "Ezanya", "Fantasy", "Crypt", "Smiley Guy", "Manor", and "Darbytown". Sweeney later asked one of these developers, Allen Pilgrim, to create the shareware world "Monster Zoo" for the sequel to ZZT, Super ZZT, released on October 15, 1991. Other worlds available for purchase were "Proving Grounds" and "Lost Forest". The game plays similarly to ZZT, while adding more features such as greater colors accessible within its editor, new enemies and objects, and scrolling map screens that allowed for larger boards than in ZZT. Although Super ZZT incorporated several additions to ZZT, it never caught on with the ZZT community like the original ZZT did, and very few games were ever created for Super ZZT, with one reason being due to the editor being hidden during normal play.

After publishing Best of ZZT and ZZT's Revenge, Sweeney realized the community began creating worlds that reached or exceeded the quality of his work. Furthermore, he believed that games with cutting edge graphics and sound similar in commercial quality to Super Nintendo Entertainment System or Sega Genesis games would have higher sales in the shareware model, taking influence from Commander Keen and Duke Nukem. As such, he moved away from ZZT indefinitely to work on other projects like Jill of the Jungle. He has commented on wanting to build a massive-multiplayer online version of ZZT during an interview, but his future focus on the company was to move forward with new franchises, while learning from the success of ZZT. Sweeney and Mark Rein later credited that much of the core idea of Unreal and Unreal Engine came from what Sweeney learned from the success of ZZT, with a focus on building games with clean code and editing tools, so that others can build their own games. Mark Rein has claimed that Unreal Tournament became a spiritual successor to the game thanks to the game's modding community and versatile developer tools.

An early modding community emerged within Prodigy, America Online, Compuserve, and the Internet. Many fan-made worlds and editing tools are curated on a fan website, Museum of ZZT. The game provided the community with an outlet for creativity and self-expression without artistic or programming skills, especially among stigmatized groups such as transgender people. As of 2021, more than 3,000 worlds have been created using the built in editor, or third party editors such as KevEdit. Tim Sweeney has claimed that tens of thousands of workers in the game industry have previously made worlds in ZZT. A port called Zeta allows for playing ZZT games on Windows or a web browser, and another source port, DreamZZT, allows ports to consoles, specifically the Dreamcast and Nintendo DS. Worlds continue to be developed that have expanded beyond its intended genre, creating shoot 'em ups, falling block puzzle games, complex role-playing games, and point-and-click adventure games, sometimes deriving from other entertainment releases. The source code of ZZT was lost in a computer crash, a community developer, Adrian Siekierka, reconstructed and released the source code in 2020, creating a binary accurate executable of ZZT with Sweeney's permission.

On January 28, 2023, the original source code for ZZT 3.0 (without third party content) was uploaded to GitHub under the MIT License with permission of Tim Sweeney.

Other games have been inspired by ZZT, such as MegaZeux, PuzzleScript, and Frog Fractions 2, and authors of ZZT worlds became professional video game developers. Rock Paper Shotgun has made comparisons to Minecraft and Roblox, in its ability to serve as a start for new video game developers. Wired and Hardcore Gaming 101 found similarities in its seamless blend of gameplay and editing to LittleBigPlanet.