Brandon Rhodes interview about porting Colossal Cave to Python 3

Years ago, Brandon Rhodes re-wrote a faithful recreation of Crowther&Woods, translating from Fortran to Python 3. It not only uses the same unstructured programming techniques as the original Fortran, but he also re-created the slower output speed to capture the sense he had playing it as a child over a modem.

Here’s an interview with Brandon about the project:


There’s something to be said for a delayed response!

Even just half a second, followed by the text being written out word by word, creates a really nice subtle effect that the computer is really considering your instruction.

Adam :slightly_smiling_face::v:

1 Like

In a text game, a half-second delay is long enough for me to get bored and reach for my phone to check twitter.

You think I am kidding. I assure you that I am not.


Maybe a 3rd of a second then. :slightly_smiling_face:

Seriously though, really? That’s interesting. For me it’s completely the opposite effect, that fraction of a second delay feels like what I’ve typed is being considered; in the human sense.

Now I want to run a poll to see how many love it and hate it! :slightly_smiling_face:



Oh, I get that feeling too. But what fraction of a second feels good may differ between people!


I think the pause works fine in some situations. A good example (although not parser) are the Lifeline games in which you’re conversing with someone. There’s a mode to enable instant text which is handy for a second playthrough, but it really feels more like you’re conversing with someone when there’s a delay and you’re waiting for a response, or a “so and so is typing” type placeholder.

But if there isn’t supposed to be another person on the other said and we’re just talking about parser responses, I feel like that should be instant. Anything less than instant doesn’t feel like the parser is thinking, it feels like the parser is choking.

For me, I want instant wall of text. Being able to speed read the text increases the chance of my finishing the game. If you force me to read slow, I lose interest pretty quick.


This is interesting stuff. I’d never really given too much consideration to response speed of the interpretor other than a preference for a slight delay and printing out the response word by word; rather than an instantaneous block of text.

That said, I’ve occasionally tried a game on say ZVM where it takes 30+ seconds. That’s clearly not good, not in 2021, and goes way beyond the feeling of someone reading, considering and replying to it just being slow.

I wonder how many people have been put off playing because, for whatever reason, the system they were using at the time took “too long” to respond. Taking into account the replies in this thread, “too long” could be anything less than instant.

Circling back to Brandon Rhodes, I would if people were put off the port because of this or if they took it to be as Brandon intended?


I cannot get the delay or typewriter effect on my Win 10 computer.

It works well on the RPi. I like the slight delay. It is far less than it was back in the day. In the earliest days the actual computer was in Gainesville 90 miles southwest.

Brings back memories.


I find that the instant-wall-of-text makes the game feel much more like a static object, as though it were a novel I had not yet finished. The delays and smoother output makes it feel much more “present” to me, like an event that is unfurling in reaction to my actions.

That said, the really long delays were always accompanied by the grinding and clicking of the 1541 disk drive, when I was young, so I definitely had more indication of WORKING HARD HERE than just a lag.


Could also be each individual’s perception of “lag”. Another example I often read is how people get frustrated with emulation because of the delay or lag between them pressing a button on the controller and the character responding. Again, I’ve never really found this an issue or even noticed it particularly, but I know it drives some people nuts!


Great interview, listened to it this morning, very interesting. Thanks for sharing it. :slightly_smiling_face::+1:



99.9% of the time I agree with you – the one exception I can think of is actually Hadean Lands, though. Late in the game, when a simple “w” can be chaining together hundreds of actions and implicitly solving a dozen puzzles that gave me a lot of trouble when I first encountered them, the delay gave me the same “oh geez things are about to go down” power-fantasy feeling as you get in other genres when a chaingun starts spinning up or a Final Fantasy summoning animation begins.

1 Like

Heh. Do you remember what machine/interpreter you were playing on? I went to a lot of trouble to make the game run as fast as possible.

Interpreter-wise, it was the Lectrote interpreter built into the Steam executable, so that part was probably fine. Machine-wise, it was a hand-me-down laptop I got from my corporate-IT-director brother-in-law several years after it was fully depreciated, and which I then used for a couple years after that, so I’m guessing that part was the issue rather than any fault in your optimization!

1 Like