2026

gb

Lobi kodu olmayan bir oyun platformu. Oda, botun açtığı Discord ses kanalının kendisi; oyuncu web'den katılmıyor, kanala giriyor. Web tahtayı gösterip aksiyonu taşıyor, bot masayı yönetiyor ve konuşma sırasını mute ile kuruyor.

  • TypeScript
  • Fastify 5
  • discord.js v14
  • React 19
  • WebSocket
  • Postgres
  • Vite

Ne yaptım

  1. 01

    Oda üyeliğini yalnız Discord ses roster'ından türeten mimari — katılım client beyanıyla kurulmuyor, sahte oyuncu ekleme yüzeyi protokol seviyesinde kapalı.

  2. 02

    Kanal kapsamlı desired-state mute reconciler: her voiceStateUpdate ve 15 saniyelik süpürmede tek uygulama yolu. Oyuncu başka kanala geçtiği anda mute kalkıyor, sunucuda takılı mute bırakmıyor.

  3. 03

    Oyun motoru saf reducer — sıfır I/O, Discord ve veritabanı importu yasak. Timer'lar oda katmanında yaşıyor, motor sahte saatle deterministik test ediliyor.

  4. 04

    Ham oyun durumu sokete hiç yazılmıyor; her oyuncu kendi görüşünü tek bir projeksiyon fonksiyonundan alıyor, böylece rol sızıntısı mümkün değil.

  5. 05

    Boş oda 10 dakikada kapanıp kanalı siliyor, host 3 dakika yoksa yetki en kıdemli üyeye devrediliyor.