Thimbleweed Park 2 dev blog

Aug 8, 2026

A few people have asked what the difference with the engine we used for Thimbleweed Park 1 and what we are using for Thimbleweed Park 2.

They are basically two different engines with a few similarities, mostly in the format of the room images.

Thimbleweed Park 1 used SDL for graphics and sound and a scripting language called Squirrel.

Squirrel is a good language, but it couldn’t do the code optimizing I wanted and was missing a few convenience features.

You had to ship your game with full source and it compiled it at run-time. I wanted it to emit byte code so I could run an optimization pass.

After Thimbleweed Park 1 I started working on a early version of Death by Scrolling (called Runner back then) and in a fit of insanity I wrote a new scripting language called Dinky. It compiled to byte-code and had an optimization pass. It was still 80% compatible with Squirrel, but I added some new features and it was a lot faster.

About this time the idea of Return to Monkey island was starting to become real so I started (with David’s help) the game Delores. It was going to serve as a test bed for porting Thimbleweed Park 1 to my new engine that we’d use for Return to Monkey Island.

Thimbleweed Park 1 used the SDL sound engine which is very limited and porting to mobile and consoles required re-writing the sound engine. I initially poo-poo’d using FMOD because it would cost $6000 to use it for Thimbleweed Park 1, but in the end I spent more than $6000 porting to all the different platforms. Penny-wise, pound-foolish.

So Delores used FMOD and it’s a dream.

I also teamed up again with Derek who I had worked with on DeathSpank and he removed SDL and began a new graphics back-end that would use Vulkan, Metal, DirectX, etc. It would make porting to other platforms a lot easier and allow for better use of shaders.

We started Return to Monkey Island and basically used the Delores Engine. The big change we had to make was supporting hires images. It was just scaling the rendering, but we had to add a lot of smart caching because the texture were a lot bigger than pixel art.

I then started working on Death by Scrolling again and used the Return to Monkey Island engine with a new tile map renderer.

Death by Scrolling shipped and then Thimbleweed Park 2 became a reality.

Back to the Return to Monkey Island engine. The changes were pretty simple since we just need to scale it for pixel art again.

The big changes were in the Dinky scripting code since I want to re-look at the UI and verbs. I wasn’t happy with Thimbleweed Park 1, Delores or Return to Monkey Island and wanted to try something new, kind of a hybrid between the best of the three.

But more on that later…

So, it’s a very different engine.

Thimbleweed Park 1 -> Runner -> Delores -> Return to Monkey Island -> RPGTBD -> Death by Scrolling -> Thimbleweed Park 2 -> TBD


Comments:

Tom_ofB Aug 08, 2026
I am really looking forward to see how the UI changes affect the feel. Having played MI2 on an Amiga 500 with it's 11 disks, I doubt we'll ever bottom out on that.
The FMOD situation is a little disheartening. I wish open source all the way down - as for dependencies - would be the way for game development. Of course it can be done, but some areas still seem to require compromises.
Please do keep those technical glimpses behind the scenes coming.
Ron Gilbert Aug 08, 2026
One of the things that makes FMOD (and Wwise) so good is they run on consoles which is very hard for open source to do given the propriety nature of the consoles. This is a problem that Godot runs into.
David Fox Aug 08, 2026
Fun to have you lay out the history and evolution of these system languages. Each generation gives us more tools and flexibility. My favorite FMOD feature is spatialized sound with fine tuning and easily adaptable parameters, not so important on single screen rooms but essential for those long Thimbleweed Park streets!

And FMOD’s live preview — while running the game I can change envelopes/parameters until I’m happy.

And after I had to upgrade my Mac during RtMI (LeChuck’s ship killed the frame rate), it’s fun returning to much lower resolution scenes.
ohGr Aug 08, 2026
I love your work my friend, please never stop! :D
birenbergg Aug 08, 2026
Wait, is this 3D-ish game you've been posting on Mastodon actually TP2 in progress?
(Just kidding. I know it isn't. I hope it isn't.)
tcmsurfer Aug 08, 2026
"Always trying to improve things" vs. Never change a running system".

Thanks for the insights. The moat complicated part for me sounds like the graphical engine.

Got mo experience in the gaming field even though I would like to make it a passion of mine.

Just impressive that you can handle your tools this way.

Curious question though: Do your build and dependency systems also change and evolve over time?

And David: Glad you are getting more custom tools at hand to increase player immersion.
tcmsurfer Aug 08, 2026
moat=most
mo=no

(I should not write texts on my phone...)
Guga Aug 08, 2026
I think I speak for everyone* when I say -

- will you ever make the engine available to the public?

*by everyone I mean me.
Zak Phoenix McKracken™ Aug 08, 2026
At which point of the development of TWP2 are you by now?
Let's say: the Puzzle dependency chart has been defined.
OR, the story has been designed.
OR, nothing, we have just met and there will come a day for a brainstorming.
OR, we are taking a long vacation before the cruch.
OR, ...
Azrapse Aug 08, 2026
Looking forward to the innovations you have in store for the verb/interaction system.
I was there, in the late 80s early 90s, and the feeling from one Lucas adventure to the next was the constant innovation. What were you guys gonna come with next.
From the initial parsers to the word dials in Labrynth, to the fix huge verb list in Mansion, the disappearing verbs in Zack, action sequences in Indy3, smaller verb pool default verb right-click in Monkey, the wonderful verb-less, inventory-less interface in Loom...
It was a great journey!
Paul Aug 08, 2026
Innovative UI idea - text parser, but with voice control.

That way, you can sit in your living room shouting things like "use parachute on ferret" at your computer/TV and really get immersed.
AlfredJ Aug 08, 2026
Really interested about all those TBD's at the end...

Anyway, just popping in to say I'm over the moon about this news. Grew up with the old Lucas adventures, and nothing else in gaming excites me as much as the people behind those doing new games. Just a lovely surprise every couple of years.

This was a good excuse to replay Thimbleweed again! Can't wait to see what you guys are planning, and super happy the blog is back. Honestly chuffed about the idea I'll have this to keep me sane in the forseeable future.
Francesco Favia Aug 08, 2026
I was probably the first one to understand you were working on a new Monkey Island( as per my new conversation on Thimbleweed park blog) but I never thought you started during the Dolores mini gam, wow.
El Barto Aug 08, 2026
Now, I'm no fancy graphics programmer, but I believe Rob meant Vulkan instead of Vulcan :D
Sushi Aug 08, 2026
TBD = …
Threepwood’s Booty Dance (a rhythm game)
Tentacles Broken Dawn (prequel to Maniac Mansion and origin story of Green and Purple)
Thimbleweed’s Bughunting Delores (a text-only couch co-op game in which you need to find the bugs in actual Mmucusflem game code)
Ema Aug 08, 2026
After all the support you gave us during the development and production of the complete Italian fan dub for TWP, which was a huge effort involving a large number of talented amateur actors and passionate gamers, I hope you’ll be willing to support us again this time.

We would definitely be interested in undertaking a similar project for TWP2 as well.

If possible, we would also really appreciate it if, during the development process, you could keep the possibility of integrating an Italian dub in mind, ideally in a way that would make it relatively easy to add later on.

Thank you again for all your support. I hope we’ll have the chance to collaborate with you again very soon!
Ron Gilbert Aug 08, 2026
I hope you’ll be willing to support us again this time.
It's going to be interesting now that we use FMOD, It's not a bunch of free sound files. You'll need to build a .bank. I'll need to figure out a system where it can load .bank files for languages. FMOD is free to download and use for something like this.
wysiwtf Aug 08, 2026
we want an iMuse like music system because it rulez.
ben Aug 08, 2026
we want an iMuse like music system because it rulez.
FMOD does adaptive audio! see RtMI
Zak Phoenix McKracken™ Aug 09, 2026
I'll need to figure out a system where it can load .bank files for languages. FMOD is free to download and use for something like this.
Downloaded the Studio and created a test bank. Associated each sound to an event. Once we share the same event name, then build the .bank, the most of the work should be done. Nice!
Ron Gilbert Aug 09, 2026
That's not the way it works. Voice is stored as "programmer sounds", linking them up is more complex than that. But we have over a year to figure it out.
Matthew Bloch Aug 09, 2026
I'm just starting on integrating Lua into a device firmware, where we literally only need a few 10s of lines of code for users to upload. So aesthetics aren't a huge concern, plus I hope we can get away with the slower interpreter. I might change my tune in a few weeks but :)

