KnC

KnC Game History

From a 1999 DOS survival puzzle by Serge Zhigunenko to the current 2026 Web/PWA remake with TypeScript, Canvas, local saves, Original 1999 graphics, and GitHub Pages deployment.

Play First

The public build is playable in the browser and can be installed as a PWA after the first load.

Play KnC nowSource on GitHub

Version Timeline

13 February 1999 · DOS original

The first version was created by Serge Zhigunenko under the SZA author marker. It used the historical spelling Krovavitsa, arrow-key movement, Q/Esc quit, M sound toggle, N restart, and H to cancel a CPU-speed-dependent auto-move bug.

1999-2001 · Scratch archive

The archive contains helper experiments and configuration material, including a 15x15 field-size config and unrelated UI/media snippets. These files are preserved as context, not as the primary game implementation.

2003 · Visual Basic 6 rewrite

The KNC3 branch moved the game into a Windows GUI. The VB project describes itself as Krovavica & Chudovishe v3 and added ENG.LNG/RUS.LNG, menus, registry-backed settings, and an author string dated 2003.

2003-2005 · Expanded Windows version

The later VB6 implementation became the most complete Windows-era branch. Its form code contains a skin switch, color mode, photo-head GIF sprites, brick walls, a Ukrainian-emblem exit, and five rotating Shadow heads. The small VB.NET branch is preserved as an abandoned attempt.

2026 · Web/PWA MVP

The current version is a browser-first remake. It runs on GitHub Pages, works as a PWA, saves locally in the browser, renders Canvas graphics, and supports Original 1999, Windows 2003 skin, and Modern Color modes.

Original 1999 Identity

The original menu used personal names for the three roles. The remake keeps this history documented while using modern player-facing names in the game UI.

Role1999 namePersonal name2026 UI name
PlayerChudovishcheSergeyMonster
Main hunterKrovavitsaOlgaKryvavitsa
Random hunterpodKrovavnitsaLenaShadow
Original 1999 title composite KnC original gameplay reference

Version Differences

Mechanic1999 original2026 remake
Title spellingKrovavitsa in historical materialKryvavitsa in modern UI
Shadow lethality25% chance on adjacency100% after the Shadow action if adjacent
Restart costCould remove all current pointsApplies a -500 score penalty, clamped at zero
Enemy timingHad a CPU-speed-dependent auto-move behaviorEnemies move only after a player action
SoundMusic or sound toggle existedSound is outside MVP scope
Board shapeSquare-board assumptionsRectangular custom boards use fieldBase = min(width, height)

Rules Summary

GoalMove the Monster to the Exit.
Turn cycleOne player action triggers Monster, then Kryvavitsa, then all Shadows in shuffled order.
MovementOnly four orthogonal directions exist. Diagonal movement and diagonal kills do not exist.
WallsThe Monster pushes exactly one Wall. A Wall can move into an empty cell, crush a Shadow, or disappear into the Exit. Wall chains are blocked.
DefeatMoving onto an enemy loses immediately. Orthogonal adjacency after each enemy action also loses.
VictoryReaching the Exit immediately generates a new board and adds one Shadow to the next level.
ScoreExit +1000, Wall push +10, crushed Shadow +50, each Monster turn -10, restart -500, score cannot go below zero.

Visual Modes

Original 1999Primary MVP mode: extracted DOS-style pixel sprites, bright cyan field, red cross-shaped Walls, green oval Exit.
Windows 2003 skinIntermediate mode promoted from OLD/KnC_NEW/*.GIF: photo-head characters, brick Wall, white tiled field, Ukrainian-emblem Exit.
Modern ColorFallback/debug mode: simple Canvas shapes and colors, useful when image assets fail to load.
Original 1999 Monster
Original 1999
Windows 2003 Monster
Windows 2003 Monster
Windows 2003 Kryvavitsa
Windows 2003 hunter
Windows 2003 Shadow
Windows 2003 Shadow
Windows 2003 Wall
Brick Wall
Windows 2003 Exit
Exit

Current Implementation

Current MVP version: 26.06.01.0047. The game is implemented with TypeScript, Vite, HTML5 Canvas, Vitest, ESLint, a static service worker, and GitHub Actions deployment to GitHub Pages.

LayerResponsibility
src/game/Pure domain engine, board generation, scoring, deterministic RNG, Monster movement, Kryvavitsa and Shadow AI.
src/render/Canvas geometry, Original 1999 assets, Windows 2003 skin assets, Modern Color fallback, smoothing disabled.
src/input/Keyboard, mouse, and touch translation into turn commands.
src/ui/HUD, menu, settings, help, about overlay, victory and defeat notifications.
src/storage/localStorage save/resume, version compatibility, settings and record preservation.
public/PWA manifest, service worker, runtime assets, and static history/about/privacy pages.
Monster sprite
Monster
Kryvavitsa sprite
Kryvavitsa
Shadow sprite
Shadow
Wall sprite
Wall
Exit sprite
Exit

Source Archive

The Git repository keeps the historical source archive under OLD/, the canonical product specification under DEV/, human-readable rule mirrors under docs/, approved runtime assets under public/assets/, and the current implementation under src/.

Open the source repository