BornaDev
BornaDev
Software Engineering Studio
ProjectsServicesTechnologiesTeamClientsBlogAboutContact
Start a Project
BornaDev
BornaDev
Software Engineering Studio

Product-minded software engineering studio specializing in high-performance web platforms and APIs.

Navigation

  • Home
  • Projects
  • Case Studies
  • Services
  • Technologies
  • Team
  • Clients
  • Blog
  • About
  • Contact

Capabilities

  • Backend Platform Engineering
  • API Architecture & Workflows
  • Enterprise Web Applications
  • DevOps & Container Readiness

Languages

Django REST API v1 Connected
© 2026 BornaDev (برنا توسعه). All rights reserved.
Engineered with precision for production reliability.
Case Studies
In-Depth Case Studies

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

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

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

The Challenge

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

The Engineering Solution

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

Business & Operational Result

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

System Architecture

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 غیرفعال است.

Technical Deep-Dive

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

TEXT_IMAGE

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

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

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

TEXT_IMAGE

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

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

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

TEXT_IMAGE

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

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

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

TEXT_IMAGE

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

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

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

TEXT

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

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

TEXT

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

← Engineering PortfolioStart a Project