سكريبتوريوم حكايات العالم السفلي.

هذه الصفحة تمت ترجمتها من الإنجليزية إلى العربية بمساعدة groq.

تكييف وضع ملء الشاشة بدقة 1920x1080 لعميل "كرة القدم الخيالية" (Fantasy Football) لمشروع fumbbl.com

توجد لعبة طاولة ابتكرها موظفو شركة Games Workshop، والتي لا يعرفها سوى القليل. إنها واحدة من تلك الألعاب التي تحتوي على الكثير من القواعد التي تؤثر على تطور المواقف في ظروف معينة، لدرجة أن اللاعب يحتاج للانغماس في "غيبوبة لعب" عميقة ليلعبها، حيث يتركز وعيه بالكامل على عناصر اللعبة ويتنقل بينها. ليست هذه هي اللعبة الوحيدة من شركة Games Workshop التي تسير على هذا النهج؛ فكل ألعابهم كذلك. لا تزال لعبتي المفضلة هي Warhammer Underworlds، ومع ذلك فإن انجذابي إلى Blood Bowl كبير وشامل لدرجة أنه يسمح لي بالاستمتاع بكلتا اللعبتين على حد سواء.

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

Art to blood bowl. Art to blood bowl 3 video game.

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

أدناه سأقدم أمثلة لصور أعمال لاعبين وفنانين محليين (من أوستن، تكساس). إنها تستحق اهتمامكم وستجلب لكم متعة جمالية.

Picture of table in preparation for the game 1. Picture of table in preparation for the game 2. Picture of human team zoomed in. Picture of lizardman from the front. Picture of lizardman from the back.

أعمال رائعة، أليس كذلك؟ :) كل مجسم ملون يتحول إلى عمل فني وتعبير عن روح الإنسان في شكل إبداع.

بالطبع، يعمل العديد من المؤلفين على خلق جو معروف وفريد لعالم اللعبة نفسه الذي تدور فيه الأحداث. :) سأقدم مثالاً لصفحة من كتاب القواعد، تصف قصة نشأة تقليد لعب Blood Bowl في عالم اللعبة هذا.

Story of creation of blood bowl. Picture from rule book.

سأضع ترجمة لمن لا يقرأ الإنجليزية:

تاريخ الدم القديم!

منذ زمن بعيد، قبل أن يتوقف البشر عن أكل طين الكهوف؛ وقبل أن يكتشف الجان (Elves) فوائد دهن الكوكادريس (Cockatrice) لتصفيف الشعر؛ وحتى قبل أن يصبح الأقزام سكارى أبديين، وُجد "القدماء" (The Ancients). كانت هذه المخلوقات الأسطورية قوية وعظيمة، وقد منحوا العالم وشعوبه العديد من المعجزات. كانت أعظم هذه الهدايا هي المعرفة عن "نافل المقدس" (Holy Nuffle)، إله الرياضات العنيفة ولعبته المقدسة.

منذ ذلك الحين، كانت عبادة نافل تشتد وتضعف. تحكي مسلات "لوستريا" عن مباريات أقيمت برعاية "السلان" (Slann). وتروي هيروغليفية "نهيكارا" القديمة عن ملوك كهنة، كانوا يُدفنون في استادات ضخمة ليلعبوا فيها إلى الأبد. وتتحدث لفائف من الأراضي الشرقية عن "الدوريات السماوية التسعة" (Nine Heavenly Leagues)، حيث كانت الخلافات البلاطية تُحل بأمتع الطرق.

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

مئة عام (تقريباً) مضت

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

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

تم ترشيح قزم عجوز شبه أعمى كخبير في اللغات القديمة — وكخسارة مقبولة إذا أكلته حشود الأورك — لفك رموز الكتاب. وقد فعل ذلك بالضبط، حيث سحر الجميع بقصص عن الإله المنسي "نافل" وطقسه المقدس "كرة القدم الأمورية" (Amoric Football)، التي تتضمن مجموعات صغيرة من المحاربين يقاتلون لفترة زمنية معينة لتسجيل النقاط عن طريق الوصول بمثانة خنزير منفوخة إلى نهاية ملعب الخصم. أعلن القزم أن نافل رأى المحنة التي تمر بها الجيوش المتحاربة ومنحهم وسيلة لتسوية خلافاتهم.

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

