GTA.js: جیتیای ۱۹۹۷ توی مرورگر با TypeScript
خلاصهٔ کاملتر
GTA.js یه بازسازی (reimplementation) از موتور بازی Grand Theft Auto سال ۱۹۹۷ هست که با TypeScript و Three.js (یه کتابخونهی جاوااسکریپتی برای گرافیک سهبعدی) نوشته شده. فایلهای باینری و متنی دموی شِیرویر نسخهی PC رو بدون هیچ تغییری میخونه و لیبرتی سیتی رو مستقیم توی مرورگر زنده میکنه.
سازنده تأکید میکنه که این پروژه نه یه wrapper روی DOSBox هست، نه امولاتور، و نه از فایل اجرایی بازی دیکامپایل شده. به گفتهی خودش، اونو با کمک Google Gemini، مستندات فنی، مشخصاتی که کامیونیتی منتشر کرده و خاطرهی بازی کردن زیاد اون موقع ساخته. یعنی کد از نو نوشته شده و برای همین توی فیزیک، انیمیشنها و بعضی سیستمها با بازی اصلی فرق داره.
بخشهایی که الان کار میکنن: رندر سهبعدی شهر با ۴۰ نوع شیب، آب متحرک و چراغ راهنما؛ ماشینها با رفتار رانندگی مخصوص هر مدل، برخورد از چهار گوشه، فرورفتگی بدنه و انفجار؛ سلاحهایی مثل تپانچه، مسلسل، راکتانداز و شعلهافکن؛ و یه مفسر برای اسکریپتهای MISSION.INI که ماموریتها، تلفنهای عمومی زنگزن و تایمرها رو اجرا میکنه. ترافیک، عابرهای پیاده با هوش مصنوعی ساده، جرثقیلهای بندر و چالش Kill Frenzy هم هستن.
در عوض پلیس و سطح تحت تعقیب، آمبولانس و ماشین آتشنشانی، تعمیرگاه رنگ و بمب، قطار و تراموا، رادیو و صداهای مختلف هنوز پیاده نشدن. پروژه هم فقط محدود به مرحلهی دموی لیبرتی سیتیه و کمپین کامل یا حالت چندنفره نداره. سازنده از مستندات رسمی DMA Design و پروژههای قبلی مثل WebGL-GTA، carnage3d و OpenGTA اسم برده که این کار بدون اونها ممکن نبود.
نکات کلیدی:
- با TypeScript و Three.js نوشته شده و توی مرورگر اجرا میشه
- فایلهای اصلی و دستنخوردهی دموی PC سال ۱۹۹۷ رو میخونه
- امولاتور یا نسخهی دیکامپایلشده نیست و با کمک Google Gemini بازنویسی شده
- مفسر اسکریپت MISSION.INI برای اجرای ماموریتها پیاده شده
- پلیس، سطح تحت تعقیب، قطار و رادیو هنوز پیاده نشدن




