Captain Comic randomizer

A randomizer for The Adventures of Captain Comic, a sidescrolling platform game for DOS. It shuffles the locations of items, while ensuring that the game remains winnable.

A screenshot of Captain Comic standing before the castle door, with the Crown resting where a Blastola Cola would normally be.

Sorry, the randomizer requires WebAssembly :(

See the source code for a version you can run offline.

Input

Select a zip file containing Revision 5 of The Adventures of Captain Comic.

You can download the file you need here.

Settings
Output download

Warnings (make sure you are using Revision 5):

Spoiler

This information is also in the file RANDO.DOC in the generated zip file.

Item assignment
lake0
lake1
lake2
forest0
forest1
forest2
space0
space1
space2
base0
base1
base2
cave0
cave1
cave2
shed0
shed1
shed2
castle0
castle1
castle2
comp0
comp1
comp2
Sample winning path

Map

A map of the eight stages of Captain Comic, with arrows showing what locations lead to other locations and what items are required

Map of the randomizer logic. Click to embiggen.

How to play

The easiest way to play is with DOSBox. Download the randomized zip file and extract it somewhere. Run DOSBox, mount the C: drive if necessary, cd to the folder where you extracted the game, and run comic.

When the game starts, you can configure keys by pressing K. This is the keymap I use:

Move Left  : A
Move Right : D
Jump       : J
Fireball   : K
Open Door  : W
Teleport   : L

These tutorial videos explain some of the basic concepts. There's also a page of tips.

Source code

The randomizer is free software. You can download the source code and run it on your own computer. The source code repository also contains a lot of other information related to reverse-engineering Captain Comic. You will need git-annex to download some of the larger files in the repository (not needed if you are only using the randomizer).

git clone https://www.bamsoftware.com/git/comic.git
cd comic/rando
cargo build

The randomizer itself is in the public domain. See comicrando-licenses.zip for the licenses of dependencies.

You may be interested in how the seed algorithm works.

“Making of” videos

Captain Comic randomizer live coding video playlist

I recorded all my work programming the randomizer. These videos could be fun to watch if you are interested in the process of making a randomizer, or if you just want someone to commiserate with as you are learning Rust. Incidentally, if you are learning Rust, my advice is to get a copy of Programming Rust—it's much better than the other Rust book you can find online, particularly if you're an experienced programmer. If you're not an experienced programmer, my feeling that you have a tough row to hoe no matter what; it's better to learn Python or JavaScript first.

A few favorite episodes:

Thanks / shoutouts

Michael Denio, James Fifield, Yury Lesiuk, Anatoly Shashkin, Rust, Go, Python, R, Graphviz, ggplot2, SageMath, Programming Rust, Radare, NASM, The BIG List of Video Game Randomizers, AGDQ 2019 randomizer panel, The Art of Computer Programming, The Cutting Room Floor, Malvineous and ModdingWiki, DOSBox, Git, git-annex, wasm-pack, wasm-bindgen, MDN Web Docs, OBS, Debian, Internet Archive.