BornaDev
برنا توسعه
استودیو مهندسی نرم‌افزار
پروژه‌هاخدمات مهندسیفناوری‌هاتیم مامشتریانبلاگ فنیدرباره ماتماس با ما
شروع پروژه
BornaDev
برنا توسعه
استودیو مهندسی نرم‌افزار

استودیوی مهندسی نرم‌افزار محصول‌محور، متخصص در طراحی و پیاده‌سازی پلتفرم‌های مقیاس‌پذیر و وب‌سرویس‌های امن.

بخش‌های اصلی

  • صفحه اصلی
  • پروژه‌ها
  • مطالعات موردی
  • خدمات مهندسی
  • فناوری‌ها
  • تیم ما
  • مشتریان
  • بلاگ فنی
  • درباره ما
  • تماس با ما

خدمات مهندسی

  • مهندسی زیرساخت و بک‌اند
  • توسعه وب‌سرویس و API
  • پلتفرم‌های تحت وب سازمانی
  • راهکارهای دواپس و استقرار

زبان‌های سامانه

Django REST API v1 Connected
© 2026 BornaDev (برنا توسعه). تمامی حقوق این وب‌سایت متعلق به برنا توسعه است.
طراحی و پیاده‌سازی شده با مهندسی دقیق و استاندارد.
مطالعات موردی
مطالعات موردی تخصصی

رزم‌آور؛ ساخت بازی سه‌بعدی فارسی از منطق نبرد تا شبکه

رزم‌آور نمونه‌ای از توسعه بازی دسکتاپ با فناوری‌های JavaScript است: رندر سه‌بعدی با Three.js، اجرای دسکتاپ با Electron و ارتباط چندنفره با امکانات شبکه Node.js. محصول، پنج نقشه، مأموریت‌های تک‌نفره، مبارزه آزاد آنلاین و دارایی‌های صوتی فارسی را در یک تجربه واحد ترکیب می‌کند.

Associated Project: رزم‌آور؛ میدان پهلوانان

چالش مسئله

مسئله پروژه فقط ساخت یک صحنه سه‌بعدی نیست. حرکت و برخورد، اسلحه‌ها، رفتار ربات‌ها، شرایط پایان مأموریت و نمایش رابط باید با هم هماهنگ باشند. حالت چندنفره نیز به مدیریت وضعیت مسابقه و ارتباط بازیکنان نیاز دارد. در کنار این بخش‌ها، تجربه فارسی، پخش محلی دیالوگ‌ها و بسته‌بندی دسکتاپ باید جزئی از همان محصول باقی بمانند.

راهکار مهندسی برنا توسعه

سورس مسئولیت‌ها را میان ماژول‌های گرافیک، نقشه، منطق میدان، عملیات و جهان چندنفره تقسیم می‌کند. محیط Electron، قابلیت‌های شبکه را از طریق یک رابط IPC محدود به بخش نمایش متصل می‌کند. ارتباط مسابقه با TCP و کشف محلی با UDP تعریف شده است. متن‌ها و فایل‌های صوتی فارسی در ماژول‌ها و دارایی‌های مستقل قرار دارند و گردش‌کار ساخت، بررسی منطق و شبکه را پیش از بسته‌بندی تعریف می‌کند.

نتایج ملموس و عملیاتی

خروجی، یک بازی دسکتاپ با حالت تک‌نفره و چندنفره و محتوای فارسی است. مخزن، سورس، تصاویر واقعی، فایل‌های صوتی محلی، اسکریپت‌های آزمون و تنظیمات ساخت برای سه خانواده سیستم‌عامل را در اختیار توسعه‌دهنده می‌گذارد. اعداد پنج نقشه، چهار اسلحه و ۵۳ دیالوگ از دارایی‌ها و مستندات همین نسخه گرفته شده‌اند؛ عددی برای نرخ فریم، تأخیر شبکه یا تعداد کاربران ادعا نشده است.

