Colossal Cave Adventure

8 results back to index


pages: 392 words: 108,745

Talk to Me: How Voice Computing Will Transform the Way We Live, Work, and Think by James Vlahos

Albert Einstein, AltaVista, Amazon Mechanical Turk, Amazon Web Services, augmented reality, Automated Insights, autonomous vehicles, backpropagation, Chuck Templeton: OpenTable:, cloud computing, Colossal Cave Adventure, computer age, Donald Trump, Elon Musk, information retrieval, Internet of things, Jacques de Vaucanson, Jeff Bezos, lateral thinking, Loebner Prize, Machine translation of "The spirit is willing, but the flesh is weak." to Russian and back, Mark Zuckerberg, Menlo Park, natural language processing, PageRank, pattern recognition, Ponzi scheme, randomized controlled trial, Ray Kurzweil, Ronald Reagan, Rubik’s Cube, self-driving car, sentiment analysis, Silicon Valley, Skype, Snapchat, speech recognition, statistical model, Steve Jobs, Steve Wozniak, Steven Levy, Turing test, Watson beat the top human players on Jeopardy!

After a colleague shared Colossal Cave Adventure on a computer network, the game was passed around to more and more players. It attained a 1970s sort of virality and inspired other popular interactive text-based adventure games including Zork. In 1981 Crowther’s creation was honored by being the first game available for the original IBM PC. Decades later, the noted technology writer Steven Levy would note, “Playing adventure games without tackling this one is like being an English major who’s never glanced at Shakespeare.” Like Eliza, text-based computer games such as Colossal Cave Adventure were also many people’s first experience of something powerful: communicating with what felt like a sentient machine.

He stopped caving because the two of them couldn’t do that together anymore, and he wound up feeling estranged from his two daughters. But he came up with an unusual way to tackle both problems: He decided to create a caving-themed videogame that both he and his daughters would enjoy. Incorporating Dungeons & Dragons-inspired elements, he named it Colossal Cave Adventure. The object was to explore a labyrinth, which Crowther designed to resemble parts of the real Mammoth Cave, and collect treasures. This being the mid-1970s, the game didn’t have flashy graphics—or any graphics at all, Crowther had decided. Instead, the game consisted entirely of text. Although players were restricted to using one- and two-word commands, the game was revolutionary in that the action unfolded as a conversation.

Like Eliza, text-based computer games such as Colossal Cave Adventure were also many people’s first experience of something powerful: communicating with what felt like a sentient machine. In the 1980s and 1990s, conversational computing would advance significantly beyond the clipped exchanges of Colossal Cave Adventure—until it reached what felt like an unsurmountable wall, one that would require researchers to question core assumptions about how best to teach computers to talk. An excellent case study of how this unfolded comes from another innovator who started out in the realm of text-based games—Michael Loren “Fuzzy” Mauldin. An accomplished and colorful figure in the history of computing, Mauldin is known today for having invented one of the world’s first search engines, Lycos, which, at its peak in 1999, was one of the internet’s most visited destinations.


pages: 315 words: 89,861

The Simulation Hypothesis by Rizwan Virk

3D printing, Albert Einstein, Apple II, artificial general intelligence, augmented reality, Benoit Mandelbrot, bioinformatics, butterfly effect, Colossal Cave Adventure, discovery of DNA, Dmitri Mendeleev, Elon Musk, en.wikipedia.org, Ernest Rutherford, game design, Google Glasses, Isaac Newton, John von Neumann, Kickstarter, mandelbrot fractal, Marc Andreessen, Minecraft, natural language processing, Pierre-Simon Laplace, Ralph Waldo Emerson, Ray Kurzweil, Richard Feynman, Schrödinger's Cat, Search for Extraterrestrial Intelligence, Silicon Valley, Stephen Hawking, Steve Jobs, Steve Wozniak, technological singularity, Turing test, Vernor Vinge, Zeno's paradox

Text adventures such as Colossal Cave Adventure, Zork, and even Dungeons & Dragons (the offline version) used the most powerful graphics engine available—that of our minds. Because these games lacked graphics, they forced players to use their imaginations to visualize these worlds, which could be quite expansive. For example, in Colossal Cave Adventure, there was a map of the different “rooms” or caves you could explore. As players explored the world, they often tried to recreate this map (a famous example of this is shown in Figure 2: ). Figure 2: Map of Colossal Cave Adventure Text games are rarely played by today’s video game generation, although there is a subgenre called “interactive fiction” that keeps this tradition alive.

., 96 classical physics, 29, 125, 161, 166, 283–84, 288 classical vs. relativistic physics, 122–24 Cline, Ernest, 56 clock-speed and quantized time, computer simulations, 171–73 Close Encounters of the Third Kind, 232, 276 cloud of probabilities, 127 collective dream, 187–88 Colossal Cave Adventure, 27–29, 32, 34 Colossal Cave Adventure, map of, 29f computation, 18–19 computation, and other sciences, 287 computation, evidence of, 256–57, 267–68 overview, 246–47 computation in nature, evidence of, 263–66 computational irreducibility, 18, 79, 266 computer simulations clock-speed and quantized time, 171–73 . see also ancestor simulation; Great Simulation; Simulation Argument; simulation hypothesis; Simulation Point computer-generated imagery (CGI) techniques, 64–66 “Computing Machinery and Intelligence” (Turing, 1950), 85 conditional rendering, evidence of, 253–55 conflict resolution, 173 conscious players, people as, 114–15 consciousness, 148 as digital informaion, 17–18 as information and computation, 82 consciousness, defined, 115–16 consciousness, digital vs. spiritual, 116–18 consciousness and metaphysical experiments, 249–250 consciousness as information, 104–5 consciousness transference, 198–99 Constraints on the Universe as a Numerical Simulation (Beane, Davoudi and Savage), 255 Copenhagen interpretation, 131 Cosmos, 251 CPUs (central processing units), 137 . see also GPUs/CPUs Creative Labs, 62 Crichton, Michael, 71–72 Crick, Francis, 116 Crowther, Will, 27 Curry, Adam, 76 D Dalai Lama, 207 Data, Star Trek: The Next Generation, 95–96, 115 Davoudi, Zohreh, 255 deathmatch mode, 43–44 Deep Blue, 86 DeepMind, 86–88, 94, 98 déjà vu, 240–41 delayed-choice double slit experiment, 145f delayed-choice experiment, 143–46 delayed-measurement experiment, 146 DELTA t (T), 174 Department of Defense (DOD), 232 Descartes, René, 11 DeWitt, Bryce, 149 dharma, 191 Dick, Leslie “Tessa” B., 8–9 Dick, Philip K., 274, 289 and alternate realities, 8–9 computer simulations and variables, 19 and implanted memories, 77–78 life as computer-generated simulation, 78–79 Metz Sci-Fi Convention, 1977, 2 question of reality vs. fiction, 71–72 simulated worlds, 80 speculative technologies, 53 digital consciousness, 116–18 digital film resolution, 65 digital immortality, 82, 105 digital psychiatrist, 88–89, 161 directed graph, 153–55 Discrete World, 165–66 Do Androids Dream of Electric Sheep, 9 Donkey Kong, 1 Doom, 43–44, 43f, 59–60, 137–38 DOTA 2, 87, 94 dot-matrix printers (2D), 69–71 double slit experiment, 128–29, 129f downloadable consciousness, 54, 101–4, 198, 207, 281 downloadable consciousness and seventh yoga, 197–99 Dr.

