Disorganized Dev Diary for Never Gives Up Her Dead (Now released!)

I wouldn’t find it too weird if the game is actually set in the future of our world, rather than some other world.

4 Likes

Thanks! It is set in our own future.

I’m working on the very endgame now and I’m having a lot of self-doubt. Fortunately, from my polls earlier and my own experience, the endgame will have very little effect on the overall impression of the game unless I do something extraordinarily bad.

Currently, my plan in the ‘main’ ending is to reuse puzzles from each of the earlier areas, but now unified with one theme. At best, that should hopefully give it a feeling of ‘everything you learned has brought you to this moment’ and should also make the endgame a lot easier while still helping the player feel smart (since they learned how to do this stuff). At worst it could feel monotonous or repetitive.

Here are some examples I’ve added so far (mentioning the original puzzle and the new one). The setting is a nuclear reactor.

Examples:

In an earlier cabin level, you repair some stairs by removing a rotten support beam, taking a log, running it through a saw mill, waxing it, and popping it back in. In the endgame, you have a coolant pipe that is leaking due to a bent support. You have to take it out, grab some sheet metal, and use a metal brake to manufacture a new support.

In an earlier wax museum level, you learn how to pan for gold and other things, and you use it to pan through a bowl of mud to get a diamond ring. In the finale, their is a faulty logic circuit in a pile of burnt rubble. You have to pick up a metal bowl and ‘pan for the circuit’ using the water.

And so on, with basically one puzzle from each area.

While writing it, I do keep worrying it will be repetitive, by while playing it I kind of like it. For the average player it will have been many hours since they had to do those things, and most people seem to like learning systems, and all the puzzles are just slightly different by necessity to fit into the newer setting.

The other big thing in this first ending is that there are two versions with two different protagonists. So far I don’t have much to distinguish them besides different grammar (2nd person vs 3rd), and I’m wondering if its important to add a lot of little differences or not. I guess time and testers will tell!

Edit: I had a fun bit of code:
if rusty-robot is rob-rec: add the rusty-robot robot-lefting to the robot-list of rusty-robot;

7 Likes

Throwing this in spoilers just in case. Its asking a question about a puzzle that could be realistic but boring and a potential way to make it more interesting.

Spoilers

So, I’ve been reading up a ton on nuclear reactors and watching video tours of them (the tours of the MIT reactor are wild). I had to edit some of my stuff because the reactors I first modeled mine after had the core at the bottom of an open pool, but apparently those are never used for electricity, just science. I had to put mine in a containment chamber.

Anyway, watching the videos there are a lot of little knobs you can turn to select different things that can be raised or lowered. For some mimesis, I wanted to have a part where you isolate the reactor you’re in from the rest of the ship by turning the knob to four different settings and lowering some blast shields, kind of like in the videos.

But that would be kind of repetitive: turn dial, push button, turn dial, push button, four times.

But then, I realized, what if that could give a chance to say goodbye to people? Each time you close a sector, it could set off a PA in that area, and turn on a microphone to ensure civilians are safe. So each time you close a shield, it could have you say goodbye to one of your friends, give you dialogue options.

Does that sound like it could work?

3 Likes

Yes. Instead of (or along with) a step in a machinery sequence, you would have a beat, a closure, in your narrative, a resonating moment to remember your past experiences and the characters you met along the way.

2 Likes

Thanks! I think I’ll put it in, then, I was worried about how to add a nice sending off note at the very end.

In other news, I’ve stopped trying to be as code efficient near the end, and it’s showing. This newer update has broken three different memory limits in Inform at once (from their previously set limits). My current settings are at:

Use MAX_PROP_TABLE_SIZE of 3000000.
Use MAX_NUM_STATIC_STRINGS of 90000.
Use MAX_INDIV_PROP_TABLE_SIZE of 60000.
Use MAX_STATIC_DATA of 2000000.
Use MAX_DICT_ENTRIES of 8000.
Use ALLOC_CHUNK_SIZE of 40000.
Use MAX_ARRAYS of 50000.
Use MAX_OBJECTS of 4000.
Use MAX_ACTIONS of 1000.
Use MAX_ARRAYS of 30000.
Use MAX_SYMBOLS of 100000.
Use MAX_VERBS of 300.
Use SYMBOLS_CHUNK_SIZE of 10000.

The default Inform settings are below (this is only because I’m using older Inform, modern Inform would have no problem):

