The Revolutionary Technology Behind Monkey Island and Grim Fandango
Total Page:16
File Type:pdf, Size:1020Kb
The revolutionary Technology behind ‘Monkey Island’ and ‘Grim Fandango’ Oliver Franzke p1xelcoder About Oliver 1990 1991 1993 1995 1998 2009 2010 2016 2017 2015 SCUMM GrimE Powered by SCUMM™ 1987 1988 1989 1990 1990 1991 1992 1993 1993 1995 1995 1997 More games made with SCUMM SCUMM Way ahead of its time Room script 1 Script 2 Object script 2 Object script 1 Cut-scene script 1 Script 1 Script 4 SCUMM Script 3 Room script 2 SPUTM Data Example script – Maniac Mansion script clock-tick { do { clock-state = not clock-state object living-room-clock state clock-state play-sound clock-tick break-here 60 } } Source: http://www.gdcvault.com/play/1014732/Classic-Game-Postmortem-MANIAC Example script – Maniac Mansion cut-scene { ... actor nurse-edna in-room edna-bedroom at 60,20 camera-follow nurse-edna actor nurse-edna walk-to 30,20 wait-for-actor nurse-edna say-line nurse-edna "WHATS'S YOUR POINT ED!!!" wait-for-talking nurse-edna ... } Source: http://www.gdcvault.com/play/1014732/Classic-Game-Postmortem-MANIAC Example script – Maniac Mansion (cont.) onFrame() { … if(getLoc(nurse-edna) == (30,20)) { if(waiting_for_line) { if(doneTalking(nurse-edna)) { cut-scene { … ... } actor nurse-edna in-room edna-bedroom at 60,20 } camera-follow nurse-edna else { actor nurse-edna walk-to 30,20 sayLine(nurse-edna, wait-for-actor nurse-edna "WHATS'S YOUR POINT ED!!!“) say-line nurse-edna "WHATS'S YOUR POINT ED!!!" waiting_for_line = True wait-for-talking nurse-edna } ... … } } … } Become a Scummlet http://www.wilmunder.com/Arics_World/Games.html Cooperative multi-tasking Pirate 1 Fire Pirate 2 Time Spiffy … Frame Cooperative multi-tasking Pirate 1 Fire Pirate 2 Spiffy Anatomy of a ‘room’ Anatomy of a ‘room’: Layers Background Objects Actors Anatomy of a ‘room’: Layers Layer z=0 Layer z=1 Anatomy of a ‘room’: Object states Anatomy of a ‘room’: Object states Anatomy of a ‘room’: Object states Anatomy of a ‘room’: Object states Anatomy of a ‘room’: Actors Actor (Guybrush) Costume (Standard) Costume (Digging) Costume (Fighting) Costume (Cannon) Anatomy of a ‘room’: Costumes Costume Animation Animation Animation (Walk) Chore Chore Chore Chore (Front) Chore (Right) Chore (Back) Limb Limb Limb Limb Limb Limb (Body) Limb (Body) Limb (Body) Anatomy of a ‘room’: Costumes Anatomy of a ‘room’: Walk boxes Layer z=0 Layer z=1 Special Edition Original ‘Remonkeyed’ tech Graphics Audio Input Remastered data State snooping and translation SCUMM SPUTM Data … Special Edition Original ??? Grim Fandango engine (GrimE) Menu script Character animation table Game-logic scripts Set script Lua 2.5 3D renderer … Video playback Data GrimE Anatomy of a set Anatomy of a set: Background z x y Anatomy of a set: Objects Anatomy of a set: Actors and costumes Original Remastered Original Remastered ‘Grimastered’ tech Graphics Audio Input Remastered data State snooping and translation Scripts GrimE Data Original Remastered Original Remastered There is so much more… Thanks! p1xelcoder Resources • SCUMM • http://www.wilmunder.com/Arics_World/Games.html • http://www.gamasutra.com/view/feature/196009/the_scumm_diary_stories_behind_.php • http://alexyoung.org/2011/05/07/scumm/ • Grim Fandango • http://www.grimfandango.net/features/articles/lua-in-grim-fandango • http://www.grimfandango.net/features/interviews/interview-with-bret-mogilefsky • http://lua-users.org/lists/lua-l/2001-05/msg00149.html.