20 لعبة JavaScript فائزة بجوائز لا يتجاوز حجمها 13 كيلوبايت وتعمل مباشرة في المتصفح

دقائق القراءة: 6

أفضل 20 لعبة JavaScript خفيفة فازت في js13k 2020

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

في هذا المقال، ستتعرّف على 20 لعبة فائزة بجوائز في نسخة js13k 2020، إلى جانب نظرة عملية على طبيعة المسابقة، وأهم قواعدها، ولماذا تُعد هذه الأعمال أمثلة ممتازة على البرمجة المبتكرة وتطوير الألعاب داخل المتصفح.

أفضل ألعاب جافاسكربت الفائزة في مسابقة 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. هذه القائمة مفيدة لكل من يريد اللعب، أو دراسة الأفكار، أو الاطلاع على الشيفرة المصدرية للاستفادة منها.

  1. المركز الأول: Ninja vs EVILCORP — Rémi Vansteelandt
    مستودع GitHub: https://github.com/remvst/ninja
    الحساب: https://twitter.com/remvst
  2. المركز الثاني: Edge Not Found — Tom Hermans
    مستودع GitHub: https://github.com/Auroriax/js13k-2020
    الحساب: https://twitter.com/auroriax
  3. المركز الثالث: CHOCH — kostik1337 و lampysprites
    مستودع GitHub: https://github.com/kostik1337/CHOCH
    الحساب: https://twitter.com/kostik13337
  4. المركز الرابع: Track not found?! — xem
    مستودع GitHub: https://github.com/xem/track-not-found
    الحساب: https://twitter.com/maximeeuziere
  5. المركز الخامس: Stolen Sword — Ian Chiao
    مستودع GitHub: https://github.com/chiaogu/stolen-sword
    الحساب: https://twitter.com/chiaogu
  6. المركز السادس: The Last Spartan — Michael Ferron
    مستودع GitHub: https://github.com/ferronsays/js13k-TheLastSpartan
    الحساب: https://twitter.com/ferronsays
  7. المركز السابع: FOURFOLD — Saud
    مستودع GitHub: https://github.com/rottencandy/js13k2020
    الحساب: https://twitter.com/rotttencandy
  8. المركز الثامن: I want to google the game — Mark Vasilkov
    مستودع GitHub: https://github.com/mvasilkov/js13k2020
    الحساب: https://twitter.com/mvasilkov
  9. المركز التاسع: Highway 404 — Jerome Lecomte
    مستودع GitHub: https://github.com/herebefrogs/highway-404
    الحساب: https://twitter.com/herebefrogs
  10. المركز العاشر: MINIPUNK — Cody Ebberson
    مستودع GitHub: https://github.com/codyebberson/js13k-minipunk
    الحساب: https://twitter.com/codyebberson
  11. المركز الحادي عشر: Searching for 04 — Nicklas Löf / Snukey
    مستودع GitHub: https://github.com/nicklaslof/searching/
    الحساب: https://twitter.com/nicklaslof
  12. المركز الثاني عشر: Johnny Smiter III — Paul Brunt
    مستودع GitHub: https://github.com/supereggbert/JohnnySmiterIII
    الحساب: https://twitter.com/super_eggbert
  13. المركز الثالث عشر: Island Not Found — Ben و Salvatore
    مستودع GitHub: https://github.com/SalvatorePreviti/js13k-2020
    الحساب: https://twitter.com/SN74HC00
  14. المركز الرابع عشر: You have found — Mark Knol
    مستودع GitHub: https://github.com/markknol/js13k-2020
    الحساب: https://twitter.com/mknol
  15. المركز الخامس عشر: 404kph — jaburns
    مستودع GitHub: https://github.com/jaburns/js13k2020
    الحساب: https://twitter.com/jaburnsnet
  16. المركز السادس عشر: WIZARD WITH A SHOTGUN — Elliot Nelson
    مستودع GitHub: https://github.com/elliot-nelson/js13k-2020-wizard-with-a-shotgun
    الحساب: https://twitter.com/7tonshark
  17. المركز السابع عشر: Connection — Federico Tibaldo
    مستودع GitHub: https://github.com/fedetibaldo/connection-js13kgames2020
    الحساب: https://twitter.com/fedetibaldo
  18. المركز الثامن عشر: Sojuz 404 — Markus Fisch
    مستودع GitHub: https://github.com/markusfisch/Sojuz404
    الحساب: https://twitter.com/markusfisch
  19. المركز التاسع عشر: Symmetry Not Found — sirxemic
    مستودع GitHub: https://github.com/sirxemic/js13k-entry-2020
    الحساب: https://twitter.com/sirxemic
  20. المركز العشرون: NoteCraft — KilledByAPixel
    مستودع GitHub: https://github.com/KilledByAPixel/NoteCraft
    الحساب: https://twitter.com/KilledByAPixel

ماذا يمكن أن يتعلم المطورون من هذه الألعاب؟

الاطلاع على هذه المشاريع لا يفيد اللاعبين فقط، بل يمنح المطورين دروسًا عملية مهمة للغاية. فعندما ترى لعبة ممتعة وصالحة للتشغيل بحجم صغير جدًا، ستدرك أن جودة التجربة لا تعتمد دائمًا على ضخامة الموارد.

  • يمكن بناء تجربة لعب قوية بفكرة ذكية بدلًا من الرسومات الثقيلة.
  • القيود التقنية قد تُنتج حلولًا أكثر ابتكارًا من البيئة المفتوحة تمامًا.
  • تحسين الأداء ليس خطوة لاحقة، بل جزء من عملية التصميم من البداية.
  • فهم المتصفح وإمكاناته يمنح المطور أفضلية كبيرة في المشاريع التفاعلية.
  • دراسة الشيفرات المصدرية لهذه الألعاب تساعد على تطوير أسلوب كتابة مختصر وفعّال.

لماذا يناسب هذا النوع من المحتوى جمهور الويب العربي؟

هناك اهتمام متزايد في العالم العربي بتطوير الألعاب باستخدام تقنيات الويب، خاصة بين المطورين المستقلين والطلاب والمبتدئين. لذلك فإن عرض مسابقات مثل js13kGames يفتح الباب أمام فهم عملي لكيفية إنشاء ألعاب قابلة للنشر والتجربة من داخل المتصفح فقط، دون الحاجة إلى محركات ضخمة أو بيئات معقدة.

كما أن هذه النماذج تمثل مصدر إلهام ممتازًا لمن يريد بناء مشروع شخصي، أو تعلم ضغط الأكواد، أو تحسين مهاراته في JavaScript عبر تطبيقات ممتعة وليست نظرية فقط.

الخلاصة التقنية

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

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *