
Game Dev Specialist
- 1 installs
- Updated August 2, 2026
- ahmetakyapi/dungeon-mates
game-dev-specialist is a Claude Code skill that maps the architecture and rules of a browser-based co-op dungeon crawler for working on Canvas rendering, particle systems, monster AI, and game networking.
About
game-dev-specialist is a Claude Code skill that documents the architecture of a specific browser-based co-op dungeon crawler game. It maps critical files and rules for the Canvas render pipeline, procedural sprite drawing, a pool-based particle system, camera and hit-feel effects, the Web Audio sound engine, monster AI, and the server-authoritative WebSocket tick protocol. A developer uses it when working on performance-sensitive game code in this project. The document is written in Turkish.
- Specialist map for a browser-based co-op dungeon crawler (~18,000 lines of TypeScript)
- Covers Canvas render pipeline, pool-based particle system, and 14 monster-AI types
- Documents server-authoritative WebSocket tick protocol and hard performance rules
Game Dev Specialist by the numbers
- 1 all-time installs (skills.sh)
- Ranked #218 of 247 Game Development skills by installs in the Skillselion catalog
- Data as of Aug 3, 2026 (Skillselion catalog sync)
game-dev-specialist capabilities & compatibility
- Capabilities
- game rendering · game ai · multiplayer netcode
- Use cases
- frontend
What game-dev-specialist says it does
Browser tabanlı co-op dungeon crawler. 40 kaynak dosya, ~18.000 satır TypeScript.
Havuz boyutu sabit: 768 parçacık
**Server authoritative**: client combat sonucu ASLA hesaplamaz
npx skills add https://github.com/ahmetakyapi/dungeon-mates --skill game-dev-specialistAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1 |
|---|---|
| Last updated | August 2, 2026 |
| Repository | ahmetakyapi/dungeon-mates ↗ |
What it does
Work on performance-sensitive game code (Canvas rendering, particles, monster AI, netcode) in a browser co-op dungeon crawler.
Who is it for?
Editing performance-critical rendering, particle, AI, and netcode in this specific dungeon-crawler codebase.
Skip if: Generic game engines; it is tied to one project's file layout and conventions.
When should I use this skill?
Working on Canvas rendering, particle systems, sprite drawing, monster AI, collision, game-loop optimization, or WebSocket game state in this project.
What you get
- Changes to game rendering, particles, AI, or netcode consistent with project rules
By the numbers
- ~18,000 lines of TypeScript across 40 source files
- 14 monster AI types
- Particle pool fixed at 768 particles
Files
Game Development Specialist
Browser tabanlı co-op dungeon crawler. 40 kaynak dosya, ~18.000 satır TypeScript. Tüm sprite'lar prosedürel Canvas API ile çizilir — sprite sheet yok.
Kritik Dosya Haritası
| Dosya | Satır | Sorumluluk |
|---|---|---|
src/game/renderer/GameRenderer.ts | ~2200 | Ana canvas render pipeline, freeze frame, movement interpolation |
src/game/renderer/SpriteRenderer.ts | ~2600 | 14 canavar + 3 sınıf prosedürel sprite çizimi |
src/game/renderer/ParticleSystem.ts | ~1100 | Pool-based particle engine (768 havuz) |
src/game/renderer/Camera.ts | ~290 | Kamera: shake, zoom, look-ahead, directional punch |
src/game/audio/SoundManager.ts | ~780 | Web Audio synthesizer, per-floor müzik, ambient katmanları |
src/game/input/InputManager.ts | ~300 | Keyboard + gamepad input |
src/game/input/TouchControls.ts | ~590 | Mobil joystick + butonlar |
server/GameRoom.ts | ~1120 | Oyun döngüsü, 20 tick/sn, oda yönetimi |
server/entities/Monster.ts | ~740 | 14 canavar AI (skeleton, slime, bat, goblin, rat, spider, wraith, mushroom, gargoyle, dark_knight, phantom, lava_slime, boss_spider_queen, boss_demon) |
server/dungeon/DungeonGenerator.ts | ~525 | BSP tree zindan üretimi, 10 kat config |
shared/types.ts | ~260 | Server-client köprü dosyası |
Render Pipeline — Katman Sırası (BOZMA)
Floor → Decor → Loot → Monsters → Projectiles → Players → Particles → Fog → UIKurallar:
imageSmoothingEnabled = false— pixel art zorunlu- Offscreen buffer kullan — pixelation artifact önler
- Mantıksal çözünürlük: masaüstü 480×270, mobil 280×210
- Canvas context'i her frame yeniden alma — bir kez al, sakla
clearRectkullan,fillRect(black)ile silme
Hit Feel Sistemi (Yeni)
GameRenderer'da freeze frame + Camera'da directional punch:
freezeFrame(ms)→ canavar ölümü: 50ms, boss hit: 35ms, boss ölüm: 80ms, ağır hasar: 60mscamera.punch(dirX, dirY, amount, decayRate)→ vuruş yönüne kamera sarsıntısı- Monster kill'de beyaz ekran flash (0.12 intensity)
- Movement interpolation:
prevEntityPositionsMap, lerp factor 0.35
Particle System
- Havuz boyutu sabit: 768 parçacık
- Öncelik: combat > ambient — ambient'i önce geri dönüştür
- Render döngüsünde
newile nesne oluşturma YASAK - Yeni efekt eklerken havuz boyutunu artırma, geri dönüşüm mantığını iyileştir
Ses Motoru (SoundManager)
- Per-floor müzik:
playFloorMusic(floor)— tempo 60→84 BPM, katmanlı sentez - Bass: tüm katlar | Melodi: kat 3+ | Dissonans: kat 5+ | Perküsyon: kat 7+
- Ambient:
startAmbience(floor)— su damlaları, rüzgar (3+), fısıltılar (6+), kalp atışı (9+) - Saldırı ses çeşitliliği: ±10% frekans randomizasyon
- Ayak sesi:
playFootstep()— 220ms cooldown, bandpass-filtered noise
Monster AI — 14 Tip
| Tip | Davranış | Eklenen |
|---|---|---|
| skeleton, slime, bat, goblin, rat, spider, wraith, mushroom | Orijinal AI | v1 |
| gargoyle | skeleton AI, büyük boyut | v2 |
| dark_knight | goblin AI, yüksek HP/saldırı | v2 |
| phantom | wraith AI, hızlı | v2 |
| lava_slime | slime AI, ateş temalı | v2 |
| boss_spider_queen | boss AI, kat 5 mid-boss | v2 |
| boss_demon (Mor'Khan) | boss AI, kat 10 final boss | v1 |
Yeni canavar ekleme sırası: 1. shared/types.ts → MonsterType union + MONSTER_STATS 2. server/entities/Monster.ts → AI davranış case 3. server/GameRoom.ts → MONSTER_POOL_BY_FLOOR + gerekirse boss logic 4. src/game/renderer/SpriteRenderer.ts → drawMonster switch case 5. src/components/game/HUD.tsx → XP_TO_NAME kayıtları (2 yerde) 6. src/components/game/LoadingScreen.tsx → GAME_TIPS (opsiyonel)
WebSocket / Tick Protokolü
- Server tick: 20 FPS (50ms), client input: ~22 FPS (45ms throttle)
- Saldırı / yetenek / etkileşim → one-shot socket event (kayıp önleme)
- Her tick'te FULL state broadcast — delta encoding yok
- Server authoritative: client combat sonucu ASLA hesaplamaz
- Transport:
pollingfirst →websocketupgrade (mobil güvenilirlik) - Ping: 10s interval, 20s timeout
Performans Kırmızı Çizgiler
- Render döngüsünde allocation yok (
new, spread,map,filter— tümü yasak) - Object pool pattern'ını bozma
- Quality sistemi (Low/Medium/High) FPS izleme ile çalışıyor — kendi kalite switch'i ekleme
useGameLoop.ts'dekirequestAnimationFrametek döngüdür — ikinci açmauseGameSocket.tsdışında socket instance oluşturmauseEffect'te socket listener → cleanup zorunlu (return () => socket.off)