Stage 0: Text Adventures and the “Game World” (1970s to mid-1980s) As we look at the early history of video games, Stage 0 (single-player text adventures) actually developed in parallel with Stage 1 (simple graphical arcade games), but I have split them up because of their different characteristics and technical underpinnings. Both represent distinct but necessary steps on the road to the simulation point. The first text adventure game was Colossal Cave Adventure, built by Will Crowther in 1976 on a PDP-10 mainframe computer. This game, whose user interface is shown in Figure 1, was based partly on the Mammoth Caves in Kentucky, where Crowther had spent a lot of time. Many other programmers, including Don Woods from Stanford, took Crowther’s original code and ported it to many different computer systems, adding the many fantasy elements of the game that made it a precursor of the many adventure games to follow.


pages: 371 words: 93,570

Broad Band: The Untold Story of the Women Who Made the Internet by Claire L. Evans

"side hustle", 4chan, Ada Lovelace, Albert Einstein, British Empire, colonial rule, Colossal Cave Adventure, computer age, crowdsourcing, dark matter, dematerialisation, Doomsday Book, Douglas Engelbart, Douglas Engelbart, Douglas Hofstadter, East Village, Edward Charles Pickering, game design, glass ceiling, Grace Hopper, Gödel, Escher, Bach, Haight Ashbury, Harvard Computers: women astronomers, Honoré de Balzac, Howard Rheingold, HyperCard, hypertext link, index card, information retrieval, Internet Archive, Jacquard loom, John von Neumann, Joseph-Marie Jacquard, knowledge worker, Leonard Kleinrock, Mahatma Gandhi, Mark Zuckerberg, Menlo Park, Mondo 2000, Mother of all demos, Network effects, old-boy network, On the Economy of Machinery and Manufactures, packet switching, pets.com, rent control, RFC: Request For Comment, rolodex, San Francisco homelessness, semantic web, Silicon Valley, Skype, South of Market, San Francisco, Steve Jobs, Steven Levy, Stewart Brand, subscription business, technoutopianism, Ted Nelson, telepresence, Whole Earth Catalog, Whole Earth Review, women in the workforce, Works Progress Administration, Y2K

This is perhaps why Will Crowther felt compelled to make one last map. This one wasn’t plotted from his wife’s muddy notebooks but rather from his own memories. Translated into seven hundred lines of FORTRAN, they became Colossal Cave Adventure, one of the first computer games, modeled faithfully on the sections of Mammoth Cave he had explored with Patricia and mapped alongside her, on a computer that would form the backbone of the Internet. Colossal Cave Adventure—now more commonly known as Adventure—doesn’t look like a game in the modern sense. There are no images or animations, no joysticks or controllers. Instead, blocks of text describe sections of a cave in the second person, like so: You are in a splendid chamber thirty feet high.

“harrowing of Hell”: Tracy Kidder, The Soul of a New Machine (New York: Back Bay Books, 1981), 88. By the time she encountered: www.legacy.com/obituaries/dispatch/obituary.aspx?n=john-preston-wilcox&pid=145049233. “completely different from the real cave”: Jerz, “Somewhere Nearby Is Colossal Cave.” “Adventure’s Colossal Cave, at least”: Walt Bilofsky, “Adventures in Computing,” Profiles: The Magazine for Kaypro Users 2, no. 1 (1984): 25, https://archive.org/stream/PROFILES_Volume_2_Number_1_1984-07_Kaypro_Corp_US/PROFILES_Volume_2_Number_1_1984-07_Kaypro_Corp_US_djvu.txt. “the deep recesses you explored”: Steven Levy, Hackers: Heroes of the Computer Revolution, 25th Anniversary Edition (Sebastopol, CA: O’Reilly Media, 2010), 113.


pages: 240 words: 109,474

Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture by David Kushner

Apple's 1984 Super Bowl advert, book scanning, Colossal Cave Adventure, Columbine, corporate governance, game design, glass ceiling, Hacker Ethic, informal economy, Marc Andreessen, market design, Marshall McLuhan, Saturday Night Live, side project, Silicon Valley, slashdot, software patent, Steve Jobs, Steven Levy, X Prize

Everyone was playing a game that consisted only of words on the terminal screen: “You are standing at the end of a road before a small brick building. Around you is a forest. A small stream flows out of the building towards a gully. In the distance there is a gleaming white tower.” This was Colossal Cave Adventure, the hottest thing going. Romero knew why: it was like a computer-game version of Dungeons and Dragons. D&D, as it was commonly known, was a pen-and-paper role-playing game that cast players in a Lord of the Rings–like adventure of imagination. Many adults lazily dismissed it as geekish escapism.

If the players chose to pursue the screams, the Dungeon Master would select just what ogre or chimera they would face. His roll of the die determined how they fared; no matter how wild the imaginings, a random burst of data ruled one’s fate. It was not surprising that computer programmers liked the game or that one of the first games they created, Colossal Cave Adventure, was inspired by D&D. The object of Colossal Cave was to fight battles while trying to retrieve treasures within a magical cave. By typing in a direction, say “north” or “south,” or a command, “hit” or “attack,” Romero could explore what felt like a novel in which he was the protagonist. As he chose his actions, he’d go deeper into the woods until the walls of the lab seemed to become trees, the air-conditioning flow a river.

Ten years later, a programmer and amateur cave explorer in Boston, Will Crowther, created textbased spelunking simulation. When a hacker at Stanford named Don Woods saw the game, he contacted Crowther to see if it was okay for him to modify the game to include more fantasy elements. The result was Colossal Cave Adventure. This gave rise to the text-adventure craze, as students and hackers in computer labs across the country began playing and modifying games of their own–often based on Dungeons and Dragons or Star Trek. Romero was growing up in the eighties as a fourth-generation game hacker: the first having been the students who worked on the minicomputers in the fifties and sixties at MIT; the second, the ones who picked up the ball in Silicon Valley and at Stanford University in the seventies; the third being the dawning game companies of the early eighties.


pages: 500 words: 146,240

Gamers at Work: Stories Behind the Games People Play by Morgan Ramsay, Peter Molyneux

Any sufficiently advanced technology is indistinguishable from magic, augmented reality, Bill Atkinson, Bob Noyce, collective bargaining, Colossal Cave Adventure, game design, Ian Bogost, independent contractor, index card, Mark Zuckerberg, oil shock, pirate software, RAND corporation, risk tolerance, Silicon Valley, Skype, Steve Jobs, Von Neumann architecture

The only other company doing language development was a tiny outfit called Microsoft. However, one night I was working late on one of my contract programming projects, doing some development work on a terminal hooked to a mainframe at MIT, when I noticed a computer game. I played it a bit and thought Roberta might like it. The game, called Colossal Cave Adventure, was all text and began just by saying, “You are at the end of a long road, standing in front of a well. What would you like to do?” You then could type in anything you like, such as “look in the well,” and the game would respond. Roberta was captivated and wound up staying up all night to finish the game.