Summary
Use Inform 6 compiler option "$ALLOC_CHUNK_SIZE=32000".
Use Inform 6 compiler option "$MAX_ARRAYS=10000".
Use Inform 6 compiler option "$MAX_CLASSES=200".
Use Inform 6 compiler option "$MAX_VERBS=255".
Use Inform 6 compiler option "$MAX_LABELS=10000".
Use Inform 6 compiler option "$MAX_ZCODE_SIZE=1000000".
Use Inform 6 compiler option "$MAX_STATIC_DATA=500000".
Use Inform 6 compiler option "$MAX_NUM_STATIC_STRINGS=500000".
Use Inform 6 compiler option "$MAX_PROP_TABLE_SIZE=200000".
Use Inform 6 compiler option "$MAX_INDIV_PROP_TABLE_SIZE=20000".
Use Inform 6 compiler option "$MAX_STACK_SIZE=65536".
Use Inform 6 compiler option "$MAX_SYMBOLS=20000".
Use Inform 6 compiler option "$MAX_EXPRESSION_NODES=256".
Use Inform 6 compiler option "$MAX_LABELS=200000".
Use Inform 6 compiler option "$MAX_LOCAL_VARIABLES=256".

Source is up to 317274. I could have been more efficient, especially since many of the puzzles in this area are reusing earlier puzzles to be thematically ‘full circle’, but at this point I’d rather just get it done. Due to the nuclear reactor setting I’ve added three sets of different buttons, such as the following (one of the sets):

Table of comp buttons
comp-button	comp-type	comp-label	comp-color	comp-size
scram-button	"button"	"SCRAM"	"red"	"large"
main-power	"switch"	"MAIN POWER"	--	--
backup-power	"switch"	"BACKUP POWER"	--	--
hail-button	"button"	"HAIL"	"red"	"small"
shield-knob	"knob"	"SHIELD"	"black"	--
ls-button	"button"	"LS"	"yellow"	"small"
rs-button	"button"	"RS"	"yellow"	"small"

So that’s probably what’s messing with memory. But I use the Blue Lacuna source code for a sanity check on what’s normal for this size (Aaron Reed’s memory settings are at the top), and mine seems in-line with that (and generally below it).

4 Likes

Yes, but it’d have to be an important one, like the people that are coming over to help you.

Are you allowing death in these parts? You could have a thing like in Cragne Manor, where when a turn occurs that makes something in a fail state, you somehow mark that undo-save (like turning a global variable true) and if you die or at any time when the game is unwinnable, you can TAKE BACK or RETURN to that time, by possibly doing an undo, then checking if the variable’s still true, then undoing again if so, etc. (Probably takes up a lot of space.)

Then, the puzzles can become more interesting.

1 Like

Besides, how does the ending begin? After you harvest all the rifts, what happens after that? Just curious.

1 Like

I’ve thought about allowing death in “ending 3”, since that’s the grim ending.

With the version of the game you have access to (51 or later) you can type “gonear arawn” to see what happens after you harvest the rifts.

2 Likes

Hmm interesting. So you find yourself in a museum basically? Funny because I thought it would be the opposite (it causes an explosion and the Alien ending scene would occur, and you have to haul yourself closer to fix it by pointing the rift made of the harvested rifts at the opening, to block it out and then out of oxygen, you fall into the rift).

1 Like

You just described exactly on how I plan on writing the opening, which is pretty funny.

And just now I finally programmed the game right up until the ending! It is technically possible to complete the game now, with either ending 1A or 1B, but most of it is barely implemented. I think before I flesh out the descriptions and stuff in going to add ending 2 and the intro, and then polish them all at once, and then add some mini cut scenes after beating each level. Then the game is done!

5 Likes

I’m now working on a part of the game involving a crashing spaceship. It’s a self-contained area.

When I was going through and adding stuff from cool Inform 7 examples, I never got around to doing rope, since it’s famously very hard to implement. But in a contained area, it could work…

Example 228: Otranto in the I7 documentation does some really cool stuff, like having a rope that spans two rooms, allows you to pull stuff up and down, lets you tie it to stuff and climb it, and so on.

So I’m thinking it could be fun to have a metal cable that lets you climb around different parts of the destroyed ship, and dragging heavy stuff around with you.

There have been some ‘rope games’ before that spend the whole game developing the properties of the rope, specifically Tethered and Final Exam. The biggest possible issues are:
-while hard to implement, not all of that work is apparent to the player, so it could be a lot of work with little benefit to the game.
-it might not be obvious what commands are possible or impossible with the rope.

The 2nd could be solved by adding lots of hinting in the object descriptions. As for the 1st, well, the example already does a lot of the work. So I think I’m going to go for it. But if there’s anyone out there thinking ‘No, Mathbrush! I tried that once, it’s not worth it! That way lies madness!’ then I’ll probably back out.

4 Likes

Hmmm, I’m having second thoughts on the third ending.

One on hand, I think it would really be fun to have two very different endings.

But on the other hand, this is the ending where everything special or magical that happened in the game is undone and it shows what happens without your intervention, kind of like It’s A Wonderful Life.

