al-shamoasis

Logistics | January 01, 0001

Before Gears, Before Unreal, There Was ZZT

The following is an excerpt from ZZT, Anna Anthropy’s upcoming book about Epic boss Tim Sweeney’s classic game creation system. Easy Being An Object For all the worlds of ZZT I would ultimately explore, it took me a long time to work up the nerve to press the W key, the one labeled “World: TOWN” on the ZZT start-up screen. What could a button labeled “World” possibly do? I was scared, I think, that something fundamental about the world of ZZT would change, some physical constant of the universe rewritten, and the familiar Town of ZZT would be swept away forever. It was the same category of fear as my resistance to running past the end-of-level pipe in stage 1-2 of Super Mario Bros. to get to the secret Warp Zone. I was terrified Mario would be lost forever.(new Image()).src = 'https://capi.connatix.com/tr/si?token=995c4c7d-194f-4077-b0a0-7ad466eb737c&cid=872d12ce-453b-4870-845f-955919887e1b'; cnx.cmd.push(function() { cnx({ playerId: "995c4c7d-194f-4077-b0a0-7ad466eb737c" }).render("79703296e5134c75a2db6e1b64762017"); }); At some point, I built up the courage and hit W. One of ZZT’s scroll menus instantly unfurled, listing these choices: TOWN—”The Town of ZZT,” TOUR—”Guided Tour ZZT’s Other Worlds,” and DEMO, “Demo of the ZZT World Editor.” World Editor? I selected DEMO, and the screen changed, from Town’s bestiary to a white-and-purple screen that read “DEMO — an interactive demonstration of the properties of various items, creatures and terrains in ZZT.” Below that: “a guide for budding game designers.” DEMO is a kind of museum, containing exhibits on all of the different pieces that make up ZZT. There’s a hall of Items, a chamber of Terrains. There’s a two-board-long zoo of Creatures, who prowl behind placards as they wait for you to enter their rooms. Lions, Tigers, Ruffians. Objects? “Object” was a funny name for a smiley face pacing an invisible cell, the most human-looking thing in the bestiary. What had this person done to be dehumanized into an Object, to be locked up in a zoo with a bunch of faceless animals? Tentatively, I entered the Object room. Inside is a circus routine of green smiley faces doing tricks. Pacing in a square. Shooting a single spot on the wall, over and over. One stands, doing absolutely nothing, labeled “Idle.” And there’s one labeled “Interact,” smiling and inviting me to come touch it. I did. “Hi, I’m an object. I can interact with you by presenting a menu of choices. What would you like me to do?” > Give you 1000 bonus points, > Shoot you three times. I chose the second option, calling its bluff. Surely the green fellow was just joking around; I had a naive concept of safety in game settings designed for my education and amusement. But Asimov’s Laws of Robotics did not apply here: Sure enough, the “you’re hurt” sound echoed three times. “I have just shot you not ONE, not TWO, but THREE times. Have a nice day.” DEMO was leading me toward an idea that was almost too big to accept, a great chasm of possibility. Objects were the same as the Jazz Man in the House of Blues? The musical buttons he required me to play? I had seen that there was an editor, but I’d assumed that it was only capable of generating “mindless” things, Centipedes and Gems and Boulders, things that operate on instinct, on self-contained logic. I’d imagined that all of the interactions in Town that were so meaningful to me—the Guard in the Armory, the Talking Tree—had been the product of some Real programming language, an arcane vocabulary beyond my understanding or reach. The editor had created all these creatures? The same editor I all yono app see when I press the E key? Yellow Borders When you press E, your yono all rummy status bar changes. Where your Ammo, Gems, Torches stores would normally be listed are new categories: “Item,” “Creature,” “Terrain,” “Draw mod,” “Pattern,” “Color.” And there’s a new message box, white on red, a sudden inversion of the gentle yellow-and-blue windows you’ve seen so far. “Room’s Title,” it says. It wants you to type something in. You don’t know what the fuck to type in; you haven’t thought that far ahead. So you jam a bunch of keys and press ENTER, and the box accepts it and goes away, leaving you with the blinking cross-shaped cursor and the Yellow Border. A box of yellow Normal Walls (walls covered in a pattern of black dots, as opposed to Solid Walls, which are unbroken) around the edge of the screen, the Yellow Border is ZZT’s equivalent of the blank page. But it’s worse than that because it’s not blank. It’s something ugly. A box of mottled yellow around the edge of the screen, lacking even the reassuring symmetry of a true square, its vertical sides thicker than its horizontals. It taunts you. You want to get rid of it because it’s hideous, because it doesn’t look like the game you want to build—the world you want to create. But you don’t know what to replace it with. Yet. What are you making? Do you even know? You learn to hate the Yellow Border. You learn to hate games that include Yellow Borders in them, because they remind you of your failings. And you learn how to get rid of it as quickly as possible: move the cursor next to it, press ENTER to “pick up” a tile of empty black nothing, move the cursor over the Border, press X to fill it with that nothing. Nothing is so much easier to work with. Now you need to figure out how to make your first game. Mad Scientists Whatever my first ZZT game—or world—was, it never escaped my family’s old computer, sealed in the digital tomb of its hard drive. I think it involved a mad scientist (who would have been named Dr. Something), the stealing of a priceless artifact (maybe a chalice? I had probably seen Indiana Jones), and time travel. The time travel plot leapt into the game halfway all yono app through when I got bored of the recover-the-artifact plot. There was a city made of all blue buildings, my imitation of the one where Town of ZZT takes place. I populated my town with blue people, blue Objects, to mill through the streets like a crowd, but I only knew enough to make them shuffle back and forth on the same rote path, /e/e/e/n/n/n/s/s/s/w/w/w, a town full of people, all of them walking in synchronicity, right right right, up up up, down down down, left left left. In one of the buildings stood a time machine. Another Dr. waited there, a good scientist, a preserver of order, who told you that the villain has escaped into the past, and if you wanted to follow, well, I suppose you could borrow my time machine. What happens after you leap into the time machine, I can’t remember. I lacked any sense of composition: My screens—or “boards”—were big empty rooms, one step away from the Yellow Borders I started with, with whatever object of significance cold in the center of an enormous black void. Eventually I would become obsessed with making every board as dense as possible by filling the space as completely as I could. My experiments stayed on that computer, a closed system with no outside input — though I showed my mom one of my games once. The idea that other people might have been making ZZT worlds never occurred to me; the idea that I would actually play those worlds was fully beyond my conception. ZZT-OOP ZZT-OOP is the scripting language for ZZT. The OOP stands for “Object-Oriented Programming,” the objects in this case being just that: the Objects that danced and sang for me in DEMO.ZZT. ZZT-OOP looks remarkably unlike code, or whatever arcane mystery I thought code must have looked like at nine or ten. yono all rummy An Object’s script is built out of a vocabulary of a precious few symbols: @ indicates an Object’s name. An Object’s name might be @Francine or @Gun or @toilet. It’s like Twitter in a superficial way. # indicates a command. Like #give gems 200 or #put e purple key or #endgame. : is a message. Several of these are intrinsic, an inherent part of the game. For example, :touch happens whenever the player’s smiley touches the Object, pushes against it. The Object will jump to the part of its script that says :touch and then do whatever it says after it. There’s also :shot and :bombed, which respond to Bullets and explosions. Objects can send themselves messages. For example, I can tell an Object :loop #give score 1 #send loop And it’ll just keep giving the player points forever. Or another Object could send that Object a message by using its name. #send toilet:loop Text with no symbol at the left of it just tells the Object to display that text. For example, Hello! would display the word “Hello!” in flashing text on the screen for a few seconds. If a message is longer than a single line, one of ZZT’s scrolling text boxes will pop up, pausing the game while the player reads. / tells an Object to take a step in a direction. /n/n/n means: north, north, north, or “go three steps north.” But you can also tell an Object /i—”go idle.” Idle is a tool you can use to pace motions and events. :whimper #char 1 /i #char 2 /i #send whimper #char changes the Object’s character, the text sigil that represents it. The Object above would blink between character 1, the hollow smiley, and character 2, the solid smiley, with a small pause in between frames. ? is like / in that it tells an Object to take a step. If an Object tries to /e, though, and there’s something to the east of it, blocking its way, it’ll stand there and wait until the thing blocking it has moved. If that’s a Solid wall, it’ll wait forever. ?e tries to move east, but if it’s blocked, the Object forgets about moving east and moves on to the next line in its script. There are a number of ways Objects are able to move beyond the preset directions of north, south, east, and west. Seek means “toward the player.” #shoot seek means “shoot at the player.” Opp means the opposite direction: ?opp seek means “step away from the player.” Then there’s cw and ccw, for clockwise and counter-clockwise. An Object who continually ?cw seek will attempt to run in a circle around the player. And there are directions that can be used to generate randomness: rndns randomly picks either north or south, rndne picks either north or east, and rndp picks a random direction perpendicular to the direction it’s given. For example, ?rndp n would choose east or west. There’s no command to straight-up pick a random direction from the cardinal four, but there’s a way to get one anyway: ?rndp rndne will pick a random direction perpendicular to either north or east — meaning either east/west or north/south. You develop a repertoire of little tricks like this: Push the player away from an Object by #put seek blue boulder and then #change blue boulder empty to get rid of it, use Score to keep track of how many experience points the player has earned. These tricks are all little, but you feel like a genius when you realize you can command the native pieces of ZZT to do your bidding. I couldn’t program, but I could think in terms of simple game pieces and come up with ways to make them interact. Why ZZT Was the Perfect Game-Making Tool for a Nine-or-Ten-Year-Old Girl In 2007, Jeremy Penner founded glorioustrainwrecks.com—a site devoted to celebrating expression and creativity in digital games over technical polish, and to empowering everyone to make games with accessible game-making tools. Jeremy makes games with his six-year-old son, Eric. Jeremy says, “ZZT-OOP is very comfortable with its limitations. Its limitations make it approachable. You have a very small amount of things that you have to learn. “When you’re starting out, you don’t approach making a ZZT game by saying, ‘Here is the vision of the thing that I want to make; how can I build that with ZZT?’ It’s much more natural to ask, ‘Here are the pieces that ZZT gives me; how can I fit them together in an interesting way?'” ZZT was perfect for me when I found it—or when it found me—for many reasons. The limitations of ZZT, for a kid who didn’t know how to animate computer graphics or compose digital music, were profoundly liberating. 256 characters in sixteen colors were all I needed and all I would ever need. They are yono all app the building blocks of the universe, essential text atoms that are never created or destroyed but merely change their shape. Knowing every shape, every combination of colors, I could conceptualize any possible graphic yono all app the editor could produce. The same is true of sound. Instead of having to learn to make music, to find someone to make music for me, or to find a piece of music I could steal for my game, I could just put a tune together right there in the editor. I would string together random notes—ascending in tone when something good happened or descending when something bad did—and usually it worked. #play 111111 makes a serviceable “door creaking open.” ZZT limited me in the right ways. It also opened up to me in the right ways. ZZT-OOP is capable of so many things way beyond what its creator ever envisioned, complicated machines comprised of systems of Objects all talking to each other, but it was also really well-suited for the simple stories I was trying to tell. Move a thing around a screen, display a message, ask the player a question. ZZT was the perfect theater to act out my confused childhood fantasies, my flailing attempts at self-identity and exploration. Operas where characters of different genders were captured and recaptured, tortured, held, and gratified. Out of my confusion and dysphoria I was building worlds that moved and spoke, worlds that responded to my touch. ZZT is published by Boss Fight Books. You can preorder it here

