يمكنك استخدام العديد من محركات ألعاب بايثون لإنشاء ألعاب فيديو باستخدام مهاراتك في بايثون. محركات ألعاب بايثون الشهيرة هي Pygame وArcade وRen’Py، ولكل منها ميزات فريدة. في هذا الدرس، ستتعلم كيفية تثبيتها واستخدامها، وكيف تختلف هذه المحركات عن محركات الألعاب التقليدية المستقلة.
باستخدام بايثون، ومجموعة من محركات ألعاب بايثون الرائعة، يُسهّل تصميم ألعاب الكمبيوتر الرائعة أكثر من أي وقت مضى. في هذا الدرس، ستستكشف العديد من محركات الألعاب هذه، وتتعلم ما تحتاجه لبدء تصميم ألعاب فيديو بايثون الخاصة بك!
للاستفادة القصوى من هذا الدرس، يجب أن تكون مُلِمًّا ببرمجة بايثون، بما في ذلك البرمجة كائنية التوجه. فهم مفاهيم الألعاب الأساسية مُفيد، ولكنه ليس ضروريًا.
نظرة عامة على محركات ألعاب بايثون
غالبًا ما تكون محركات الألعاب لبايثون عبارة عن مكتبات بايثون، والتي يمكن تثبيتها بطرق متنوعة. معظمها متوفر على PyPI ويمكن تثبيته باستخدام pip. مع ذلك، يتوفر بعضها فقط على GitHub أو GitLab أو مواقع مشاركة الأكواد الأخرى، وقد تتطلب خطوات تثبيت إضافية. ستغطي هذه المقالة طرق تثبيت جميع المحركات المذكورة.
بايثون لغة برمجة عامة الأغراض، تُستخدم في مهام متنوعة بخلاف كتابة ألعاب الحاسوب. في المقابل، هناك العديد من محركات الألعاب المستقلة المصممة خصيصًا لكتابة الألعاب. من بينها:
تختلف محركات الألعاب المستقلة هذه عن محركات ألعاب بايثون في العديد من الجوانب الرئيسية:
- دعم اللغات: تُعدّ لغات مثل C++ وC# وJavaScript شائعةً في الألعاب المكتوبة بمحركات ألعاب مستقلة، حيث تُكتب هذه المحركات عادةً بهذه اللغات. قليلٌ جدًا من محركات الألعاب المستقلة يدعم بايثون.
- دعم البرمجة النصية الخاصة: بالإضافة إلى ذلك، تدعم العديد من محركات الألعاب المستقلة لغات برمجة نصية خاصة بها، والتي قد لا تشبه بايثون. على سبيل المثال، يستخدم Unity لغة C# بشكل أصلي، بينما يعمل Unreal بشكل أفضل مع C++.
- دعم المنصات: تستطيع العديد من محركات الألعاب الحديثة المستقلة إنتاج ألعاب لمختلف المنصات، بما في ذلك أنظمة الألعاب المحمولة والمخصصة، بجهد ضئيل. في المقابل، قد يكون نقل لعبة بايثون إلى منصات مختلفة، وخاصةً منصات الألعاب المحمولة، مهمةً شاقة.
- خيارات الترخيص: قد تحتوي الألعاب المكتوبة باستخدام محرك ألعاب مستقل على خيارات ترخيص وقيود مختلفة، استنادًا إلى المحرك المستخدم.
إذًا، لماذا نستخدم بايثون لكتابة الألعاب أصلًا؟ باختصار، بايثون. يتطلب استخدام محرك ألعاب مستقل غالبًا تعلم لغة برمجة أو لغة برمجة نصية جديدة. تستفيد محركات ألعاب بايثون من معرفتك الحالية ببايثون، مما يُقلل من صعوبة التعلم ويُمكّنك من التقدم بسرعة.
تتوفر العديد من محركات الألعاب لبيئة بايثون. تشترك جميع المحركات التي ستتعلم عنها هنا في المعايير التالية:
- إنها محركات شائعة نسبيًا، أو أنها تغطي جوانب الألعاب التي لا يتم تغطيتها عادةً.
- يتم صيانتها حاليًا.
- تتوفر لديهم وثائق جيدة.
بالنسبة لكل محرك، ستتعلم ما يلي:
- طرق التثبيت
- المفاهيم الأساسية، وكذلك الافتراضات التي يقوم بها المحرك
- الميزات والقدرات الرئيسية
- تنفيذان للعبة، للسماح بالمقارنة
عند الاقتضاء، يُنصح بتثبيت محركات الألعاب في بيئة افتراضية.
Pygame
عندما يفكر الناس في محركات ألعاب بايثون، أول ما يتبادر إلى أذهانهم هو Pygame. في الواقع، يتوفر دليل تمهيدي رائع عن Pygame على موقع “بايثون العربي”.
كُتبت Pygame كبديل لمكتبة PySDL المتوقفة، وهي تُغلّف مكتبة SDL، والتي تُشير إلى Simple DirectMedia Layer (طبقة الوسائط المباشرة البسيطة)، وتُوسّعها. تُتيح SDL الوصول عبر الأنظمة الأساسية إلى مكونات أجهزة الوسائط المتعددة الأساسية في نظامك، مثل الصوت والفيديو والفأرة ولوحة المفاتيح وعصا التحكم. بفضل تعدد الأنظمة الأساسية لكلٍّ من SDL وPygame، يُمكنك كتابة ألعاب وبرامج بايثون غنية بالوسائط المتعددة لجميع الأنظمة التي تدعمها!
تثبيت Pygame
يتوفر Pygame على PyPI، لذا بعد إنشاء بيئة افتراضية وتنشيطها، يمكنك تثبيته باستخدام أمر pip المناسب:
(venv) $ python -m pip install pygame
بمجرد الانتهاء من ذلك، يمكنك التحقق من التثبيت عن طريق تشغيل المثال الذي يأتي مع المكتبة:
(venv) $ python -m pygame.examples.aliens
بعد تثبيت Pygame، يمكنك البدء باستخدامه فورًا. إذا واجهت أي مشاكل أثناء التثبيت، فسيوضح لك دليل البدء بعض المشكلات المعروفة والحلول الممكنة لجميع المنصات.
المفاهيم الأساسية
يُنظّم Pygame من خلال عدة وحدات مختلفة، تُتيح وصولاً مُجرّداً إلى رسومات الحاسوب، والصوت، وأجهزة الإدخال. كما يُعرّف Pygame العديد من الفئات، التي تُغلّف مفاهيم لا تعتمد على الأجهزة. على سبيل المثال، يُجرى الرسم على كائنات Surface، التي تُحدّد حدودها المستطيلية بواسطة كائن Rect الخاص بها.
تستخدم كل لعبة حلقة لعب للتحكم في اللعب. تتكرر هذه الحلقة باستمرار مع تقدم اللعبة. يوفر Pygame توابع ودوال لتنفيذ حلقة اللعب، ولكنه لا يوفرها تلقائيًا. يُتوقع من مطور اللعبة تنفيذ وظائف حلقة اللعب.
يُطلق على كل تكرار لدورة اللعبة اسم إطار. في كل إطار، تُنفّذ اللعبة أربعة إجراءات أساسية:
- معالجة مدخلات المستخدم. تُعالج مدخلات المستخدم في Pygame باستخدام نموذج حدث. تُولّد مدخلات الماوس ولوحة المفاتيح أحداثًا، يُمكن قراءتها ومعالجتها، أو تجاهلها حسب رغبتك. لا يُوفّر Pygame نفسه أي معالجات أحداث.
- تحديث حالة كائنات اللعبة. يمكن تمثيل كائنات اللعبة باستخدام أي بنية بيانات Pygame أو فئة Pygame. يمكن إنشاء كائنات مثل العفاريت والصور والخطوط والألوان وتوسيعها في بايثون لتوفير أقصى قدر ممكن من معلومات الحالة.
- تحديث العرض ومخرجات الصوت. يوفر Pygame وصولاً مُجردًا إلى أجهزة العرض والصوت. تتيح وحدات display وmixer وmusic لمطوري الألعاب مرونةً في تصميم اللعبة وتنفيذها.
- الحفاظ على سرعة اللعبة. تتيح وحدة time في Pygame لمطوري اللعبة التحكم في سرعة اللعبة. من خلال ضمان اكتمال كل إطار ضمن مهلة زمنية محددة، يمكن لمطوري اللعبة ضمان تشغيلها بشكل متماثل على مختلف الأجهزة.
يمكنك رؤية هذه المفاهيم تتجمع معًا في مثال أساسي.
تطبيق الأساسي
يقوم برنامج Pygame الأساسي هذا برسم بعض الأشكال وبعض النصوص على الشاشة:

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

