Game
Above The Waves
10 years ago

Using SLUDGE To Make A Point And Click Adventure Game


First up, for anybody hoping for an update to Above The Waves, sorry! We’re hoping to expand the game later this year, but we’re not ready to talk about that just yet.

Instead, this post is a bit more reflective, and looks at the experiences of making a game using the SLUDGE engine. It’s an excerpt from a much longer article which dives into using SLUDGE’s tools and runs through some of Above The Waves’ source code.

Picking An Engine

Any time I’m about to start a new project, I like to have a look around and see what tech there is out there that fits that project’s needs. With Above The Waves being my first proper attempt at a point and click adventure game, it was time to dive in and experiment with some new tools.

Beyond aligning with the specific needs of a project, my requirements are usually a mix of one or more of the following:

  • Must be Free Software (the power to do a meaningful permissive source release is super valuable regardless of whether it’s now or later)

  • Must be usable on Linux from a development perspective (I’ve used tools in Wine before, but I prefer to not)

  • Must be deployable to Linux, Mac and Windows (huzzah)

  • Must show some promise as a usable solution (appears “finished” enough to be functional)

For Above The Waves, I knew that I wanted something capable of providing a point and click adventure style experience. To keep the amount of tech development time down during Adventure Jam’s two week window, convenience methods and tools for common 2D adventure game style functionality (automatic nav mesh traversal, perspective scaling, sprite animation, depth handling, etc.) felt essential.

Based on previous research, I had narrowed down four engine possibilities that seemed to fit most of my requirements.

  • AGS (Artistic License)

  • Godot (MIT)

  • ScummVM (GPL)

  • SLUDGE (LGPL)

Narrowing down options here was pretty straightforward. ASG’s lack of native Linux tools made it easy to cross it off the list. Likewise, ScummVM doesn’t have much in the way of available tools either (there is a Qt based Linux compatible editor for the AGI engine, but its last code update was in 2012), and the ScummVM developers frame targeting it for new projects as “not advisable”.

Godot was a serious consideration. With it being used for The Interactive Mendonça Adventures of Dog & Pizzaboy, Godot has been getting a bunch of 2D point and click adventure specific enhancements. Some of these had made their way in by the time Adventure Jam rolled around, whilst others have come into the codebase more recently. Godot’s level of complexity and learning curve looked to be steeper than SLUDGE, and with the window I had available, I decided to put Godot aside for later use.

SLUDGE seemed to map fairly well against what I was looking for - it’s LGPL licenced, runs on the three major desktop platforms, and consists of an engine (a common binary that’s the “player” for a SLUDGE data file, much as AGS or Unity might have), a spritesheet builder, a nav polygon editor and a tool for creating depth masks, and a utility for managing localisations. The engine and toolset also compile on Linux, Mac and Windows.

At the core of SLUDGE is the scripting language itself. This language is fairly straightforward, but has a number of idiosyncrasies that I’ll go into later. The SLUDGE compiler builds scripts into some kind of bytecode that the SLUDGE engine can run.

I’d been aware of SLUDGE for some time and had had some recommendations from friends, but hadn’t really had a project suitable to use as a testbed. I also have a couple of acquaintances who’ve previously used it that I felt I could nudge for assistance if I needed it. In addition to being able to look at friends’ projects (thanks Rusty!), I had access to several example projects on the SLUDGE website that looked like they would cover most of the functionality I would need if I wasn’t able to figure it out myself.

SLUDGE was originally created by Hungry Software for their own games (there’s not a lot of solid information about timeframes that I can find, but so far as I can tell, that started with Out of Order), and has since been released under open licences (the engine itself is LGPL, and the suite of editing tools is GPL).

In hindsight, I’m glad I checked out SLUDGE. It was a good opportunity to mess around with the tools, and it was enjoyably fast to put things together.

If you’re keen to read more about SLUDGE and check out some snippets of source code from Above The Waves, check out this article.



0 comments

Loading...

Next up

This Satuday we invite to watch another #speedpainting of our artist Daniel Faiad.

How great is this scene of #Pecaminosa?

#ScreenShotSaturday | #IndieDev | #DigitalArt

Smile! Here, take some happy pills! ✨💊 #Blender #3DModelling #3DArt Buy me a Ko-fi: https://ko-fi.com/barbarafb_

Enemies can also suddenly spawn through Realm Rifts. These Rift Spawns are going to be stronger than the ones wandering around. TBD on the enemies... #screenshotsaturday #godstear #madewithunity

Quantum precognition is one of the most powerful cards. End game cards & equipment. Demo/alpha build boss is no match for this deck.

Updated the chest in the maze, adding sound, particles and better animation. But what's in the chest?

"Our work is never over" they said.

What you all think

I worked so hard to get all four of them to the end safely, but then...

"Day to Day" (also check spud out here he's a great guy and writer: https://soundcloud.com/spudward)

Let me introduce you to the new Mech line: Gendai Spec. Those are Mech that specializes in surprise attacks, covered operations, and stealth. They are equipped with melee weapons but one of Gendai's frames supports sniper rifles.