همدور
حکم آنلاین با رفقا، هر جا که باشید.
بیش از ۳۵ بازی دورهمی — از حکم، شلم، پاسور و تختهنرد تا شطرنج و بیلیارد — با قانونهای اصیل خودشان. آنلاین با دوستان، یا بیاینترنت با ربات؛ روی اندروید، آیفون و کامپیوتر.

- بازی
- ۳۶
- پلتفرم از یک کدبیس
- ۳
- رانتایم وب (از ۱۵ مگ)
- ۲.۷MB
- کامیت در ۱۱ روز
- ۳۸۴
نقش ما
طراحی محصول، اپ اندروید، وباپ Wasm، سرور بازی و زیرساخت
چالش
بازیکنها روی گوشیهای میانرده و اینترنت ناپایدار بازی میکند و قانونهای محلی را دقیق میشناسد. باید یک بازی واحد هم آفلاین با ربات کار کند و هم آنلاین و منصفانه باشد، روی سه پلتفرم اجرا شود و حتی وقتی DNS فیلتر است وصل بماند.
راهحل
یک موتور قوانین Kotlin Multiplatform نوشتیم که هم روی گوشی (بازی آفلاین با ربات) و هم روی سرور (داور معتبر مسابقههای آنلاین) اجرا میشود. رابط با Compose ساخته شد و همان کد به Kotlin/Wasm کامپایل میشود تا روی آیفون و کامپیوتر در مرورگر اجرا شود. سرور Ktor با یک WebSocket و پیامهای ProtoBuf، اتصال دوباره و ادامه مسابقه را تضمین میکند.
امکانات
- ۳۶ بازی در ۵ دسته: کلاسیک، کارتی، تختهای، ورزشی و پازل
- مسابقه رتبهای با امتیاز Elo، جدول ردهبندی و اتاق خصوصی با کد
- بازی آفلاین با ربات در چند سطح سختی و بازی دونفره روی یک گوشی
- دوستان، چت داخل بازی، استیکر و اتاقهای گفتوگوی عمومی
- پرداخت با زرینپال، کیف پول بله، بازار و مایکت؛ بدون شرطبندی
- پنل مدیریت کامل: داشبورد زنده، مدیریت مسابقهها، فروشگاه و گزارش درآمد
معماری
- ۰۱
کلاینت
- Android · Jetpack Compose
- Web · Kotlin/Wasm PWA
- iPhone · PWA
- ۰۲
هسته مشترک
- KMP rules engine
- Bots
- Protocol · ProtoBuf
- ۰۳
سرور
- Ktor 3 · WebSocket
- Match runtime
- Admin · Shop · Bale bot
- ۰۴
داده و زیرساخت
- PostgreSQL 17
- Docker Compose
- Caddy · precompressed assets
نکات مهندسی
- ۰۱یک موتور قوانین مشترک برای رباتهای آفلاین و داور سرور
- ۰۲فایل Wasm پانزدهمگابایتی با فشردهسازی brotli از پیش به ۲٫۷ مگابایت رسید
- ۰۳اپ نشانی سرور را با خودش دارد تا پشت فیلتر DNS هم وصل شود
- ۰۴بات بله داخل همان پروسه API با long polling، بدون وبهوک و پورت اضافه
- ۰۵استقرار با پشتیبانگیری پیش از انتشار و بازگشت خودکار در صورت خطا
فناوریها
- Kotlin
- Jetpack Compose
- Compose Multiplatform
- Kotlin/Wasm
- Kotlin Multiplatform
- Ktor
- PostgreSQL
- WebSocket + ProtoBuf
- Docker
- Caddy
نتیجه
- یک کدبیس Kotlin برای اندروید، وب و آیفون
- تجربه روان روی گوشیهای میانرده و اینترنت ضعیف
- مدل درآمدی سالم: فقط آیتمهای ظاهری و اشتراک، بدون شرطبندی
گالری





