I’m Santiago Zapata, better known online as slashie, a Software Engineer and Independent Game Developer and from Medellín, Colombia.

You are in the devlog, a chronological collection of updates on my projects, alongside articles about software and game development. Subscribe to get these directly into your inbox.

Castle of the Vampire – Inception

Published by

on

October 14 — Inception

The project began with a single-prompt attempt to create a traditional, turn-based ASCII roguelike inspired by Castlevania. The initial version featured 25 stages, classic monsters, and a final confrontation with Dracula, but its linear levels and punishing boss fights quickly made the experience feel like a chore. The first major iteration introduced procedural rooms and corridors shaped by each stage’s theme, alongside a shift toward more strategic boss encounters built around items found during exploration.

The game evolved into Castle of the Vampire, establishing its own identity while retaining the gothic action-adventure inspiration. Whips became swords, spells became relics powered by magic points, and familiar enemies and objects were renamed to avoid direct references. Gameplay improvements included diagonal movement, directional running, item discovery messages, and a more streamlined interface.

The rendering system moved from DOM characters to a canvas using a VGA font, bringing the classic terminal aesthetic closer to the intended experience.

Mobile support became a major part of the design, with dedicated portrait-mode layouts, high-resolution interface elements, drag panning, and touch controls. The project also raised a broader possibility: perhaps with this one, AI-assisted development could produce a complete game worth releasing, with human-created music, and sound effects providing the remaining polish, while retaining the ASCII look for the main map, avoiding the bottleneck to create graphics.

October 15 — Day 2: Inventory, Persistence, and Mobile UX

The focus shifted toward making the game comfortable to play across desktop and mobile devices. The interface was reorganized into fixed information and map areas, with contextual messages kept in a compact three-row region. Mobile gained a dedicated Options menu, adjustable keypad sizes, a dismissible help popup, and a single-slot save system that lets players restore their progress after dying or start a new run.

Item management became more deliberate. Potions, crystals, and relics moved into a ten-slot inventory instead of activating automatically when collected. Players could choose when to use consumables, equip relics with limited charges, or drop unwanted items. The interface was simplified to emphasize item names and gold, while desktop controls and save shortcuts were refined.

Combat presentation and progression also received substantial attention. Running became faster, loot and rewards were reduced to improve balance, and merchants were introduced after boss encounters to give gold a practical purpose. Enemy attacks and projectiles were redesigned to animate one tile at a time, making combat easier to follow. Death messages became context-sensitive, distinguishing ordinary enemies from bosses, and the mobile death screen was redesigned to show the relevant information without obscuring it.

October 16 — Day 3: Refining Controls and Combat Feedback

This iteration concentrated on responsive controls and clearer combat interactions. Mobile players could hold and release a directional control to run, while relic switching required confirmation to prevent accidental changes. The mobile layout was adjusted to make better use of available space, improve button placement, and prevent unintended inputs during movement. Running speed and movement animations were further refined.

The inventory and interface continued to evolve, including more consistent item descriptions and clearer stage information. Combat feedback was also reconsidered: rather than relying on generic hit flashes, the intended presentation would highlight the actual tile where damage occurs, with health and message updates synchronized to the end of projectile animations.

As the game grew, the need for a maintainable codebase became increasingly apparent. The monolithic HTML implementation was split into separate JavaScript or TypeScript modules, creating a foundation for continued development without sacrificing iteration speed.

October 17 — Day 4: From Simple Encounters to Systemic Traps

The game moved toward deeper environmental and tactical interactions. Relic targeting gained directional tile highlights, helping players understand the effective range across all eight directions before committing to an action. Combat feedback was further specified so damage indicators, health values, and message logs remain synchronized with projectile animations.

The largest design shift was the introduction of a more systemic approach to traps and level progression inspired by a Roguelike Celebration talk happening that same day. Instead of isolated tiles that immediately inflict damage, traps would provide clues, allow time to react, unfold through staged effects, and potentially leave lasting consequences. Chests, levers, and pressure plates could become interconnected triggers, creating opportunities for players to anticipate danger, disable mechanisms, and discover indirect solutions.

Supporting this required rethinking procedural level generation around a logical graph of connected areas. Connections could be gated by locks, with keys represented not only by physical items but also by levers, buttons, and other environmental interactions. Traps and progression would therefore become parts of the same system: unlocking a route might trigger a hazard, while understanding the mechanism could provide an alternative way forward.

This was the most ambitious iteration so far. The trap and progression redesign proved too large to complete in a single development session, carrying the next stage of work into the following day.

Leave a Reply

Discover more from Slashie's Gamedev Adventures

Subscribe now to keep reading and get access to the full archive.

Continue reading