كيفية صنع ألعاب للأندرويد. فشل لمدة عام ، أو تجربة تطوير لعبة للأندرويد

أنا أصنع بالفعل لعبة Android الثالثة الخاصة بي باستخدام AndEngine.

أنا أحب المحرك وحتى الآن أنا راضٍ تمامًا من حيث الأداء الوظيفي وسرعة العمل. لذلك ، قررت أن أوضح كيفية العمل معها وإنشاء ألعاب لنظام Android.

  • المصادر (يمكنك استخدام المكون الإضافي Mercurial لـ Eclipse للتنزيل أو تنزيل أرشيفي باستخدام المحرك)
  • تطوير تطبيقات Android ، أشعل النار كبيرة وليست كبيرة جدًا

أنا نفسي لا أعتبر نفسي مبرمجًا رائعًا ولا أفهم حقًا كل تعقيدات العديد من التقنيات ، لذلك أكتب كما أفهم نفسي.

سأبدأ بالنقاط العامة:

1. رسومات.

يستخدم AndEngine مكتبة OpenGL لعرض الرسومات. يستخدم OpenGL لعمله ما يسمى بالنسيج أو أطالس الصور.

جميع الرسومات في الألعاب نقطية. يمكنك إنشاء نقوش متحركة في أي شيء - من Max 3D و Flash إلى Photoshop و Paint.

AndEngine يسمح لك بتحميل الرسومات إلى ملفات تنسيق PNGو JPG (هناك أيضًا SVG - تنسيق متجهلكن هذه قصة أخرى)

2. الأصوات والموسيقى.

من الأفضل تحويل جميع الأصوات والموسيقى الخاصة باللعبة إلى تنسيق OGG.

في هذه اللحظةيتم تطوير AndEngine في إصدار GLES2 (يستخدم OpenGL ES 2.0). الإصدار الآخر (الافتراضي) غير نشط ويستخدم OpenGL ES 1.0.

ما زلت أعمل مع OpenGL ES 1.0 بسبب القدرة على تشغيل الألعاب على أجهزة أكثر واقعية (مع نسخة أندرويد 2.2+) (مع إصدار Android 1.6+).

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

حسنًا ، لنبدأ.

في Eclipse ، اضغط على CTRL + N لإنشاء مشروع جديد. حدد مشروع Android.


دعنا نسمي المشروع شيئا.

اختر Android 2.2 أو أعلى. لاحقًا ، في البيان ، يمكنك تحديد التوافق مع Android 1.6.

الآن في مجلد srcمشروع ، نطرح مصادر AndEngine. وافتح ملف النشاط الوحيد لدينا:

نرى هذا الرمز:

حزمة com.drderico.example ؛ استيراد android.app.Activity ؛ استيراد android.os.Bundle ؛ تعمل الفئة العامة AndEngineExampleActivity على توسيع النشاط (/ ** يتم استدعاؤها عند إنشاء النشاط لأول مرة. * /Override public void onCreate (Bundle saveInstanceState) (super.onCreate (saveInstanceState) ؛ setContentView (R.layout.main) ؛))

استبدل كل الكود بهذا:

حزمة com.drderico.example ؛ استيراد org.anddev.andengine.engine.Engine ؛ استيراد org.anddev.andengine.entity.scene.Scene ؛ استيراد org.anddev.andengine.ui.activity.BaseGameActivity ؛ استيراد android.os.Bundle ؛ تعمل الفئة العامة AndEngineExampleActivity على توسيع BaseGameActivity (/ ** يتم استدعاؤها عند إنشاء النشاط لأول مرة. * /Override public void onCreate (Bundle saveInstanceState) (super.onCreate (saveInstanceState) ؛)Override public Engine onLoadEngine () (// TODO Auto- تم إرجاع كعب الأسلوب الذي تم إنشاؤه فارغًا ؛)Override public void onLoadResources () (// TODO الذي تم إنشاؤه تلقائيًا كعب روتين)Override public Scene onLoadScene () (// TODO الذي تم إنشاؤه تلقائيًا كعب الروتين إرجاع فارغ ؛)Override public void onLoadComplete ( ) (// كعب أسلوب TODO الذي تم إنشاؤه تلقائيًا))

لقد جعلنا نشاطنا سليلًا لفئة BaseGameActivity (تنتمي هذه الفئة إلى AndEngine) ورثنا 4 طرقًا مطلوبة:

  • المحرك onLoadEngine ()- يتم استدعاء الطريقة عند تحميل AndEngine نفسه. يتطلب منا إنشاء محرك مع بعض المعلمات ؛
  • باطل onLoadResources ()- تم استدعاؤه لتحميل الموارد الضرورية - الرسومات والموسيقى وما إلى ذلك. في ذلك ، سيتعين علينا تحميل موارد اللعبة في الذاكرة ؛
  • المشهد عند التحميل ()- عندما يتم تحميل جميع الموارد وإنشاء المحرك ، فإننا مطالبون بإنشاء المشهد الرئيسي (Scene) ، حيث سيتم رسم الرسومات وعرضها على شاشة الجهاز ؛
  • باطل onLoadComplete ()- يتم استدعاء هذه الطريقة عندما يتم تحميل وإنشاء كل شيء بنجاح. المحرك جاهز للعمل.

أستخدم هذا المتغير من هذا البيان:

لاحظ الخاصية android: icon = "@ drawable / icon"(السطر 7) - في المتغير الأول كان android: icon = "@ drawable / ic_launcher". يمكنك كتابة أي اسم ملف مع أيقونة التطبيق. فقط لا تنس تسمية الملف نفسه أيضًا. الرموز موجودة في مجلدات res / drawable-hdpi و res / drawable-ldpi و res / drawable-mdpi.

يقول السطر 9 الخاصية android: theme = "@ style / Theme.NoBackground". بقدر ما أتذكر ، هذا يسرع التطبيق قليلا ، لأنه. يعطل النظام من رسم خلفية غير مرئية حتى. يكتبون في المنتدى أنه بعد هذا التسارع ، زاد معدل الإطارات في الثانية من 45 إلى 60 !!! يُطلق على ملف النسق نفسه اسم theme.xml ويقع في مجلد الدقة / القيم. قم بإنشائه هناك والصق الأسطر التالية:

يحدد السطر 11 اتجاه التطبيق - في هذه الحالة android: screenOrientation = "Landscape"- عرضي. يمكن أن يكون أيضًا رأسيًا (عموديًا).

خاصية android: configChanges = "لوحة المفاتيح المخفية | الاتجاه"في السطر 10 يمنع النشاط من البدء مرة أخرى عندما يتغير اتجاه الشاشة. إذا لم تكتبه ، فسيتم إنشاء النشاط في كل مرة تقوم فيها بإيقاف / تشغيل الهاتف أو سيتجاوز التطبيق الخاص بك تطبيقًا آخر.

تحديث: إذا كنت تريد تسجيل التوافق مع Android 1.6+ ، فأدخل android: minSdkVersion = "4"بدلا من android: minSdkVersion = "8" . على الرغم من أن المحرك يتطلب Android 2.2+ لتجميع اللعبة ، إلا أن اللعبة ستعمل أيضًا بنجاح على 1.6+.

مرحبا ، Habrasobshchestvo!

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

معرفتي
منذ بعض الوقت لمدة عامين ، قمت بتطوير ألعاب لـ Windows Phone. خلال هذا الوقت ، تم إطلاق 6 ألعاب ، تم دفع 2 منهم فقط + نسخة تجريبية وجلبوا بضعة دولارات فقط ، والباقي مجاني بدون إعلانات. لقد طورت ألعابًا لهذه المنصة ، نظرًا لوجود XNA + C # ، لقد أحببت حقًا هذه المجموعة ، ولكن بعد ذلك كانت هناك شائعات ، ثم الحقائق التي تفيد بأن دعم XNA تم إيقافه. بدأ البحث عن محركات أخرى ، من بينها أحببت Unity أكثر. أقول على الفور أنني لا أريد الجدال حول استصواب استخدامه للألعاب الصغيرة ، فكل شيء يناسبني هنا ، حتى لو كان لدى المحركات الأخرى محرر ، C # ، متعدد المنصات ، إلخ. في ذلك الوقت ، لم يكن هناك دعم لـ Windows Phone في Unity حتى الآن ، لكن هذا لم يزعجني ، لأنه. لم أعد أرغب في التطوير لهذه المنصة ، على الأقل في الوقت الحالي (كما قال أحد الأصدقاء ، لماذا تركب حصانًا ميتًا). بصراحة كانت ألعابي ضعيفة لكن الاختيار كان. تم إغلاق اشتراك مطور Windows Phone ، وبدأت فترة جديدة من الدراسات والبرامج التعليمية ، وفي الواقع ، بدأ تطوير اللعبة.
اختيار اللعبة ، ابدأ
كما تعلم ، لا يمكنك أن تبدأ بواحد معقد. لهذا السبب ، بالنسبة للعبة التجريبية ، تم اختيار فكرة كنت قد بدأت بالفعل في تنفيذها تحت Windows Phone ، وهي لغز بأسلوب Pilot Brothers (لقطة شاشة) ، ولكن بآليات مختلفة قليلاً. في لعبتي ، عند النقر فوق كائن ، يتم تبديل الحالة ليس للصف بأكمله والعمود بأكمله ، ولكن فقط للكائن المحدد والكائنات المجاورة (أعلى ، أسفل ، يسار ، يمين). لعرض تأثير التبديل بصريًا ، تقرر استخدام التبديل المباشر أو الإشعال ، ولكن ما الذي يمكن أن يحترق؟ النجوم! لذلك ، تم اختيار اسم النجوم الساطعة بسرعة كبيرة. بدأت التنمية.

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

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

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

تم تنفيذ الانزلاق على شاشة اختيار المستوى. تم عرض جزء فقط من الرموز ذات المستويات على الشاشة (يعتمد حجم الجزء على حجم الشاشة) ، ويتم عرض الباقي عند التبديل باستخدام الزرين الأيمن والأيسر.

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

المستويات
في الإصدار الأول من اللعبة ، كنت أرغب في إنشاء 20 مستوى. حسنًا ، ستكون هذه لعبة ممتعة. بناءً على نصيحة حكيمة ، تم توسيع هذا الرقم إلى 100 تقريبًا (مخطط له). بالطبع ، لم أرغب في اختراع المستويات بنفسي والتحقق مما إذا كانت قابلة للحل. أنا مبرمج ، فلماذا تسخر من نفسك! بعد مرور بعض الوقت ، كان المولد جاهزًا ، والذي أعطى جميع المجموعات الممكنة من المستويات ذات الحجم المحدد ، ثم تحقق مما إذا كان المستوى قابلاً للحل ، ثم أخرجه إلى ملف نصي. كانت هذه أكبر مشكلتي مع هذه اللعبة. إذا كان حجم الملعب 4 * 4 ، فقد تم قياس عدد المستويات بعشرات الآلاف ، ثم بالنسبة للحقل 5 * 5 كان هناك بالفعل الملايين ، لحقل 6 * 6 ... حسنًا ، أنت تفهم. نعم ، أنا مبرمج ، يمكنني كتابة مولد ، يمكنني تعليمه لحل المستويات ، لكن لا يمكنني تعليمه اختيار المستوى الجميل وسيدخل اللعبة ، وأي واحد سيتم التخلص منه. لذلك ، يجب عرض كل هذه الملايين من المستويات واختيارها يدويًا. في البداية حاولت حتى ، ولكن بعد ذلك اكتشفت حجم الحركة (وأردت أن أجعل الملعب يصل إلى حجم 10 * 10) وشعرت بالمرض.

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

مثال على إنشاء المستوى

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

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

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

نسخة قديمة من الرسومات

القائمة الرئيسية مع خيارين للزر. بالطبع ، بعد الأول ، بدا الثاني رائعًا! حتى تم عمل النسخة النهائية.



نافذة معلومات اللعبة


نافذة اختيار المستوى



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

الرسم النهائي

تم توسيع القائمة الرئيسية مع أزرار الإعدادات (حتى لا تشوش الشاشة ، يتم تصغيرها في البداية وفتحها بالضغط على زر الإعدادات)


نافذة معلومات اللعبة


نافذة اختيار المستوى


نافذة بالمستوى أثناء اللعبة (أحد خيارات الخلفية ؛ هناك 3 في المجموع ، تم اختيارها عشوائيًا)



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

أيقونات

الخيارات الأولية للاختيار

الاصدار الاخير

ساعدني برنامج TexturePacker كثيرًا في ترتيب الرسومات ، أوصي به بشدة! لها ميزات مجانيةبما يكفي لأغراضنا ، وهي تجمع الأطالس بشكل جيد حقًا. لقد أعددت عدة أطالس - واحدة للأزرار ومجموعتين لأشياء اللعبة (مع الترجمة إلى الروسية و اللغات الإنجليزية). صحيح ، في نسخة قديمةالوحدة ، اضطررت إلى قطع القطع الضرورية باستخدام إحداثيات الأشعة فوق البنفسجية ، وهو أمر غير مريح إلى حد ما. في نسخة جديدةيمكن للوحدة أن تجعل الأمور أسهل بكثير مع العفاريت.

الأصوات والموسيقى
لا توجد مشاكل هنا. هناك العديد من الموارد حيث يمكن شراء الأصوات أو أخذها مجانًا. لأن لم تكن هناك ميزانية ، اخترت العديد من الأصوات والألحان المناسبة التي تتيح لك هذه الموارد تنزيلها مجانًا ، أي كل شيء قانوني تمامًا وبدون سرقة (نعم ، هذا مهم بالنسبة لي).
كانت الفكرة الرئيسية هي خلق بيئة هادئة يمكن للاعب أن يفكر فيها مع موسيقى هادئة في الخلفية. لكن التحديث الأول للعبة غير الموقف - تمت إضافة المزيد من الموسيقى الإيقاعية مع القدرة على تحديد اللحن المطلوب (هادئ أو سريع) في الإعدادات.
الإصدار ، الترويج ، النتائج
ألاحظ أنني كنت سأطلق اللعبة لنظام Android فقط ، لأن. لدي هاتف مناسب ، لكن لا توجد أجهزة iOS يمكنني اختبار اللعبة عليها ، ولا أريد إطلاقها بدون اختبار حقيقي. كان أيضًا السبب في أن التسجيل في تطبيقات جوجلهي دفعة لمرة واحدة قدرها 25 دولارًا ، بينما يتعين على Apple دفع 99 دولارًا كل عام. ربما سأطلق اللعبة لنظام iOS ، لكن بعد ذلك بقليل.

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

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

اللعبة مجانية. تم اختيار الإعلان لتحقيق الدخل. أثناء عملية التطوير ، أردت توصيل عدة وحدات - إذا لم يكن من الممكن عرض واحدة ، اعرض الثانية ، إلخ. تم توصيل Chartboost المشهور أولاً ، ثم حاولت توصيل RevMob و PlayHaven ، لكن بعض العقبات جاءت معهم (بصراحة ، لم يعملوا في اللعبة ، لم أعرف السبب) ، لذلك كان هناك فقط وحدة واحدة متبقية ، يجب أن يأتي منها كل الدخل. ولكن إذا أخذت في الاعتبار ما سبق (عدد التنزيلات ورغبة المستخدمين في النقر فوق الإعلانات أو تثبيت الألعاب المُعلن عنها) ، فأنت تدرك أنه لا يوجد دخل.

الاستنتاجات
كما يقولون ، النتيجة السيئة هي أيضًا نتيجة. منذ بداية التطوير على الوحدة (حان وقت هاتف ويندوزلا أعتقد) استغرق الأمر حوالي 14-15 شهرًا قبل الإصدار. بطريقة جيدة ، مثل هذه اللعبة مكتوبة في شهر من العمل بدوام جزئي ، وبعد ذلك يكون هذا بهامش. كان السبب ضيق الوقت. لا ، كان هناك وقت كافٍ - كانت بضع ساعات في المساء ، وبضع ساعات في عطلات نهاية الأسبوع كافية لمواصلة اللعبة دون توقف طويل. وافتقرت إلى الروح المعنوية. خلال هذه الفترة ، كان هناك الكثير من المشاكل الشخصية ، بينما كانت هناك رغبة في صنع لعبة ، كانت هناك أفكار ، لكني جلست على الكمبيوتر ، وحدقت بصراحة في الشاشة ، ثم أدركت أنه ليس لدي أي إلهام ، لم أتمكن من تنفيذ أي شيء على الإطلاق ، وقمت بإيقاف تشغيله. وهكذا مرت السنة.

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

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

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

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

العلامات: إضافة العلامات

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

تطوير الفكرة

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

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

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

إنشاء نموذج الكائن والمواصفات

قبل أن تبدأ البرمجة ، يجب أن تحل قائمة معينة من المشاكل. ويشمل:

  • نموذج الكائن.
  • المواصفات الفنية.
  • الواجهة والمحتوى.

نموذج الكائن هو وصف مفصلكل شيء في اللعبة. يمكن أن يكون هذا هو اللاعب نفسه مباشرة ، وأي عناصر (أسلحة ، دروع ، وما إلى ذلك) ، خصائص فريدة ، أشياء من العالم المحيط.

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

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

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


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

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

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


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


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

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

تحتل Construct 2 المرتبة الأولى في الشعبية ، وهناك إصدار أولي مجاني ، والذي يتمتع بوظائف واسعة لإنشاء لعبة من أي نوع. يسمح لك البرنامج بتطوير لعبة ليس فقط لنظام التشغيل نظام الاندرويد، ولكن أيضًا لنظام iOS ، وحتى للمتصفح (باستخدام HTML5). حتى المبتدئين يمكنهم إتقان البرنامج بسهولة. إذا كانت الوظيفة لا تكفيك ، يمكنك الشراء النسخة الكاملةمقابل 129 دولارًا.


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

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


من السهل التعلم هو منشئ Game Maker. باستخدامه ، يمكنك إنشاء مشروع لأنظمة iOS و Android و Mac و XBox وحتى PS3. في البداية ، تم تطوير البرنامج كتطبيق تعليمي للأطفال ، لذلك لن تواجه أي مشاكل في إتقانه. كدليل تعليمي ، هناك عملية إنشاء لعبة بكمن.

ميزة أخرى لا جدال فيها لـ Game Maker هي القدرة على تعديل الوظائف القياسية. يمكنك "حفر" في الكود ، وكذلك وصف كل من الإجراءات بنفسك. تحتوي GML (GameMaker Language) على العديد من الأساليب القوية بالإضافة إلى بناء جملة واضح. لسوء الحظ ، لدى المُنشئ بعض العيوب ، على وجه الخصوص ، تعقيد تصحيح الأخطاء ، فضلاً عن السلوك غير المستقر للتطبيق على الأنظمة الأساسية المختلفة.

كيف تصنع لعبة على أندرويد؟











صنع لعبة لأي شخص نظام التشغيليفترض معرفة البرمجة. حتى بالنسبة لأبسط الألعاب مثل Flappy Bird ، فأنت بحاجة إلى معرفة الأساسيات. لنلقِ نظرة على كيفية إنشاء اللعبة باستخدام نظام التشغيل Android كمثال.

محرك

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

يحتوي هذا المحرك على الكثير من الميزات ولديه تعليمات للاستخدام باللغة الروسية. المحرك متعدد المنصات ، وبالتالي فإن اللعبة التي سيتم كتابتها عليه يمكن تثبيتها على منصات أخرى.

بيئة البرمجة

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

أنشئ مشروعًا

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

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