In contrast, you're writing thousands(?) of lines of code with TWP2's scripting language, but ripping out the old one (that shipped! that your team, presumably, knows well?) seems pretty major. What kind of pain did Squirrel's lack of optimisation cause your team while building TWP - or was it more about the unnatural structure? I'd love to see some example fragments.
uriel Aug 09, 2026
Back to the Return to Monkey Island engine. The changes were pretty simple since we just need to scale it for pixel art again
YES!
Laserschwert Aug 09, 2026
Maybe TP2 might be a good excuse to get international publishers for full voice localizations of both games? RtMI's German dub was - for the most part - stellar!
Ema Aug 09, 2026
get international publishers for full voice localizations of both games?
After the Italian Fan Dub I can't imagine Delores speaking in Italian in no voice other than Beatrice Segna's, or Ransome in no voice other than Guga's. :-)
Ema Aug 09, 2026
But we have over a year to figure it out.
Thank you Ron. We're looking forward to start working on it
Roman Aug 09, 2026
So your 3D-Dungeon-Gold-Collect WIPs were just there to fool us ;-) Or was it also some Dinky test/enhancement development?
Brian G Aug 09, 2026
Thanks for the peek behind the engine. I worked for many years at a company that produced spatial audio codecs for gaming (and other purposes like architectural acoustics), and we did integrate with WWise and FMOD. It was an unfortunate necessity to be available for consoles, and for Oculus and Valve's headsets.

Both programs are well thought-out and intuitive when it comes to producing scenes, but they are truly gate-keepers when it come to smaller companies attempting to run a business in game/computer audio. Because there's so much segmentation, it's not really possible for little guys to make something that works for everything unless you use one of them, or you offer a version that can be baked into the final product. But that carries it's own issues where the game devs have to learn the bespoke way to utilize the dlls etc etc

Not a huge fan of how expensive they are, and their hold on game audio is growing stronger and stronger because people don't pay as much attention to audio as they do to graphics, so fewer people care.
Ron Gilbert Aug 09, 2026
So your 3D-Dungeon-Gold-Collect WIPs were just there to fool us
I didn't use Dinky for those, so they were just me messing around with 3D. It was useful because I got CI builds on Github and now use that for TWP2.
Glen S Aug 10, 2026
I've been playing around with SDL3 a bit and being able to write shaders once in glsl and then cross compile to hlsl/spir-v is awesome. Are you still using Yack for Dialogue? I am attempting to make my own game at the moment and managing dialogue is one of those problems that I am really putting the 'pro' in procrastinating on because I am not sure to begin. I fear it is either a combination of analysis paralysis and over complicating things or... if I write a dialogue system then I have no excuse not to start writing dialogue (it's probably this one ha ha)