Index 1st Playable Productions, Tobi Saulnier, 261–280 3D gameplay, 302 3D Home Architect, Doug and Gary Carlston, 127, 129 3DO Company, 1, 10–12 989 Studios, 169–170 1830 board game, Avalon Hill, 50 2600 console, 17, 33–34 A Able, Robert, 243 acquisitions of Sierra On-Line, 201–206 by SOE, 191 Activision, 6, 100, 103 Adam, Phil, 96 addiction, to EverQuest game, 177–178 Adventure International, Doug and Gary Carlston, 122–123 advertising, Darkwatch game, 253–254 advisors external, 28, 111 Tobi Saulnier, 266 Age of Empires, Tony Goodman, 67–68, 70–73, 76–77 Air Force Academy, Wild Bill Stealey, 37 Air Warrior, Don Daglow, 157 alarm clock, in EverQuest game, 177 Albanian American Development Foundation, 132 Albanian American Enterprise Fund, 132 algorithms, 40 Alpha Protocol, 87 Altman, Robert, 281, 291 Ampex Corporation, 18, 21 Ancient Art of War, Doug and Gary Carlston, 129 Anderson, Jason, 94–97, 100, 104 Andretti Racing, Don Daglow, 160 anti-indulgence system, 178 Antic Magazine, 41 AOL, Don Daglow, 144, 150 Apple, 258–259 Trip Hawkins' time at, 2, 7–8 users, pirating software, 47 apps, game, 257–259 Appy Entertainment, Chris Ulm, 251–260 arcade games, 13 Arcanum, Tim Cain, 96–100 Archon game, 5 artists, software, 4–5 assets, reusing, 88–89 Atari, 7, 197 acquisition by Warner Communications, 32–35 Bushnell's leaving, 34–35 buying out of Dabney, 32 competition, 31 culture at, 31 Doug and Gary Carlston, 126 growth of, 24–27, 29–30 licensing with Nutting Associates, 22–23 location of, 23 Nolan Bushnell, 17–36 online game business, 31–32 overview, 17 Pong, 27–28 role in market crash, 33 startup of, 18–22 Tim Cain, 100–101 AtariTel, 31–32 Avalon Hill, 50–51 Avellone, Chris, 80, 85, 96 B Baer, Ralph, 28 Bally Manufacturing, 24, 26, 30 Balsam, David, 128 Bank Street Writer, Doug and Gary Carlston, 127, 129 BannerMania, Doug and Gary Carlston, 129 Barnett, Mike, 287 Bayne, Gresham, 316 Becker, Alan, 308 benefits, employee 1st Playable, 264, 280 Naughty Dog, 311 Bennette, David, 154 Bethesda Softworks, 89, 281–295 Bigham, Dane, 129 Billings, Joel, 144 BioWare, 85–86 Black Isle Studios, closure of, 79 Blackley, Seamus, 112 Blair, Gerry, 50 Boog-Scott, John, 61–62, 67 books, written by Ken Williams, 206 The Bourne Conspiracy game, 256 Boyarsky, Leonard, 94–97, 100, 104 brand extension, focus on at Sierra On-Line, 200 Brathwaite, Brenda, 149 Braun, Jeff, 237 Bricklin, Dan, 39 Bröderbund, 6 Don Daglow, 133, 135–137, 144 Doug and Gary Carlston, 122, 132 Brubaker, Lars, 82 Buchignani, Mark, 141 Budge, Bill, 5 budgets, for Sierra On-Line projects, 203–204 building engines, 87 Bunnett, David, 141 Bunten, Dan, 5–6 Burr, Egan, Deleage ' Co, Doug and Gary Carlston, 131 Busch, Kurt, 234 Bushnell, Nolan, 241 business aspects, Verant Interactive, 173–174 business is war philosophy, 196 business planning Atari, 20 Oddworld Inhabitants, 223–225 Verant Interactive, 172 Wild Bill Stealey, 44–45 ByVideo, 17 C CAA (Creative Artists Agency), 109–110 Cabbage Patch Kids, 268–269 Cain, Tim, cofounder of Troika Games, 93–105 Calhoun, John, 62 Call Doctor service, 316 Cameron, James, 216–217, 238 capability, 1st Playable, 277 Capcom, 254 capitalism, Lorne Lanning comments on, 221–222 Carbine Studios, Tim Cain, 105 career path Christopher Weaver, 282–283 Lorne Lanning, 209–218 Ted Price, 316–317 Tobi Saulnier, 261–263 Carlston, Cathy, 125, 130, 133 Carlston, Doug, 132–133, 135–136 Carlston Family Foundation, 132 Carlston, Gary, 132–133 Carmack, John, 149 Carmen Sandiego Don Daglow, 134 Doug and Gary Carlston, 127–128 Case, Steve, 144 cash flow, Don Daglow, 151–153 Catalyst Technologies, 17 CBS Software, 42 Cerny, Mark, 303–304, 306–307, 318–319 Chaimowitz, Ron, 233 Chapman, Thad, 62 The Chicago Coin Speedway, 24 Chicago, manufacturing in, 23 Chopper Rescue, Sid Meier, 42 Christian, Brian, 269 Chuck E. Cheese Pizza Time Theatre, 36 Citizen Siege, 245–247 Civilization, 37, 51 cloud distribution, 190 Cobb, Ron, 226 cofounders lack of at Electronic Arts, 3 of Verant Interactive, 173 collaboration, 1st Playable, 277 Colossal Cave Adventure game, 194 Command Center, Tony Goodman, 62–63 commercial location Bethesda Softworks, 286 Naughty Dog, 307 community, 1st Playable, 277 competition Doug and Gary Carlston, 126, 131 of Electronic Arts, 6–7 faced by High Moon Studios, 254 Computer Quiz, 22 Computer Space, 17, 22 confidentiality, Tobi Saulnier, 273 conservative attitude, of Ken Williams, 200 console games, 186–188 3DO platform development for, 10–12 by Electronic Arts, 8–10 consultants, Wild Bill Stealey, 43 Consumer Electronics Show, 6, 43, 50, 56 consumer retail experience, Apple, 259 contracts Electronic Arts, 5 winning, 84 Cook, Zeb, 96 core businesses, 183 core hours, 310 corporate mindset, at SOE, 178–179 craftsmanship, 1st Playable, 277 Crash 3, 304–305 Crash Bandicoot, 297, 301 Crash Team Racing, 305 Creative Artists Agency (CAA), 109–110 creative directors, Insomniac Games, 327 creativity, stifled by reuse, 88 Cresap McCormick ' Paget, 38 Cresap McCormick, Wild Bill Stealey, 38 criticism dealing with, 180 of games, 89 Croner, Mel, 129 cross-platform online games, 186–188 Crow, Brad, 66–67 CUC International, 202–203 culture at Digital Chocolate, 14 at Electronic Arts, 7–8 at SOE, 180 studio, 31, 117–118 at Verant Interactive, 176 customer relations 1st Playable, 274 focus on at Sierra On-Line, 200 cutouts, Stealey, Wild Bill Stealey, 49 Cyan, 135–136 D D'D (Dungeons ' Dragons) Don Daglow, 144, 149, 151, 158 Tim Cain, 100–101 Dabney, Ted, 17–18, 20, 25, 32 Daglow, Don, 133–168 Daglow Entertainment, Don Daglow, 166 Daly, Ray, 123 Darkwatch game, 252–255 Davidson, Bob, 203 Davidson Software, acquisition of Sierra On-Line, 201–204 DazzleDraw, Doug and Gary Carlston, 129 DC Comics franchise, 185 Dean, Tim, 67 Decker, Tom, 101 Demilt, Eric, 96 Descent to Undermountain, Tim Cain, 94 designers, Sierra On-Line, 203–204 Deus Ex, 108 developers, at Electronic Arts, 4–5 development teams, successful, 255 dial-up time-sharing, invented by Wild Bill Stealey, 38 Digital Chocolate, 1, 12–15 digital distribution, at SOE, 188 Digital Domain, 216–217 digital-state machines, 20 direct distribution, 3 Disney Epic Mickey, 107, 112–115, 119 Disney, Junction Point Studios work with, 112–114 Disruptor, 319 Dombrower, Eddie, 142–143 Dominican University, 132 Doom, Don Daglow, 149 Dott, Eric 1830 board game, 50 Civilization, 51 down-the-barrel perspective, 288 downloadable content, 271 Dream Zone, 299 Dueling Digits, Doug and Gary Carlston, 123 Dungeons ' Dragons (D'D) Don Daglow, 144, 149, 151, 158 Tim Cain, 100–101 E EA (Electronic Arts), 47 Don Daglow, 136, 150, 160–161 Doug and Gary Carlston, 126 founder Trip Hawkins, 1–15 Earl Weaver Baseball, Don Daglow, 142, 145 Edlund, Richard, 216 education, of Ken Williams, 194 Eggs of Steel, 214 Eheler, Brian, 125 Eidos, 108 The Elder Scrolls, 281, 290 Electronic Arts (EA), 47 Don Daglow, 136, 150, 160–161 Doug and Gary Carlston, 126 founder Trip Hawkins, 1–15 Electronic Arts Partners, 324 employees benefits, 1st Playable, 264, 280 early, at Electronic Arts, 3 honesty with, 91 Ensemble Studios, cofounder Tony Goodman, 59–78 Entertainment Software Association (ESA), 183 Entertainment Software Ratings Board (ESRB), 182–183 entrepreneurship, Tony Goodman, 59–65 ESA (Entertainment Software Association), 183 ESRB (Entertainment Software Ratings Board), 182–183 Etak, 17 European operations, Wild Bill Stealey, 48 evergreen games, Doug and Gary Carlston, 127 EverQuest game, 169–178, 185, 187 experience, using at studios, 83 external advisors, 28, 111 F F-15 Strike Eagle, 37 Meier, Sid, 43 Wild Bill Stealey, 44 FaceFighter game, 257 Falcon 3.0, 55 Fallout New Vegas, 89 Tim Cain, 93–96 family life of John Smedley, 172 of Ken Williams, 195–196 of Nolan Bushnell, 23 Family Tree Maker, 127, 129, 131 Fargo, Brian, 94–96 fear-based decisions, danger of making, 244 Feargus Urquhart, 79–91 financial responsibility, Wild Bill Stealey, 45 Fiorito, John, 315 Firaxis Games, 37 Fletcher, Ed, 282, 285 Flight Simulator, Microsoft, 44 Flock, Kelly, 170, 174, 308 Floyd of the Jungle, Sid Meier, 42 Forbes, Walter, 202–203 founding team, lack of at Electronic Arts, 3 franchises Free Realms, 184, 189 overview, 253 SOE, 184–185 free to play Digital Chocolate, 12–13 overview, 188–189 FreeFall Associates, 5 Fries, Ed, 75 funding for Electronic Arts, 3 Juntion Point Studios, 109–110 for Obsidian Entertainment, 81 Oddmob, 249 Oddworld Inhabitants, 225–226, 228–230 for Sierra On-Line, 197–200 G Galactic Saga, Doug and Gary Carlston, 123 garage shop, 23 Garriott, Richard, 111 Garske, Chris, 234 Gates, Bill, 69 Gavin, Andy, 297–298 General Instrument, Wild Bill Stealey, 38 Genesis, Sega, 10 Gibson, Charlie, 211 Girl with a Stick, 322 going public, Doug and Gary Carlston, 131 Gold Box games, Don Daglow, 144, 154, 158 Goldman, Daniel, 248 Goldstein, Jack, 218 Goodman, Rick, 67 Goodman, Tony, 59–78 Granath, Herb, 282 Grant, Ken, 130 graphical massively multiplayer online games, 144–145 Gridiron, 281, 287 GT Interactive, 233–234 H Half-Life 2, Tim Cain, 100, 102–103 Halo, Tony Goodman, 76 Hammond, Eric, 5 hands-on leadership, 83–84 hardware focus on, 20 price of 3DO, 11 Harvard Doug and Gary Carlston, 124 Trip Hawkins, 2 Hasbro Interactive, 51 Hastings, Al, 315, 317–318, 320 Hastings, Brian, 315, 322 Hatch, Fred, 94 Hawkins, Trip, 1–15, 47, 300 Hellcat Ace game, 37 developing, 40 reviewed in Antic Magazine, 41 selling, 40 HessWare, 44 High Moon Studios, 251–256 hiring process at Electronic Arts, 7–8 at High Moon Studios, 252, 254 honesty with employees, 91 Hughes, John, 211 HVAC company, 41 I IBM, funding for Sierra On-Line from, 199 Icewind Dale, 86 iEntertainment Network, 37 independent studio, transforming internal development group into, 252–253 Infinity Engine, BioWare, 86 Insomniac Games, 303, 315–328 intellectual property licensing, 288 intellectual property rights, Tony Goodman, 72–73 interactive games, Digital Chocolate, 13–14 Interactive Magic, 37, 56 internal development group, transforming into independent studio, 252–253 Internews, 132 Interplay overview, 79 Tim Cain, 96 investments, skin in the game, 284 investors Don Daglow, 139–140 Doug and Gary Carlston, 129–130 Tobi Saulnier, 263 Ion Storm, 107 iTunes, 211 J Jack, Katie, 141–142 Jak and Daxter, 306, 308–309 Jensen, Benni, 285 Jochumson, Chris, 125 Jones, Chase, 116 Jones, Chris, 80, 105 Jostens, Inc, Doug and Gary Carlston, 131 Junction Point Studios, 107–119 Disney Epic Mickey, 112–115 funding, 109–110 during independent years, 112–113 mission statement, 117 overview, 107 partners, 111 role of Spector at, 118 startup, 108–109 studio culture, 117–118 K Kahn, Marty, 128 Kassar, Ray, 32 Keef the Thief, 299 Keith, Clinton, 254 Ken Williams, 193–207 Kid Pix, Doug and Gary Carlston, 127 King's Quest game, 199 Kleiner Perkins, 56 Knight Technologies, 170 Kroegel, Chuck, 144 Kung Zhu, 272 Kutaragi, Ken, 215 L La Russa, Tony, 145, 147–149 Landau, Yair, 178 Laudon, Angelo, 66–67 lawsuits, Atari, 28 leaders, cultivating, 116 The Learning Company (SoftKey), Doug and Gary Carlston, 131–132 Lefay, Julian, 285 legitimate software, 81 licenses for massively multiplayer online games, 185–186 middleware, 87 respecting, 84 Tobi Saulnier, 272 Living Books, Doug and Gary Carlston, 127–128 location, of Atari, 23 Lode Runner, Doug and Gary Carlston, 129 The Long Now Foundation, 132, 135 Lord of the Rings, Don Daglow, 158 Lorne Lanning, 209–250 Louie, Gillman, 55 LucasArts, 181–182, 185 Lucasfilm, 84 Lynch, Scott, 98 M M1 Tank Platoon, 48 Madden Football, Don Daglow, 158 Malibu Comics, 251, 256–257 management structure, Insomniac Games, 325–326 managers, at Electronic Arts, 7–8 market crash, Atari's role in, 33 marketing, at Verant Interactive, 176–177 markup method, 184 massively multiplayer online games, 169, 185–186.


