Playable version of Mini-Zork II

Release 13 with a little more improved abbreviations, here.

                    Size         Diff release 12
Without abbrv       60,258 bytes (+ 118 bytes)
Zilf abbrv          54,152 bytes (+ 120 bytes)
Improved abbrv      53,416 bytes (+ 46 bytes)

Updated C64 version at Minizork 2 - Google Drive

Added a disk based version too, if someone would like to play it with the luxury of a working restart command.

Also added versions for C128 and Plus/4.

1 Like

By the way, the Mini-Zork II parser is very close to the parser used for the final iteration of Zork I-III, except that it uses <SETG COMPACT-SYNTAXES? T>. So that may be useful for future reference.

Just out of curiosity I took a copy of the Zork III source code, removed some Zork I and II specific bits (mostly hidden by conditional compilation anyway), fixed a couple of bugs, enabled compact syntaxes, aaandā€¦ 83,552 bytes. Ok, so clearly Mini-Zork III is a long way awayā€¦ :stuck_out_tongue:

1 Like

Remove the End-Game and move that to Mini-Zork 3Ā½? :grinning:

1 Like

ā€œWhat is the bare essence of Zork III?ā€ is a harder question to answer than it is for the previous two games, I think.

2 Likes

I guess if I was given the task to create a Mini-Zork III, Iā€™d start by:

  • Remove ā€œunnecessaryā€ interactions. While itā€™s amusing that the game lets you ā€œCOUNT BLESSINGSā€, itā€™s hardly necessary. Zork III doesnā€™t have any moving vehicles, as far as I can tell, so the code to handle them can be removed.
  • Shorten the text.
  • Simplify the map. Maybe there doesnā€™t have to be eight ā€œLand of Shadowā€ rooms, for instance. The parts of Zork I and II you revisit should probably be changed to closer match the Mini Zorks, and the Zork IV bit isnā€™t absolutely necessary.
  • Remove unnecessary objects. Not just scenery, but the hood and cloak could be combined into a hooded cloak, perhaps? You probably donā€™t need two different types of damaged lamps (one broken, one fried). Maybe remove the invisibility potion, since itā€™s just an easter egg/alternative solution.
  • The puzzle to get the golden amulet isnā€™t particularly interesting, so if I were to remove just one of the ā€œtreasuresā€, Iā€™d pick that one.
  • The random deaths around the lake (getting eaten by a fish or a roc) and the Royal Museum (the guards have a small random chance of killing you even when you do things right) could be removed toā€¦ toā€¦ to save space! Right! Thatā€™s obviously the only reason anyone could have to remove that!
  • Some of the actual implementations are a bit wasteful. The map of the Royal Puzzle is a table of words. It should be enough to use bytes instead. There is 576 byte (I think) table to keep track of where youā€™ve dropped objects in the puzzle. Giving each takeable object a property to keep track of that is smaller, and arguably makes the code simpler.

And so on.

But at least at the moment, Iā€™m just playing around with the code to see how far I can get without cutting any content. Right now itā€™s 82,274 bytes, which is about the size of the final official release of the game. (I guess having the three Zorks share the same parser and standard verbs added a bit of bloat.)

1 Like

I havenā€™t seen any further bug reports, so I went ahead and tagged Release 14. Most noticeably, this adds VOWELBIT so that the sword will now be listed as an elvish sword, not a elvish sword.

At some point, I guess it would be a good idea to include Henrikā€™s abbreviations and Fredrikā€™s C64 images in the repository, assuming they are ok with that, once they have been tested again.

Iā€™ve no problem with you including the abbreviations. Iā€™ll do a new compile.

Preparing for a real release, which colours would people prefer?

We can set background, border, text, statusline and cursor colour, and we can provide a normal mode and a dark mode colour scheme. For technical reasons, we canā€™t use more than eight colours in total though.

Hereā€™s an overview of how the different combinations of C64 colours look: http://microheaven.com/ozmooonline/colours/

Of course you can also try to build a game with different colour combinations at Ozmoo Online

3 Likes

Not to impose on your technical discussion, but Iā€™ve been following this topic with great interest and am very excited about an impending release!

3 Likes

Additionally, we can add up to four lines of text to the splash screen. Each line can hold up to 40 characters. This can be used to say something about the game, the author(s), a URL to the repo etc.

I always preferred white on dark grey on the c64, but many combinations are fine.

1 Like

While this game may not be runnable as a single file on any other 8-bit systems (that I know of), we could ask Stefan Vogt or Hugo Labrande to help us build disk images for 30+ 8-bit platforms. They have setups for producing this quickly. I think people on many platforms will want to play this game, even if it requires a disk drive.

1 Like

Unfortunately the latest compilation with the abbreviations comes to 53,528 bytes. If 53,504 still is a hard limit we will have to find 24 bytes somewhereā€¦

The files are uploaded to https://github.com/heasm66/mini_zork_2_z3

No problem. We made some changes to Ozmoo about a week ago which gives us at least another 512 bytes.

I have updated the files at Minizork 2 - Google Drive

3 Likes

Life feels a bit empty now, when there is no more bytes to huntā€¦

Guess there is always Mini-Zork 3ā€¦ :smiley:

4 Likes

And then there is Mini-Enchanter, Mini-Starcross, Mini-Deadline, Mini-AMFVā€¦

1 Like

Mini-Suspended could be done in an afternoon. Itā€™s just IMPOSSIBLE mode.

Iā€™ve played through the C128 one without any problems, and Iā€™ve at least started the other two. Should I add these files to the repository, or would you prefer that I just add a link to them?

One thing I found a bit odd in the C64 single file one:

>RESTART
Your score is 0 (out of 400 points), in
0 moves. This score gives you the rank
of Beginner.
Do you wish to restart? (Y is
affirmative): >Y
Restarting.
[Not supported]
on>

I knew restarting wasnā€™t supported in this particular build, but where did the ā€œonā€ come from?

Other than that, I did notice a very minor cosmetic glitch. If you open the purple book in the library, then look again, the white book will still refer to the purple book even though the purple book is now listed after it, not before it. Iā€™ll fix that, but I donā€™t think it warrants a new release yet.

I think we can wait with adding these builds to the repo, until weā€™re content weā€™re ready for a public release.

I trust all the builds to work equally well. As usual, there are no guarantees.

ā€œrestartā€ isnā€™t optional in the Z-machine, so Ozmoo is breaking the contract. What happens when it fails depends on what comes after the restart opcode in the game. With some luck, the game doesnā€™t crash.