المشي عبر الأشباح في Pac-Man

هذه المقالة جزء من كتابي Bug Voyage: A Tour of Classic Game Glitches. يحتوي الكتاب أيضًا على معلومات حول إنشاء أرقام عشوائية زائفة ، وإجراء حسابات منخفضة المستوى بأرقام ثنائية وعشرية ، وكذلك حول كيفية التسبب في فشل في أي جهاز Galaga ، حتى دون إسقاط العملات المعدنية هناك.

إذا كان لديك آلة Pac-Man Arcade بالقرب منك ، السيدة باك مان أو شيء من هذا القبيل ، أنت محظوظ ، اليوم هناك نقص في المعروض. حتى آلات "20 عام لم الشمل" الشائعة جدًا في الماضي ، حيث تم تثبيت السيدة معًا بات مان وجالاجا الآن أقل شيوعًا.

ولكن لفهم ما سيتم مناقشته ، يكفي تنزيل مقطع فيديو من YouTube حول إحدى هذه الألعاب ومشاهدته في دقيقة واحدة فقط:


هل لاحظت. كيف يتحرك باك مان والأشباح بسلاسة عبر المتاهة؟ ينزلقون بثقة ووضوح.

هذا السيولة ، كما سنرى ، هو وهم ، وهذا ليس كل شيء. هنا فيديو يوتيوب آخر:


تم تحميله بواسطة Jamey Pittman ، مؤلف مقال Pac-Man Dossier ، والذي كان مصدرًا لمعظم معلومات Pac-Man لكتابي. تم إرجاع الفيديو قليلاً لتوفير الوقت. نلقي نظرة عليها. على وجه الخصوص ، راقب Pac-Man والشبح الأحمر (يقول الدليل أن اسمه Blinky). لاحظ ما يحدث في الثانية والأربعين!

هل رأيت؟ مشى باك مان من خلال شبح أحمر دون مشكلة! كيف حدث هذا؟ هل من الممكن التأكد من أن هذا يحدث طوال الوقت؟

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


باك مان

ما هو العفريت؟


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

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

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

آلة ممر المعدات Pac-Man يدعم رسومات العفريت. يمكن عرضه على الشاشة حتى ثمانية رموز متحركة في المرة الواحدة ، وهذا بدون استخدام الحيل مع خطوط المسح. واحدة من العفاريت هي صورة باك مان نفسه ، بالإضافة إلى أربعة أشباح أخرى يستخدمها الأشباح. عندما يأكل باك مان الشبح ، فإن عينيه تعودان إلى المنزل تستخدم شبح الشبح.

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

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

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

حسنًا نعم ، هذا مثير للاهتمام. لكن ماذا بعد؟

أساسيات عالم باك مان


عندما كنت طفلاً ، كتبت ألعابًا صغيرة على Microsoft BASIC لـ Commodore 64 الخاص بي. واجه هذا التنفيذ لـ BASIC مشاكل. تم تنفيذ البرامج ببطء ولم تستخدم أبدًا موارد الصوت والرسوم البيانية للكمبيوتر ، والتي كانت مذهلة في وقتها. إذا كنت ترغب في القيام بشيء ما باستخدام الرسومات والصوت ، فسيتعين عليك تعلم أوامر الوصول المباشر للذاكرة التقنية المشفرة المسماة POKEs ، أو تعلم الكتابة في رمز الجهاز.

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

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

يجب أن تكون قد خمنت ما أقود إليه. لأن هذه هي الطريقة التي تمت بها برمجة Pac-Man .

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

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

للحفاظ على هذا الوهم ، يجب أن تذهب اللعبة إلى الحيل. إنها تتتبع مدى انتقال Pac-Man والأشباح من خليتهم الحالية على مستوى المشترك ، وتحولهم إلى موقع جديد عندما يكونون بعيدًا بما فيه الكفاية. سيكون للجسم الأسرع قليلاً سرعة تجعل تغيير الخلايا أكثر قليلاً.

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

الحساب


الآن لدينا كل المعلومات التي تحتاجها لفهم كيف يمكن لـ Pac-Man المرور عبر الأشباح.

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

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


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

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

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

الذكاء الاصطناعي (AI) في اللعبة له طبيعة حتمية ، لذلك يمكنك تحديد نمط لتكرار السلوك. على الرغم من حقيقة أن وقت إظهار الخطأ عند المرور يجب أن يكون دقيقًا للإطار ، لا يجب أن يكون اللاعب دقيقًا للإطار إذا اتبع القواعد الخاصة بتنفيذ أنماط حركة Pac-Man. هكذا تم تسجيل فيديو جيمي بيتمان.

قدمت وصفا مفصلا للتأكيد على حقيقة مهمة. من السهل جدًا رؤية الأشياء في اللعبة على أنها حقيقية. Pac-Man هو شيء على الشاشة ، والأشباح هي أيضًا أشياء مثل سفينة الفضاء ، Mario ، Sonic ، Solid Snake ، جندي من Call of Duty. كلها أشياء. لكن هذا وهم.

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

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

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

معلومات إضافية


أدخل عملة معدنية في آلة آركيد "20 Year Reunion" وادخل بعصا التحكم الخاصة باللاعب الأول: لأعلى ، لأعلى ، لأعلى ، لأسفل ، لأسفل ، لأسفل ، يسار ، يمين ، يسار ، يمين ، يسار. إذا تحول شبح شاشة تحديد اللعبة إلى اللون الوردي وسمعت صوتًا ، فإن كل شيء يتم بشكل صحيح. الآن ، إذا اخترت لعبة السيدة Pac-Man ، ستلعب Pac-Man الأصلي بدلاً من ذلك.

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

في هذا الصدد ، فإن وحدة تحكم Atari VCS / 2600 جديرة بالملاحظة ، لأن معظم رسومات النظام تم إنشاؤها باستخدام الحيل مع خطوط المسح. اقرأ المزيد عن هذه التقنيات في كتاب Racing The Beam .

مصادر:
ملف عن باك مان: http://www.gamasutra.com/view/feature/3938/the_pacman_dossier.php؟print=1
قناة Jamie Pittman على YouTube: https://www.youtube.com/user/jameypittman/videos

Source: https://habr.com/ru/post/ar403115/


All Articles