Piotr Doliński
Back to projects
Featured

Bug the Gathering

Offline-first mobile roguelike deckbuilder for iOS and Android, built with React Native and Expo. Build an IT-themed strategy through a procedural survival run.

React NativeExpoReact Native SkiaReanimatedZustandAsyncStorageJestTypeScript

About Project

BUG: The Gathering is a landscape mobile card roguelike inspired by Slay the Spire and Hearthstone. In The Sprint, players choose one of five IT-themed classes, build a deck, navigate a seeded map, and face combat encounters, events, shops, and multi-phase bosses. The game runs fully offline, with a pure TypeScript engine separating combat and procedural generation from its React Native presentation layer.

Key Features

  • React Native and Expo application optimised for landscape mobile play
  • Five playable classes and deck-building progression across roguelike runs
  • Pure, deterministic combat and wave-generation engine separated from UI code
  • Skia-powered cards, combat effects, animations, audio, and haptic feedback
  • Local-first state management, English and Polish localisation, and automated Jest tests

Technical Challenges

The main engineering challenge is maintaining a responsive native battle interface while several visual effects and state transitions can occur in one turn. The solution keeps combat and progression logic deterministic and independent of rendering, while persistent Skia surfaces and carefully managed animation lifecycles minimise GPU and native-view churn on mobile devices.

Deterministic TypeScript combat engine with roughly 340 cards, effects, and class/tribal synergies
Seeded roguelike progression with procedural maps, encounters, events, shops, and boss phases
Native battle rendering and VFX powered by React Native Skia and Reanimated
Offline persistence with Zustand and AsyncStorage, bilingual UI, and Jest coverage for game logic and UI behaviour
Code