Delores Source Code Released!

May 25, 2020

Oh crap!

I accidentally pushed the wrong button and made the Delores source code available on GitHub.

I guess there is no putting Delores back in the bottle now...

(wait for laughter)

I'm only half kidding.

(wait for Todd in the third row, who laughs at anything, to stop laughing)

I did publish all the source code to Delores on GitHub, but it wasn't an accident. It was a well planned endeavor to give you even more to do during pandemic lock-down. I'm sure everyone is getting tired of playing Animal Crossing, and what better way to exercise your grey-matter than modding your favorite game.

But wait... there's more...

(wait for oohs and ahhs)

Not only did I upload all the source, but I also uploaded all the art and the entire FMOD project (many thanks to FMOD).

But wait... don't hit the back button yet...

I also uploaded the dev build of the Delores engine (including the complete debugger) so you can run all your edits and changes. Also included is Wimpy, the executable that allows you to add and edit objects in Rooms.

"Holy crap-a-reno! What's the catch Ron?"

While you can do pretty much anything you want to the game, including writing a whole new UI, or translating into any language, or returning it to the verb matrix, you can't release or publish a game. This is intended for personal and hobby use only.

The other downside is these really are the dev tools we used to make the game, and like most in-house dev tools, they are poorly documented and very crude around the edges. While I do provide some help documentation it is mostly limited to an index of Dinky commands, not a tutorial.

What? You want a Hello World example? OK, fine.

local image = createTextImage(FONT_SYSTEM, "Hello World", 48)

There is a fairly high degree of technical and programming knowledge needed. I've always skewed away from visual programming and dialogue engines. While they are great for beginners, getting real work done is problematic. Again, these are the real tools we used, not watered down "consumer" tools.

I've been using Git for 10+ years, but this is the first time I've ever had a public repo and had to deal with pull requests, etc. This will be a big learning curve for both of us.

I generally won't be accepting pull requests just for modifications to the game unless they fix bugs related to getting this repo working. I might accept pull requests for documentation and new translations and if they are good they maybe-might be integrated into the shipping game.

"But Ron, why won't you accept my bug fixes and improvements to the game?"

Good question little Timmy... let's dive into that...

A game that goes on Steam, Epic, or GOG requires a great deal of testing. Delores had/has two full-time paid testers and before any build was uploaded to a store, it got a good deal of testing around the fix, plus a complete play through of 30 photos was required on each platform. Each of the stores uses the same "bits", but we still had to download each platform from each store and do a run through.

And that was for an easy fix. If the fix was more involved or changed logic significantly it could require 20-40 hours of testing. If we broke a store build, it would be hours of tech support emails.

I believe a lot in testing and testers and much of that came from my time at Lucasfilm and dealing with hard media. To even put a build of Monkey Island into test required over an hour of work as I made and verified 5+ floppies. Just rebuilding the SCUMM scripts to Monkey Island took over an hour (a job that takes a fraction of a second for Delores).

Releasing a build going to manufacture was nerve wracking and very expensive. If you introduced a stupid bug, you'd remake 200,000 floppies. While Monkey Island was in final testing, any change had to live in test for two weeks. If we found a bug and made a new build, we'd reset the clock.

Today it's easy. I start a shell script, wait 15 minutes for the CI machine to build the new engines and 5 seconds later it's on Steam and I can push the "publish" button. It's too easy.

BONUS NOTE: Don't believe the myth that programmers can test their own code. They can't. Programmers will test for all the conditions they can imagine, but a good tester will imagine many many more and players will try things programmers never even considered. Knowledge of their code is the achilles heel of programmers. I've had code I was 100% sure was rock solid, only to have one of our testers reduce me to tears. A good tester excels at poking your code in places you never considered. I'm not talking about your unit tested sort routine, I'm talking about complex puzzle logic and odd UI uses. It's the stuff unit tests will never catch, but a good tester will. Testers are the unsung heroes of your team, treat them very well.

Every time you do a build, you also run the risk of accidentally introducing an error. Once I did a build from the wrong branch, everything looked fine but after a few bugs came in, I realized something was very wrong. I'm glad I didn't just build and hit "publish". Even fixing a typo requires testing.

"Hey Ron, little Timmy again... why don't you release the source to the engine?"

Another great question.

Releasing the engine source (c++) is problematic for a few reasons. The first is that it uses a very large library of mine, most of which is not used in this engine, so I'd have to go though and cull out all the cruft, not to mention all the proprietary console crap. I also use some third party source I don't have the rights to release. It's a big job and would split my main engine off from the released engine, which becomes a merge catastrophe (either that or a million #if's).

"Little Timmy again, I have a followup question... Why don't you license the executable for us to use in our shipping games?"

Allowing others to release games using the engine is a support nightmare for me. A game would be released and then customers would have issues, or it wouldn't work on specific hardware, and then I'd be stuck (indirectly) supporting it. I could charge money, but unless hundreds (if not thousands) of people licensed the engine, I fear the cost would be more than a game is likely to make.

But the most important reason is that I like to make games and want to dedicate most of my time to making new ones, not supporting an engine.

Once you've had a chance to look at all the source, I think you'll realize there is no "secret sauce" here. It's just an adventure game engine. Why did I create a new one? Because I enjoy it.

This post ended up being longer than I expected. I hope you enjoy looking through my and David's crappy code. Happy modding. I'm excited to see what you do.

(wait for laughter from todd)

Keep in mind, the Delores source is intended solely for personal use to learn and explore. Please respect our choice to release the source by using it as intended.

P.S. The dev engine has all the same limitations as the game, so Mac 10.10, Win 10 (dx12) and unfortunately (at this time) no Linux build. As soon as the Linux version is done, I will upload that as well. It might be a month, or months, or longer.

P.P.S If you have questions or want to help others out, visit the Thimbleweed Park Forums

Gaby May 26, 2020
Ho. Ly. F.!!! Thanks, Ron!!

Paul Nicholas May 26, 2020
OMG. Awesome-a-Reno!
Looking forward to checking this out.
Thanks a lot, Ron! ๐Ÿ˜€

Mauricio E. Silva May 26, 2020
Is this your way to tell us that you couldn't find a Linux laptop that you like and we need to port it our self?.

Lautaro May 26, 2020
Thank you Ron, this is amazingg!!

Chadwyk May 26, 2020
Wow this is awesome! I always wondered what the Wimpy tool looked like! A cool peak under the hood for your scripting language! I wish I could see your code in the engine executable to see how you handle lower level things like walkbox algorithms, inputs, rendering, etc. but I totally understand why you aren't releasing the code for that. Thanks for this! I know what I'll be playing with today!

Michael May 26, 2020
This is awesome! Thank you so much :)

Pablo May 26, 2020
Please develop monkey island 3. Sorry disney, we need it

Gianmichele May 26, 2020
This is so awesome!

Reagan W May 26, 2020
You're the man, Ron. Seriously.
Bought you five coffees because of the joy and laughter you've brought us all (most of it intentional!).

Thank you, sir.

arensb May 26, 2020
I went straight for the Images directory. I used to have fun digging the images out of games like Sam & Max or The Longest Journey, and putting them back together in an image editor. This is just like that, except with the author's permission.

Ron Gilbert May 26, 2020
You could also just look at the .psd files? Or does that take he fun out of it?

Voxel May 26, 2020
If you guys want to make collaborative projects come to hitRECord dot org, we write, illustrate and animate many things. There's people interested in doing games with unity.  If you are visiting this blog, chances are we have a similar sense of humor and we can develop something great. Right now, I'm trying to do a short film with a B-Movie vibe, we are locking down the script next week, so if you want to add some gags and ideas you are more than welcome. If a project makes money the platform distributes it among contributors. The animation will be created in Blender.

Voxel May 26, 2020
By the way Ron, thanks a lot for this. I'm not a programmer but I do appreciate people sharing to allow others to learn.  Sorry for plugin the collaborative platform above, but I also think that collaboration is a huge source of knowledge and experience. Looking forward for you next effort. Been a fan for a while!

Zak Phoenix McKracken May 26, 2020
... speechless!
I urge to take a day off, to dig into all the code...
Still can't believe it.
Oh, Zak, are you dreaming, isn't it? If course, you are used to dream....

Acmeplus May 27, 2020
Thanks Ron!

G May 27, 2020

Michi May 27, 2020
From the bottom of my 80ies-gamegirl-softwaretester-heart, I cannot thank you enough for constantly emphasizing the importance of testers at all points of the process - this really made my day and makes me love my job even more <3

PS: I shared this with my QA-colleagues and we all agreed: making a programmer cry, those are our magic moments ;D (I actually take a bath in developer's tears daily, that's why I still look like 25.)

Burretploof May 27, 2020
Good stuff, Ron! Thank you. :)

I am rubber, you are glue. May 27, 2020
Thank you Thank you Thank you Thank you RON!  <3

Pippokill May 27, 2020
Thanks!!!  Great news! I teach Advanced Method of Programming and this year the students must develop a textual/graphic adventure game as the exam project. I will send them this post maybe it can inspire them!!! Thanks!

Yann Lebrun May 27, 2020
Thanks I love to put my eye in your brain ^_^ Do you plan to do a real Point And Click Maker a day ?

George Broussard May 27, 2020
Ron, this is awesome. Thanks for sharing the code. Any shared code like this helps, educates, and will inspire someone or many someone's to do great things.

Steve Brown May 27, 2020
Neat!  Getting a DX12-capable 'gaming rig' (aka $200 refurb laptop from tigerdirect's bargain bin) is definitely on my to-do list.
Until them...back to pissing away the summer with Animal Crossing.  Er, World of Warcraft.  /sigh

David Fox May 27, 2020
Michi, one of the best play testers I worked with back at Lucasfilm Games would walk into my office with a sly grin on her face... I knew she'd found a big one. I don't think I cried, but I definitely would feel the blood drain from my head. The bigger the bug, the more evil her grin. It was terrifying, but she was awesome. Thanks Judith!

Eigendrea May 27, 2020
I was hoping this day would come but I didn't actually believe it.
Thanks for this bonanza, Ron!

Ignacio May 28, 2020
This is great, thank you!

I've been playing a bit with it and tried to start a Spanish translation, is it there a trick on the charsets? can't make some of the latin chars to show up, like the inverted question mark ยฟ.

Thanks again, its great for learning!

Ron Gilbert May 28, 2020
You have to add those to the fonts/ Visit the forums at

Other people are doing translation and have probably added characters.

Stick May 28, 2020
About testing, this joke came to my mind:

Dev builds a bar.
Tester enters the bar and order a coffee, 0 coffees, 9999999 coffees, "blablablargh" coffees.
A user enters the bar, asks for the toilet. The bar catches fire, everyone dies.

Thanks Ron. Despite you code being the star of this post, I think your experience with testing is even more valuable!

0A0 May 28, 2020
Nice, and no GOG needed anymore too. As the source for the engine isn't available (yet), will you add support for some fmod effects? I guess you can't write code for an Arcade yet?

0A0 May 28, 2020
Got it, this is fun.

Vladimir Solovev May 30, 2020
Wow! I am sure that soon there will be a lot of German adventure crossovers MM games based on graphics from Delores Dev.

Johnny Walker Jun 02, 2020
I'd love to know what commands you added/changed from SCUMM when creating Dinky. And what you've learned about writing.a scripting language for graphic adventure games. Thanks!

Noah Falstein Jun 03, 2020
>Just rebuilding the SCUMM scripts to Monkey Island took over an hour
Does that count the speed-up if you jiggle the mouse while it's building?

IceColdCat Jun 05, 2020
We love you Ron Gilbert. You have a pure passion for adventure video games, that's what you can see in your creations, and it's beautiful!

Morph Jun 10, 2020
Thanks Ron!

Gil Jun 14, 2020
Such beautiful scripting language. Thank you so much for this!

Sam Jun 18, 2020
Uuuuuuuuh I Never saw this! Thanks Ron! *_*

Cole Jun 21, 2020
What resources do you recommend for someone looking to build their own adventure game engine?  I've built a small 3D graphics engine before, but I've never made it interact with game logic. Jun 21, 2020
@Pablo: There already is a Monkey Island 3.

Mancomb Seepgood Jun 21, 2020
@Pablo:  There already is a Monkey Island 3.

Marko Jun 22, 2020
So there's a chance anybody out there could nake a Win7 compatible Delores build? That would be great.

wimp Jun 27, 2020
Help! How do I move around in Wimpy?

Ron Gilbert Jun 27, 2020
Hold the SPACE and LEFT-DRAG.

Chris Jul 28, 2020
"Testers are the unsung heroes of your team, treat them very well."

As a professional tester for over 20 years, thanks for this! It really can be a thankless role, but seeing comments like this make it worthwhile.

Joseph Francis Feb 10, 2021

I'm a fan of your games since they first came to me. I also played from others,  but your games are my all time favorite. Thanks a lot!

I'm a long time electronics engineer and hobbyist programmer since early 80s. Due to pandemic and other personal situations, I'm recycling myself into computer programming and did collaborate in game development. I develop at both commercial and "freeware" games. I don't want to reveal it because I'm known in my previous industry and want to stay unknown for now, I'm also a grey beard (probably older than you) and already suffered ridicule because switching from high end electronics design to "making games for silly kids and no life nerds". This decision even made my wife get divorce from me, but I don't regret about it because it's the dream of my life. I'm starting at learning how to do adventure games, my very favorite genre.

What are the differences between Dinky and your expanded Squirrel fork?

Would you please want to release the source code of Dinky? It may be interesting for other (indie) game developers. Please consider it, it would be an amazing contribution to the world from a very experienced game developer.

I thought Lua was used everywhere these days. I did know Squirrel because used it in embedded systems and automation for some custom and very specialized equipment, but had no idea it is used in game development.

I wish you would rejoin with some of the best talents in LucasArts and even Sierra On-Line (why not?) and develop an AAA adventure game. I would prefer 4K HDR 2D game using advanced rotoscopy animation, but that's too expensive and niche.

Maybe I should relocate to Germany or Italy, it seems adventure games are still very big there. Io parlo Italiano molto bene.

Fabian Feb 28, 2021
This is awesome! I played all your point and click adventure games and when Thimbleweed park was announced I was thrilled and I bought it as soon it was released. I was 4 years old when I started to play adventure games with maniac mansion and zak mckracken (with my father's help of course).
I always wanted to take a peek to the code of this type of games. Thank you again. It is going to be very educational.

Dino Mar 28, 2021
Hey, too much gathering in here, you should all wear a mask!
Thanks Ron by the way...

Rishi Aug 20, 2021

Sergio Jan 04, 2022
It's so nice watching a programmer you admire talk about programming while you are a programmer yourself.

Duke Of Germany May 18, 2022
Dear Ron,

thank you for sharing the source code, it is wonderful to get insight into your own scripting language! ๐Ÿ˜ƒ

I am trying to wrap my head around two things:
- When the player is saving the game, do you also save the currently executed line of each script?
- If so: When you ever make an update to the game that changes one of the scripts, how can you assure that save states still work?

Maybe you could give me a little hint or two, I would appreciate it so much! ๐Ÿงก

Thanks again, and best regards!

Have you ever thought about including a little bit more than just your articles? I mean, what you say is valuable and all. However think of if you added some great visuals or video clips to give your posts more, "pop"! Your content is excellent but with pics and videos, this website could undeniably be one of the most beneficial in its field. Superb blog! May 27, 2022
Have you ever thought about including a little bit more than just your
articles? I mean, what you say is valuable and all.
However think of if you added some great visuals or video clips
to give your posts more, "pop"! Your content is excellent but with pics and videos, this
website could undeniably be one of the most beneficial in its field.

Superb blog!