معماری زیرساخت و سرویس‌ها

game.js جریان بازی و اتصال رابط به رویدادها را مدیریت می‌کند. graphics.mjs مسئول نمایش سه‌بعدی است و maps.mjs و arena.mjs تعریف میدان، برخورد و بخش‌هایی از منطق نبرد را در بر دارند. operations.mjs مأموریت‌ها، نارنجک‌ها، فروشگاه و بقا را جدا می‌کند. multiplayer-world.mjs و network.cjs وضعیت معتبر سرور و ارتباط شبکه را پوشش می‌دهند. main.cjs، preload.cjs و network-ipc.cjs مرز Electron و رابط شبکه را تعریف می‌کنند؛ در تنظیمات پنجره، contextIsolation و sandbox فعال و nodeIntegration غیرفعال است.

بخش‌های فنی تفصیلی

تجربه بازی؛ پنج میدان با هویت متفاوت

TEXT_IMAGE

پنج نقشه با محیط‌های کویری، بازار، دهکده، نیروگاه و ایستگاه قطار در سورس تعریف شده‌اند. تفاوت مسیرها، پوشش‌ها و محوطه‌های مأموریت به بازیکن موقعیت‌های متفاوتی می‌دهد. تصاویر گالری از خود بازی گرفته شده‌اند و تصویر مفهومی نیستند.

تجربه بازی؛ پنج میدان با هویت متفاوت

مأموریت‌هایی فراتر از حذف همه دشمن‌ها

TEXT_IMAGE

پاک‌سازی، کاشت و محافظت، خنثی‌سازی و بقا، هرکدام شرط پیشرفت و پایان متفاوت دارند. فروشگاه، چالش‌ها و سه نوع نارنجک در تک‌نفره در دسترس‌اند. در حالت آنلاین، مبارزه آزاد و امتیازگیری اجرا می‌شود و امکانات تک‌نفره به‌عنوان قابلیت آنلاین معرفی نشده‌اند.

مأموریت‌هایی فراتر از حذف همه دشمن‌ها

چهار اسلحه و اطلاعات روشن در میدان

TEXT_IMAGE

کلاشینکف، ام‌چهار، تک‌تیرانداز و دزرت ایگل، رفتار شلیک و ظرفیت مهمات متفاوت دارند. نمایش جان، زره، خشاب، زمان راند و نقشه کوچک، اطلاعات مورد نیاز بازیکن را هنگام نبرد کنار هم قرار می‌دهد. تنظیمات و رکوردهای محلی برای ترکیب‌های نقشه و حالت نگهداری می‌شوند.

چهار اسلحه و اطلاعات روشن در میدان

چندنفره با میزبانی شخصی

TEXT_IMAGE

میزبان سرور را از داخل برنامه ایجاد می‌کند و ظرفیت دو، چهار یا هشت بازیکن را انتخاب می‌کند. جست‌وجوی شبکه محلی با UDP و ارتباط مسابقه با TCP پیاده‌سازی شده است. اتصال مستقیم به آدرس میزبان نیز در دسترس است؛ اتصال اینترنتی به تنظیم شبکه و دسترسی ورودی میزبان وابسته است.

چندنفره با میزبانی شخصی

هویت فارسی در تصویر و صدا

TEXT

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

از ماژول‌های مستقل تا خروجی دسکتاپ

TEXT

تفکیک منطق، گرافیک، عملیات، شبکه و صدا امکان بررسی مستقل بخش‌ها را فراهم می‌کند. اسکریپت‌های مخزن منطق بازی، نقشه‌ها، چندنفره، صدا و ارتباط شبکه را پوشش می‌دهند. پیکربندی electron-builder و GitHub Actions ساخت خروجی برای Windows، Linux و macOS را تعریف می‌کند؛ تنظیم بیلد به‌تنهایی تضمین اجرای بدون مشکل روی همه دستگاه‌ها نیست.

← نمونه‌کارهای مهندسیشروع پروژه