۲۹ مهر ۱۴۰۵ github.com ۳ دقیقه مطالعه

پروژه Battlezone Online: اجرای بازی محبوب BZFlag درون مرورگر با پشتیبانی از WebXR

پروژه Battlezone Online: اجرای بازی محبوب BZFlag درون مرورگر با پشتیبانی از WebXR — Battlezone Online: BZFlag in the Browser

خلاصه

پروژه Battlezone Online نسخه مدرن و تحت وب بازی محبوب BZFlag است که امکان تجربه یک نبرد تانک سه‌بعدی را بدون نیاز به نصب و مستقیماً روی مرورگر، موبایل و هدست‌های واقعیت مجازی فراهم می‌کند. این ابزار با سرور Node.js و کلاینت Three.js توسعه یافته و از پروتکل‌های ارتباطی پیشرفته بهره می‌برد.

معرفی پروژه Battlezone Online

بازی BZFlag یکی از عناوین قدیمی و خاطره‌انگیز در دنیای بازی‌های چندنفره سه‌بعدی است که سال‌ها پیش به زبان C++ توسعه یافته بود. پروژه Battlezone Online (با مخفف bzo) که توسط timriker توسعه داده شده، تلاشی جذاب برای آوردن این بازی کلاسیک به بستر وب است. این پروژه به کاربران اجازه می‌دهد بدون نیاز به نصب هیچ‌گونه نرم‌افزار خاصی و صرفاً از طریق مرورگر دسکتاپ، تلفن همراه یا هدست‌های واقعیت مجازی (VR)، به سرورهای BZFlag متصل شده و بازی کنند.

معماری و پشته فنی

این پروژه از معماری مدرن وب برای ارتباط بلادرنگ (Real-time) و رندر گرافیکی استفاده می‌کند:

  • سمت سرور: با استفاده از Node.js پیاده‌سازی شده و به‌صورت ایمیج‌های داکر روی رجیستری گیت‌هاب منتشر می‌شود.
  • سمت کلاینت: برای رندر گرافیک سه‌بعدی از کتابخانه Three.js بهره می‌برد.
  • ارتباط شبکه: ارتباطات کلاینت و سرور از طریق پروتکل‌های وب‌سوکت (WebSocket)، WebTransport و WebRTC برقرار می‌شود تا کمترین تاخیر ممکن حاصل شود.
  • واقعیت مجازی (WebXR): پشتیبانی کامل از استاندارد WebXR برای هدست‌های VR در نظر گرفته شده است تا تجربه همه‌جانبه‌ای ایجاد شود.

نحوه اجرا و استفاده

ساده‌ترین راه برای اجرای سرور این پروژه، استفاده از ایمیج‌های آماده Docker است:

docker run -p 5154:5154 ghcr.io/timriker/bzo:latest

همچنین برای توسعه محلی و بررسی کدهای مخزن، پس از کلون کردن پروژه می‌توانید دستورات زیر را اجرا کنید:

npm install
npm run check

سیگنال‌های بلوغ و وضعیت مخزن

این پروژه فعال است و انتشار نسخه‌ها (Releases) بر اساس استاندارد SemVer انجام می‌شود. ایمیج‌های داکر برای معماری‌های linux/amd64 و linux/arm64 روی سیستم‌عامل Ubuntu به همراه پکیج رسمی Node.js بیلد می‌شوند. کدهای اصلی تحت لیسانس AGPLv3 منتشر شده‌اند، هرچند دارایی‌های گرافیکی و صوتی وضعیت‌های متفاوتی از نظر حق نشر دارند.

نگاه جامعه هکرنیوز

انتشار این پروژه در هکرنیوز موجی از خاطره‌بازی را میان توسعه‌دهندگان قدیمی ایجاد کرد. بسیاری از کاربران از دوران نوجوانی خود با BZFlag یاد کردند و اینکه چگونه این بازی عامل آشنایی آن‌ها با لینوکس، راه‌اندازی سرورهای شخصی و حتی ساخت نقشه‌های سفارشی بوده است. برخی نیز به مقایسه کدگذاری جاوااسکریپت با کدهای اصلی C++ پرداختند، اما در مجموع حس نوستالژی و کاربرد فناوری‌های مدرن وب مانند WebXR و WebTransport در بازسازی یک بازی کلاسیک، تحسین برنامه‌نویسان را به همراه داشت.

در یک نگاه

  • نام پروژه: Battlezone Online (bzo)
  • زبان اصلی: JavaScript
  • تکنولوژی‌های کلیدی: Three.js، WebSockets، WebTransport، WebXR، Node.js
  • پلتفرم‌ها: مرورگرهای دسکتاپ، موبایل و هدست‌های VR
  • سازنده: timriker
  • آدرس وب‌سایت: https://bz.rikers.org

این مطلب به‌صورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل

این خبر را با دیگران به اشتراک بگذارید

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