About
The design philosophy behind SimpleJRPG.
Design Philosophy
SimpleJRPG orchestrates battles — turn order, events, state management. You implement damage formulas, design status effects, and build your UI.
SimpleJRPG has no opinions on your game design. It uses pass-through strings instead of enums for all game-specific values like damage types, elements, status IDs, and buff IDs. We never interpret what "Fire" or "Poison" means — your system decides.
Everything is instance-based. No singletons, no statics, no global state. Create a
Battle instance, pass in your combatants and a turn system, subscribe to
events, and call combat verbs. That's it.
What SimpleJRPG Is NOT
- Not a complete battle system — it's the skeleton, you add the flesh. We provide orchestration; you provide the game.
- Not opinionated about damage formulas, stat systems, or game balance — you do the math, pass us the result, and we route it through.
- Not a UI framework — events let you drive any UI you want. We fire
OnDamageDealt, you decide what that looks like on screen. - Not dependent on Unity — pure C#, no MonoBehaviours, no ScriptableObjects, no UnityEngine imports. The asmdef uses
noEngineReferences: true.
Version History
-
v2.0 (February 2026) — Complete rewrite. Lean runtime API with an instance-based
Battleclass, pluggable turn systems (Classic, ATB, Timeline, Press Turn, Action Point), before-events for cancellation and modification, and battle helpers (multi-target, queries, history, results). - v1.0 (scrapped) — ScriptableObject-based composable effects system. Over-engineered abstraction layers. Lesson learned.
Support
For questions, bug reports, and feature requests:
- Email — livingfailuregames@gmail.com
- Website — livingfailuregames.com
- Unity Asset Store — leave a review or use the Q&A section on the SimpleJRPG store page.