20 لعبة JavaScript فائزة بجوائز لا يتجاوز حجمها 13 كيلوبايت وتعمل مباشرة في المتصفح
أفضل 20 لعبة JavaScript خفيفة فازت في js13k 2020
تُعد مسابقة js13kGames واحدة من أكثر المسابقات التقنية إلهامًا لعشاق تطوير الألعاب على الويب. الفكرة الأساسية بسيطة لكنها شديدة التحدي: بناء لعبة كاملة باستخدام JavaScript بحجم مضغوط لا يتجاوز 13KB. هذا القيد الصارم يدفع المطورين إلى الإبداع، وتحسين الأداء، وكتابة شيفرة ذكية ومختصرة دون التضحية بجودة التجربة.
في هذا المقال، ستتعرّف على 20 لعبة فائزة بجوائز في نسخة js13k 2020، إلى جانب نظرة عملية على طبيعة المسابقة، وأهم قواعدها، ولماذا تُعد هذه الأعمال أمثلة ممتازة على البرمجة المبتكرة وتطوير الألعاب داخل المتصفح.

ما هي مسابقة js13kGames؟
مسابقة js13kGames هي منافسة برمجية مفتوحة لأي شخص يرغب في تجربة تطوير الألعاب باستخدام تقنيات الويب. ما يميزها حقًا هو أنها تمنح المطورين ساحة عادلة نسبيًا، خاصة لمن يعملون في تطوير الويب وليسوا بالضرورة محترفين في صناعة الألعاب التقليدية.
اسم المسابقة يعبّر مباشرة عن شرطها الأهم: يجب أن يكون حجم اللعبة النهائي، بعد الضغط بصيغة zip، أقل من أو مساويًا لـ 13,312 bytes، أي 13 × 1024. هذا يعني أن على المطور التفكير بعناية في كل ملف، وكل سطر، وكل أصل بصري أو صوتي مستخدم داخل اللعبة.
هذا التحدي لا يتعلق فقط بصغر الحجم، بل بثقافة كاملة من تبسيط الحلول، والاعتماد على الأساسيات، والتقليل من التعقيد غير الضروري. لذلك ينظر كثير من المطورين إلى المسابقة بوصفها تدريبًا ممتازًا على تحسين الأداء والاقتصاد في كتابة الشيفرة.
لماذا تحظى هذه المسابقة باهتمام كبير بين المطورين؟
في وقت يعتمد فيه كثير من المشاريع الحديثة على عدد كبير من الحزم الخارجية من npm والأدوات الجاهزة، تأتي js13kGames لتعيد المطور إلى جوهر البرمجة: كيف تبني شيئًا ممتعًا ومتكاملًا بأقل الموارد الممكنة؟
هذا النوع من التحديات يكشف بوضوح مهارات المطور الحقيقية في:
- تصميم أنظمة لعب بسيطة وفعالة.
- ضغط الأصول البرمجية والبصرية إلى أقصى درجة.
- إدارة الذاكرة والأداء داخل المتصفح.
- ابتكار أفكار لعب جديدة رغم القيود التقنية الصارمة.
- كتابة شيفرة نظيفة ومركزة وقابلة للفهم.
لهذا السبب، فإن الألعاب الفائزة في المسابقة لا تُعد مجرد مشاريع صغيرة، بل نماذج تعليمية ممتازة لكل من يريد تعلم تطوير الألعاب الخفيفة باستخدام الويب.
أهم قواعد مسابقة js13kGames
1. منع الخدمات والمكتبات الخارجية
لا يُسمح باستخدام خدمات خارجية أو مكتبات مستضافة على خوادم أخرى، كما لا يمكن الاعتماد على ملفات صور أو بيانات يتم جلبها من الإنترنت أثناء التشغيل. على سبيل المثال، استخدام Google Fonts غير مسموح به داخل اللعبة كاعتماد أساسي.
ومع ذلك، يمكن في بعض الحالات طلب تحميل خط ويب مباشر لتحسين عرض بعض الرموز أو emoji على أجهزة محددة، بشرط أن تعمل اللعبة بشكل صحيح حتى من دون هذا الخط.
كذلك لا يُسمح بإضافة أدوات تحليل الاستخدام أو سكربتات جمع الإحصاءات. الهدف هنا هو أن تكون اللعبة مستقلة، خفيفة، وقابلة للتشغيل في أي وقت ومن أي مكان.
2. الالتزام بحد الحجم النهائي
يجب أن تدخل جميع أصول اللعبة ضمن الحد النهائي للحجم. وهذا يشمل الشيفرة، والرسومات، والمؤثرات، وأي ملفات مصاحبة. هناك استثناءات محدودة لبعض الأطر مثل A-Frame وBabylon.js وThree.js، لكنها ترتبط بفئة WebXR فقط.
أما إذا استطاع المطور ضغط مكتبته المفضلة بحيث تبقى اللعبة بأكملها ضمن حد 13KB، فيمكنه استخدامها. المعيار النهائي واضح: لا تتجاوز الحد المسموح.
3. الالتزام بموضوع المسابقة السنوي
يتم الإعلان عن الموضوع الرئيسي للمسابقة عادة في شهر أغسطس من كل عام، ويُنصح بشدة أن تعكس اللعبة هذا الموضوع بصورة واضحة، لأن لجنة التحكيم تضع ذلك في الحسبان عند التقييم.
في نسخة 2020، تمحور الموضوع حول الرقم 404. وقد فسّر المشاركون هذا المفهوم بطرق متعددة، منها الضياع، والبحث، والخطأ، والانقطاع، واختفاء المسارات أو العناصر داخل اللعبة.
4. إدارة الأخطاء ودعم المتصفحات
يجب أن تعمل اللعبة بشكل صحيح وقابل للعب على الأقل في أحدث إصدارين من Firefox وChrome. وكلما زاد عدد المتصفحات المدعومة، كان ذلك أفضل.
كما يجب أن تكون الشيفرة خالية من الأخطاء الظاهرة في وحدة التحكم console. ظهور أخطاء أثناء التشغيل قد يؤدي إلى خسارة نقاط مهمة، بل إن اللعبة قد لا تُقبل أصلًا إذا تعذر تشغيلها أو اللعب بها.
5. عدد المشاركات مرن للغاية
يمكن للمشارك إرسال أكثر من لعبة، كما يمكنه المشاركة منفردًا أو مع صديق أو ضمن فريق. هذه المرونة جعلت المسابقة جاذبة لمجتمع واسع من المطورين والهواة والمبدعين حول العالم.
نبذة سريعة عن تاريخ المسابقة
أطلق Andrzej Mazur هذه المسابقة عام 2012 كمبادرة شخصية في وقت فراغه. ومع مرور السنوات، نمت الفكرة بشكل كبير واكتسبت اعترافًا عالميًا، وصارت تستقطب مشاركات من مطورين من دول متعددة. هذا التطور يعكس حجم الشغف الذي تحمله مجتمعات البرمجة تجاه الألعاب الصغيرة عالية الجودة.
الفائزون في js13k 2020 وأبرز الألعاب المميزة
فيما يلي القائمة الكاملة لأفضل 20 لعبة فائزة في نسخة 2020، مع روابط المستودعات البرمجية وحسابات المطورين على Twitter. هذه القائمة مفيدة لكل من يريد اللعب، أو دراسة الأفكار، أو الاطلاع على الشيفرة المصدرية للاستفادة منها.
- المركز الأول:
Ninja vs EVILCORP— Rémi Vansteelandt
مستودعGitHub:https://github.com/remvst/ninja
الحساب:https://twitter.com/remvst - المركز الثاني:
Edge Not Found— Tom Hermans
مستودعGitHub:https://github.com/Auroriax/js13k-2020
الحساب:https://twitter.com/auroriax - المركز الثالث:
CHOCH— kostik1337 و lampysprites
مستودعGitHub:https://github.com/kostik1337/CHOCH
الحساب:https://twitter.com/kostik13337 - المركز الرابع:
Track not found?!— xem
مستودعGitHub:https://github.com/xem/track-not-found
الحساب:https://twitter.com/maximeeuziere - المركز الخامس:
Stolen Sword— Ian Chiao
مستودعGitHub:https://github.com/chiaogu/stolen-sword
الحساب:https://twitter.com/chiaogu - المركز السادس:
The Last Spartan— Michael Ferron
مستودعGitHub:https://github.com/ferronsays/js13k-TheLastSpartan
الحساب:https://twitter.com/ferronsays - المركز السابع:
FOURFOLD— Saud
مستودعGitHub:https://github.com/rottencandy/js13k2020
الحساب:https://twitter.com/rotttencandy - المركز الثامن:
I want to google the game— Mark Vasilkov
مستودعGitHub:https://github.com/mvasilkov/js13k2020
الحساب:https://twitter.com/mvasilkov - المركز التاسع:
Highway 404— Jerome Lecomte
مستودعGitHub:https://github.com/herebefrogs/highway-404
الحساب:https://twitter.com/herebefrogs - المركز العاشر:
MINIPUNK— Cody Ebberson
مستودعGitHub:https://github.com/codyebberson/js13k-minipunk
الحساب:https://twitter.com/codyebberson - المركز الحادي عشر:
Searching for 04— Nicklas Löf / Snukey
مستودعGitHub:https://github.com/nicklaslof/searching/
الحساب:https://twitter.com/nicklaslof - المركز الثاني عشر:
Johnny Smiter III— Paul Brunt
مستودعGitHub:https://github.com/supereggbert/JohnnySmiterIII
الحساب:https://twitter.com/super_eggbert - المركز الثالث عشر:
Island Not Found— Ben و Salvatore
مستودعGitHub:https://github.com/SalvatorePreviti/js13k-2020
الحساب:https://twitter.com/SN74HC00 - المركز الرابع عشر:
You have found— Mark Knol
مستودعGitHub:https://github.com/markknol/js13k-2020
الحساب:https://twitter.com/mknol - المركز الخامس عشر:
404kph— jaburns
مستودعGitHub:https://github.com/jaburns/js13k2020
الحساب:https://twitter.com/jaburnsnet - المركز السادس عشر:
WIZARD WITH A SHOTGUN— Elliot Nelson
مستودعGitHub:https://github.com/elliot-nelson/js13k-2020-wizard-with-a-shotgun
الحساب:https://twitter.com/7tonshark - المركز السابع عشر:
Connection— Federico Tibaldo
مستودعGitHub:https://github.com/fedetibaldo/connection-js13kgames2020
الحساب:https://twitter.com/fedetibaldo - المركز الثامن عشر:
Sojuz 404— Markus Fisch
مستودعGitHub:https://github.com/markusfisch/Sojuz404
الحساب:https://twitter.com/markusfisch - المركز التاسع عشر:
Symmetry Not Found— sirxemic
مستودعGitHub:https://github.com/sirxemic/js13k-entry-2020
الحساب:https://twitter.com/sirxemic - المركز العشرون:
NoteCraft— KilledByAPixel
مستودعGitHub:https://github.com/KilledByAPixel/NoteCraft
الحساب:https://twitter.com/KilledByAPixel
ماذا يمكن أن يتعلم المطورون من هذه الألعاب؟
الاطلاع على هذه المشاريع لا يفيد اللاعبين فقط، بل يمنح المطورين دروسًا عملية مهمة للغاية. فعندما ترى لعبة ممتعة وصالحة للتشغيل بحجم صغير جدًا، ستدرك أن جودة التجربة لا تعتمد دائمًا على ضخامة الموارد.
- يمكن بناء تجربة لعب قوية بفكرة ذكية بدلًا من الرسومات الثقيلة.
- القيود التقنية قد تُنتج حلولًا أكثر ابتكارًا من البيئة المفتوحة تمامًا.
- تحسين الأداء ليس خطوة لاحقة، بل جزء من عملية التصميم من البداية.
- فهم المتصفح وإمكاناته يمنح المطور أفضلية كبيرة في المشاريع التفاعلية.
- دراسة الشيفرات المصدرية لهذه الألعاب تساعد على تطوير أسلوب كتابة مختصر وفعّال.
لماذا يناسب هذا النوع من المحتوى جمهور الويب العربي؟
هناك اهتمام متزايد في العالم العربي بتطوير الألعاب باستخدام تقنيات الويب، خاصة بين المطورين المستقلين والطلاب والمبتدئين. لذلك فإن عرض مسابقات مثل js13kGames يفتح الباب أمام فهم عملي لكيفية إنشاء ألعاب قابلة للنشر والتجربة من داخل المتصفح فقط، دون الحاجة إلى محركات ضخمة أو بيئات معقدة.
كما أن هذه النماذج تمثل مصدر إلهام ممتازًا لمن يريد بناء مشروع شخصي، أو تعلم ضغط الأكواد، أو تحسين مهاراته في JavaScript عبر تطبيقات ممتعة وليست نظرية فقط.
الخلاصة التقنية
تكشف ألعاب js13k 2020 أن الإبداع البرمجي لا يُقاس بحجم المشروع، بل بذكاء التنفيذ وكفاءة استغلال الموارد. من منظور تقني، تمثل هذه الأعمال مرجعًا ملهمًا لكل مطور يريد فهم كيفية بناء ألعاب خفيفة، سريعة، ومتوافقة مع المتصفح، مع الحفاظ على تجربة استخدام جذابة. وإذا كنت ترغب في تطوير مهاراتك في JavaScript وتحسين قدرتك على كتابة شيفرة فعالة، فإن دراسة هذه الألعاب خطوة عملية تستحق وقتك.