وكتاب القواعد مليء بمثل هذا النص، الذي يخلق جواً فريداً للعالم ويرسم في خيال اللاعب صوراً من هذا العالم.

حسناً، كفاية من المعلومات التمهيدية عن اللعبة، والآن إلى صلب الموضوع.

في الوقت الحالي (19 يونيو 2026)، يحتوي العميل الرسمي للعبة Blood Bowl على 4 خيارات لواجهة المستخدم. وعلى شاشتي بدقة 1920x1080 تبدو كما يلي. تم التقاط لقطات الشاشة من الشاشة بأكملها لإعطاء فكرة عن مقدار المساحة التي تشغلها واجهة المستخدم على شاشة العرض. تجدر الإشارة إلى أن العميل يدعم إمكانية تغيير المقياس (Scale)، ومع ذلك، في لقطات الشاشة المعروضة، تم ضبط المقياس على 100%.

Screenshot of landscape mode on 1920x1080 display resolution. Screenshot of portrait mode on 1920x1080 display resolution. Screenshot of square mode on 1920x1080 display resolution. Screenshot of wide mode on 1920x1080 display resolution.
تتكون متطلباتي لواجهة المستخدم من 4 نقاط:
  • 1. يجب أن أكون قادراً على رؤية اللاعبين في الملعب بشكل مريح إلى حد ما. بشكل جيد بما يكفي لتمييز أنواعهم دون الحاجة إلى توجيه مؤشر الماوس عليهم عندما أحتاج إلى فهم: هل هذا "لاينمان" (lineman) أم "بليتزر" (blitzer)، أم "ثروير" (thrower)، أم شخص آخر.
  • 2. يجب أن يكون نص وصف خصائص اللاعبين على اللوحات الجانبية للواجهة، والذي يظهر عند تحريك مؤشر الماوس فوق اللاعب، كبيراً بما يكفي لأتمكن من قراءة خصائص (stats) اللاعب، وكلماته المفتاحية (keywords) والمهارات (skills) التي يمتلكها دون تغيير وضع جسدي لتقريب رأسي من الشاشة لمسافة 10 سنتيمترات. هذا يؤثر على الراحة والمتعة التي يتم الحصول عليها من عملية اللعب، ألا توافقني الرأي؟
  • 3. يجب أن أكون قادراً على رؤية منطقة الواجهة التي تعرض نتائج رميات النرد. وهي تقع في الجزء السفلي الأيسر من واجهة اللعبة.
  • 4. يجب أن تكون جميع المتطلبات المذكورة أعلاه متاحة معاً وفي نفس الوقت لتجربة لعب أكثر راحة.
من بين خيارات الواجهة المتاحة افتراضياً، أول 3 خيارات (Landscape، Portrait، Square) لا تناسب النقطتين الأولى والثانية من توقعاتي. الخيار الثالث (Wide) يناسب النقطة الأولى، لكنه لا يناسب النقطتين الثانية والثالثة. حاولت تغيير مقياس نافذة العميل، لكن هذا لم يساعد في تلبية النقطة الثانية (لأن الخط في جميع خيارات الواجهة صغير جداً) ولا الثالثة. ولم يتمكن أي من الخيارات المتاحة من تلبية النقطة الرابعة من توقعاتي...
بعد 20 دقيقة من المحاولات لضبط الإعدادات التي تلبي توقعاتي، أدركت أنه يجب علي صنع خيار واجهة مرضٍ بنفسي. وبعد أسبوعين من العمل، أنا سعيد بتقديم النتيجة لكم!
Screenshot of wide 1920x1080 + fullscreen mode on 1920x1080 display resolution.
هذا غير مرئي في لقطة الشاشة، ولكن حجم النص في المناطق التي يتم فيها عرض معلومات رميات النرد ونافذة الدردشة - قد تم زيادته أيضاً. ستتمكن من التحقق من ذلك بنفسك عندما تقوم بتنزيل العميل وتشغيله على جهاز الكمبيوتر الخاص بك. :) لا تنس ضبط مقياس العميل على 100% (القيمة الافتراضية إذا لم تقم بتغييرها بنفسك)، وإلا فستبدو الواجهة مختلفة.
والنتيجة هي:
  • 1. تم توسيع اللوحات الجانبية لاستيعاب أحجام خطوط أكبر تمثل أوصاف اللاعبين (خصائصهم ومهاراتهم).
  • 2. تم زيادة أحجام بعض الأزرار على اللوحات الجانبية أيضاً لتشغل الحجم الكامل الجديد للوحات الجانبية.
  • 3. تمت إضافة وضع ملء الشاشة (fullscreen)، ويمكن التبديل إليه عبر المسار: "User Settings -> Client Settings -> Client Layout -> Full screen (Alt + Enter)".
  • 4. تم تكييف الواجهة لدقة 1920x1080 في وضع ملء الشاشة وهي متاحة عبر المسار: "User Settings -> Client Settings -> Client Layout -> Wide 1920x1080".
  • 5. تغييرات صغيرة أخرى في أحجام العناصر المرئية الأخرى لتناسب حجم اللوحات الجانبية الجديد.
