User Tools

Site Tools


vc-1

This is an old revision of the document!


Virtual Computer 1

This page describes the VC1 project.

History

I like NetHack and roguelike games, so one of the first things I do to ease myself into a new computer language is to write a sort of roguelike game. The game I write is called NetWhack. I first wrote NetWhack in C++ in 1997. By 1999-2000 I had rewritten the project in Java. After essentially completing the game to my own satisfaction it was placed on the back burner.

In 2020 and 2022 (I was abroad in 2021), I worked with Neo on a Javascript version of NetWhack as an educational project. There was, however, one serious problem. It was the old problem of blocking IO that I had with game libraries like LWJGL because it is event driven, you cannot perform blocking input. Or rather I should say, because LWJGL (and JavaScript) are extremely poorly designed, you can't normally do blocking input. I, however, figrued out a way; nature always finds a way! In Java, I just made a new “thread” and handled a custom keyboard buffer there. This was a very technically difficult thing to do, but it worked, and I had what amounted to blocking input under LWJGL.

Blocking Input in Javascript

The story of VC-1 is the story of me banging my head against a wall for years trying to figure out how to do blocking input in JavaScript for over a year. I went through many revisions of NetWhack in Javascript. However, it was during a small demo program I wrote called “Javascript Terminal technical Demo” that I finally had my epiphany.

What remains is the story of JTTD, which eventually became ensconced as VC-1.

vc-1.1764518454.txt.gz · Last modified: by appledog

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki