Background

I’ve been wanting to make a game for a long time now… suffice to say I have occasionally played around with some things like tile maps. Here’s a trivial list comprehension that produces a tile map that could be potentially used for a game (numeric cells are empty spaces, # cells are walls):

Unless you’re familiar with tile map games this is probably especially hard to relate to given that the “sprites” are just ASCII characters. I never really could even relate to playing NetHack on console myself, and opted for the QT / GTK frontends that haven’t worked for years now as far as I know (I never can get them to work.) I can certainly appreciate ASCII and ANSI graphics if that much isn’t already obvious but I guess the NetHack ncurses frontent just never spoke to me the same way the pixmap sprites did on the GUI frontends. K? feel free to say “lol its cause’ you don’t know how to play and you’re a noob” now.

My first working engine

Back in 2013, I was struck with the idea of using HTML / CSS / javascript to construct a tilemap game. My friend purchased a license to use an engine that was created for the web. I think it was around new years of 2015 I was hanging out with the same friend and I became inspired to write one from scratch. At the time I was at a bit of a loss for where to come up with sprites but I found a straight forward example on the internet. Mine actually has rudimentary A* path finding and is navigable by clicking on a tile that the cursor can navigate to or by moving the cursor with the arrow keys (more reliable.) My additions mainly use CSS. It won’t walk through walls, and sometimes it struggles to find a path around objects. Try a closer position and you can inevitably walk the cursor to the desired cell for a few more turns. Seeing this still working in 2023 is kind of awe inspiring.

ooooo, I forgot about how satisfying this was to click around in and watch the cursor navigate around objects xP

After I made this, I sorta lost interest in it for awhile. And then I got a job and didn’t really have time to either put up a portfolio or develop it further. But this is hardly an engine anyway and despite the work that is done it still leaves much to be desired; namely isometric aspect. I can’t realistically blame 2015 for having nothing better either, a huge part of the problem is that I just simply don’t know what I’m doing and I’ve had to learn all of this collectively for myself. But, on the other hand it’s reasonable to assume that it’s only gotten better since then:

And many more are likely coming soon as WebGPU starts to see more adoption.

Enter traviso.js

Traviso is an isometric game engine, with a map and assets engine of it’s own. Maps and object frames are specified in JSON format.

Plot

Back in 2015 I was feeling really inspired by soviet-made technology, specifically east German made computers like VEB Robotron and strange counterfeit Intel 8086/K1810VM86 made for the soviet market to name a few. Also number stations and methods for de/modulating broadcasts. My RTLSDR that I had purchased from eBay around that time for a good price contributed to this interest some but I’ll save this story for another time.

Spy stuff leaves a lot to the imagination and even with the topic of spying aside, it’s interesting sometimes to think about what might have been or to hear an alternative perspective. KGB is a game that was made about life behind the iron curtain but very limited game play and kind of underwhelming. The KGB were also not the same as the Stasi.

The plot of the game I have in mind has yet to be developed, I’m not sure if a plot really speaks to what I would like to create as much as an open world with objective activities and of course unforgiving consequences that come out of nowhere (not unlike nethack.) The prospect of double agent game play, to participating as a normal citizen gaining credibility for helping citizens flee or racking up charges.

Different modes of game play

I had this idea that it would be cool to use authentic computers as part of the game play. Everything from computers to radios, vehicles, extortion, and reputation seems possible.

Timeline

German reunification began approximately on the 9th of November 1989. This game would propose an alternative reality in which this was prevented. Game play persists beyond this date. I have a beginning date in mind between 1975 and 1989.

Generating an open world

A good source of open / 3D map data is difficult to acquire in it’s entirety. I want to start by developing a game focused around the East Berlin area. A lot could be interpreted from old maps:

Berlin

Traviso likely have to be modified to cache map tiles rather than storing the entire map in an array all at once. The math for this notebook is way off, and I’m still trying to work through this a bit but in terms of generating maps I came up with this: