LOG_IN
ID

Logan Architect

ENCRYPTED_DATA_STREAM

Documentation Vault

CENTRAL MULTI-PROJECT KNOWLEDGE BASE • 3 CHAPTERS

🌐 SENSITIVITY: TIER 3 (PUBLIC SPEC) 2396 WORDS • ~14 MIN READ
🎮 Echoes of the World (Audio Game)
🌌 The Developer Manifesto
🌐 TIER 3 PUBLIC
SYSTEM CONTEXT: Belongs to Echoes of the World (Audio Game) • Forensic timeline, quantitative evolution, and the origin story of the Siraugga framework.

Chapter 1: ECHOES_OF_THE_WORLD (The True Origin)

Chapter 1: ECHOES_OF_THE_WORLD (The True Origin)

Every great technological ecosystem begins with some thing or another that could not be satisfied. For some, it is the pursuit of profit; for others, academic curiosity. But the foundation of my journey was forged in something much deeper: the uncompromising desire to reclaim a world that had faded into silence.

Before the algorithmic trading bots, and before the zero-trust security architecture, I was simply a gamer. I spent hours lost in the worlds of Minecraft, Grand Theft Auto, Watch Dogs, PUBG and many more. Gaming wasn’t just a hobby—it was a core part of my identity, a space of freedom, purpose, and escape.

But in 2021, everything changed. My world of escape was shattered; I lost my sight.

I was totally lost. I never knew blind people could utilize technology. It took me two weeks just to figure out how TalkBack was working. I at least had a way to listen to my music and some of my crime shows. I hooked up NVDA to my computer with the help of my mobility instructor. I still did not know how to use the computer with no sight at all. I could not type on the keyboard. I had a kind of idea where each key was on the keyboard. My style of typing when I was sighted was like some old lady typing a manuscript on a typewriter. I was unable to type with both hands on the keyboard. This was my biggest limitation at this point. I just left my keyboard out; the computer was just standing on a table as a decoration with my 32-inch flat screen connected to it. I was a junkie when it came to movies, series, and games. It was routine for me. It was a huge chunk missing from my life. Time passed, and I went to Optima College, where I learned how to use the screen reader and how to type. This was my first step towards where we are now. You can look up the blogs to learn more about the story that shaped my life as a blind person. I was now hunting for entertainment.

The vivid digital worlds that once offered boundless exploration suddenly vanished. Seeking to fill the void, I scoured the internet for audio games designed for the blind. I found a game called STW somewhere in 2023 after a long search, but while titles like STW and Ultimate Life provided a temporary sense of connection and community, they eventually lost their magic. The gameplay loops felt repetitive; the mechanical depth was missing. The immersive, challenging thrill of mainstream gaming was nowhere to be found in the accessible space. In 2024, I discovered Eurofly Simulator. This was a very interesting game; it kept me busy for hours, but once I got all the planes, I decided I did not want to sit for hours just to crash a plane when it needed to land. It is a waiting game and was pretty boring once you finished training. This was after the games STW and Ultimate Life were shut down or something happened to them. I found during all of this that there is no skill in the level of sound engineering; they all use pre-edited sound files and only play them on command. There are some racing titles out there that I did not try out at all. My reason is that they only increase the pitch. I forgot to mention I have a hearing impairment, so racing games were fun when I was sighted since I was a bit of a petrolhead. So, racing games for sighted people are pretty nice, but I liked the visuals. Listening to the sounds is not really the thing I am interested in; it is just noise to me in a racing game. I get bored and irritated fast with the repetitiveness of the sounds. It could never keep me busy for long.

It was through that frustration that a profoundly ambitious idea took root: What if I could build the game I’ve been longing for? But I did not know how to start; like any other person, I started to ask: How do I start? Where do I even begin?

Initially, my goal wasn’t to become a software engineer—it was just to play a game. Like many in the modern era, I first turned to AI, asking ChatGPT to write the code for me. At first, it seemed like magic. The AI successfully guided me through the setup process and generated the first scripts for me. It generated a rudimentary prototype: a flat, empty void with basic movement mechanics. It was a start, but the illusion of an easy shortcut shattered quickly. As soon as I tried to add complex mechanics, spatial depth, and real gameplay loops, the AI-generated code collapsed into a tangled, unmanageable mess.

It was a harsh but necessary realization: you cannot prompt a complex, immersive world into existence. If this dream was going to become a reality, I had to truly understand the code and how it talks to the machine.

Later, in October 2024, abandoning the AI shortcuts and armed with absolutely zero prior coding background, I took my first real step into the dark.

My earliest attempts at a movement engine were to figure out how I was going to capture keypresses, and which library would help me to combine keypresses, which is the most important for a blind player since we do not use the mouse and only the keyboard. Then I designed the movement system that ChatGPT generated earlier for me and experimented entirely within the command-line terminal. It was a terrible experience. The screen reader would pick up my keypresses, but every time I moved, it would just stubbornly repeat, "blank, blank, blank." The terminal was simply not designed to dynamically narrate a game state. That incessant "blank" was incredibly annoying, but it became the catalyst for everything that followed. It forced me to realize I couldn't rely on the terminal and the generated scripts, because I simply had no clue what I was doing. I decided I had to explore custom User Interfaces.

I created a folder simply called testing. Like almost every developer in history, my journey technically started with a file named Core Component. But my Core Component wasn't a simple print("Hello World") command. It was an interactive script that asked for a player's nickname, verified if they were over 18 (printing "Boooooooom! Failed." if they weren't), and then saved their profile into a timestamped JSON file inside a logs directory. This was how I learned how if, elif, and else blocks were working and how to print to the terminal. The print function taught me how strings work. In the "Hello world!" string, I did not know where to put the "!" (exclamation mark). I did not know where the quotation marks were supposed to go. I was literally just learning syntax and how to avoid the syntax tracebacks. Even in my very first script, I wasn't just trying to print text to a screen—I was trying to build persistent understanding. But despite the logic working, the interface was dead. I started experimenting with rudimentary tkinter buttons, hoping a graphical interface would trigger the screen reader properly. But even tkinter wasn't working. I had no clue that I needed a DLL to enable the screen reader to interact directly with NVDA yet, so the UI experiments hit a dead end. I had no idea how I would make the screen reader speak as in the games I had played so far. I had to go deeper. I had to learn how to force the code to speak directly to the screen reader.

On November 12, 2024, the real breakthrough happened. I dug hard. I started going into the dead STW directories, looking at what files I could find, feeding them into ChatGPT, and asking it what each file was and what its purpose was. Boom! I hit the jackpot. I found the NVDAController.dll in one of the directories. Finally, I could tell the screen reader what I wanted to hear and print logs to the console if something was going wrong. I dropped it directly into the project architecture, allowing Python to interact directly with the screen reader. I was able to bypass the terminal's limitations entirely. I now had a way to spin up an interface, capture keypresses, and the "blank, blank, blank" nightmare was solved.

With the DLLs secured, I forged a proper movement engine. It was a pure mathematical grid using an (x, y, z) coordinate system with an 8-way directional compass. I hardcoded boundary walls to prevent the player from walking off the edge of the world. I tied every single step to a direct nvda_speak command so my exact coordinates were announced instantly.

For the first time, I wasn't just typing commands into a void. I was walking through a world I had built myself. I proved I could build a first-person crawler using nothing but math and control the screen reader.

But getting something to work is not the same as getting it to survive.

I needed a way to actually interact with the game. Immediately after dropping the DLLs and movement was stable, I built the simplest menu possible—a system filled entirely with hard-coded if and elif statements just to get something working. It was a functional prototype, but it was far from my goal. If I wanted to add a simple "Options" button or a new room to explore, I had to surgically wedge it into a sprawling loop. I knew that if this was going to be a real, expanding universe, a single AI generated script would never scale. I couldn't just keep piling logic into one file.

I started a fresh folder called new_world. This was the moment I stopped writing isolated scripts and started playing around with modular approaches and objects, trying to understand how classes work.

In new_world, I made the conscious decision to physically separate the game's state from its logic. The first thing I did was rip the player out of the main loop. I created a dedicated file called Core Component. Instead of tracking coordinates loosely in the ether, I formalized the state into a strict dictionary: player_position = {'x': 0, 'y': 0, 'z': 0}. Establishing a single source of truth for the player's existence in the 3D space was a massive architectural leap. I also started to understand how dictionaries are structured and how they work.

Once the player's state was isolated, I needed a way to make it persistent. If the game crashed, the coordinates vanished. So, I wrote Core Component. I engineered a system that would take the player_position dictionary and dump it directly into a player_log.json file on the hard drive. For the first time, my universe had memory. I could walk ten steps north, close the program, and the engine would remember exactly where I stood.

But the biggest leap in new_world wasn't just structural—it was sensory.

Up until this point, I had relied entirely on the NVDA screen reader to narrate the game. It was a massive breakthrough over the terminal, but the screen reader's synthetic voice was clinical. I wanted to hear the world, not just read it.

I decided to introduce physical audio files into the engine. Later, in November 2024, I wrote a script called Core Component and hooked into the pygame.mixer engine. Instead of just telling the screen reader to say "North," I engineered a dedicated audio channel that would trigger physical .wav files whenever the player turned the 8-way compass.

I didn't have access to professional voice actors or high-end recording studios. I use whatever tools are at my disposal. I opened up Microsoft Clipchamp, generated the directional announcements myself (North, South, East, West, and all the diagonals), and exported them as audio files. I dropped those scrappy, homemade .MP3 files into an audio folder. Then I started to figure out how to play the scrappy files. I first used hard-coded paths to play each file independently, hard-coding it to an if/elif block when a key was pressed. I first used key combinations to change directions. Once that was in place, I knew this would not scale. Then I mapped them to a directional dictionary with dynamic paths, because on my PC it would work, but if I moved it to another directory or drive, it would not play. It was still hard-coded file names, but it worked and I did not know of better yet, and then wired them into the Pygame mixer.

The first time I fired up the new_world engine and pressed the arrow key, it didn't just synthetically read a coordinate. A crisp, distinct audio file fired through the speaker. I added the ability to jump, to walk at different speeds, and to toggle auto-walking on and off.

There was no grand, emotional revelation. I didn't feel anything profoundly special—I just felt the mechanical realization that this was actually starting to become a game. It finally had a personality. The player could launch from a menu, load into Core Component, and trigger sounds based on directional cues.

But it was still not a game yet. I was just a lost character walking and jumping in a massive, empty void.


🔗 Technical Cross-References & Architectural DNA

🔽 Related Multi-Project Architecture & Security Notes (Click to Expand Dropdown)
  • [Echoes of the World (Audio Game)] The Origin Architecture: Echoes of the World: Genesis Blueprint: Mathematical Coordinates & Screen Reader Sovereignty
  • [JOSHY Audio Suite] JOSHY Audio Suite: Guide to Screen Readers & Accessibility: Tolk DLL Bridging, Accessible Speech Drivers & NVDA Hooks
  • [E-Profile Portal] E-Profile Architecture & Forensic Devlog: Zero-Downtime Hot-Patching, AST Surgery & Lockout Paradox
  • [Siraugga / DevCore Core] The Manifesto: Chapter 2 — The Echoes Architecture: Historical Genesis of Audio Feedback & Metaprogramming
  • [Siraugga / DevCore Core] Siraugga Command Center User Manual & Interface Guide: Screen Reader Navigation, Flip-Cards & Mid-Task Steering