Oddly satisfying

I like reorganizing my Inform 7 project with volume/book/part/chapter/section headings (Ryan Veeder’s mnemonic “Very Bad People Choose Sin” will never leave my brain. Thanks, Ryan.) to better suit my need to fly around lengthy code. It’s a great way to pretend to be working on my game when I should be working on my game.

Is there something you find oddly satisfying while tinkering with your game? Any system.

8 Likes

I like making big rules in Inform 7, like

before doing something
or
after reading a command
or
after doing something

it’s the thrill of danger, I think

Scope rules, too, a very similar experience

e: I also like doing scenes just to have them in the index. Scenes index is weirdly satisfying to me.

e2: rules that check the current action against a table value! I especially like making up actions with very literal, readable names and putting them in tables. I guess I like a lot of things in Inform 7

8 Likes

I was disappointed that
Before:
does nothing different than
Before doing something:

I wish there was away to do something similar to Before: but for activities.

But my most satisfying Inform 7 activity is breaking off pieces of code and putting them in extensions with silly names.

6 Likes

Sometimes I’ll have an if/otherwise in Inform which only applies to a few things. For instance:

A fruit is a kind of thing. The apple is a fruit. The orange is a fruit. The pear is a fruit.

Instead of attacking a fruit:
	if the noun is the apple:
		say "It fights back hard, but you prevail, splattering it.";
	otherwise if the noun is the orange:
		say "It tries to roll away but you stomp it to pulp.";
	otherwise if the noun is the pear:
		say "It bites you and wobbles into the shadows, growling."

There’s no need for a general “otherwise,” because there aren’t any more fruits. But it twingles me to put one in anyway:

otherwise:
   say "It explodes, killing you instantly!";
   end the story finally.

So satisfying to have in-jokes with myself. Also dangerous if I add another fruit later.

13 Likes

ah, yeah. I love this kind of thing.

carry out siphoning the action figure:
[...]
	otherwise:
		say "oh, god. how has this happened? this looks like a pretty stupid bug."
8 Likes

Yup. Your switch statements always need a default case.

5 Likes

I like tracing logo fonts and game artwork in vector art programs to reduce the path data to absolutely bare minimum file sizes, while still keeping accuracy. Almost all font files are way oversized, I’ve discovered. Like, by factors. There’s something so satisfying about pushing Bézier curves over the largest span possible.

I’d love to teach a university/college course for graphic artists called This is how you effectively create vector paths, you wasteful little shits! - 101.

This is my version of the Twine logo, for example. (Feel free to use it in your projects if you wish.)

SVG Code
<svg width="175" height="200" viewBox="0 0 7 8">
	<defs>
        <linearGradient id="gradientBlue" x1="0" x2="0" y1="0" y2="1">
        	<stop offset="0" stop-color="#127aee"/>
        	<stop offset="1" stop-color="#117aef" stop-opacity=".25"/>
        </linearGradient>
        <linearGradient id="gradientGreen" x1="0" x2="1" y1="0" y2="0">
        	<stop offset="0" stop-color="#10f05e" stop-opacity=".25"/>
        	<stop offset="1" stop-color="#10f05e"/>
        </linearGradient>
    </defs>
    <path fill="url(#gradientBlue)" d="M 0,0 3,0 3,8 0,8 Z"/>
    <path fill="url(#gradientGreen)" d="M 0,6.5 C 0,1 7,1 7,1 V 4 C 7,4 3,4 3,6.5 V 8 H 0 Z"/>
</svg>
8 Likes

I’ve been meaning to ask: why is the Twine logo an ‘r’?

3 Likes

Only Mr. Klimas @klembot can answer that. Maybe it was called Rope before? :wink:

3 Likes

Twinery?

Or you can (like I have) interpret it as peeling back the choice of a choice game and seeing the underlying code

3 Likes

My vague impression is that it’s supposed to be a branching path and only (unfortunately) coincidentally looks exactly like an R, but I don’t know for sure

5 Likes

Huh, I’ve somehow never seen it as an R before…

3 Likes

I love making rare cases where something happens (eg. If you did one tiny particular action earlier in the game, or an NPC’s relationship counter is down, then the text you grt for a lot of responses is slightly different. Half of my next WIP is based around this (not really, but it happens a lot).

5 Likes

I never did either. I always saw it as a sort of stylized, bendy lowercase t

image

…until Phil ruined it for me. :wink:

That’s what I do. I also give unsolicited spoilers for interactive fiction. Your first one: Floyd comes back to life later.

5 Likes

Huh???

When it’s finished.

4 Likes

well, let’s return on the tracks…

what I often find oddily satisfying, nay, utterly satisfying is abusing language/libraries into undesigned but useful results. Perhaps descends from my coding 8 bit machines during the 80s (an era and hardware where with a well-placed POKE you get interesting unusual behaviour; provided that isn’t a large-screen PET, of course…)

of course, this imply that the successful field test against Isekai source code of adv3Lite 2.0 is more successful than seems…

another odd satisfaction is in finding in released source code interesting insights.

Best regards from Italy,
dott. Piergiorgio.

8 Likes

Putting in all the locations, connecting them together and then walking around the game map is always oddly satisfying for me. Even without puzzles, there’s a buzz from creating a little textual game world.

9 Likes

I have learned my lesson. “One King to Loot them All” was not really designed with map makers in mind. So for my WIP “Pack Rat” I started with creating a map. Filling in all the blanks and getting some cohesive whole is very rewarding. And indeed, taking a stroll through the environment is pretty cool, even without any actors or things to do.

Now about those actors: Creating a “responsive” NPC is a lot of work but very rewarding as well. At least now I will be able to properly “handle” misbehaving players like inveterate noodlers and experienced beta testers… I hope!

2 Likes