What is SCUMM-8?
SCUMM-8 is a PICO-8 "demake" of the SCUMM engine that powered most of the classic LucasArts adventure games, such as Monkey Island and Maniac Mansion. However, it is only (heavily) "inspired" by the SCUMM engine, not a true replica - for that you'll want good ol' SCUMM-VM.
My plan was to make it possible for anyone to make their own point & click adventure games in PICO-8!
|All the code and API documentation can be found on GitHub (link below):|
• Multiple Rooms (32+, technically)
• Pathfinding for walking
• Dialogs between Actors
• Camera system (pan-to, follow, static)
• Room transitions ("iris", cut)
• Customisable Verbs
• Fake 3D depth "Auto-Scaling" of Actors
• Z-plane ordering of objects/actors
• Custom scaling for Actors/Objects
• Global-level (background) & Room-level scripts
• Game start-up script
• Object dependencies
• Replace Color (to allow re-use of room/object gfx)
• Adjustable Room Brightness Levels
• Screen "shake" effect
• Proximity (between Actors/Objects)
• Animations for Actors and Objects
The above "game" is just a silly demo that I created as part of testing the engine. Unfortunately, due to the large size of the engine + game code, it had to be "minified" to allow posting to the BBS. The original demo game source can be found here (link).
Please see the SCUMM-8 Wiki (link) for details on how to get started creating your own SCUMM-8 game, as well as the the full API reference.
The following PICO-8 posts & resources were very helpful in the making of SCUMM-8:
• picotool: Tools and Python libraries for manipulating Pico-8 game files
• Overcoming tokens
• Sample Code: Screenshake and Fading
• A* pathfinding example
[b]v1.1[/b]: * [b]ADD[/b]: Fake 3D depth "auto-scaling" of Actors (affects size and walk speed to simulate distance) * [b]ADD[/b]: Now made "Scale" an Actor/Obj property * [b]ADD[/b]: Actor path-finding now more precisely walks to target point * [b]ADD[/b]: Added offset X,Y position for talking overlay sprites * [b]ADD[/b]: Actors and Objects can now have animations (via do_anim()) * [b]ADD[/b]: Can now specify default verb for clicking on inventory items (e.g. LOOK-AT) * [b]ADD[/b]: Skip current dialog (left-click/Z) * [b]ADD[/b]: Skip cutscene (right-click/X) * [b]ADD[/b]: Added UI settings properties (for easy custom UI theming) * [b]CHG[/b]: Auto-depth actor scaling is now on by default * [b]CHG[/b]: New UI settings properties must be set on game start-up * [b]CHG[/b]: Refactored do_anim() function's anim_face param is now face_towards * [b]CHG[/b]: Token count and character count have increased a lot as a result of the above changes - meaning less space for actual game content. However, you could always try spanning games across multiple carts, like I just did with my game: ["CODE-8"](https://gamejolt.com/games/code-8/340837) * [b]CHG[/b]: enable_mouse property removed - now always on by default * [b]FIX[/b]: "Walking to Object, then clicking diff Verb does latter" * [b]FIX[/b]: "USE" display (and also sample Game "bucket" logic) * [b]FIX[/b]: Hover obj display when executing * [b]FIX[/b]: Error if specify invalid sprite state * [b]FIX[/b]: Issue for actors without walk anims (defaults to "idle" anim) [b]v1.0.1[/b]: * [b]ADD[/b]: New CAM_X variable * [b]CHG[/b]: Diagonal pathfinding optional * [b]CHG[/b]: Say/Print_Line can now set duration * [b]CHG[/b]: Now skip cut-scenes on mouse click * [b]FIX[/b]: UI cols as user-config * [b]FIX[/b]: Fixed demo game bug [b]v1.0[/b] * Initial release
Fantastic! Impressive even in its own right, without considering the greater ambitions.
@gyfe: Thank you for your kind words. Very glad to see people appreciate the goal I was aiming for. Makes all the extra effort feel worthwhile! ;o)
Haha! Well, THAT'S quite an unorthodox way of completing the demo! :D
Yes, I made the fire "pickup-able" for a laugh one day and thought I'd leave it in as an "Easter Egg" - guess you win! :D
But I didn't even think about it being extinguished while in the inventory - just glad it didn't crash!
P.S. - Did you know you can also TALK to it? That's another "bonus", I guess... ;o)
@TriBar: Thanks again. It certainly should be able to use musurca's excellent PiCAD with it. In fact, that was my original plan - particularly as all room bg's would take only 1 Token (being string-based). However, I then had to think about collision for walking and also drawing fine detail would've been challenging. Probably a good solution would be to use a little of both, but (for better or worse) ultimately I ended up going down the "sprite/map"-based route in the end.
@oakreef: LOL! Thanks for letting me know. I think I know why that would be, as objects/actors will inherit the room's brightness level (unless they specify one of their own - like the fire). But as for why it would persist? Hmmm... Either way, will be fun squashing that bug! :D
@Rahrahrah: Thanks a lot, glad you like it! :D
@ToyCrab: Many thanks - me too! :D
I can't thank you enough for creating this.
I had the vague idea of creating something like this for a game concept, but you have already done all the hard work, and this will make it possible for many of us to make some of the adventure games we've dreamed of.
Yep, there's definitely something screwy about running a cart online when the mouse is in use in Firefox. The cursor locks up.
Does anyone else have trouble with this game using the mouse for an Online Pico game ? I've seen the same locking behavior in other carts.
Works fine though in Splore and LOAD().
Wow, thanks VERY much for the kind words Tom - that means a lot coming from you.
You wanna talk memories? Some of my fondest computer game memories are playing the Commander Keen games (all of 'em!) on my mate's Dad's 286. I can still here the "jump" sound coming through the PC speaker!
You have a wonderful portfolio of work, Sir - thanks for all the memories! :D
P.S. - This demo is quite old now, I've since created a few more adventures using my SCUMM-8 engine, they're all accessible from my website: www.liquidream.co.uk
[Please log in to post a comment]