pages: 982 words: 221,145

Ajax: The Definitive Guide by Anthony T. Holdener

AltaVista, Amazon Web Services, business process, centre right, Colossal Cave Adventure, create, read, update, delete, database schema, David Heinemeier Hansson, en.wikipedia.org, Firefox, full text search, game design, general-purpose programming language, Guido van Rossum, information retrieval, loose coupling, MVC pattern, Necker cube, p-value, Ruby on Rails, slashdot, sorting algorithm, web application

Though using Ajax for turn-based games is doable, I recommend avoiding this genre—unless you are very ambitious—when developing an Ajax-implemented browser game. Adventure Games Today, adventure games come in a variety of interfaces, subjects, and graphics formats. However, the first adventure games differed only in subject, as they were all text-based games. The first of these games was Colossal Cave Adventure (later simply called Adventure), written by William Crowther in the early 1970s. In this game, the player navigated through a series of rooms, each with its own description, to complete a series of puzzles. This premise was the key to all of the early text-based adventure games: puzzles, objects, swords and magic, and vast realms to explore and navigate. 726 | Chapter 21: Internet Games Without Plug-ins Many future developers of adventure games got their start by playing Adventure.

Its adventure games improved graphically as new technologies became available, and today Sierra is known for its series of adventure games: King’s Quest (1984–1998), Space Quest (1986–1995), Police Quest (1987–1993), Quest for Glory (1989–1998), and Leisure Suit Larry (1987–2004). Adventure games kept the model that Colossal Cave Adventure started—puzzles, objects, areas to explore, combat—and added interaction with nonplayer characters (NPCs) that began to blur the boundaries between adventure games and RPGs. This was especially true of the Quest for Glory series (originally Hero’s Quest), as it offered a good combination of adventure and role playing.