New client settings screenshot.

النتائج

تم اختبار النتيجة من قبلي خلال لعبتين، وحتى الآن لم يتم ملاحظة أي مشاكل، وأنا راضٍ عن النتيجة. ومع ذلك، لم أختبر التغييرات التي تم إجراؤها مع خيارات الواجهة الأخرى (Landscape، Portrait، Square، Wide)، ونتيجة لذلك لا أستطيع التأكيد بأنني لم أكسر أياً من مخططات الواجهة الموجودة مسبقاً. كما أنني لم أختبر كيف ستنعكس تغييراتي على المخططات الأخرى (وحتى الجديدة التي أضفتها) للواجهة عند تغيير المقياس. أقترح عليك تنزيل العميل واختباره بالإعدادات التي تناسبك وإبلاغي عبر Discord أو عبر البريد الإلكتروني pasha@programmer-underworlds.dev عن أي أعطال يتم العثور عليها. يفضل إرفاق لقطات شاشة لشاشتك ومعلومات حول نظام التشغيل الذي تشغل العميل عليه، وسأعمل قدر الإمكان على إصلاحها. :) في المستقبل، قد يتم دمج هذه التغييرات في عميل اللعبة الرسمي الموزع عبر fumbbl.com، إذا وجدت أنه مريح وبعد حل جميع المشكلات التي تم العثور عليها. أيضاً، إذا كنت تستخدم هذا الإصدار من العميل وتلعب بمخططات واجهة المستخدم السابقة (landscape، portrait، square، wide)، فأنا أطلب منك إبلاغي إذا لم تجد أي مشاكل بعد لعب مباراة أو مباراتين؛ فاكتب لي على البريد الإلكتروني pasha@programmer-underworlds.dev، مشيراً إلى المخطط الذي استخدمته، ومذكراً بأنه لم يتم العثور على مشاكل. هذا ضروري لجمع معلومات اختبار تؤكد أن التغييرات التي أجريتها تركت المخططات السابقة سليمة. ستكون هذه معلومات قيمة لي وللمطورين للعميل الرسمي وستبسط عملية دمج التغييرات في عميل fumbbl.com الرسمي. سأكون سعيداً بصدق إذا وجدت هذه التغييرات مستخدميها وحسنت متعة عملية اللعب وأضافت الراحة أثناء اللعب! :)
أيضاً - إذا كنت أنت أو معارفك/أصدقاؤك/أفراد عائلتك تبحثون عن مطور Java Web - سأكون سعيداً إذا قدمت لهم ترشيحي، حيث أنني عاطل عن العمل خلال السنوات الثلاث الماضية. :) يمكنكم العثور على تفاصيل خبرتي المهنية عبر الرابط التالي: مقالات موصى بالقراءة ومكتوبة من قبلي:

أين تقوم بالتنزيل وكيف تشغل العميل الذي يتوفر فيه الواجهة الجديدة؟

إذا كنت مستخدم Windows

إذا كنت تستخدم Windows، فيمكنك تنزيل ملف exe عبر الرابط التالي: هنا. هذا أرشيف 7zip ذاتي الاستخراج، يتضمن العميل نفسه و Java 21 JVM، وهو ضروري لتشغيله دون الحاجة لتنزيل وتثبيت JVM منفصل. بعد تنزيل هذا الملف وتشغيله، سترى مربع حوار يطلب منك المكان الذي تريد استخراج العميل إليه. Screenshot of self extracting archive. اختر المسار واضغط على زر Extract، وبعد ذلك سيظهر دليل FantasyFootballClient في المكان المحدد. داخل هذا الدليل سترى المحتوى التالي: Screenshot of content of extracted client folder.
لتشغيل العميل، فقط انقر مرتين على FantasyFootballClient.exe. وسترى النافذة التالية: Screenshot window offering to click on jnlp file. انتقل إلى fumbbl.com وقم بتنزيل ملف jnlp، كما تفعل عادة لبدء اللعبة. Screenshot fumbbl.com window to download jnlp file. وفي نافذة العميل المفتوحة، انقر على زر Start game/spectate using JNLP file، وسترى نافذة منبثقة لاختيار ملف jnlp؛ اختره، وبعد ذلك سيقوم العميل بتحميل ملف jnlp، وسترى النافذة القياسية، كما لو كنت قد شغلت العميل باستخدام العميل الرسمي من fumbbl.com. من هذه اللحظة أنت تعرف كيف تتصرف لاحقاً! ;)

إذا كنت تستخدم Linux أو macOS

إذا كنت مستخدم Linux أو macOS، فإنني أوصي بتثبيت Java 21 قبل تشغيل العميل الجديد. إذا كنت على Linux، فأنت تعرف كيفية القيام بذلك، لذا لن أشرح لك ذلك هنا. ;) إذا كنت مستخدم macOS، فاكتب لي، وسأقوم بتحديث هذه الصفحة بإضافة تعليمات لمستخدمي macOS، إذا لم تكن الخطوات المذكورة أدناه كافية بالنسبة لك لفهم كيفية القيام بذلك. أفترض أن المستخدمين الذين يلعبون BB عبر fumbbl.com لديهم خبرة كافية لفهم ما هو مكتوب أدناه وتطبيقه على نظام التشغيل الخاص بهم. بعد تثبيت Java 21، يمكنك تنزيل ملف jar عبر الرابط: هنا. ولتشغيل العميل، يمكنك استخدام الأمر التالي:
     
        java -jar -Dsun.java2d.uiScale.enabled=false FantasyFootballClient.jar -noCoachNoConnection -build programmer-underworlds.dev
     
    
  • -Dsun.java2d.uiScale.enabled=false — هذا الوسيط (argument) سيمنع نظام التشغيل الخاص بك من تطبيق المقياس (scaling)، إذا قمت بضبطه لاحتياجاتك داخل نظام التشغيل. وهذا بدوره سيعلم JVM أنها لا تحتاج إلى تكبير تطبيق Java الذي تشغله بشكل إضافي. المقياس داخل العميل سيظل يعمل.
  • -noCoachNoConnection -build programmer-underworlds.dev — وسائط التطبيق مطلوبة للعميل نفسه لكي يقوم بتهيئة الواجهة بشكل صحيح.
أو إذا كنت مستخدماً خبيراً حقاً، يمكنك أيضاً تشغيل العميل بهذا الأمر:
     
        java -Dsun.java2d.uiScale.enabled=false -jar FantasyFootballClient.jar -jnlpOnInput "/path/to/jnlpFile.jnlp"
     
    

معلومات حول المستودع (Repository) والتغييرات التي تم إدخالها على عميل fumbbl.com الرسمي

من الجدير بالذكر أن التغييرات التي تم إدخالها على العميل متاحة في مستودع عام هنا. أقوم بعملي في فرع واحد يسمى my-live، وأقوم بإدخال جميع التغييرات فيه (أعلم أن هذا ليس طريق الجيداي). يعتمد الفرع my-live على فرع Live الحالي للمستودع الرسمي.
عند هذه النقطة أعتقد أن لديك معلومات كافية لتشغيل العميل بنجاح، وأتمنى لك لعبة ممتعة ونتائج جيدة في رميات النرد الخاصة بك! :)

الإمبراطور يحمي.