Pungeons Hnd Pragons is a browser-based online multiplayer fighting game inspired by Dungeons & Dragons dice mechanics. Developed in PHP with SQL and AJAX, it features secure authentication, real-time communication, and turn-based combat between randomly assigned heroes.
The project started as an experiment to combine my new knowledge in PHP with database-driven multiplayer logic. It quickly grew into a complete online experience, including ELO-Rating, a chat system, and anti-cheat checks.
Role: Solo Full-stack Developer
Languages & Tools used: PHP for everything server side, SQL within MariaDB for the database, HTML/CSS for frontend design, JavaScript with jQuery and Ajax for creating synchronisation, jQueryUI for animations, Inkscape and Stable Diffusion with some online PixelArt generator/conversion programm for art.
Development time: ~3 weeks
Platform: Browser (Chrome/Firefox)
Language: German
Statistics and ELO-Rating
Log
UI broadcast system
Gameplay video
Players log in via a secure authentication system.
A hub/lobby shows active games and allows creating or joining new ones.
Each player is dealt 3 random heroes from a pool of 100+.
Combat is turn-based: dice rolls determine hit chance and damage based on three stats.
A battle log records each action.
Victory and defeat influence an Elo rating system.
Mouse-driven UI (attack selection, chat, lobby navigation)
Core Mechanics: Click and fight
Secure login system resistant to SQL injection.
Matchmaking hub with active/inactive game overview.
Elo rating system for competitive play.
Turn-based combat system using D&D-inspired dice rolls.
100+ unique heroes with different stats.
Game log combat results.
Chat system for in-game communication.
UI broadcast system for events (join/leave, errors, logout notifications).
Anti-cheat checks: invalid POST/GET requests filter.
Statistics tracking via SQL (damage dealt, wins/losses, etc.).
Custom graphics for UI and characters.
Designing a secure backend for login and game sessions (SQL injection prevention).
Managing real-time communication with AJAX while minimizing server load.
Synchronizing multiple players and maintaining consistency across sessions.
Implementing anti-cheat measures without dedicated server authority.
Designing a balanced random hero pool with dice-based combat outcomes.
This project taught me the importance of security, database design, and efficient client-server communication. I learned how to structure AJAX calls to update only critical elements, and how to design multiplayer mechanics without a game engine. In hindsight, I should have started a little bit ealier to be able to add more features for a better and more rounded experience. Like adding sound design, more combat mechanics and even fancier animations.