., 750 broken links, testing in web applications, 26 browsers, 17–19 alert windows, 335 alpha transparency support, 439 application navigation and, 151 back and forward buttons, problems with Ajax, 245 bookmarks, problems with Ajax, 244 code for browser detection, 198–199 compressed content, 814 CSS specifications, 13 customizations, 363–367 character encoding, 366 font sizes, 366 stylesheets, 364–366 enhancing to become true applications, xiii font sizes, relative, 386 functioning of file menu example, 209 Gecko layout engine, 18 KHTML/WebCore layout engines, 18 other layout engines, 19 Index | 927 browsers (continued) page loading status, 240 plug-ins, 733 Flash, 733 Java applets, 734 Shockwave, 734 pop-up windows and, 362 Presto layout engine, 19 right mouse button clicks, 764 standards compliance and backward compatibility, 20 standards supported by browser engines, 17 tables populating, innerHTML or DOM methods, 259 problems with, 248 testing performance in web application development, 26 Trident layout engine, 18 web standards and, 10 XMLHttpRequest object implementations, 69 XPath implementations, 83 XSLT and XPath support, 17 bubble sorts, 268 business logic layer (BLL), 804 business records, 667 businesses advantages of Ajax applications, 672–674 ease of installation, 674 reducing costs, 673 communication through combined applications, 720 communication through file sharing, 691–703 file notification, 696–698 receiving the file, 698–703 sending a file, 692–696 communication through whiteboards, 703–719 building the board, 703–707 enhancing with pen color choices, 715–718 enhancing with stamps and shapes, 719 replicating rendering on all users’ screens, 707–714 real-time communication, 674–691 chat client, 678–686 chat server, 686–690 client/server communication, 675 connecting to chat, 675–678 928 | Index button_onclick function (example), 465 buttons image built into a CSS button, 184 navigation bar, 180–184 representing 3D, 183 buySAFE, 894 BVS Performance Center for Banks, 145 C C# .NET, adding compression to a site, 832 C# documentation comments, 26 Cache-Control header (HTTP), 813 Cairo graphics engine (Gecko), 19 CakePHP framework, 62 callbacks Ajax response, 864 Ajax.Request( ) method, 416 supporting Ajax calls to the server for animations, 481 capital letters, use in application text, 166 Cascading Style Sheets (see CSS) Casciano, Chris, 332 Castlevania (arcade game), 731 catch clause, 414 Cavedog’s Total Annihilation game, 724 cells collection, 136 CGI (Common Gateway Interface), 37 FastCGI, 37 Channel Definition Format (CDF), 15 character class (example) changes in direction, 770 collision bounding constraints, 754 collision detection and other functionality, 756–759 modified animation object as basis, 735–740 modified for different characters and animation sequences, 740–742 mouse click event handling, 749–753 movement functionality added, 743–747 starts and stops movement, event handling, 770 character encodings, 851 choosing in browsers, 366 character references, 851 character.js file, 778–783 chat application (example), 672–691 chat client, 678–686 adding events to input controls, 680 event-handling functions, SendMessage( ) and QuitChat( ), 681 JavaScript code to run Ajax chat client, 683–686 monitoring message queue on server and displaying new messages, 682 PHP that creates structure, 679 tracking current users, 683 chat server, 686–690 get_messages.php file, 688 get_users.php file, 690 logout.php file, 686 put_message.php file, 687 quote_smart( ) function to prevent SQL injection, 687 client/server communication, 675 connecting to chat, 675–678 working Ajax chat application, 690 chat services, 155 checkboxes (form controls), 493 custom, 499 properties, 499 setting error indicator to, 553 using id attributes to get values, 494 Chevron, Jemima, 718 chunks-of-data structuring, 236 circular collision detection, 759–762 Pythagorean theorem, 759 testing a point and a circle, 761 testing for a circle and a rectangle, 761 testing two circles for collision, 761 class attribute, using for quick customizations, 398 classes FCL (Framework Class Library), 58 specification in web application development, 25 client frameworks, 94–97 Dojo Toolkit, 94 DWR, 96 jQuery, 96 other, 97 Prototype, 95 objects used with Ajax, 99–102 Sarissa, 97 client request for a web service, 606 client side of Ajax applications modular coding, 791–803 CSS, 795–802 JavaScript, 802 XHTML, 791–795 optimizations, 818–830 JavaScript, 822–830 XHTML and CSS, 819–822 client/server architecture, 28 communication between client and server, 838 communication model for chat program, 675 data validation duties, 536 RPC for distributed computing, 595 web sites in the year 2000, 6 client-side errors, 409 notifying the user, 419 closePopUp( ) function, 340 CLR (Common Language Runtime), 40 CMSs (Content Management Systems), Zope and, 62 CNET, 653, 895 code examples in this book, xviii code optimization, 839 coincident lines, 764 collisions, 753–764 circular collision detection, 759–762 detection techniques, 753 handling, 772 linear collision detection, 762–764 rectangular collision detection, 754–759 color color themes switcher, creating, 392–397 contrasts between text and its background, 166 GIF image format, 256-color-palette limit, 437 palette-based GIF images, 436 true-color images in GIF file format, 438 color wheel, 718 colors.css file, 369 example of contents, 370 Colossal Cave Adventure, 726 comb sorts, 268 comma-separated value (CSV) files, 47 comments documenting code, 27 removing from CSS and XHTML files, 819 removing from JavaScript files, 822 XML, 849 commercial Ajax web applications, 32 Common Gateway Interface (see CGI) Common Intermediate Language (CIL), 58 Common Language Infrastructure (CLI), 59 Common Language Specification (CLS), 58 Common Type System (CTS), 58 communication functionality, 155 Index | 929 communication needs for business combining applications, 720 file sharing, 691–703 file notification, 696–698 receiving the file, 698–703 sending a file, 692–696 real-time communication, 674–691 chat client, 678–686 chat server, 686–690 client/server communication, 675 connecting to chat, 675–678 whiteboards, 703–719 building the board, 703–707 enhancing with pen color choices, 715–718 enhancing with stamps and shapes, 719 replicating rendering on all users’ screens, 707–714 compiled languages, 37 compression, 830–833 adding to a site using C# .NET, 832 adding to a site using PHP, 831 HTTP, 813–815 CompuServe, GIF format, 435 conditional catch clause, 414 confirmation window, 349–351 consistency importance in application layout, 161 importance in web application design, 150 content changes, Ajax and, 923 Control.Slider object, 389–392 controller (MVC model), 30 controls and widgets, design of, 316 cookies, 375–381 incorporating into style switcher object, 378–381 simple cookie object (example), 376–378 storing user customization information, 407 cost savings from using web applications, 673 Craigslist, 660 CREATE TABLE statement (SQL), 49 createDocumentFragment( ) method, 107 createElement( ) method, 106, 260 createTextNode( ) method, 107, 259, 260 createXMLHttpRequest( ) function, 71 credit cards, validating, 541–543 credit checks, 626 930 | Index “Cross-Browser Scripting with importNode( )”, 329 cross-browser compatibility, testing for web applications, 26 Crowther, William, 726 Crysis (FPS game), 723 CSS (Cascading Style Sheets), 5, 117–129 CSS1 specification, 13 CSS2 specification, 13 properties and JavaScript equivalents, 119–124 CSS2.1 specification, 13 CSS3 specification, 13 Dojo Toolkit drag-and-drop functionality, 457 drop-down menu solution, 188–191 font size switching, 387–389 forms, 498 image rollovers in browsers without scripting, 186 in tabs, 216 layout using, 250–252 modifying and removing style, 118 stylesheet manipulation methods, 118 modularity of CSS files, 795–802 media types, 800 style properties, 796–800 notification of errors in form data, 552–555 error rules, 553–554 rule switching with JavaScript, 555 numbering system for document and table of contents, 296 optimizations, 819–822 removing comments from files, 819 removing unnecessary whitespace, 819 shortening class and id names, 821 using shorthand notation, 822 pen color changes in whiteboard application, 716 PNG image to be used in animation, 441 Results objects, Google’s AJAX Search API, 592 rule types, 117 sample tabs using XHTML lists, 213–215 simple navigation bars styled with, 176–180 slide show application, Internet Explorer version, 314 slide show styling, 305–307 sortable list styling, 300 standards supported by browser engines, 18 style information, 126 style switching, structure for CSS files, 368–371 styles for a Windows-like file menu, 195–198 styling <div> element to replace <iframe>, 324 styling alert windows, 338 styling breadcrumbs, 222 Internet Explorer and, 223 styling links at bottom of a page, 226 support by ASP.NET, 40 tab content sections, hiding from view, 218 table styling, keeping with sorts, 280–283 Zen Garden site, 160, 332 separating structure from presentation, 333–334 CSS2Properties object, 119 cssRules collection, 128 CTS (Common Type System), 58 CURL package, 655 Custom Search Engine, 587 CustomError object (example), 423–426 modified to garner user feedback, 428–432 D Daily CSS Fun web site, 332 Dalton Mailing Service, Inc., 146 data access layer (DAL), 804 data access module (model in MVC), 30 data exchange formats, choosing between XML and JSON, 92–94 data sources (for mashups), 665–668 open source services, 668 public data, 665–667 background check records, 667 business records, 667 people searches, 667 public records, 666 selecting, 670 data validation, 534–562 Ajax client/server validation, 558–562 advantages of, 562 checking form fields on the fly, 558–561 CSS notification of errors, 552–555 CSS error rules, 553–554 rule switching with JavaScript, 555 feeds, 616 importance of, 534 server-side, 555–558 checking whether expected data was received, 556 protecting the database, 557 returning problems to the client, 557 value checks, 557 using JavaScript, 536–552 checking phone numbers, 539 Dojo Toolkit, 549–552 regular expressions, 538 validation object, 543–549 value checking, 537 data, Ajax optimization, 839 databases, 44–48 basic three-tier application design pattern, 29 errors, 412 IBM DB2, 45 indexing, 569, 836 interaction with, using frameworks, 64–67 ISBNdb, 650 logging errors to, 420 Microsoft SQL Server, 45 nonrelational database models, 47 open source, MySQL and PostgreSQL, 46 optimization of SQL, 808 Oracle, 45 protecting from attacks, 557 querying, steps involved, 65 saving form data sent from clients, 528 server-side code to store element position, 405 storing information for a draggable object, 404 storing user customization information, 407 storing whiteboard coordinates, 710 DataUnison eBay Research, 653, 895 Dave.TV (video service), 632, 895 dBASE, 47 declarations XML, 844 XSLT, 856 decode( ) method (json class), 89 decrementing operators, 829 del.icio.us (bookmark service), 623, 624–626, 896 adding a post programmatically using PHP, 624–626 parameters to add a post, 624 Index | 931 DELETE statement (SQL), 53 delivery company, mashup pinpointing truck locations, 671 demographic information service, 650 density (in application layout), 160 Department of Corrections, data on felonies, 667 descriptors, GIF, 435 design of Ajax interfaces (see interfaces, designing) design patterns, 28–31, 148 client/server, 28 MVC (model-view-controller), 30 three-tier (basic), 29 Unique URLs, 244 design phase Ajax web application development, 25 software development life cycle, 23 DHTML Tree (Zapatec), 234 Diablo game series, 729 dimensional databases, 47 <div> elements hints for user searches, 577 innerHTML property, placing content into windows, 347 making draggable, 455 popupContainer, 340 using with Ajax to replace <iframe> elements, 323–329 inserting content, 325–329 styling the <div> element, 324 whiteboard, 703 Django framework, 61 document fragments, 828 Document object getElementById( ) method, 494 loading XML string into, 81 loadXML( ) method, 79 methods used to create nodes in a document tree, 107 setProperty( ) method, 83 Document Object Model (see DOM) document tree, 103 root element or root node, 104 text element or text node, 104 W3C node types, 105 document.getElementsByClassName( ) function, 98 documentation, 26 932 | Index documentFragment object, constructing tables, 260 DocumentFragment objects, 107 appending to list of child nodes, 108 Dojo Toolkit, 94, 880–884 dojo.io.bind, 881 drag-and-drop functionality, 457–460 adding a handle to draggable object, 458 creating draggables and droppables, 458 methods for HtmlDragSource object, 459 script to enable, 457 effects, 468 online demo, 470 handling results, 881 JSON with dot notation, 882 moving objects, 464 sending form data, 883 sortable list drag-and-drop functionality, 301–302 validation objects, 549–552 widgets for building form elements and forms, 515–517 dollar sign function, $( ), 98 DOM (Document Object Model), 5, 103–140 changing styles, 117–129 Internet Explorer and, 127 style information, 126 creating elements, attributes, and objects, 106–108 Document object traversal, 105 DOM Level 1 specification, 13 DOM Level 2 specification, 13, 106 Internet Explorer and, 224 DOM Level 3 specification, 13 XPath support by browsers, 83 element, attribute, and object information, 112–115 methods, listed, 113 properties, listed, 114 events, 129–135 creating, 130 information about, 131–133 initializing, 130 Internet Explorer and, 133 Form object, 490 importNode( ) method, 327 innerHTML property and, 138–140 JavaScript optimization and, 827–828 keyboard and mouse events, 764 loading XML file into Document object, 79 methods for dynamic table creation, 258 modifying and removing elements, attributes, and objects, 108–112 methods, listed, 110–112 parsing, 77 problems with using tables for layout, 248 specifications, 13 standardized list of DOM node types, 104 standards supported by browser engines, 18 tables, 135–138 traversing the DOM document tree, 115–117 methods, listed, 116 traversal properties, listed, 116 dot notation, 882 dragdrop components, 802 Draggable object, 344–345, 403, 455–456 change callback function, 456 container with handle for dragging point, 456 optional parameters, 455 Draggable object (Rico), 460 Draggables object, 455 dragging and dropping, 157 animation technique, 454–464 Dojo Toolkit, 457–460 Rico library, 460 script.aculo.us objects, 455–457 wz_dragdrop.js library, 460–463 Zapatec library, 463 sortable lists, 297–302 DrawCanvasUpdate( ) function, 713 drawing libraries, 472–481 JavaScript Vector Graphics Library, 472–481 Ajax application, 476–481 methods available to, 474–476 DrawPoint( ) method, 706 driving directions searches MapQuest classic site, 6 MapQuest site using Ajax, 8 drop downs (form controls), 493 custom, 505–515 properties, 505 preparing for the addition of Ajax, 495 drop-down menus, 188–191 Droppables object, 456 add( ) method, optional parameters, 456 callback functions, 457 Dropzone object (Rico), 460 DTDs (document type definitions), 853 Frameset, 316 SOAP documents and, 598 Dun and Bradstreet Credit Check, 626, 896 DWR framework, 96 dynamic content, providing with CGI, 37 with FastCGI, 37 with servlets, 38 with SSI, 38 dynamic directions (character movement), 747 E eBay, 653, 653–655, 896 API and documentation, 653 input parameters for REST requests, 654 requesting search results from REST API, 654 REST methods available in the API, 654 ECMA (European Computer Manufacturer’s Association) International, 12 Ecma International, 10 ECMAScript, 12 ActionScript implementation, 733 e-commerce sites, 652 economic games, 725 Edition 4 of ECMA-262, 19 Education and Outreach Working Group (WAI), 168 educational environment (web applications), 32 Edwards, Dean, 314 Effect object Accordion( ) method, 237 changing to open multiple sections, 238 Position( ), 466 SlideUp( ) and SlideDown( ) methods, 239 Effect object (Rico), 464 Index | 933 effects and dragdrop components, 802 effects on objects (animation), 467–472 Dojo Toolkit, 468 script.aculo.us, 467 Zapatec Effects library, 470–472 efficiency of web applications, 150 electronic products data center, 653 Element interface, 106 Element object hide( ) method, 242, 340 removeClassName( ) and add ClassName( ) methods, 283 show( ) method, 242, 340 elements DOM, 106 form, 482–484 SOAP document, 598 WSDL, 599–601 XML, 845 XSLT, 856–861 email addresses, validating, 540 embedded interpreters, FastCGI and, 37 empty( ) method, 556 encode( ) method, 90 Encoding namespace (SOAP), 598 end users, expecting too much of, 147 English Standard Version (ESV) Bible Lookup, 656, 897 Enterprise Resource Planning (ERP) packages, 62 entity headers (HTTP), 810 entity references, 849 Envelope namespace (SOAP), 598 environments (Ajax web applications), 31–33 commercial, 32 educational, 32 government, 33 intranet, 31 specific content, 33 equality testing, 537 ERP5, 62 error levels, 421 defining custom error levels, 422 errors, 408–433 displaying user errors, 420–433 following site design, 421–433 handling, 417–420 emailing the developer, 420 logging to a database, 420 notifying the user, 418 ignorable, 417 JavaScript, 409 934 | Index requiring immediate attention, 417 server-side, 410–413 database, 412 external errors, 413 server scripting, 410–412 trapping, 414–417 Ajax requests, 416 throwing an error, 415 try...catch...finally block, 414 escaping potentially dangerous characters to the database, 557 ESPN main page, 143 ESV (English Standard Version) Bible Lookup, 656, 897 Ethernet protocol, 816 packets, 817 European Computer Manufacturer’s Association (ECMA) International, 12 EvalError object, 409 event handling, 767–776 changes in direction, 770 receiving data, 774 starts and stops, 767–770 user input, 767 event listeners, 131 Event object, 132 constants and methods, 342 observe( ) method, 343, 442 pointerX( ) and pointerY( ) methods, 704, 766 EventCapturer object, 132 EventListener object, 132 events DOM, 129–135 creating, 130 focus and, 343 information about, 131–133 initializing, 130 Internet Explorer and, 133 modules, 129 importNode( ) function that registers events, 327–329 replacement of DOM Events with XML Events, 11 Events object (example), 767–770 changes in direction, 770 collision events, 773 making requests and parsing commands from server, 774 events.js file, 783–786 Excel, 47 execution speed, 809 execution time, 808 optimizing in JavaScript, 826 Expires response header (HTTP), 813 Extensible HyperText Markup Language (see XHTML) Extensible Markup Language (see XML) Extensible Stylesheet Language Transformation (see XSLT) extension blocks (GIF), 436, 438 F Facebook, 656, 897 Faces.com, 642, 897 FastCGI, 37 FCL (Framework Class Library), 58 FedEx, 898 feed aggregators, 614 feedback in Ajax web application design, 152 getting from users regarding errors, 428–432 FeedBlitz (blogging service), 620, 898 FeedBurner web services, 620, 898 MgmtAPI, 621 FeedMap, 627, 898 Fielding, Roy, 605 <fieldset> elements, 483 grouping associated form elements, 489 setting error indicator to checkboxes and radio buttons, 553 file menu, 192–212 adding Ajax, 210 code for browser detection, 198–199 CSS styles for Windows-like file menu, 195–198 JavaScript code for manipulating, 199–209 XHTML file, 192–195 file sharing, 691–703 file notification, 696–698 checking server for file notices, 696 get_file_notices.php file, 697 JSON response from server, 697 receiving the file, 698–703 delete_file.php, 700 PHP file checking indicator and giving response to sender, 702 sending user client monitoring for receiving, 700–702 server handling of get_file.php request, 698 sending a file, 692–696 PHP file to create form for file transfer, 692–694 saving file and alerting receiving user, 694 file size, 807, 808 file uploads from client to server, 529 financial services, 626 Firefox character encoding changes, 367 feedback agent, 428 text size changes, 367 user changes to browser theme, 363 :first-child pseudoselector (CSS), 223 first-person shooter (FPS) games, 722 “Fixing the Back Button and Enabling Bookmarking for Ajax Apps”, 244 Flash, 733 flat file databases, 47 flexibility of web applications, 150 Flickr, 155, 641, 899 example REST request, 642 example REST response, 642 JSON response to client, 649 methods available within the API, 643–648 organizing tools, 155 response formats, 642 REST request with JSON response to client (example), 648 focal point (of an application), 161 focus keeping focus on a pop-up alert box, 339–343 poor focus in web application design, 144 focusOnPopUP( ) function (example), 340 fonts, 162–167 browser font size changes, 366 color contrasts, 166 commanding attention to text, 166 font families and their types, 163–166 spacing of text, 166 switching font sizes, 386–392 CSS font file, 387–389 font-size slider bar, 389–392 relative font sizes, 386 use of capital letters, 166 fonts.css file, 369 example of contents, 370 Food Candy, 656 for loops, optimization techniques, 826 form buttons, 493 Index | 935 <form> elements, 483 <fieldset> element, 489 id attribute (XHTML 1.0), 321 name attribute, 490 Form object properties, 493 submit( ) and reset( ) methods, 493 Form.Validation object (example), 543–549 added functionality for Ajax, 558–561 forms, 28, 154, 482–533 accessibility, 485–488 aligning controls using CSS, 251 changing appearance of, 498 using CSS, 498 creating custom form controls drop downs, 505–515 radio buttons and checkboxes, 499–505 custom form objects in libraries and toolkits, 515–519 Dojo Toolkit, 515–517 Zapatec library, 518–519 elements, 482–484 file transfer form, 692–694 GSearchForm object, 585 HTML forms, replacement with XForms, 11 larger form in the navigation window, 353–355 manipulation with JavaScript, 490–497 sending data with Dojo Toolkit, 883 server handling of Ajax request, 524–531 emailing form data sent from the client, 527 GET/POST/RAW POST requests, 525 getting file uploads, 529 saving form data in a database, 528 sending data back to the client, 529 server responses, 531–533 client handling of complex response, 532 reporting success or failure, 531 submission with MooTools, 880 submitting a form using Ajax, 519–524 code example, 522–524 function looping through elements and getting values, 521 switching to different languages, 399–400 (see also data validation) forums, 155 forward button (browsers), problems with Ajax, 918 936 | Index FPS (first-person shooter) games, 722 fragment identifiers creating unique URL for bookmarks, 244 setting unique URLs for browser back button, 245 <frame> elements, 317 id attribute (XHTML 1.0), 321 frames, 316–323 animation, 442 animations with PNG format, 439 approximating iframes using Ajax and a <div> element, 323–329 inserting content, 325–329 styling the <div> element, 324 <frameset> and <frame> elements, 317 frameset, complete (example), 318 iframe, 319 packets, 816 XHTML and, 321–323 deprecation of frames and iframes, 321 if frames must be used, 322 using iframes as frames, 322 <frameset> elements, 317 Framework Class Library (FCL), 58 frameworks, 57 advantages of, 63–67 database interaction, 64 database interaction using Zend Framework, 65 client, 94–97 Dojo toolkit, 94 DWR, 96 jQuery, 96 other, 97 Prototype, 95 Sarissa, 97 Java, 60 Jakarta Struts, 60 Spring, 60 Tapestry, 61 moving objects, 464 .NET Framework, 58 PHP, 62 CakePHP, 62 Zend, 63 Zoop, 63 Python, 61 Ruby on Rails, 59 Sarissa, 83 using for animation, 453 (see also listings under names of individual frameworks) full text site searches, 568 functionality, 153–158 code components based on, 802 common web tools, 153–155 determining tools needed, 157 porting desktop functionality to the Web, 153 tool tips, 355 tools in desktop applications, 156 types of functions in applications, 153 functions (XSLT), 861 G games, 721–786 character animation, 735–753 moving the character, 742–753 walking loop, 735–742 collisions, 753–764 circular collision detection, 759–762 linear collision detection, 762–764 rectangular collision detection, 754–759 complete character.js file, 778–783 complete events.js file, 783–786 complete logic.js file, 776–778 event handling, 767–776 changes in direction, 770 collisions, 772 receiving data, 774 starts and stops, 767–770 user input, 767 Internet requirements, 732–735 game development with Ajax, 734 plug-ins for browsers, 733 resources for further information, 786 user input, 764–766 keyboard input, 765 mouse input, 766 web game genres, 721 adventure games, 726–727 arcade games, 731 first-person shooters (FPS), 722 other games, 732 puzzle games, 730 role-playing games (RPGs), 728–730 strategy games, 724–726 Gecko future of, 19 standards supported, 18 general headers (HTTP), 810 generating data, 157 GeoRSS, 630 Gestalt effect, 183 GET and POST methods, 72, 525 parameters passed with Prototype Ajax object, 865 submitting form data with Ajax, 520 getAttribute( ) method, 113 getDomDocument( ) method, 86 getElementById( ) method, 77, 105, 494 getElementsByTagName( ) method, 77, 105 GIF image format creating true-color GIF images, 438 history of, 435 how it works, 435–437 file structure, 435 palettes, 436 limitations of, 437 alpha transparency, 438 color depth, 437 global responders (Prototype), 867 global variables, 826 Gmail, 171 God-like strategy games, 725 golden ratio, 163 GoldenNumber.Net, 163 Goodman, Danny, 258 Google Advanced Search page, 576 AJAX Search API, 581–593, 652 displaying results, 589–593 GSearchControl object, 582–585 GSearchForm object, 585 GWebSearch object, 586 Searchers available with, 581 using the API, 587–589 Class Reference site, 587 Gmail service, 172 Google Maps, 7, 627 Google Reader, 614 implementing a site search tool using Google API, 570–575 map technology, use in HouseMaps.com mashup, 660 search capabilities, 565 search engine, 651 search engine used for a site, 581 sign up site for an account, 575 web service APIs, reference listing, 899–901 government agencies, information from, 651 Index | 937 government environments (web applications), 33 graphing charts from user data (see bar graph based on user-submitted data) graphs and charts, 157 GSearchControl object, 582–585 GSearchForm object, 585 Guha, R.


