GodthroneRPG is a sophisticated turn-based role-playing game built with Kaplay, delivering an immersive pixel-art experience with deep strategic gameplay mechanics. Embark on epic quests, engage in tactical combat, and forge your legend in a world where every decision matters.
- ๐ฐ GodthroneRPG
GodthroneRPG represents a modern take on classic turn-based RPGs, combining nostalgic gameplay elements with contemporary game design principles. Built on the robust Kaplay engine, the game features a modular architecture that supports complex gameplay systems while maintaining performance and extensibility.
The game emphasizes strategic decision-making, character progression, and immersive storytelling through its carefully crafted mechanics and atmospheric pixel-art presentation.
The following UML class diagram illustrates the core architecture and relationships within GodthroneRPG:
classDiagram
class GameEngine {
+Kaplay kaplay
+SceneManager sceneManager
+InputHandler inputHandler
+initialize()
+update()
+render()
}
class SceneManager {
+Scene currentScene
+Map~string, Scene~ scenes
+switchScene(sceneName: string)
+addScene(name: string, scene: Scene)
+getCurrentScene(): Scene
}
class Scene {
<<abstract>>
+string name
+boolean isActive
+enter()
+exit()
+update(deltaTime: float)
+render()
}
class ExplorationScene {
+Player player
+WorldMap worldMap
+Camera camera
+handleMovement()
+checkCollisions()
+triggerEvents()
}
class BattleScene {
+Player player
+Enemy[] enemies
+BattleSystem battleSystem
+UI battleUI
+initializeBattle()
+processTurn()
+checkBattleEnd()
}
class MenuScene {
+UI menuUI
+SaveSystem saveSystem
+displayMenu()
+handleMenuSelection()
}
class Character {
<<abstract>>
+string name
+Stats stats
+Inventory inventory
+Position position
+Sprite sprite
+takeDamage(amount: int)
+heal(amount: int)
+isAlive(): boolean
}
class Player {
+int experience
+int level
+Quest[] activeQuests
+gainExperience(amount: int)
+levelUp()
+addQuest(quest: Quest)
}
class Enemy {
+EnemyType type
+int reward
+AI aiController
+performAction(): Action
+dropLoot(): Item[]
}
class Stats {
+int health
+int maxHealth
+int mana
+int maxMana
+int attack
+int defense
+int speed
+int luck
+calculateDamage(attacker: Character): int
+applyBuff(buff: Buff)
}
class Inventory {
+Item[] items
+int maxCapacity
+addItem(item: Item): boolean
+removeItem(item: Item): boolean
+useItem(item: Item, target: Character)
+getItemCount(itemType: ItemType): int
}
class Item {
<<abstract>>
+string name
+string description
+ItemType type
+int value
+Sprite icon
+use(target: Character)
}
class HealingItem {
+int healingAmount
+use(target: Character)
}
class BuffItem {
+Buff buff
+int duration
+use(target: Character)
}
class WeaponItem {
+int attackBonus
+WeaponType weaponType
+use(target: Character)
}
class BattleSystem {
+Character[] participants
+TurnQueue turnQueue
+ActionProcessor actionProcessor
+initializeBattle(player: Player, enemies: Enemy[])
+processTurn()
+calculateTurnOrder()
+executeAction(action: Action)
}
class Action {
<<abstract>>
+Character actor
+Character[] targets
+execute()
+canExecute(): boolean
}
class AttackAction {
+int damage
+execute()
}
class UseItemAction {
+Item item
+execute()
}
class SkillAction {
+Skill skill
+int manaCost
+execute()
}
class WorldMap {
+Tile[][] tiles
+NPC[] npcs
+CollisionLayer collisionLayer
+EventTrigger[] eventTriggers
+getTileAt(x: int, y: int): Tile
+checkCollision(position: Position): boolean
}
class UI {
+UIElement[] elements
+boolean isVisible
+show()
+hide()
+update()
+render()
}
class SaveSystem {
+GameState currentState
+save(slot: int)
+load(slot: int): GameState
+deleteState(slot: int)
+hasState(slot: int): boolean
}
%% Relationships
GameEngine --> SceneManager
GameEngine --> InputHandler
SceneManager --> Scene
Scene <|-- ExplorationScene
Scene <|-- BattleScene
Scene <|-- MenuScene
ExplorationScene --> Player
ExplorationScene --> WorldMap
BattleScene --> Player
BattleScene --> Enemy
BattleScene --> BattleSystem
Character <|-- Player
Character <|-- Enemy
Character --> Stats
Character --> Inventory
Player --> Quest
Enemy --> AI
Inventory --> Item
Item <|-- HealingItem
Item <|-- BuffItem
Item <|-- WeaponItem
BattleSystem --> Action
Action <|-- AttackAction
Action <|-- UseItemAction
Action <|-- SkillAction
WorldMap --> Tile
WorldMap --> NPC
Scene --> UI
MenuScene --> SaveSystem
- ๐ถ Dynamic Exploration: Navigate richly detailed environments with interactive elements
- ๐ Character Progression: Deep leveling system with customizable stat allocation
- ๐ Advanced Inventory: Comprehensive item management with categorization and sorting
- ๐ฌ Interactive Dialogue: Engaging conversations with NPCs that affect story outcomes
- ๐ Achievement System: Track progress and unlock rewards for various accomplishments
- ๐ฏ Strategic Turn-Based Combat: Plan your moves carefully in tactical battles
- โก Skill System: Unlock and master powerful abilities as you progress
- ๐ก๏ธ Equipment Management: Equip weapons, armor, and accessories for stat bonuses
- ๐ฒ Dynamic Damage Calculation: Combat outcomes influenced by stats, equipment, and RNG
- ๐ฅ Party Formation: Build and manage a team of diverse characters
- ๐พ Robust Save System: Multiple save slots with detailed progress tracking
- ๐ Procedural Events: Random encounters and events that keep gameplay fresh
- ๐ Difficulty Scaling: Adaptive challenge that grows with player progression
- ๐ต Dynamic Audio: Immersive soundtrack that responds to game state
- โ๏ธ Customizable Settings: Adjust graphics, audio, and gameplay preferences
- ๐ฎ Engine: Kaplay (JavaScript game development framework)
- ๐จ Graphics: Custom pixel-art sprites and animations
- ๐ Audio: Web Audio API for dynamic sound management
- ๐พ Storage: LocalStorage for save data persistence
- ๐ฑ Compatibility: Cross-platform support (Desktop, Mobile, Web)
- Node.js (v16.0 or higher) - Download here
- npm (comes with Node.js) or yarn package manager
- Modern web browser with ES6+ support (Chrome 80+, Firefox 75+, Safari 13+)
-
Clone the repository:
git clone https://github.com/your-username/GodthroneRPG.git cd GodthroneRPG -
Install dependencies:
npm install # or yarn install -
Install development tools (optional):
npm install -g @kaplay/cli
Development Mode:
npm run dev
# or
yarn devProduction Build:
npm run build
npm run previewTesting:
npm run testAccess the game at http://localhost:5173/
GodthroneRPG/
โโโ ๐ src/
โ โโโ ๐ scenes/ # Game scenes (exploration, battle, menu)
โ โโโ ๐ entities/ # Character classes and game objects
โ โโโ ๐ systems/ # Core game systems (battle, inventory, save)
โ โโโ ๐ ui/ # User interface components
โ โโโ ๐ utils/ # Utility functions and helpers
โ โโโ ๐ data/ # Game data (items, enemies, maps)
โ โโโ ๐ main.js # Application entry point
โโโ ๐ assets/
โ โโโ ๐ sprites/ # Character and environment sprites
โ โโโ ๐ audio/ # Music and sound effects
โ โโโ ๐ maps/ # Level data and tilesets
โ โโโ ๐ ui/ # UI graphics and fonts
โโโ ๐ docs/ # Documentation and guides
โโโ ๐ tests/ # Unit and integration tests
โโโ ๐ package.json # Project dependencies and scripts
โโโ ๐ vite.config.js # Build configuration
โโโ ๐ README.md # This file
Getting Started:
- Create your character and customize stats
- Complete the tutorial to learn basic mechanics
- Explore the starting village and accept your first quest
- Engage in battles to gain experience and loot
- Visit shops to upgrade equipment and buy supplies
Combat Tips:
- Study enemy patterns and weaknesses
- Balance offensive and defensive actions
- Manage your resources (health, mana, items) carefully
- Experiment with different skill combinations
- Save before challenging boss encounters
Progression Strategy:
- Focus on core stats that match your playstyle
- Keep a diverse inventory of healing and buff items
- Complete side quests for additional rewards
- Explore thoroughly to find hidden treasures
- Save frequently to preserve your progress
- ๐ Multiplayer Mode: Online co-op and competitive battles
- ๐ฐ Guild System: Join guilds and participate in group activities
- ๐ญ Character Classes: Specialized roles with unique abilities
- ๐ Prestige System: End-game progression mechanics
- ๐ฑ Mobile App: Native mobile version with touch controls
- ๐จ Mod Support: Community-created content and modifications
- ๐ Expanded World: Additional regions and storylines
We welcome contributions from the community! Please read our Contributing Guide for details on:
- Code style and standards
- Development workflow
- Bug reporting process
- Feature request guidelines
- Pull request requirements
This project is licensed under the MIT License - see the LICENSE file for details.
โญ Star this repository if you enjoy playing Godthrone RPG! โญ