Comments (3)

SlotMaster7783

Sometimes I wish there were more ways to earn rewards through loyalty programs or frequent player bonuses. Adding seasonal events or special challenges could enhance the excitement even further. I appreciate the themed slot games, especially those based on movies and TV shows. They make the gaming experience more engaging and immersive. The combination of storyline, visuals, and bonus features makes each game feel unique. The promotions and bonuses offered are very generous. I especially love the daily free spins and deposit bonuses. They make playing even more enjoyable and increase my chances of winning big. The platform keeps me engaged for hours every day.

ReelFanatic6207

I really enjoy playing the slot games here. The variety is amazing, from classic reels to modern video slots with interactive bonus rounds. Every spin feels like an adventure, and the graphics and sound effects are top-notch, making the experience immersive and exciting. Sometimes I wish there were more ways to earn rewards through loyalty programs or frequent player bonuses. Adding seasonal events or special challenges could enhance the excitement even further. The variety of games is excellent, including table games like blackjack, roulette, and baccarat, in addition to slots. This keeps the platform interesting and allows me to switch games depending on my mood.

LuckyPlayer5516

I appreciate the themed slot games, especially those based on movies and TV shows. They make the gaming experience more engaging and immersive. The combination of storyline, visuals, and bonus features makes each game feel unique. The mobile interface is smooth and intuitive. I can play all my favorite slots on the go without experiencing any lag or glitches. The design is responsive and user-friendly, which makes gaming on my phone just as enjoyable as on my computer. The progressive jackpots are thrilling, and it's exciting to watch the jackpot amounts grow as more players spin the reels. I hope they add even more jackpot slots because it adds a lot of excitement to the gameplay.