Racing the Beam: The Atari Video Computer System by Nick Montfort, Ian Bogost

Colossal Cave Adventure, functional programming, game design, Google Earth, Ian Bogost, Marshall McLuhan, Menlo Park, Rubik’s Cube, Silicon Valley, software studies, Steve Wozniak

Games have moved to 3D and programmers have become more concerned with polygons than pixels, but movement and collision detection remain the primary building blocks of adventure games, and, indeed, of most video games. 3 Adventure [63] Pac-Man 4 The arcade-inspired Combat was not difficult to fit onto the Atari VCS. It was one of the games developed alongside the console’s hardware, influencing the latter’s design. Adventure was inspired by Colossal Cave Adventure, but Robinett thoroughly reimagined the text game for the VCS platform, creating something with very different appearance and different gameplay. When Atari acquired the home console rights to Namco’s hit arcade game Pac-Man, the company faced a different problem: that of porting the massively popular and recognizable game from a platform with totally different technical affordances.


pages: 611 words: 188,732

Valley of Genius: The Uncensored History of Silicon Valley (As Told by the Hackers, Founders, and Freaks Who Made It Boom) by Adam Fisher

Airbnb, Albert Einstein, AltaVista, Apple II, Apple's 1984 Super Bowl advert, augmented reality, autonomous vehicles, Bill Atkinson, Bob Noyce, Brownian motion, Buckminster Fuller, Burning Man, Byte Shop, cognitive dissonance, Colossal Cave Adventure, disintermediation, don't be evil, Donald Trump, Douglas Engelbart, Dynabook, Elon Musk, frictionless, glass ceiling, Hacker Conference 1984, Hacker Ethic, Howard Rheingold, HyperCard, hypertext link, index card, informal economy, information retrieval, Jaron Lanier, Jeff Bezos, Jeff Rulifson, John Markoff, Jony Ive, Kevin Kelly, Kickstarter, knowledge worker, life extension, Marc Andreessen, Mark Zuckerberg, Marshall McLuhan, Maui Hawaii, Menlo Park, Metcalfe’s law, Mondo 2000, Mother of all demos, move fast and break things, move fast and break things, Network effects, new economy, nuclear winter, PageRank, Paul Buchheit, paypal mafia, peer-to-peer, Peter Thiel, pets.com, pez dispenser, popular electronics, random walk, risk tolerance, Robert Metcalfe, rolodex, self-driving car, side project, Silicon Valley, Silicon Valley startup, skunkworks, Skype, social graph, social web, South of Market, San Francisco, Startup school, Steve Jobs, Steve Wozniak, Steven Levy, Stewart Brand, Ted Nelson, telerobotics, The future is already here, The Hackers Conference, the new new thing, Tim Cook: Apple, tulip mania, V2 rocket, Whole Earth Catalog, Whole Earth Review, Y Combinator

As a kid, it seemed mostly suburban and safe and even dull, except for the fact that there were also a lot of nerdy hacker types around, and they kept things interesting in their own way. The woman who lived next door to us ran the computer center at the local community college. In the late seventies my mom would drop me off there so I could play Colossal Cave Adventure—a text-only choose-your-own-adventure type game: YOU ARE STANDING AT THE END OF A ROAD BEFORE A SMALL BRICK BUILDING. AROUND YOU IS A FOREST. A SMALL STREAM FLOWS OUT OF THE BUILDING AND DOWN A GULLY. WHAT’S NEXT? I never even touched the actual computer, as it was a mainframe and kept safely behind glass.