My game idea
Author: Paige


Background

I've wanted to create a game for years now, and I've experimented with various approaches—particularly tile maps. Here's a simple Python list comprehension that generates a tile map suitable for a game (numeric cells represent empty spaces, # cells are walls):

If you're unfamiliar with tile-based games, this might be hard to visualize since the "sprites" are just ASCII characters. While I appreciate ASCII and ANSI art, I've never fully connected with NetHack's ncurses interface. I always preferred the QT/GTK frontends with their pixmap sprites (though those haven't worked reliably in years). Call me a noob if you want, but graphical tiles just speak to me more than ASCII ever did.

My First Working Engine

In 2013, I had the idea to build a tile-based game using HTML, CSS, and JavaScript. A friend had purchased a license for a web-based game engine, which got me thinking. Around New Year's 2015, while hanging out with that same friend, I was inspired to build my own engine from scratch.

At the time, finding suitable sprites was challenging, but I discovered a straightforward tutorial online that got me started. My implementation includes rudimentary A* pathfinding, allowing you to navigate by either clicking on walkable tiles or using the arrow keys (which is more reliable).

The pathfinding isn't perfect—it can't walk through walls, and it sometimes struggles to find routes around obstacles. If you click on a distant tile and it gets stuck, try clicking closer waypoints to guide the cursor to your destination. It's surprisingly satisfying to see this 2015 code still working today.

Click anywhere on the map to move the cursor, or use arrow keys to navigate around objects!

The Gap Years

After building this demo, I lost momentum for a while. Life got busy—I started a new job and never found time to polish this into a proper portfolio piece or develop it further. But let's be honest: this is barely an engine. It works, but it's missing crucial features, particularly an isometric perspective.

Back in 2015, the available tools weren't much better. The real issue was my own inexperience—I was teaching myself everything from scratch. But the ecosystem has matured significantly since then:

The future looks even brighter as WebGPU gains adoption, enabling more powerful web-based game engines.

Traviso.js

Traviso is an isometric game engine with its own map and asset management system. Maps and object frames are defined in JSON format, making it relatively easy to create isometric worlds.

The Game Concept

Setting and Inspiration

Around 2015, I became fascinated by Soviet-era technology: East German computers like VEB Robotron, Soviet-made Intel 8086 clones (K1810VM86), number stations, and FSK modulation techniques used for covert broadcasts. My RTLSDR dongle from eBay fueled this interest, though that's a story for another time.

The world of espionage and Cold War-era Eastern Europe is rich with potential. Beyond the spy angle, it's fascinating to explore alternate histories and hear perspectives from those who lived it. While KGB (the video game) attempted to capture life behind the Iron Curtain, its gameplay was limited. I'd want something deeper—and it's worth noting that the KGB and the Stasi were distinct organizations with different methods.

Gameplay Vision

Rather than a rigid plot, I envision an open-world game with objective-based activities and unforgiving, NetHack-style consequences. Players could:

  • Work as a double agent, navigating competing loyalties
  • Play as an ordinary citizen building credibility
  • Help people escape across the border
  • Face accumulating charges and reputation changes based on their choices

Gameplay Systems

I'm imagining period-accurate technology as integral gameplay mechanics:

  • Period computers - Interact with authentic East German and Soviet systems
  • Radios - Intercept or broadcast coded messages
  • Vehicles - Navigate the city with era-appropriate transport
  • Reputation systems - Track standing with various factions
  • Economic systems - Extortion, bribery, and underground economies

Alternate Timeline

German reunification began on November 9th, 1989. This game explores an alternate reality where reunification was prevented—gameplay would begin sometime between 1975 and 1989 and continue past the historical reunification date.

Building the World

Creating an accurate open-world map is challenging. I want to focus on East Berlin initially, using historical maps as reference:

Berlin 1980 Transit Map

For a world this size, Traviso would need modification to cache map tiles dynamically rather than loading everything into memory at once. I'm still working through the mathematics, but here's my initial approach to procedural map generation: