مسابقة برمجة ألعاب جافا بدقة 4K
مسابقة برمجة ألعاب Java 4K ، والمعروفة أيضًا باسم Java 4K و J4K ، هي مسابقة غير رسمية بدأتها مجتمع برمجة ألعاب Java لتحدي قدراتهم في تطوير البرمجيات .
مفهوم
تهدف المسابقة إلى تطوير أفضل لعبة ممكنة ضمن أربعة كيلوبايت (4096 بايت) من البيانات. في حين كانت القواعد تسمح في الأصل بأي طريقة توزيع تقريبًا، إلا أن السنوات الأخيرة اشترطت أن تُغلّف الألعاب إما كملف JAR قابل للتنفيذ ، أو تطبيق Java Webstart ، أو تطبيق Java صغير (Applet )، والآن يُشترط فقط تطبيق Java صغير (Applet).
نظرًا لأن تنسيق ملفات Java Class يستهلك موارد النظام بشكل كبير، فإن إنشاء لعبة كاملة بدقة 4K قد يمثل تحديًا كبيرًا. ونتيجة لذلك، يتعين على المتسابقين تحديد مقدار الموارد التي يرغبون في تخصيصها للرسومات والصوت وأسلوب اللعب. وقد يكون إيجاد المزيج الأمثل من هذه العوامل صعبًا للغاية. يعتقد العديد من المشاركين الجدد أن الرسومات المبهرة وحدها كافية لنجاح اللعبة. ومع ذلك، غالبًا ما تتفوق المشاركات ذات الرسومات المتواضعة والتركيز على أسلوب اللعب على تلك العروض التقنية.
الجوائز
عند إطلاق المسابقة، كانت "الجائزة" عبارة عن حزمة من " دولارات ديوك "، وهي عملة افتراضية تُستخدم في منتديات جافا التابعة لشركة صن مايكروسيستمز. وكان من الممكن نظريًا استبدال هذه العملة بجوائز مادية مثل الساعات والأقلام. ومع إطلاق مسابقة 4K، تم التقليل من أهمية هذه العملة الافتراضية، ما أدى إلى إلغاء أي جائزة حقيقية. ورغم وجود بعض النقاشات حول تقديم جوائز للمسابقة، إلا أنها استمرت في الازدهار دونها.
الشركات المشتقة
بعد إطلاق مسابقة Java4K، ظهرت مسابقات فرعية تستهدف أحجام 8K و16K أو واجهات برمجة تطبيقات محددة مثل LWJGL ، ولكنها عادةً ما تفشل. ورغم كثرة النقاشات حول سر نجاح مسابقة Java 4K، يبدو أن المتسابقين متفقون على أنها تقدم تحديًا جذابًا للغاية: فهي لا تتيح للمشاركين فرصة استعراض مهاراتهم في برمجة Java فحسب، بل إن حجم 4K يُسهم في تحقيق تكافؤ الفرص مقارنةً بمسابقات أخرى حيث يُمكن للفنانين والموسيقيين أن يُميزوا المشاركات بسهولة. ويبدو أن المتسابقين يعتقدون أن 4K هو الحجم الأمثل الذي يُوازن بين إمكانيات كل متسابق. وبفضل التقنيات المُطورة خصيصًا لمسابقة 4K، يُعتقد أن إضافة كيلوبايت واحد فقط ستفتح المجال أمام ألعاب أكثر تعقيدًا تتجاوز قدرة مطور واحد.
تاريخ
إنشاء مسابقة
انطلقت مسابقة برمجة ألعاب جافا بدقة 4K في 28 أغسطس 2002، عندما نشر مستخدم يُدعى codymanix اقتراحًا في منتديات جافا التابعة لشركة صن مايكروسيستمز . وبعد نقاشٍ حول مدى إمكانية تطوير لعبة بدقة 4K، قام مستخدم يُدعى mlk بتنظيم المسابقة رسميًا في 29 أغسطس 2002.
بدأت المشاركات تتدفق تدريجيًا نحو المسابقة. وكانت أغلب هذه المشاركات عبارة عن تطبيقات صغيرة (Applets)، إذ كان يُعتقد أن فصل الصور عن ملفات الفئات سيساهم في تقليل حجم الملف. لكن المسابقات اللاحقة شهدت تحولًا في هذا النهج، حيث استخدم مطورو الألعاب ملفات JAR المضغوطة لتقليل حجم أكوادهم.
من أبرز النقاط المثيرة للاهتمام في المسابقة الأولى السماح بتطبيقات غير الألعاب. فقد قدّم أحد المتسابقين خادم Telnet بلغة Java بحجم 4K. إلا أن هذا المشروع لم يُنشر، ويُرجّح أن السماح به كان نتيجةً للتساهل في إدارة المسابقة آنذاك. ورغم عدم إعلان فائز رسمي في العام الأول، إلا أن لعبة السباق 4K التي قدّمها روبن تشادوك (المعروف أيضًا باسم Abuse/AbU5e) حظيت بإجماع عام على أنها "الفائزة".
أصبحت المسابقات المتعاقبة أكثر تنظيمًا، حيث ساهم العديد من المتسابقين في إدارة المسابقة والترويج لها. وخضعت جميع المسابقات لتقييم رسمي، مع تحسين آلية التقييم سنويًا. وفي السنة الثالثة، نُقلت المسابقة رسميًا إلى منتديات JavaGaming.org. وشهدت السنة الرابعة إطلاق موقع JavaUnlimited الإلكتروني كمستودع رسمي للمسابقة. وكان الموقع قد استُخدم في العام السابق لتتبع المشاركات المنشورة في المواضيع الرسمية على JavaGaming.org وforum.java.sun.com.
التطور عبر السنين
- السنة الثانية (2004)
تميزت ألعاب هذا العام باستخدام مكثف للرسومات المُجهزة مسبقًا ، والشفافية، والمؤثرات الصوتية. وكان من أبرز المنافسين لعبة Defender 4000 ، ولعبة Abuse's Shooty-Transparenty Game ، ولعبة Space Invaders . إلا أن افتقار Space Invaders للصوت جعلها تتخلف عن اللعبتين الأخريين اللتين تنافستا بشدة لتقديم أفضل التقنيات وأسلوب اللعب.
كان من المثير للاهتمام بشكل خاص الاختلاف في الأساليب التي استخدمها المشروعان. ففي مجال الرسومات، اعتمد Abuse على عدد قليل جدًا من الصور عالية الألوان، ثم قام بتطبيق الشفافية والتدوير عليها أثناء التشغيل. أما Jbanes، فقد طور تقنية لتجميع الصور سمحت له بتخزين واحد وعشرين صورة أحادية اللون. وبدلًا من تطبيق التدوير والشفافية، اختار استخدام العدد الأكبر من الصور لإنتاج رسوم متحركة مُجهزة مسبقًا. أما بالنسبة للصوت، فقد استخدم Abuse أجراسًا واضحة وآلات موسيقية أخرى من مكتبة أصوات MIDI . بينما اختار Jbanes استخدام صوت PCM مُولّد أثناء التشغيل ، والذي كان أقرب إلى صوت ألعاب الفيديو في أواخر السبعينيات وأوائل الثمانينيات.
كان لكلتا الطريقتين مزاياها، لذا يصعب تحديد ما حسم رأي القاضي في النهاية. المعروف أن السنة الثانية كانت آخر سنة يُصبح فيها الصوت عاملاً حاسماً في الألعاب. في السنوات اللاحقة، أُعيد تخصيص وحدات البايت المخصصة للصوت لوظائف أخرى مثل الرسومات ثلاثية الأبعاد، والمستويات، والزعماء .
كان العام الثاني هو العام الأول الذي أُجري فيه التحكيم الرسمي. على عكس الأعوام اللاحقة، كان الحكم الوحيد هو منظم المسابقة، mlk . بعد دراسة متأنية، قرر الحكم منح Prong جائزة أفضل إنجاز تقني ، وأعلن Defender 4000 فائزًا بالجائزة الكبرى. وقد قيّم كل لعبة على حدة، لكنه لم يستخدم هذه النتيجة في تحديد الفائز. في الواقع، حصلت لعبة Abuse's Shooty-Transparenty على نقطة واحدة أكثر من Defender 4000 .
- السنة الثالثة (2005)
تميز العام الثالث بتدفق كبير لمطوري جافا المحترفين، وإضافة رسومات ثلاثية الأبعاد إلى الألعاب، والانتقال التدريجي إلى منتديات JavaGaming.org. كما بدأت JavaUnlimited في نسخ مواقع المنافسين في أرشيف دائم. ورغم أن النسخة بدأت كصفحة HTML يتم تعديلها يدويًا، إلا أنها تطورت لاحقًا إلى موقع متكامل لإدارة المحتوى مزود بقاعدة بيانات.
تولت لجنة تحكيم مكونة من ثلاثة متطوعين، مطورين محترفين لم يشاركوا في المسابقة، مهمة التحكيم هذا العام. وكان من بين المتطوعين كريس ميليسنوس ، كبير مسؤولي الألعاب في شركة صن . واعتمدت طريقة التقييم على الطريقة التي طبقها ميلك في العام السابق، ولكن تم تحديثها لتتيح للجنة التحكيم منح جوائز لأفضل أداء في اللعب أو الإنجازات التقنية.
رغم أن معظم المشاركات كانت ذات جودة استثنائية، إلا أن لعبة T4XI من تطوير كيفن غلاس (المعروف أيضاً باسم kevglass ) فازت بالمركز الأول. فإلى جانب أسلوب لعبها المبتكر للغاية، قدمت رسومات رائعة من خلال تأثير ثلاثي الأبعاد زائف أضفى بُعداً مميزاً على المباني.
أثير جدل بسيط بسبب بعض المشاركات التي لم يتمكن الحكام من تقييمها. فمشاركات مثل JM4K و IsOlation Net كانت إما معقدة للغاية بحيث لم يتمكن الحكام من تشغيلها، أو تحتوي على مكونات شبكية لم يتمكنوا من اختبارها. بعد مسابقة هذا العام، تم تغيير القواعد لتشترط أن تكون الألعاب قابلة للتنفيذ الذاتي. إضافةً إلى ذلك، تم تنبيه المتسابقين مسبقًا إلى صعوبة تقييم الألعاب الشبكية.
- السنة الرابعة (2006)
شهد العام الرابع مرحلة انتقالية نحو إعطاء الأولوية لأسلوب اللعب على حساب الرسومات والإنجاز التقني. تميزت العديد من الألعاب ببساطة تصميمها، لكنها سعت إلى تعويض ذلك بأسلوب لعب جذاب أو مُدمن.
لأول مرة في تاريخ المسابقة، تم إنشاء منتدى خاص على موقع JavaGaming.org لاستضافة المسابقة. بالإضافة إلى ذلك، أصبح موقع JavaUnlimited.net الموقع الرسمي لاستلام المشاركات والتحكيم. في حين كان من المقرر في البداية أن يتم التحكيم عبر JavaUnlimited من قبل مجتمع Javagaming.org، إلا أن اعتراضات بعض الأعضاء أدت إلى العودة إلى نظام تحكيم أكثر تقليدية.
بعد ظهور النتائج، أُعلن فوز Miners4K من تصميم ماركوس بيرسون . وحصل كيفن غلاس على المركز الثاني عن Roll4K ، بينما نال Goomba4K من تصميم ووغلي المركز الثالث.
كانت نتائج تحكيم السنة الرابعة أفضل بكثير من نتائج السنة الثالثة، ويعود ذلك جزئيًا إلى تغييرات القواعد التي أجبرت المشاركات على التوافق مع تنسيقات سهلة التنفيذ. مع ذلك، لم يُلغِ هذا بعض مشاكل التحكيم. فقد ثار جدلٌ عندما مُنحت مشاركتان ( Xero و JSquares ) درجاتٍ أقل بسبب أعطالٍ تقنية. وقُدِّمت عدة توصيات لمنع تكرار ذلك في المسابقات المستقبلية، منها تعديل متوسط الدرجات والتحقق من تقييم الحكام قبل قبول المشاركات.
- السنة الخامسة (2007)
انطلقت السنة الخامسة في ديسمبر 2006 واستمرت حتى 1 مارس 2007. وشهدت هذه السنة إصدار بعض الألعاب الرائعة، مع تركيز أقل بكثير على الرسومات ثلاثية الأبعاد وشبه ثلاثية الأبعاد. كانت معظم الألعاب ثنائية الأبعاد، باستثناء لعبتي Pipe Extreme و Trailblazer اللتين تُعتبران الاستثناءين البارزين (يمكن القول إن بعض الألعاب الأخرى ثلاثية الأبعاد أيضًا، ولكن بدرجة أقل وضوحًا).
كما في العام الرابع، استضاف موقع JavaGaming.org منتدىً للمسابقة. واستُخدم نظام JavaUnlimited لاستضافة الألعاب مجددًا، باعتباره الموقع الرسمي للمشاركات. كان من المقرر تحديث موقع JavaUnlimited، لكن ذلك لم يحدث. في الأصل، كانت الخطة تقضي بإجراء تصويت عام وتشكيل لجنة تحكيم. بعد شهر من انتهاء المسابقة، ألغى المنظم لجنة التحكيم دون أي توضيح، مما أثار بعض الاستياء في المنتديات، واتهامات بالرقابة، وإغلاق بعض المواضيع، وانسحاب مشاركين اثنين من المسابقة (مما خفض العدد الإجمالي من 65 إلى 58). [ 1 ] اقتصر التصويت على المشاركين في منتدى javagaming.org، وخلال الفترة المحددة، صوّت 25 شخصًا. بعد حوالي شهرين من انتهاء المسابقة، أُعلنت النتائج الرسمية.
فازت لعبة Metro4k من تطوير بلاين هودج، تلتها Roadfourk من تطوير جوجوه، ثم aichess4k من تطوير أولف أوكسنفارت . Metro4k هي لعبة محاكاة مدن شبيهة بلعبة Sim City ، وRoadfourk هي لعبة سباق، وaichess4k هي لعبة شطرنج بخصم ذكاء اصطناعي.
على عكس السنوات السابقة، لم تشهد السنة الخامسة حصول أي لعبة على "المركز الأخير"، لأن نظام التصويت بالموافقة المستخدم منح الأصوات لنحو نصف الألعاب فقط.
- السنة السادسة (2008)
انطلقت السنة السادسة في ديسمبر 2007 واستمرت حتى 1 مارس 2008. ولوحظ انخفاض ملحوظ في عدد الألعاب المُقدمة مقارنةً بعامي 2006 و2007، حيث بلغ عددها 21 لعبة فقط. وكانت معظم الألعاب ثنائية الأبعاد، بينما استخدمت 3 ألعاب فقط رسومات ثلاثية الأبعاد أو شبه ثلاثية الأبعاد.
أُقيمت المسابقة على موقع إلكتروني جديد، Java4k.com . ويمكن العثور على ألعاب من السنوات السابقة على الموقع الجديد أيضًا. قبل انطلاق المسابقة، أعلن woogley انسحابه من تنظيمها. ولذلك، تولى كل من آرني أرينت (appel) وجواكيم جونسون (jojoh) مهمة إدارة المسابقة واستضافة الموقع. وكما في السنوات السابقة، كان هناك منتدى مخصص . (مؤرشف بتاريخ 4 نوفمبر 2015 على موقع Wayback Machine في Java-Gaming.org ).
ثم خضعت الألعاب لمراجعة دقيقة من قبل خمسة حكام: آرني أرينت، وجواكيم جونسون، وكيفن غلاس، ومات هيكس، وكريس ميليسنوس. وقد قيّموا كل لعبة في ثلاث فئات: التقييم العام، والتقييم الفني، والعرض. وأُعلنت النتائج في 28 مارس 2008.
- السنة السابعة (2009)
انطلقت السنة السابعة في ديسمبر 2008 واستمرت حتى 28 فبراير 2009 (بعد تمديدها من تاريخ الإغلاق الأصلي في 31 يناير). عاد عدد الألعاب المُقدمة إلى مستوياته السابقة، حيث بلغ 67 لعبة. شهدت هذه السنة فرض شرط (تم تخفيفه لاحقًا، لكن معظم الألعاب لا تزال تلتزم به) لاستخدام نشر JNLP، ونتيجة لذلك، تضمنت مزيجًا من التطبيقات والبرامج المصغّرة.
ومن بين الإنجازات التقنية الأخرى لهذا العام، تقديم ألعاب الكلمات ولعبة تستخدم الميكروفون. استخدمت لعبة Word Twister مستويات مدمجة، بينما استخدمت لعبة Scr4mble تقنية الانعكاس لاستخراج أسماء الفئات من واجهة برمجة تطبيقات J2SE وتقسيمها إلى كلمات لبناء قاموس. أما لعبة Frequent Flier، فكانت تُتحكم فيها عن طريق طبقة الصوت المُغناة في الميكروفون.
قام خمسة حكام بتقييم الألعاب: آرني أرينت، وكريس ميليسنوس، ومات هيكس، وإيلي ديلفينثال، ومارك ديلورا . وكما في السابق، قاموا بالتقييم في الفئات الثلاث: التقييم العام، والتقييم الفني، والعرض.
أثير جدل بسيط حول نظام احتساب النقاط لأن بعض الحكام لم يتمكنوا من لعب بعض الألعاب. كانت نقاطهم في تلك الألعاب في البداية صفرًا، وتم احتسابها ضد تلك الألعاب عند إصدار النتائج لأول مرة في الأول من أبريل، ولكن تم تعديل المتوسطات لاستبعاد هذه النقاط الصفرية بعد ثلاث ساعات.
- من السنة الثامنة (2010) إلى السنة الثانية عشرة (2014)
بعد المشاكل التي واجهتها منصة Webstart عام ٢٠٠٩، اقتصرت مسابقات عام ٢٠١٠ وما بعدها على التطبيقات المصغّرة فقط، مع إتاحة خيار استخدام ضغط pack200. ومنذ عام ٢٠١٠، كان الحكام يمنحون درجة إجمالية فقط، تُعدّل قبل حساب المتوسط. كما كان هناك نظام تصويت مجتمعي منفصل، حيث كان لكل ناخب ٥٠ نقطة (٢٥ نقطة قبل عام ٢٠١٣) لتوزيعها على الألعاب، بحد أقصى ٥ نقاط لكل لعبة. ومنذ عام ٢٠١٣، أصبح بإمكان الناخبين إضافة جملة قصيرة للتعليق.
نتائج
| سنة | بلح | المدخلات | القضاة | التصنيفات | روابط | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| 2003 | مجهول | - | لا يوجد تحكيم رسمي. | |||||||
| 2004 | مجهول | مارتن لوثر كينغ |
| |||||||
| 2005 | 50 | كريس ميليسنوس وآخرون |
|
| ||||||
| 2006 | 55 | kingaschi, borkert, Malohkan, nonnus29, peggy, shelton, tim |
|
| ||||||
| 2007 | 1 ديسمبر 2006 1 مارس 2007 | 57 | - (تم التصويت من قبل المجتمع) |
|
| |||||
| النتيجة الإجمالية | النتيجة الفنية | درجة العرض التقديمي | ||||||||
| 2008 | 1 ديسمبر 2007 1 مارس 2008 | 21 | أرني أرنت، يواكيم جونسون، كيفن جلاس، مات هيكس، كريس ميليسينوس |
|
|
| ||||
| 2009 | 1 ديسمبر 2008 - 28 فبراير 2009 | 67 | أرني أرينت، كريس ميليسنوس، مات هيكس، إيلي ديلفينثال، مارك ديلورا |
|
|
| ||||
| تصويت القضاة | التصويت المجتمعي | |||||||||
| 2010 | 1 ديسمبر 2009 - 28 فبراير 2010 | 34 | أرني أرينت، إيلي دلفينثال، كيفن جلاس |
|
| |||||
| 2011 | 1 ديسمبر 2010 - 28 فبراير 2011 | 45 | أرني أرينت، كابا، ريفن |
|
| |||||
| 2012 | 1 ديسمبر 2011 - 29 فبراير 2012 | 51 | أرني أرينت، إيلي دلفنثال، درابيتر، و pjt33 |
|
| |||||
| 2013 | 1 ديسمبر 2012 - 28 فبراير 2013 | 68 | أرني أرينت، درابيتر روي أتالا |
|
| |||||
| 2014 | 1 ديسمبر 2013 - 28 فبراير 2014 | 24 | أرني أرينت، جيمت تيليتوبو |
|
| |||||
روابط خارجية
- أرشيف الويب للموضوع الأصلي - تم حذف الموضوع الأصلي بواسطة شركة صن أثناء عملية تنظيف النظام الدورية
- قائمة غير مكتملة لمدخلات السنة الأولى - محفوظة بواسطة Archive.org
- تمت أرشفة موضوع السنة الثانية بتاريخ 24 مايو 2005 على موقع Wayback Machine - في منتديات جافا التابعة لشركة صن
- جافا أنليميتد - مستودع الألعاب المقدمة منذ عام 2005.
- حيل تصميم الألعاب بدقة 4K - مقالة ويكي لمساعدة المبتدئين.
- نصائح ومصادر 4K مؤرشفة بتاريخ 24 يونيو 2007 على موقع Wayback Machine - مجموعة من النصائح والدروس التعليمية وشفرات المصدر للألعاب لمشاركي 4K Java
- تم أرشفة منتديات مسابقة JavaGaming.org في 2015-11-04 على Wayback Machine - كل عام (بدءًا من العام 3) له منتدى فرعي خاص به.
- لماذا تُعدّ ألعاب 4K ممتعة للغاية في كتابتها ولعبها؟
- هل ينبغي إقامة مسابقات ألعاب جافا بدون قيود على حجم الألعاب؟ (مؤرشف بتاريخ 4 نوفمبر 2015 في أرشيف الإنترنت)
مراجع
- جافا (لغة برمجة)
- مسابقات البرمجة
