لتصدير لعبة Unity بصيغة WebGL تحتاج إلى تبديل مشروعك إلى منصة WebGL، وضبط عدد من إعدادات المشغّل والنشر، ثم الضغط على زر البناء ليحوّل Unity لعبتك إلى WebAssembly تعمل داخل أي متصفح حديث. هذا الدليل يمرّ بك على كل خطوة مع أسماء القوائم والإعدادات الدقيقة، ويوضّح كيف تختبر اللعبة محليًا قبل نشرها.
قبل أن تبدأ: ثبّت وحدة WebGL
منصة WebGL وحدة منفصلة لا تأتي مع المحرّر الأساسي. افتح Unity Hub ← Installs، اضغط على أيقونة الترس بجانب نسخة المحرّر، اختر Add Modules، وفعّل WebGL Build Support. من دون هذه الوحدة ستجد خيار WebGL غير مفعّل وتضيّع وقتك في البحث عن السبب.
تُبنى ألعاب WebGL دائمًا عبر IL2CPP (يحوّل شيفرة C# إلى C++ ثم إلى WebAssembly)، لذلك يكون البناء الأول بطيئًا — توقّع عدة دقائق حتى على جهاز قوي. أما عمليات البناء التالية فمخزّنة مؤقتًا وأسرع بكثير.
الخطوة الأولى — بدّل المنصة إلى WebGL
افتح File ← Build Settings (في Unity 6 أصبحت File ← Build Profiles). اختر WebGL من قائمة المنصات واضغط Switch Platform. سيعيد Unity استيراد النقوش والـShaders لتناسب الويب، وقد يستغرق ذلك وقتًا في المشاريع الكبيرة.
وبينما أنت هنا، أضف مشاهدك إلى قائمة Scenes In Build بالترتيب الذي تريده. المشهد رقم 0 هو نقطة الدخول للعبة.
الخطوة الثانية — اضبط إعدادات المشغّل لـ WebGL
اضغط Player Settings في نافذة البناء ثم افتح تبويب WebGL. أهم الإعدادات:
- الدقة والعرض (Resolution and Presentation) — حدّد العرض والارتفاع الافتراضي للـCanvas بما يناسب لعبتك (مثلًا 960 × 600). واختر قالب WebGL: قالب *Default* صفحة بسيطة، و*Minimal* يزيل الشعارات، و*PWA* يضيف ملفًا يجعل اللعبة قابلة للتثبيت.
- Other Settings ← Color Space — خيار *Linear* يعطي إضاءة أجمل لكنه يتطلب WebGL 2.0، بينما *Gamma* أكثر توافقًا مع الأجهزة القديمة. معظم الألعاب الحديثة تستخدم Linear.
- Other Settings ← Managed Stripping Level — اضبطه على High لإزالة الشيفرة غير المستخدمة وتصغير حجم التنزيل، مع تفعيل Strip Engine Code.
- Other Settings ← Enable Exceptions — اجعله *Explicitly Thrown Exceptions Only* في النسخة النهائية. أما *Full* فضخم وبطيء ويُستخدم أثناء التنقيح فقط.
وأزل علامة Development Build في نافذة البناء عند التصدير النهائي، فهي تضيف حملًا للتنقيح وتكبّر الحجم.
الخطوة الثالثة — اضبط إعدادات النشر والضغط
من داخل إعدادات WebGL نفسها، افتح Publishing Settings، ومنها تتحكم في حجم التنزيل:
- Compression Format — اختر Brotli للحصول على أصغر ملفات. لكن Brotli يحتاج استضافة HTTPS ترسل ترويسة
Content-Encodingالصحيحة. إن لم تكن تتحكم بترويسات الخادم فاستخدم Gzip، أو فعّل Decompression Fallback ليفكّ المتصفح الضغط بنفسه مقابل حجم تنزيل أكبر. - Data Caching — فعّله ليحمّل اللاعب العائد الملفات من ذاكرة المتصفح بدل إعادة تنزيل اللعبة كاملة.
- Debug Symbols — اجعله *Off* أو *External* في النسخة النهائية لتوفير المساحة.
الخطوة الرابعة — ابنِ اللعبة واختبرها في المتصفح
عد إلى Build Settings واضغط Build أو Build And Run. اختر مجلدًا فارغًا يملؤه Unity بالموقع الجاهز. خيار Build And Run هو الأسهل للاختبار لأن Unity يشغّل خادمًا محليًا مؤقتًا ويفتح المتصفح تلقائيًا.
لا تفتح ملف index.html بالنقر المزدوج من مستكشف الملفات. فتحه عبر file:// يكسر طلبات الشبكة والضغط وستبقى عالقًا على شريط التحميل إلى ما لا نهاية. قدّمه دائمًا عبر HTTP. طريقة سريعة: افتح موجّه الأوامر داخل مجلد البناء ونفّذ:
``` python -m http.server 8000 ```
ثم افتح http://localhost:8000. إذا حُمّلت اللعبة واشتغلت وعمل الصوت فالتصدير سليم. أما إن علقت على شريط التحميل فافتح كونسول المتصفح (F12) وراجع دليلنا حول إصلاح لعبة WebGL التي لا تعمل.
ماذا يوجد داخل مجلد البناء
المجلد النهائي يحوي ثلاثة أشياء يجب رفعها معًا:
- index.html — الصفحة التي تُقلع اللعبة.
- مجلد Build/ — الملفات الثقيلة:
.loader.jsو.framework.jsوشيفرة.wasmوحزمة الأصول.data(وربما بامتداد.brأو.gzعند الضغط). - مجلد TemplateData/ — التنسيقات والأيقونات الخاصة بصفحة التحميل.
حافظ على بنية المجلدات كما هي. فإن انتقل مجلد Build/ إلى مكان خاطئ فلن يجد المُحمِّل ملفاته ولن يعمل شيء.
انشر لعبتك بصيغة WebGL
بمجرد أن تعمل اللعبة بسلاسة على localhost تصبح جاهزًا للمشاركة. على The Gaming Nest يمكنك رفع هذا المجلد نفسه لتحصل على صفحة فورية بلا تنزيل يفتحها اللاعبون في العالم العربي بنقرة واحدة — راجع كيف تنشر لعبة WebGL. وإن كان ملف .data ثقيلًا فخفّفه أولًا عبر نصائح تقليل حجم بناء Unity WebGL، ثم انشر لعبتك وابدأ بجمع اللاعبين.