About this project

Kül ve Kıvılcım is a Turkish roguelike deckbuilder that runs in the browser, requiring no single file or external assets. It features three acts, a branching map, 87 cards, 33 enemies, 38 relics, 18 potions, and 16 events. All visuals are derived from SVG silhouettes; card icons are automatically generated from their IDs; and sound effects and music are synthesized in real-time using WebAudio—there are no .png or .mp3 files in the repository. At the center of the game is a unique mechanic called "Incandescence": it accumulates during battle and does not disappear between turns. Some cards generate Incandescence, while others spend it all to provide scaling effects (e.g., Blast: 4 damage for each Incandescence). The player must strategically choose when to discharge it. Three paths utilize this resource differently: Fire (high damage via explosions), Ash (slow but exponential attrition), and Iron (converting it to defense). The map, rewards, and enemy health are reproducible with the same seed. Architecturally, the engine and interface are completely separated: the Combat module is synchronous, unaware of the DOM, and operates by writing logs; the UI plays this log back with a delay. This allows the engine to be tested and balanced on Node.js. Visually, enemies are hand-written SVG silhouettes; card seals are derived from IDs; and the burning effect is created with feTurbulence and feColorMatrix filters. Music is generatively produced in the Hicaz scale, with layer levels and tempo changing based on the situation. The testing system is comprehensive: 55+ unit tests ensure every card, enemy, relic, potion, and event is executed at least once. Simulations perform 250 runs per difficulty, reporting win rates, health economy, and death distribution. A diagnostic run measures each encounter separately. Balance is adjusted through measurement: the loss rate for boss fights with reference decks is between 0% and 7%. An automated player reaches an average of 20 out of 45 floors, rewarding skill. There are three difficulty levels: Traveler, Ash Oath, and Nightmare. Shortcuts: cards are played with keys 1-9, Space/Enter ends the turn, D shows the deck, and Esc closes the menu. Cards can be played via drag-and-drop or clicking; for targeted cards, the card is selected first, then the enemy. Contributions are welcome: adding new cards or enemies is simple. The most valuable type of contribution is balance feedback—sharing which battles are boring, which cards are never played, or where you got stuck. The license is MIT; no third-party assets are used except for emoji characters.