Murdoku games

Murdoku could be described as a hybrid of Sudoku and Clue — it only touches on IF in a small way, but I think a lot of people here will enjoy this kind of puzzle!

I, for one, really liked the online version of it (though you can also play it on paper).

5 Likes

I gave a copy of the book to my mother. She doesn’t seem to have gone gaga over it, but she seems to enjoy it.

Also saw Murdle on sale (paperback), and seemed interesting, but she was not interested enough to get it - or Murdoku volume 2, for that matter.

I like some logic games, especially logic grid games (also, I quite enjoyed Inspector Parker, if anyone remembers that one. One of them had a story by Jane Jensen, interestingly, but I think that one was essentially minesweeper; less interesting), so I might give Murdoku a go some time.

1 Like

We just recently picked up Murdle (from Target) and played it. It goes rather fast. I’d like to slow it down some but it was fun.

1 Like

Reminds me - “dynamic murder mystery” is something that has been rarely touched in video games in general.

The only one I can think of is “Murder on the Zinderneuf” and I feel like that might be telling us something!

(I also think a parser-based game with a wide variety of clues and outcomes could be pretty fun)

(Obligatory technical aside - on the Z machine, random(0) is supposed to seed the RNG with entropy from the clock or whatever, but if you’re playing a random murder mystery, you’re going to want to know what seed you had. The way you could do it… call random(0), then remember seed = random(32767) then call random(-seed) and also print out the seed you used so it can be explicitly requested)

-Dave

2 Likes

I really want to make a choice based murder mystery. I have a couple favorite cozy authors whose books we listen to via audible. Louise Penny, Verity Bright, and Faith Martin. We listened to all of Louise Penny , Verity Bright, most of Faith Martin’s. We like them all.

I can’t do random numbers yet but the idea of a choice based + parser input cozy where your choices either drive the narrative or cause the murderer to not be detected either by a wrong arrest or not enough information is really compelling.

1 Like

I think MotZ had a finite number of basic plots, and then it chose the suspects and victims randomly, and there’s a bit of the old kid’s game “Guess Who?” in it where manufactured clues would include or exclude swaths of suspects (hair color, etc).

I’m just not sure how “fun” something like this would be after more than several plays once you’ve seen all of the various plot variations. On the other hand, most parser games probably don’t get replayed a second time either…

2 Likes

Funny you should bring that up when not just long ago I played “Accuse” (which is mostly a diversion) and “An Act of Murder”, which is a bona-fide mystery with a randomly selected culprit, motive and murder weapon selected at the start of the game. And a really neat touch is that it has built-in hints that will refer to the “path” you’re on specifically.

I seem to remember a book, a kid’s book, which was also a mystery where at the end you had to guess the murderer. But it came with a revolving wheel that allowed certain clues to differ, and different clues would point to a different culprit. That was fun to kiddie me.

Thing is, in my experience, YMMV, it’s usually just a lot more fun and challenging to play an authorially-curated mystery than a replayable one. For once thing, in a replayable one, you instantly focus on what’s different. The first time, everything is a potential clue. The second time, you’re laser-focused on the differences. This kinda ruins the mystery and makes you focus on a simple associating game.

I tried to play Murder on the Zinderneuf a fwe times, and I’ll give it another go one day, but it’s a bit too oldschool (in the perjorative sense - I can use that term in a positive, neutral or perjorative sense, depending on whether I believe that those particular oldschool sensibilities were a plus, just a fact of life, or something that has disappeared for good reason and that’s for the best; MotZ is the latter, for me) for me to really enjoy.

I am reminded of “Philip Marlowe: Private Eye”, which did not offer randomly generated mysteries but did offer two possible plots, one which followed the plot of the original book Little Sister and one which was an adaptaion where the killer and motive were different. It may be of interest to anyone looking for a “replayable” murder mystery.

EDIT - This conversation has made me want to revisit Cruise for a Corpse, The Dagger of Amon Ra, and to finally play Toby’s Nose! See what you did!

EDIT - This article on the Jack the Ripper 1995 game may be an interesting read, though admittedly veering off-topic.

2 Likes

I haven’t played it but Shadows of Doubt took a big swing at procedurally-generated mysteries recently, and while it had a somewhat mixed reception I definitely know people who love it…

2 Likes

LOL, you can always count on some random IF idea you had having been done by two different people at about the same time nearly 20 years ago!

4 Likes

Just realized Moonmist tried this out back in the 80’s. Pick your favorite color and choose which plot variation you get to play!

2 Likes

Even then, you won’t necessarily be able to compare outcomes with your friends on other platforms/interpreters, since the RNG implementation may be different.

Rascal has a similar requirement, so it includes its own RNG and only uses the system RNG to seed it.

4 Likes

Damn, that’s a really good point. When I was trying to find a good quality RNG that works on eight bit computers, web search led me back to these forums anyway.

But you’re absolutely right, implementing random numbers yourself is the only way to get truly repeatable results. Which is unfortunate, because the algorithm I use in my C++ and 6502 interpreters has xor’s and takes the upper 16 bits of a 32 bit multiply :frowning:

C++ Version

static uint16_t random_seed = 1;

uint16_t randomNumber(uint16_t &state) {
/* WARNING: State must never be initialized to 0 */
state ^= state << 7;
state ^= state >> 9;
state ^= state << 8;
return state;
}

uint16_t rangedRandom(uint16_t range) {
uint16_t value = (randomNumber(random_seed) * range) >> 16;
return value + 1;
}

6502 Version

.random_range
; state ^= state << 7;
; state ^= state >> 9;
; state ^= state << 8;
ldx #7
jsr .random_shl_xor
ldx #9
jsr .random_shr_xor
ldx #8
jsr .random_shl_xor
; multiply seed by range, and take upper 16 bits
lda seed+1
sta operands_hi+1
lda seed
sta operands_lo+1

jsr .z_mul_16x16u
; increment result
lda operands_hi+3
ldx operands_lo+3
inx
bne +
clc
adc #1 </div>

I suppose I could do the same thing - use a manually implemented RNG solely for initial setup.

Thanks!

-Dave

1 Like