
Diablo2D
github.com/dimillian/diablo2d- Category
- Entertainment
- Rank
- No. 2089Tools index
Previous survey · No. 2042 ·
- Pricing
- Open Source
- Type
- GAME
- Builder
- dimillian
- GitHub
- 30 stars
- Date
About
Dimillian's Diablo-like ARPG built with Love2D — pixel-art top-down dungeon crawler with classic mechanics.
What it does
Diablo2D is a playable action roguelike sandbox where movement, targeting, combat, loot, progression, potions, and spells interact in one running game. Keyboard and mouse controls drive a hero through roaming enemies, while randomized equipment and experience gains shape each fight.
Why it's ranked here
The project already connects many hard gameplay systems instead of presenting isolated demos. Combat events feed damage feedback, deaths, loot, and experience, while equipment affects calculated stats. Its own documentation still calls the world basic and several larger features remain targets, so treat it as active groundwork rather than a finished game.
What's good
The event-driven combat design keeps attacks, damage displays, deaths, and loot loosely connected. A reusable entity-component system supports efficient component queries across scenes. Input covers keyboard layouts and mouse movement, while targeting, cooldowns, enemy separation, knockback, potions, skills, and modal scenes form a coherent playable loop.
Tradeoffs
The inventory overlay is explicitly described as a stub, and the documented world is a basic sandbox. Procedural overworld runs, towns, vendors, shops, and deeper dungeon work appear as targets or open tasks. The initial automated tests focus on aggro helpers, so the stated test coverage is narrower than the gameplay surface.
How to use it well
Use it as a Lua and LÖVE reference project for studying entity-component gameplay architecture, event-based combat, randomized items, and layered game scenes. It suits developers prototyping or extending an action roguelike. It does not yet cover the needs of someone seeking a complete, content-rich commercial game or general-purpose engine.
Technical notes+
Readme.md documents LÖVE 11.x startup, controls, the ECS architecture, combat event flow, item generation, luacheck, Busted tests, and the balance-report command. AGENTS.MD adds architectural conventions: pure-data entities, component-set queries, centralized defaults, event-based system communication, cached resource loading, and tests under spec/. Diablo.love/main.lua wires LÖVE callbacks into input handling, a scene stack, CRT rendering, modal toggles, world-map controls, and save construction on quit. .luacheckrc selects the LÖVE standard, while .luarc.json targets LuaJIT and recognizes the LÖVE global.
Observed
- Primary language
- Lua, using the LÖVE framework and a LuaJIT editor runtime configuration.
- Install surface
- Install LÖVE 11.x or later, clone the repository, then run the project root.
- Bundled launch option
- The repository includes Diablo.love, which can be opened directly with LÖVE.
- Interface
- Graphical desktop game controlled through keyboard and mouse input.
- Quality tooling
- The documented workflow uses luacheck for linting and Busted for unit tests.
- Architecture
- A homegrown entity-component system organizes pure-data entities and component-querying systems.
Read from Readme.md, docs/README.md, AGENTS.MD, CLAUDE.MD, .luacheckrc, .luarc.json, MASTER_PLAN.MD, WORLD_GEN_PLAN.MD, IMPLEMENTED_FEATURES.MD, docs/index.html, .beads/README.md, .beads/config.yaml, .beads/issues.jsonl, Diablo.love/main.lua, .beads/metadata.json.
What it can do
Generate dungeon levels
Game parameters and random seed → Procedurally generated dungeon maps
Control character movement and combat
Keyboard/mouse input commands → Character actions and animations
Manage character progression
Experience points and skill choices → Updated character stats and abilities
Generate loot drops
Enemy defeats and treasure chest interactions → Random weapons, armor, and items
Spawn and control enemies
Dungeon area and difficulty settings → AI-controlled monsters with behaviors
Process combat calculations
Attack commands and character/enemy stats → Damage values and status effects
Tags
Tech Stack
Media
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.