Kaerix is an open-source browser roguelite inspired by arena survivors like Brotato. It focuses on short, replayable runs, build-driven decisions, and wave-based combat with meaningful progression.
This repository is currently in early pre-production. The first public milestone is a playable web prototype.
Kaerix is designed around three goals:
- Fast action loops that are easy to understand and hard to master.
- Build expression through weapons, stats, and synergies.
- Open collaboration, clear architecture, and contribution-friendly tooling.
- Arena-based survival with timed waves.
- High enemy density and escalating pressure.
- Distinct character stats and upgrade paths.
- Multi-weapon loadouts and weapon fusion.
- Shop phase between waves with reroll and lock decisions.
- Roguelite structure: runs are temporary, meta progression is long-term.
The project is in documentation-first setup.
Planned near-term deliverables:
- Vertical slice (single map, one character, basic enemies, wave timer).
- Weapon system with at least 3 archetypes.
- Basic shop and economy loop.
- Saveable meta progression foundation.
Kaerix targets modern browsers first (desktop priority, mobile-aware UI).
Dependencies are allowed when they provide clear value in:
- Developer productivity.
- Runtime performance.
- Maintainability and testability.
Initial stack proposal:
- TypeScript for safer iteration speed.
- Vite for fast local dev and build pipeline.
- Phaser or PixiJS for rendering/game-loop primitives.
- Tailwind CSS for fast and consistent UI shell styling.
- Vitest for unit testing.
- ESLint + Prettier for consistency.
Alternative stacks are welcome through architecture discussions and RFC issues.
- Keep gameplay deterministic where practical.
- Prefer data-driven design for items, weapons, and enemies.
- Separate game rules from rendering/UI code.
- Keep modules small and testable.
- Document decisions that affect contributors.
See detailed planning in ROADMAP.md.
- Set up project scaffolding and CI.
- Define core folders and coding conventions.
- Implement minimal game loop and debug HUD.
- Player movement, health, and damage model.
- Enemy spawning, pathing, and collision handling.
- Auto-attack baseline weapon.
- 30-second wave cycle and completion state.
- Weapon inventory and rarity tiers.
- Weapon fusion rules.
- Upgrade and stat system.
- Shop between waves.
- More enemy families and wave modifiers.
- More characters and distinct passives.
- Multiple arenas and event variants.
- Meta progression and unlockables.
Read CONTRIBUTING.md before opening a pull request.
Contributions are welcome from developers, designers, and playtesters.
If you want to help early:
- Open issues with gameplay ideas, balancing concerns, or technical proposals.
- Share reference implementations from similar systems.
- Suggest tooling and architecture improvements.
Before opening large pull requests:
- Start with an issue to align scope.
- Keep changes focused and small.
- Include tests when behavior changes.
- Update docs when APIs or gameplay rules change.
By participating, you agree to collaborate respectfully and constructively. Harassment, discrimination, or abusive behavior will not be tolerated.
If a full CODE_OF_CONDUCT.md is added later, this section will point to it.
This project is licensed under the terms of the license file in this repository.
Community channels and contribution workflows will be added as the project reaches the first playable milestone.
In the meantime, use GitHub issues for all proposals, bugs, and discussions.