It’s a grimmer world, and depressing, with most of the ship dying and your only goal to get free. my original plan was even darker, with getting out requiring you to kill a murderer who has escaped and implying that the captain has committed suicide, due to being missing and having an open gun safe with a gun missing and the fact that in the main timeline you were there to encourage him to face his fears of letting down the ship. I don’t even like games that do the latter, so I thought of changing it to finding out the guns are stun guns so that you only incapacitate the enemy, not kill them.

On the other hand, keeping the ending as is allows for some interesting puzzles unlike the rest of the game, as survival becomes the key and it so far includes some interesting rope mechanics (like using a grappling hook and pulling stuff up a cliff via the rope).

The only reason I originally thought of this ending was in case players wanted real agency, as the other endings require either willingly giving up your life or letting someone give up their life to save everyone and to satisfy fate. So it’s a “defying fate” ending.

So, should I keep it or scrap it? If people like the idea I will 100% keep it, but I don’t want to work on a “bad ending” if no one enjoys it (as is often in the case of choice based games).

Edit: I’ve already coded puzzles for about half of this area, but haven’t polished them a lot. It wouldn’t be a ton of work either way.

2 Likes

Do you mean you’ve coded puzzles for the grim ending or the good ending?

I like the idea of a grim ending but the stories + the rifts need to tie in with each other better. Like, the captain committing suicide makes sense, seeing how the captain is and you saved him from it. Also, the guy with the action figures is a therapist, right? He probably could help the Captain get back on his feet (is the captain any help in the good endgame? He should be). The therapist probably also helps the surgeon (I’m bad with names) since he’s meant to be a family therapist. Without a happy surgeon maybe in the endgame somebody important gets a wound from some harmful machinery, and never gets saved so they die which then leads to another rift opening up, or maybe it’s someone like you (you get hurt badly from moving machinery, and you can’t survive if you aren’t healed). I don’t know, things like that.

Still, I think the rifts have to have some importance in the game. They aren’t just random rifts, we know that. So what makes them important? Why are they there? Do they start destroying things if they haven’t been properly fixed? I don’t know, just something.

It could be interesting seeing it, but it needs to be important enough. And what, that would be an ending?

1 Like

Scroll Thief pretty much uses the Otranto code verbatim. I think I made a few additions to it to handle situations that never came up in the example scenario, but I couldn’t tell you what they were now. It works quite nicely.

2 Likes

I haven’t read any of the spoilered text and or any of your earlier posts really; all I know about your game is that it’s large and ambitious (and that I’m looking forward to it!).

But from context here, it sounds like there’s an endgame where only your actions within that section would alter the ending, right? And nothing from before that will affect it?

A couple of IFComp games (Lake Starlight/Last Vestiges) are making me think of this suggestion, but you could put an out-of-world author’s message right before the endgame telling/warning people to save the game then and restore afterwards if they want to see all the endings. That’s if you think people will want to see all of them, and you don’t want the player to commit to just one for story reasons. You could do that whether it’s two endings or three (but if you do that, then a “disappointing” ending might not matter as much).

2 Likes

Or make an autosave right before the endgame begins, and give people the option to rewind to that autosave. Very doable in Glulx, not sure how many Z-machine interpreters support promptless saves at this point, but for a game this size I’ve got no doubt you’re using Glulx.

2 Likes

Four megabytes (if I remember correctly). Kind of like the TAKE BACK thingy I was referring to. That’s a really cool idea! Do many games like this one do that?

1 Like

Or, if you no longer need a complex world state, just set some variables you can return to (RTE originally handled death this way). But it would be kind to guarantee the player a way back or else give a warning in a game so large.

3 Likes

I don’t know of any games that use autosave like that, actually. But I’m sure there are some out there. (At least I hope there are. I want my autosave code to get use!)

2 Likes

I’ve coded all of the good ending’s puzzles and half of the bad. Your thoughts about the people are pretty similar to mine, although your theories about the rifts are really different from mine, so I probably won’t go that way The rifts don’t destroy space, they destroy time; the bad ending is what you get if the rifts destroy the entire timeline and you start over with no help from the future.

That’s very cool! Maybe you could help me with something…I have a lot of rooms and items in my game, and somehow adding Otranto slowed it down to a crawl, especially the UNTIE command but also just travel between rooms in all areas of the game. Any idea what might cause the slowdown?

Hmm, I like the out of world message! I already have something like that I can slightly adapt. You’re right, that way people don’t have to do this ending if they don’t want to.

The autosave ideas are cool but I think I’ll go with manual saving for now, since I want the player to feel a little spooked they have to save. Thanks for everyone’s help! I’ll probably keep the ‘bad ending’, although it’s a little overwhelming when I’m so close to the end.

2 Likes