Recommended Reading

Alliance & Friend Links

สล็อต p31 เครดิตฟรี 188 u31.com เข้าสู่ระบบ u31 เครดิตฟรี 31 บาท winner55 ww winner55 สมัคร winner55 เครดิตฟรี​ winner55 ทางเข้า สล็อต​ winner55 com เพื่อ เข้า ระบบ ค่ะ สมัคร winner55 เครดิต ฟรี 188 ทางเข้า winner55 ผ่านโทรศัพท์มือถือ​ Yono all app all yono app go rummy holy rummy royally rummy rummy 365 rummy 51 rummy best rummy golds rummy mars rummy master rummy modern rummy nabob rummy noble rummy satta rummy star rummy wealth rummy win yono all app yono apk yono arcade yono business sbi yono business rummy meet joy rummy rummy new app rummy nobel rummy royal Yono all app Yono all app Yono all app Yono all app สล็อตฟรี สล็อตฟรี ทดลองเล่นสล็อตฟรี โปรโมชั่นสล็อต U31 com h25 com สล็อต m358 เครดิตฟรี 188 w69 slot เครดิตฟรี 188 บาท pxj เข้าสู่ระบบ winner55 ทางเข้า สล็อต l86.com สล็อต pg168 ทางเข้า ทางเข้า w88 ใหม่ ล่าสุด bk8สล็อตฟรี PIGSPIN เครดิตฟรี 100 huc99สล็อตฟรี dafabet mc888 riches888pg jinda44 e19 betdog sbfplay ufa747 pay69 slot ดาวน์โหลด ufa888 riches777 g2g1bet H25 h25 com สล็อต​ h25 com เข้าสู่ระบบ​ h25 com สล็อต​ h25 com เข้าสู่ระบบ​ u31 game เข้าสู่ระบบ u31 เครดิตฟรี 188 u31 เข้าสู่ระบบ w69 w69 slot ทาง เข้า​ w69 slot ทางเข้า​ w69 slot เครดิตฟรี 188 บาท​ w69 เข้าสู่ระบบ​ h25 com สล็อต​ H25 สล็อต w69 slot ทาง เข้า yono all app yono all app w69 slot H25 com สล็อต w69 slot u31.com เข้าสู่ระบบ u31 ทางเข้า u31 เข้าสู่ระบบ ทางเข้า winner55 ผ่านโทรศัพท์ มือ ถือ winner55 ทางเข้า สล็อต pg123 h25 com เข้าสู่ระบบ โค้ดเครดิตฟรีสมาชิกใหม่ล่าสุด Y1 Games Y1 com Y1 apk y1 game Y1 com Game y1 com games Y1 COM Y1 Games Y1 App Y1 Game all yono app yono all rummy yono all app all yono rummy y1 games latest betdog y1 games y1 com สมาชิกใหม่ รับเครดิตฟรีทันที เครดิตฟรี Yono Rummy Yono All APP l86 l86.com สล็อต HUC HUC99 w88 huc HUC99 n98 pp slot super slot n98 z16 ทางเข้า z16 z16 เครดิตฟรี z16 เครดิตฟรี188