Would be cool to also hear how you went about making dinky. Lua upsets me for reasons that I don't even fully understand and other scripting languages like python are just way too heavy to try to embed.
Ron Gilbert Aug 10, 2026
I've been playing around with SDL3
SDL2 was not good enough to do what we needed. Haven't played with SDL3. I do hear good things. Dinky and Squirrel work like LUA "under the hood", but ditch the goofy syntax. I use LUA to write WoW add-ons and script Aseprite.
Guga Aug 10, 2026
Welp, it's time I finally learn how to use FMOD.
Ricardo Ratatour Aug 10, 2026
Totally out of context, but this just popped into my head: I really hope TP2 takes place during the “Blue Hour,” because it creates such a mysterious atmosphere. Some of my favorite parts of MI1 and MI2 happen during those magical moments.
Frisby Aug 10, 2026
Still really conflicted aesthetically on modern pixel art games running at high 'internal resolutions' with the 'real' resolution evident in the various shaders, lighting effects, fonts, UI, and scaling of sprites.. Im probably one of 3 people that notice where those pixel resolutions clash, but I'd love to hear what your rules and goals are with things like this. Drifter did cool things with rim lighting shaders and Thimbleweed definitely pulled it off for the most part, but it's definitely a thing that sticks out on a lot of pixel games.
Crocodile Aug 10, 2026
One of my few issues with Return to Monkey Island was not being able to use items on things they're not meant to be used on, as it both cut down a bit on potential for interesting dialogue and also made the game a bit too easy (at least until chapter 4, the breadth of that chapter mitigated it a bit). Of the three games I liked TP the most in terms of UI/Verb setup in that sense - it was also probably my favourite adventure game ever in terms of puzzle balance, and the interface probably helped there. Looking forward to seeing what you come up with this time.
stevekirkpop Aug 10, 2026
Nice to hear you are using FMOD. That should greatly improve the "modular sections of one piece" concept, to the point of being realized seamlessly.
Ron Gilbert Aug 10, 2026
Nice to hear you are using FMOD.
FMOD is great at doing seamless transition and randomizing them. Even if you don't do full-on adaptive music.
Jon James Aug 12, 2026
So, has the engine already got into "feature lock" or is there still going to be some tinkering?
Mololo Aug 13, 2026
Please. The first game was awesome. But this time make us solve the mistery in the plot instead of going 100% meta, pretty please.
Justin Graham Aug 13, 2026
Hi Ron,

Probably too late now, but have you considered WASM in a WebView? You can compile all your engine code (c/c++ and others that target WASM), and those call into JS and use the browser API's for WebGPU, audio, etc. You can still build native apps for anything that has a WebView and you get the benefit of a single codebase for all platforms. Native capabilities can also be bridged for things like haptics if you care about those. Added bonus is that it will run in a browser too.
Marcbush Aug 14, 2026
Please Ron, think about coming back to monkey island afterwards. I would love to see islands from lechuck revenge. Anyway thank you for creating whole worlds that become dreams
Skelovade Aug 19, 2026
Thimbleweed Park 1 -> Runner -> Delores -> Return to Monkey Island -> RPGTBD -> Death by Scrolling -> Thimbleweed Park 2 -> TBD (a new Maniac Mansion??? pls pls pls!)
Thorsten Aug 20, 2026
Hey Ron,

love both your games and the insights here even more!

Have you considered creating a whole new DSL specifically for your games, or are Squirrel/Dinky just "good enough"?

I'm a seasoned developer myself and am currently working on such a language/VM.

Specificically tailored for point-and-click games, with a stack based VM written in C and both a compiler and language server in Go.

Goal is to have a very comfortable scripting environment for script authors, eg. using VS Code.

Would love to read your thoughts!

Ron Gilbert Aug 20, 2026
Have you considered creating a whole new DSL specifically for your games
That's what Dinky is, unless you have a specific definition for a DSL.
Thorsten Aug 21, 2026
Hi Ron,

wow, thanks for getting back to me - it's an honor!

What I meant is a language specifically for the game, rather than a general purpose scripting language (with an little altered syntax).

For example, my engine currently uses scripts like this one:

// Playable characters
actor Dave {
full_name: "Dave Miller"
}
actor Bernhard {}
actor Syd {}

// Items
actor FrontDoor {}
actor FrontDoorKey {}

when Dave uses FrontDoorKey with FrontDoor then
setFlag FrontDoorOpen
@async Dave: "It's open now!"
Bernhard: walkTo Dave
end


---

This gets parsed into a bytecode for a (stack based) VM, which I specifically designed for the game with opcodes like OP_ACTOR_SAY or OP_ACTOR_WALK_TO.

I also created an LSP, so I can edit my game scripts in VS Code and get instant feedback like "Actor 'Larry' not defined" and things like that.

So, is Dinky more along those lines or based on Squirrel/LUA?

Thank you!

Add comment: