Grumpy Gamer

Ye Olde Grumpy Gamer Blog. Est. 2004

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

May 19, 2020

I know you’ll hate me for saying this, but Python is a mess. I love programming in Python, but holy crap-a-reno is dealing with all the modules a pain-in-the-ass-a-who. Then python 3 came out. Now I have a complete mess of modules on my machine. I have some modules that are system wide and others that are install just for me. I have no idea how it got so screwed up. It’s probably that my Mac is 6 years old and it’s just been a slow module death. I’d love to wipe it all clean and start over. I think that would just make it worse.

I’m sure there is some logic behind it, and I’m sure all the python pros are laughing, but getting python working for the average user is nuts. I’m trying to walk some people through it now and it’s just impossible.

May 18, 2020

Back by court order, it’s the Last Thimbleweed Park Post + 1.

Today, David and I chat about the new Delores game.

@@soundcloud=823244485@@

May 13, 2020

Succumbing to overwhelming requests, we’ve decide to record a special Delores podcast.

Also realizing that we’re really bad at figuring out what to say, we’ve decided to make it a AMA podcast. But it’s not just me doing it, so it more “us”, so it’s really a AUA podcast. And when I say “anything” I really mean anything about the new Delores game. So, I guess it’s really a AUAAD podcast. Kind of rolls off the tongue, doesn’t it.

Anyway…

Post your questions in the comments thread and Sat at 11am (PDT) we’ll gather the best of the best and answer them and post the podcast on Monday. Please try and keep the questions about the new Delores game and not general TWP questions.

COMMENTS are now closed while I gather up all the questions.

May 12, 2020

Much like when TWP launched, people have been asking for right-click to skip dialog in Delores. I’ve really pushed back on doing this for one reason: It’s too damn easy.

During the TWP playtests, I watch players right-click to skip dialog so fast that it didn’t even register something came on the screen. Then a bit later they would be confused. I’d ask some questions and it was clear that the dialog was never even seen.

The problem with right-click is that the right/left-button twitch is so ingrained that the moment text flashed on the screen players would instinctively right-click like they were playing a round of Jeopardy. Most of the time they wouldn’t even notice they were doing it.

This isn’t matter of me being a prima donna about players not reading my glorious dialog, this is about players not reading any dialog, being confused, and inevitably blaming the game (my therapist keep reminding me that there is a line between me and the game).

If you have ever watched someone playtest something you’ve done, you will know the feeling.

While players can skip dialog with the PERIOD key it’s not as automatic as right-click. Just that small separation helps a great deal.

All that said, you can middle-click to skip dialog, but it’s not as instinctually ingrained as right-click. Even skipping dialog on controllers isn’t as pavlovian as right-click.

You can add rightClickSkipsDialog: 1 to your Prefs.json file (finding that is an exercise left up to the reader) and happily skip as much dialog as you want. It is good for speed runners, or the 10th time player, but it’s hell on new players.

Like in TWP right-click only skips dialog in cut-scenes and other situations where input (the cursor) is off.

May 10, 2020

I’m looking for a good Linux laptop. I’ve hunted around (probably not in the right places) and found a few I like, but then I go to buy them and they all come with Windows. I’ve had several bad experiences with trying to install Linux, flashing boot roms, plugging in USB drives, etc, etc. I just want to buy a laptop that already has Linux. Is this possible? I want a very small and light weight laptop, but I want it to run real Linux, not a silly Chrome book or the like.

Does such a thing exist? I was pointed to System76 but the laptop looks very bulky. I want something smaller.

P.S. I don’t know if it’s still true, but there was a time when it cost retailers more (due to MS contracts) the ship a computer WITHOUT Windows than with.

UPDATE: I’m getting a Dell XPS 13. Thanks for all your feedback.

May 9, 2020

By Ron Gilbert

As I write this on the 9th day of May in the year of 2020 the Pandemic is far from over. Different people deal with isolation, fear, social distancing and hoarding toilet paper differently. I built a game. It helped keep me sane.

As I mentioned back in March, I began rewriting the Thimbleweed Park engine with no real goal in mind, it just seemed like something to do and I had a few ideas about UI I wanted to explore.

What began as a way to waste time, turned into a fun little game prototype. A little over a month ago David Fox came on, then Robert, Katerina, and Octavi jumped on to help. The game was built almost entirely from existing art, sounds and music from Thimbleweed Park, more of a remixing into a new game that can be seen as an addendum to Thimbleweed Park. It is not a sequel.

We hope you enjoy it, it’s complete FREE on Steam and the Epic Store. A strange little game for the strange and stressful times we find ourselves in.

Did I mention it’s FREE.

Stay safe and I hope this little game helps, even a little.

In the coming weeks I’ll be posting more about the new engine and how it’s different and hopefully better.

Apr 19, 2020

Crafting Interpreters

I hope everyone is doing well and staying safe.

As a fairly extreme introvert, all this stay-at-home social distancing isn’t much change for me. Most restaurants are offering “no contact” delivery where they place the food at your door, ring the doorbell, then leave. I like this. I hope this practice continues after the apocalypse.