توفر رسومات Pygame بعض الوظائف الأساسية، ولكنها مصممة لتكون فئات فرعية بدلاً من استخدامها بشكل مستقل. لا ترتبط رسومات Pygame بصور افتراضية، ولا يمكن تحديد موقعها بشكل مستقل.
Pygame مكتبة قوية جدًا ورائدة، ولكن لها عيوبها. تُجبر Pygame مطوري الألعاب على بذل جهد كبير للحصول على نتائجهم. يقع على عاتق مطور اللعبة مسؤولية تطبيق سلوكيات العفاريت الأساسية وتطبيق متطلبات اللعبة الرئيسية، مثل حلقات اللعبة ومعالجات الأحداث الأساسية. ستكتشف لاحقًا كيف تُقدم محركات الألعاب الأخرى نتائج مماثلة مع تقليل حجم العمل المطلوب.
Pygame Zero
هناك العديد من الجوانب التي يجيدها Pygame، ولكن هناك جوانب أخرى تبدو قديمة. للمبتدئين في كتابة الألعاب، يُمكنهم إيجاد خيار أفضل في Pygame Zero. صُمم Pygame Zero للتعليم، وهو مُوجه بمجموعة بسيطة من المبادئ التي تهدف إلى أن يكون مثاليًا للمبرمجين الشباب والمبتدئين:
- اجعله في متناول الجميع: تم تصميم كل شيء للمبرمجين المبتدئين.
- كن محافظًا: ادعم المنصة المشتركة وتجنب الميزات التجريبية.
- فقط اعمل: تأكد من أن كل شيء يعمل دون الكثير من الضجة.
- تقليل تكاليف وقت التشغيل: إذا كان من المحتمل أن يفشل شيء ما، فافشل مبكرًا.
- الخطأ واضح: لا يوجد شيء أسوأ من عدم معرفة سبب حدوث خطأ ما.
- توثيق جيد: لا يكون الإطار جيدًا إلا بقدر جودة وثائقه.
- تقليل التغييرات الجذرية: لا ينبغي أن يتطلب الترقية إعادة كتابة لعبتك.
وثائق Pygame Zero سهلة الاستخدام للمبرمجين المبتدئين، وتتضمن برنامجًا تعليميًا شاملًا خطوة بخطوة. علاوة على ذلك، يدرك فريق Pygame Zero أن العديد من المبرمجين المبتدئين يبدأون البرمجة باستخدام Scratch، لذا يقدمون برنامجًا تعليميًا يوضح كيفية نقل برنامج Scratch إلى Pygame Zero.
تثبيت Pygame Zero
يتوفر Pygame Zero على PyPI، ويمكنك تثبيته مثل أي مكتبة بايثون أخرى على Windows أو macOS أو Linux:
(venv) $ python -m pip install pgzero
كما يوحي اسمه، فإن Pygame Zero مبني على Pygame، لذا تُثبّت هذه الخطوة Pygame كمكتبة تابعة. يتم تثبيت Pygame Zero افتراضيًا على منصة Raspberry Pi، أو Raspbian Jessie، أو إصدار أحدث.
المفاهيم الأساسية
يُؤتمت Pygame Zero العديد من المهام التي يتعين على المبرمجين تنفيذها يدويًا في Pygame. افتراضيًا، يُوفر Pygame Zero لمنشئ اللعبة ما يلي:
- حلقة اللعبة، لذا ليست هناك حاجة لكتابة واحدة
- نموذج حدث للتعامل مع الرسم والتحديث ومعالجة الإدخال
- معالجة موحدة للصورة والنص والصوت
- فئة sprite قابلة للاستخدام وطرق رسوم متحركة مفيدة لـ sprites المستخدم
بسبب هذه الأحكام، يمكن أن يكون برنامج Pygame Zero الأساسي قصيرًا جدًا:
"""
Basic "Hello, World!" program in Pygame Zero
This program is designed to demonstrate the basic capabilities
of Pygame Zero. It will:
- Create a game window
- Fill the background with white
- Draw some basic shapes in different colors
- Draw some text in a specified size and color
"""
# Import pgzrun allows the program to run in Python IDLE
import pgzrun
# Set the width and height of your output window, in pixels
WIDTH = 800
HEIGHT = 600
def draw():
"""Draw is called once per frame to render everything on the screen"""
# Clear the screen first
screen.clear()
# Set the background color to white
screen.fill("white")
# Draw a blue circle with a radius of 50 in the center of the screen
screen.draw.filled_circle(
(WIDTH // 2, HEIGHT // 2), 50, "blue"
)
# Draw a red-outlined square in the top-left corner of the screen
red_square = Rect((50, 50), (100, 100))
screen.draw.rect(red_square, (200, 0, 0))
# Draw an orange caption along the bottom in 60-point font
screen.draw.text(
"Hello, World! From Pygame Zero!",
(100, HEIGHT - 50),
fontsize=60,
color="orange",
)
# Run the program
pgzrun.go()
يتعرف Pygame Zero على أن الثابتين WIDTH وHEIGHT في السطرين 16 و17 يشيران إلى حجم النافذة، ويستخدم هذين البعدين تلقائيًا لإنشائها. بالإضافة إلى ذلك، يوفر Pygame Zero حلقة لعب مدمجة، ويستدعي دالة ()draw المحددة في الأسطر من 19 إلى 43 مرة واحدة لكل إطار لعرض الشاشة.
لأن Pygame Zero مبني على Pygame، فقد وُرِثت بعض أكواد رسم الأشكال. يمكنك ملاحظة أوجه التشابه في رسم الدائرة على السطر 29 والمربع على السطرين 34 و35.

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

Arcade
Arcade هو إطار عمل حديث بلغة بايثون لتصميم ألعاب برسومات وصوت جذابين. يتميز Arcade بتصميمه الموجه للكائنات، ويوفر لمصممي الألعاب مجموعة حديثة من الأدوات لتصميم تجارب ألعاب بايثون رائعة.
صُمم نظام Arcade من قِبل البروفيسور بول كرافن من كلية سيمبسون في آيوا، الولايات المتحدة الأمريكية، وهو مبني على مكتبة النوافذ والوسائط المتعددة Pyglet. يوفر النظام مجموعة من التحسينات والتحديثات والتحسينات التي تُضاهي Pygame وPygame Zero.
- يدعم رسومات OpenGL الحديثة
- يدعم تلميحات النوع في بايثون 3
- يدعم الصور المتحركة القائمة على الإطارات
- يتضمن أسماء الأوامر والدوال والمعلمات المتسقة
- يشجع فصل منطق اللعبة عن كود العرض
- يتطلب قدرًا أقل من التعليمات البرمجية النمطية
- يوفر وثائق جيدة الصيانة ومحدثة، بما في ذلك العديد من البرامج التعليمية وأمثلة كاملة لألعاب بايثون
- يحتوي على محركات فيزيائية مدمجة للألعاب من أعلى إلى أسفل وألعاب المنصات
يخضع Arcade للتطوير المستمر، ويحظى بدعم جيد في المجتمع، ولديه مؤلف يستجيب بسرعة للمشكلات وتقارير الأخطاء والإصلاحات المحتملة.
تثبيت Arcade
لتثبيت Arcade وتبعياته، استخدم أمر pip:
(venv) $ python -m pip install arcade
تتوفر تعليمات تثبيت كاملة، حسب نظامك، لأنظمة Windows وmacOS وLinux. يمكنك أيضًا تثبيت Arcade مباشرةً من المصدر إذا رغبت في ذلك.
المفاهيم الأساسية
يحدث كل شيء في Arcade في نافذة مُنشأة بحجم يُحدده المستخدم. يفترض نظام الإحداثيات أن نقطة الأصل (0، 0) تقع في الزاوية السفلية اليسرى من الشاشة، مع تزايد إحداثيات y كلما تحركت للأعلى. هذا يختلف عن العديد من محركات الألعاب الأخرى، التي تضع (0، 0) في الزاوية العلوية اليسرى وتزيد إحداثيات y كلما تحركت للأسفل.
في جوهرها، Arcade هي مكتبة كائنية التوجه. مع أنه من الممكن كتابة تطبيقات Arcade إجرائيًا، إلا أن قوتها الحقيقية تتجلى عند إنشاء شيفرة برمجية كائنية التوجه بالكامل.
يوفر Arcade، مثل Pygame Zero، حلقة لعب مدمجة ونموذج أحداث مُعرّف بدقة، ما يُتيح لك الحصول على شيفرة لعبة واضحة وسهلة القراءة. ومثل Pygame Zero، يوفر Arcade فئة رسوم متحركة قوية تُساعد في العرض وتحديد المواقع وكشف التصادمات. بالإضافة إلى ذلك، يُمكن تحريك رسوم Arcade المتحركة من خلال توفير صور متعددة.
adventurelib
بالطبع، لا تتطلب كل لعبة لاعبًا متحركًا على الشاشة، متجنبًا العوائق، ومقاتلًا الأشرار. أظهرت ألعاب الكمبيوتر الكلاسيكية، مثل “زورك“، قوة السرد القصصي الجيد مع توفير تجربة لعب رائعة. قد يكون تصميم هذه الألعاب النصية، المعروفة أيضًا باسم الخيال التفاعلي، صعبًا في أي لغة.
ومع ذلك، فهو ليس مخصصًا للمراهقين فقط! فـ adventurelib رائع لأي شخص يريد كتابة لعبة نصية دون الحاجة إلى كتابة محلل لغة طبيعية للقيام بذلك.
تم إنشاء adventurelib من قِبل مطوري Pygame Zero، وهو يتناول مواضيع متقدمة في علوم الحاسوب، مثل إدارة الحالة، ومنطق الأعمال، والتسمية والمراجع، ومعالجة المجموعات، على سبيل المثال لا الحصر. هذا يجعله خطوةً قيّمةً للمعلمين وأولياء الأمور والموجهين الذين يساعدون الشباب على تعلم علوم الحاسوب من خلال إنشاء الألعاب. كما أنه مثالي لتنمية مهاراتك في برمجة الألعاب.
تثبيت adventurelib
يتوفر adventurelib على PyPI ويمكن تثبيته باستخدام أمر pip:
(venv) $ python -m pip install adventurelib
adventurelib هو ملف واحد، لذلك يمكن أيضًا تنزيله من مستودع GitHub، وحفظه في نفس المجلد الذي يحتوي على لعبتك، واستخدامه مباشرةً.
Ren’Py
الرواية البصرية هي النسخة الحديثة من مغامرات النصوص الصرفة، التي تُبرز جانب السرد في اللعبة، مُقيّدةً تفاعلات اللاعبين، ومُضيفةً عناصر بصرية وصوتية تُثري التجربة. تُعدّ الروايات البصرية بمثابة الروايات المصورة في عالم الألعاب، فهي حديثة ومبتكرة وجذابة للغاية للإنشاء والاستهلاك.
Ren’Py أداة مبنية على Pygame، مصممة خصيصًا لإنشاء روايات بصرية. اسمها مشتق من كلمة يابانية تعني الحب الرومانسي، وتوفر أدوات وإطار عمل لإنشاء روايات بصرية جذابة.
للإنصاف، Ren’Py ليست مكتبة بايثون حصرية يُمكن تثبيتها واستخدامها بسهولة. تُنشأ ألعاب Ren’Py باستخدام مُشغّل Ren’Py، المُرفق مع مجموعة Ren’Py SDK الكاملة. يحتوي هذا المُشغّل أيضًا على مُحرّر ألعاب، مع إمكانية تعديل لعبتك باستخدام مُحرّر مُفضّل. كما تتميز Ren’Py بلغة برمجة نصية خاصة بها لإنشاء الألعاب. مع ذلك، فإن Ren’Py مبنية على Pygame، وهي قابلة للتوسيع باستخدام بايثون، مما يُبرر ظهورها هنا.
تثبيت Ren’Py
كما ذكرنا سابقًا، لا يتطلب Ren’Py حزمة تطوير البرامج (SDK) فحسب، بل يتطلب أيضًا مُشغّل Ren’Py. يتم تجميعهما معًا في وحدة واحدة، والتي يجب تنزيلها.
تعتمد معرفة الحزمة التي يجب تنزيلها وكيفية تثبيتها على نظامك. يوفر Ren’Py برامج تثبيت وتعليمات لمستخدمي Windows وmacOS وLinux.
بعد تثبيت الحزمة، يمكنك الانتقال إلى المجلد الذي يحتوي على حزمة تطوير البرامج (SDK) ثم تشغيل مُشغّل Ren’Py. على مستخدمي ويندوز استخدام ملف renpy.exe، بينما على مستخدمي ماك ولينكس تشغيل ملف renpy.sh. سيؤدي هذا إلى تشغيل مُشغّل Ren’Py لأول مرة.
المفاهيم الأساسية
تبدأ ألعاب Ren’Py كمشاريع جديدة في مُشغّل Ren’Py. إنشاء مُشغّل يُهيئ بنية الملفات والمجلدات المناسبة للعبة Ren’Py. بعد إعداد المشروع، يمكنك استخدام مُحرّرك الخاص لكتابة لعبتك، مع أن مُشغّل Ren’Py ضروري لتشغيل اللعبة.

تُحفظ ألعاب Ren’Py في ملفات تُسمى نصوصًا برمجية. لا تُعتبر نصوص Ren’Py كنصوص shell، فهي أقرب إلى نصوص المسرحيات أو البرامج التلفزيونية. نصوص Ren’Py لها الامتداد .rpy وهي مكتوبة بلغة Ren’Py. يمكنك أن تحتوي لعبتك على أي عدد تريده من النصوص البرمجية، والتي تُخزن جميعها في مجلد /game الفرعي ضمن مجلد مشروعك.
عند إنشاء مشروع Ren’Py جديد، يتم إنشاء البرامج النصية التالية لك لاستخدامها وتحديثها:
- gui.rpy، الذي يحدد مظهر جميع عناصر واجهة المستخدم المستخدمة في لعبتك
- options.rpy، الذي يحدد خيارات قابلة للتغيير لتخصيص لعبتك
- screens.rpy، الذي يحدد الأنماط المستخدمة للحوار والقوائم ومخرجات اللعبة الأخرى
- script.rpy، وهو المكان الذي تبدأ فيه كتابة لعبتك
محركات ألعاب بايثون الأخرى الجديرة بالملاحظة
هذه المحركات الخمسة ليست سوى عينة صغيرة من محركات ألعاب بايثون المتنوعة المتوفرة. هناك العشرات من المحركات الأخرى المتاحة، وبعضها جدير بالذكر هنا:
- تم تطوير Wasabi 2D من قِبل فريق Pygame Zero. وهو إطار عمل حديث مبني على moderngl، يُؤتمت عملية العرض، ويوفر روتينات فرعية لتأثيرات الرسوم المتحركة، ويحتوي على تأثيرات جسيمية مدمجة، ويستخدم نموذجًا قائمًا على الأحداث للعب.
- cocos2d هو إطار عمل مصمم لتطوير ألعاب متعددة المنصات. للأسف، لم يتم تحديث cocos2d-python منذ عام 2020.
- باندا 3D هو إطار عمل مفتوح المصدر لإنشاء ألعاب ثلاثية الأبعاد وعروض ثلاثية الأبعاد. يتميز باندا 3D بسهولة الحمل على مختلف المنصات، ويدعم أنواعًا متعددة من الأصول، ويتصل مباشرةً بالعديد من مكتبات الجهات الخارجية، ويوفر تحليلًا مدمجًا لخطوط الأنابيب.
- تم بناء Ursina استنادًا إلى Panda 3D، وهو يوفر محرك تطوير ألعاب مخصصًا يُبسط العديد من جوانب Panda 3D. Ursina، المدعوم جيدًا والموثق جيدًا، قيد التطوير النشط وقت كتابة هذه السطور.
- تُصنّف PursuedPyBear كمكتبة تعليمية. تتميز بنظام إدارة مشاهد، ورسوم متحركة مبنية على إطارات قابلة للإيقاف مؤقتًا، وسهولة الوصول إليها. الوثائق شحيحة، ولكن المساعدة متاحة عبر مناقشة على GitHub.
يتم إنشاء محركات ألعاب بايثون جديدة يوميًا. إذا وجدتَ محركًا يناسب احتياجاتك ولم يُذكر هنا، يُرجى ذكره في التعليقات!
مصادر أصول اللعبة
غالبًا ما يُمثل إنشاء أصول الألعاب أكبر مشكلة تواجه مطوري الألعاب. تُوظّف شركات ألعاب الفيديو الكبرى فرقًا من الفنانين ورسامي الرسوم المتحركة والموسيقيين لتصميم مظهر وصوت ألعابهم. قد يجد مطورو الألعاب المنفردون ذوو الخبرة في البرمجة هذا الجانب من تطوير الألعاب مُرهقًا. لحسن الحظ، تتوفر العديد من المصادر المختلفة لأصول الألعاب. إليك بعض المصادر التي كانت أساسية في تحديد أصول الألعاب في هذا البرنامج التعليمي:
- يستضيف موقع OpenGameArt.org مجموعة واسعة من فنون الألعاب، والموسيقى، والخلفيات، والأيقونات، وغيرها من الأصول للألعاب ثنائية وثلاثية الأبعاد. يُدرج الفنانون والموسيقيون أصولهم للتنزيل، والتي يمكنك تنزيلها واستخدامها في ألعابك. معظم الأصول متاحة مجانًا، وقد تنطبق شروط الترخيص على العديد منها.
- يستضيف موقع Kenney.nl مجموعة من الموارد المجانية والمدفوعة، والتي لا يتوفر الكثير منها في أي مكان آخر. نرحب دائمًا بالتبرعات لدعم الموارد المجانية، وجميعها مرخصة للاستخدام في الألعاب التجارية.
- Itch.io هو سوقٌ للمبدعين الرقميين يُركز على تطوير الألعاب المستقلة. هنا، يمكنك العثور على أصول رقمية لأي غرض تقريبًا، مجانيةً كانت أم مدفوعة، بالإضافة إلى ألعاب كاملة. يتحكم كلٌّ من المبدعين في محتواه الخاص، ما يعني أنك تعمل دائمًا مباشرةً مع أفراد موهوبين.
تحمل معظم الأصول المتاحة من جهات خارجية شروط ترخيص تُحدد الاستخدام السليم والمسموح به لهذه الأصول. بصفتك مستخدمًا لهذه الأصول، تقع على عاتقك مسؤولية قراءة شروط الترخيص وفهمها والالتزام بها كما حددها مالك الأصل. إذا كانت لديك أي أسئلة أو استفسارات بشأن هذه الشروط، يُرجى استشارة محامٍ للحصول على المساعدة.
تتوافق جميع الأصول المستخدمة في الألعاب المشار إليها في هذه المقالة مع متطلبات الترخيص الخاصة بها.
تهانينا، تصميم ألعاب رائع أصبح الآن في متناول يدك! بفضل بايثون ومجموعة محركات ألعاب بايثون عالية الكفاءة، يمكنك إنشاء ألعاب كمبيوتر عالية الجودة بسهولة أكبر من ذي قبل. في هذا البرنامج التعليمي، استكشفت العديد من محركات الألعاب هذه، وتعلمت المعلومات اللازمة لبدء تصميم ألعاب فيديو بايثون الخاصة بك!
الآن يمكنك اختيار محرك ألعاب بايثون الأنسب لك. ماذا تنتظر؟ انطلق واكتب ألعابك!
اكتشاف المزيد من بايثون العربي
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.