Your movement is the weapon. Your cursor is the threat.
A cross-platform physics-action roguelite powered by one Kotlin Multiplatform simulation.
Development · How to play · Systems · Contributing · Legal
Important
KINETICKK is open-source software under the GNU GPL version 3 or later. You may study, build, run, modify, and redistribute it. A distributed fork must keep the copyright and license notices, identify its changes, provide the complete corresponding source, and remain under the GPL. The KINETICKK name and branding are separate; see the trademark policy.
The cursor or touch point is both a magnetic target and a lethal singularity. Pull it away from the Core to build speed, turn that momentum into impact damage, and never let the Core touch the singularity.
The same shared engine, renderer, content catalog, progression system, and tests run across desktop (macOS, Windows, and Linux) and modern browsers through WebAssembly.
The repository is published as a working learning example for Kotlin Multiplatform, Compose Canvas rendering, deterministic simulation, progression systems, and cross-platform persistence. You can inspect the design, build the whole game locally, experiment with it, and contribute changes under the GPL.
| 400 items | 12 weapons | 40 Relics | 9 enemy archetypes | 92 desktop tests |
|---|---|---|---|---|
| Deterministic catalog | Movement-reactive | Six aspects | Architect included | Seeded simulation |
Magnetic Polarity saturates when the target stays far away in one direction. A saturated tether stops adding thrust: turn decisively or bring the target inward to recover before enemies intercept your line.
| Input | Action |
|---|---|
| Mouse / touch drag | Move the singularity and attract the Core |
Space / Dash |
Kinetic Dash and phase through bullets |
Shift / right mouse / Brake |
Gravity Brake |
P / Esc |
Pause or return |
1–4 |
Select an item, weapon, or Relic option |
Q |
Reroll an item or weapon choice |
L / A / B / C / S |
Lab, Armory, Rebirth, Codex, Settings |
M |
Toggle sound and music |
R |
Restart after a completed run |
Defeat The Architect on the current Rebirth tier to unlock the next one. Rebirth starts a fresh run build with a stronger threat profile while preserving permanent progression, unlocks, Codex discovery, and settings.
Requirements: JDK 17 or newer. The Gradle wrapper downloads the matching Gradle distribution automatically.
git clone https://github.com/4wl2d/KINETICKK.git
cd KINETICKK
./gradlew runOn Windows, use gradlew.bat run.
./gradlew wasmJsBrowserDevelopmentRunOpen the local URL printed by Gradle. A production WebAssembly bundle can be built with:
./gradlew wasmJsBrowserDistributionThe optimized bundle is written to build/dist/wasmJs/productionExecutable.
| Goal | Command |
|---|---|
| Run desktop tests | ./gradlew desktopTest |
| Build the production web bundle | ./gradlew wasmJsBrowserDistribution |
| List every available task | ./gradlew tasks |
- Kinetic combat: fixed-step simulation at 120 Hz, uncapped magnetic acceleration, swept high-speed collisions, mass-based impact damage, recoil, Gravity Brake, and Polarity saturation.
- Buildcraft: twelve movement-reactive weapons, forty rankable Relics, four Sovereign Relics, four bound Relic slots, and 400 deterministic items across twenty modifier families.
- Run progression: Data leveling, stat evolutions, Elite Keys, two-stage Totems, weapon mastery, combo rewards, velocity tiers, Kinetic Overdrive, and a twenty-minute Architect finale.
- Persistent progression: spendable Kinetic Matter, eight Lab upgrades, twelve Armory unlocks, three Core shapes, Codex discovery, and replayable Rebirth threat tiers.
- Presentation: infinite procedural grid, camera tracking, trails, particles, screen shake, configurable damage numbers, and procedural synth audio on desktop and web.
- Opposition: Drifter, Shooter, Charger, Interceptor, Weaver, Warden, Splitter, Elite, and Architect behaviors with projectiles and escalating wave mixes.
| Path | Responsibility |
|---|---|
src/commonMain |
Shared simulation, input orchestration, content, audio logic, Canvas UI, and rendering |
src/desktopMain |
Desktop window, JVM persistence, and platform tone output |
src/wasmJsMain |
Browser entry point, WebAssembly host page, localStorage, and web audio |
src/commonTest |
Deterministic engine, catalog, progression, Relic, audio, and math tests |
Bug reports, ideas, tests, documentation, and pull requests are welcome. Read the contribution guide before submitting code.
Every commit in a pull request must include a Developer Certificate of Origin sign-off. Before a copyrightable contribution is merged, its author must also sign the KINETICKK Contributor License Agreement. The CLA keeps the public contribution under GPL and lets the project owner prepare store builds without taking away the contributor's right to use their own work.
KINETICKK is a playable 0.1.0 prototype. APIs, balance, content, and saved-progress formats may change while the game is in active development.
Copyright © 2026 Vladislav Tomilov.
KINETICKK's original code, tests, docs, game content, and project-made assets are free and open-source under the GNU General Public License version 3 or later. The GPL permits use, modification, redistribution, and commercial distribution. When you distribute the game or a fork, you must follow the GPL's notice, source-code, and copyleft terms.
The GPL does not grant rights to present a fork as the official KINETICKK game or to imply endorsement by Vladislav Tomilov.
