تغطية الشبكة العربية لمطوري الألعاب
لمؤتمر صناعة الألعاب العالمي في مونتريال
2006 Montreal International Game Summit - 2006
- إعداد : وسام البهنسي
- الموقع : Palais des congrès - Montreal – Canada
الأربعاء، الثامن من نوفمبر. الساعة التاسعة والربع صباحاً
هااااه. هأنذا أرتمي على مقعدي المريح خلف المكتب، لأقوم بتشغيل شاشَتَي الكمبيوتر أمامي لأبدأ يوماً جديداً في هذه الشركة التي لا تتوقف... اللطيف أن نظام EA في مونتريال ما زال بكراً بعد ولم يتم "تنظيمه" تماماً كما هو الحال في بقية استديوهاتها في أرجاء العالم. هنا يمكنك الدخول والخروج متى شئت طالما أن العمل يسير على ما يرام (وهو ليس الحال دائماً للأسف).. المهم... بدأت في مطالعة البريد، لأجد رسالة من قائد المبرمجين تخبرني بتفاصيل الدخول إلى مؤتمر صناعة الألعاب العالمي في مونتريال غداً...
هممم... التفت إلى زميلي فريد (Fred) متسائلاً:
ما رأيك بالموضوع؟ هل ستذهب؟
فكر قليلاً ثم رد بإنجليزيته التي تنافس فرنسيتي في الرداءة:
أعتقد هذا.
أنا جد متحمس لرؤية ذلك الوغد الذي سيقوم بتقديم البحث عن ال Realtime Skin Sliding.
ضحك فريد (وهو بالمناسبة يضحك لأي شيء) وهز رأسه قائلاً:
أنا أفهم موقفك...
قلت له وقد ارتسم الغل على ملامحي:
لا أدري إلى أية مرحلة وصل ببحثه هذا، لكني أشك بأنه قد غطى الأمور التي قمت أنا بتغطيتها في بحثي...
طبعاً القصة باختصار للقراء الأعزاء هي أنني كنت قد بدأت بحثاً في هذا المجال منذ شهرين، فقط لأفاجأ بأن المؤتمر سيقدم محاضرة بنفس عنوان البحث الذي أقوم به... أكملت حديثي قائلاً:
إذن سأكون هناك غداً لأرى النتائج...
ارتسمت ملامح الاستغراب على وجه فريد وقال:
ظننت أن المؤتمر يبدأ اليوم.
هنا جاء دوري في الاستغراب:
هل أنت متأكد؟
المشكلة أنني أعرف ظن فريد. عندما يظن فإنه يكون متيقناً في الواقع... قمت بفتح موقع المؤتمر مباشرة وبدأت أقرأ جدول المحاضرات... تباً!! إنه محق كما توقعت! والأسوأ من ذلك أن محاضرتي الأثيرة تبدأ في العاشرة والربع، أي بعد نصف ساعة فقط من الآن...
هنا دخل أندرو (Andrew) في الموضوع سائلاً إياي عن المحاضرة التي سأذهب إليها، فأجبته باسمها... فقال:
آي ثوء ذاء إء واز أباوء كانتنتء...
في حال كونك لم تلاحظ بعد، فإن أندرو هو واحد من هؤلاء البريطانيين الذين يتحدثون بلهجة الكوكني اللعينة. لذلك استغرق مني الموضوع حوالي 50000 cycle من المعالجة حتى اكتشفت أنه يقول:
I thought that it was about content...
فرددت عليه قائلاً:
همم. لكنه أعطى لمحة برمجية عن الموضوع في الموقع. أي أنني أتوقع أنه سيتحدث من منطلق برمجي وليس منطلق فني. المشكلة أن سيرجي (Sergei) لم يحجز اسمي اليوم في المؤتمر، فكيف سأدخل؟
أكشءلي يو
(عفواً سأترجم حديثه فوراً):
في الواقع يمكنك أن تأخذ بطاقة الدخول لأي شخص مسجل اليوم.
من تقترح؟
أنا لدي بطاقة لليوم في الواقع.
وقال فريد:
وأنا لدي واحدة أيضاً.
طبعاً كان الخيار واضحاً بالنسبة لي، الإنجليزية الرديئة خير لي من لهجة الكوكني اللعينة هذه، كما أن الرجل لطيف ونحن متفاهمان ونعمل في نفس المجال (برمجة الرسوميات)، دعك طبعاً من ميلي الدائم لمشاكسته كل ما سنحت لي الفرصة... إذاً:
فريد. هيا بنا... ستبدأ المحاضرة في ربع ساعة...
هكذا توجهنا إلى المؤتمر والذي يبعد فقط مسيرة عشر دقائق عن موقع EA لحسن الحظ. درجة الحرارة 8 (فوق الصفر)، ورذاذ مطر خفيف محبب للنفس يتناثر على وجوهنا لينعشنا في هذا الصباح الغريب. المشكلة أنني لست مستعداً بأدوات الصحفي التي أحتاجها لتغطية المؤتمر بشكل جيد. تباً... لا تصوير اليوم إذاً...
الأربعاء، الثامن من نوفمبر. الساعة العاشرة وعشر دقائق صباحاً
انتهينا من إجراءات الدخول وأعطاني فريد دفتراً صغيراً ثم تمنى لي وقتاً طيباً وتوجه عائداً إلى الشركة. طبعاً نسي الذكي أن يعطيني قلماً مع الدفتر، إذن لا فائدة من الدفتر كذلك. لا بأس... سأرتجل.
جميع هؤلاء الزوار لهم علاقة بتطوير الألعاب بشكل أو بآخر تباً... إنهم كثيرون!
في نهاية هذا الممر نجد قاعة المحاضرات الخاصة بالكلمات الافتتاحية
مونتريال في أحد أيامها "الصحوة" في الحقيقة... عادة تكون الأمور أسوأ مما نراه هنا
توجهت للقاعة إياها لأجد غريمي واقفاً خلف المنصة وقد استعد للبدء في المحاضرة. ثم بدأ بالحديث...
المحاضرة الأولى: Kees Rijnen (Bioware): Realtime Skin Sliding. Presented by Autodesk
بدأ كيس (هذا هو اسم المحاضر لو لاحظت، وليس الكيس الذي تحمل الأغراض فيه) بتقديم نفسه ك Technical Animator بخلفية فنية (Art Background). ثم بدأ بذكر المشاكل الحالية في ال skinning للشخصيات في الأفلام والألعاب، ثم طرح مفهوم إكساء العضلات وكيف أنها تساعد في حل هذه المشاكل وإضفاء الواقعية على الشخصيات. تلا ذلك شرح وافٍ لطريقته في نقل مفهوم إكساء العضلات ليعمل بسرعة مقبولة للألعاب، وذلك عن طريق استخدام أشكال هندسية parametric، كالكرة والكبسولة، حيث يتم إزاحة ال vertices التي تلامس هذه الأشكال بحيث تنساب على سطوح هذه الأشكال. كمثال جيد، عرض مقطعاً متحركاً لعين تتحرك من وراء جفن مغلق، ومفصل الكوع لذراع تنثني وتنفرد. ثم تم عرض بعض المقاطع المثيرة للاهتمام تظهر كيف يمكن تحريك هذه الأشكال من تحت الجلد للحصول على نتائج معقدة كارتجاج عضلات الفخذ أثناء الجري مثلاً. ثم اتخذت المحاضرة اتجاهاً بعيداً نوعاً حيث عرض تطبيقات هذا النظام في ال Cloth Animation. الأمر الذي بدا هجيناً نوعاً ما وليس بنجاح التطبيقات الأساسية للجلد. بعد أن انتهى كيس من إلقاء محاضرته صفق له الجمهور، وتلا ذلك فترة قصيرة للأسئلة قبل انتهاء المحاضرة تماماً.
كان هذا سرداً حيادياً لأحداث المحاضرة. أما الآن فسأتحدث عن بعض التفاصيل من وجهة نظري لأن الموضوع كان يمسني بشكل شخصي تقريباً. لقد أصبت بخيبة الأمل منذ البداية بسبب خلفية المحاضر الفنية، مما أدى لخلو المحاضرة من أية code برمجي. ثانياً، لم يقم المحاضر بتطبيق بحثه في ال real-time بعد! كل ما كان يقوله من حين لآخر هو عبارات على غرار: "أعتقد أن هذه يمكن تطبيقها في ال real-time"، أو "هذه قد يكون تطبيقها صعباً في ال real-time لكني لست متأكداً". هذه النقطة وحدها هبطت بمصداقيته إلى الحضيض في نظري. ثالثاً، رياضياته كانت تشكو من ضعف واضح، فهي بطيئة وغير مضمونة. ويبدو أن كراهيتي للمحاضر قد بلغت حداً فلكياً لأن جهاز الإسقاط (projector) انفجر في منتصف المحاضرة بدون أي سبب واضح، لتتوقف المحاضرة عشر دقائق قبل أن يتم استبدال ال projector بآخر جديد! رابعاً: بسبب عدم تطبيقه للبحث في ال real-time فقد غابت عنه حقيقة هامة عن ضرورة تنفيذ حسابات معقدة على ال normals كي تظهر الأجسام بعد ال skinning بشكل سليم. احتفظت بهذه الملاحظة لنفسي حتى حان وقت الأسئلة، فقررت لحظتها أن وقت الانتقام قد حان، فرفعت يدي بالسؤال الوحيد الذي طُرِح في المحاضرة. أشار لي كيس بأن تفضل، فتوجهت بخطى ثابتة نحو المايكروفون وقلت:
سؤالي من كلمة واحدة فقط... Normals؟
هنا فكر كيس قليلاً ثم قال:
نعم. ما المشكلة؟
طبعاً دلني هذا على جهله التام بهذه النقطة، لذا قررت أن أوضح السؤال أكثر:
كيف تقوم بحساب ال normals بعد أن تطبق حسابات الإزاحة على ال vertices؟
فكر لمدة أطول، ثم رد بقليل من التلعثم:
أنا لا أقوم بحسابها. فقط أتركها كما هي. في الحقيقة أنت لست مضطراً لإعادة حسابها. فقط استخدم ال normals الأصلية وستكون النتائج مقبولة.
ابتسمت بخبث، وقلت وأنا أتراجع عن المايكروفون:
شكراً.
لقد نفذت انتقامي على أكمل وجه! الآن جميع الحضور يعرفون أن هذا الشخص كان فقط "يهرف" بما ليس له به علم، لأن جوابه على سؤالي كان غير منطقي بالمرة. طبعاً لم يكن يعرف الأحمق أن برنامج ال 3D الذي يستخدمه كان يعيد حساب ال normals للجسم بعد كل تغيير على إحداثيات ال vertices، وهو أمر غير اقتصادي بالمرة إن كنا نتحدث عن عالم الألعاب... إذن بحثي ما زال بخير!
خرجت من المحاضرة شاعراً بخليط من المشاعر هي الانزعاج والسعادة والرضا. الانزعاج بسبب إضاعة وقتي في هذا الهراء، والسعادة لأن البحث كان أغبى مما توقعت، والرضا لأنني حققت انتقامي في النهاية (رغم أن المسكين حتى لم يسمع باسمي من قبل)...
(اضغط هنا لتحميل التسجيل الصوتي للمحاضرة - 3.24 MB)
الأربعاء، الثامن من نوفمبر. الساعة الحادية عشرة والنصف ظهراً
المحاضرة التالية تبدو مهمة، وهي عن الذكاء الصناعي. هنا رأيت مجموعة من زملائي في العمل قادمين للحضور معي. دعني أعرفك عليهم بسرعة، الأول هو أندرو ولقد قابلناه معاً هذا الصباح. أما هذا الشاب الأسمر الطويل فهو تولجا (Tolga) وهو تركي، وأخيراً زميلي روك (Roch) وهو شخص لطيف حقاً كما تظهر ملامحه (كندي بالمناسبة).
واء دو يو ثينكء أوف ذاء بريزينتيشن؟
هذه كانت من أندرو طبعاً، وإن لم تستنج ما قال بعد، فقد كان يسأل:
What do you think of that presentation؟
هززت رأسي بما معناه أنها مخيبة للآمال، ثم توجهنا جميعاً إلى المحاضرة التالية...
المحاضرة الثانية: Dr. Alexander Naraeyek (University of Singapore): Game AI is Dead. Long Live Game AI! Presented by A2M
قدم أليكساندر نفسه للجمهور كدكتور في الذكاء الصناعي يعمل حالياً في الجامعة الوطنية في سنغافورة، لأنهم "يضخون الكثير من الملايين لهذه الأبحاث هناك" على حد قوله. بدأ الحديث عن وظائف ال AI الشائعة هذه الأيام في عالم الألعاب، كال Path Finding وال Steering. برأي ألكسندر فإن هذه الأبحاث قد انتهت ولم يعد هناك جدوى من دراستها أكثر لأننا وصلنا لنتائج مرضية بالفعل، لكنه أبدى استغرابه من بعض الألعاب الحديثة جداً لكنها ما زالت تعاني من مشاكل كبيرة في ال Path Finding. المهم أن النتيجة هي أن البحث في الذكاء الصناعي قد مات ولم يعد أحد يهتم بتطويره أكثر من ذلك، وكان هذا هو الجزء الأول من عنوان المحاضرة (Game AI is Dead).
بعد ذلك يعود ألكسندر ويطرح مجموعة جديدة من المشاكل الأخرى في ذكاء الألعاب اليوم، ألا إن أغلب هذه المشاكل تنضوي تحت قائمة الذكاء الصناعي عالي المستوى (High Level AI). وهكذا يعتقد ألكسندر أن هذا هو المجال الجديد لأبحاث ال AI اليوم، وهذا يحقق النصف الآخر من عنوان المحاضرة (Long Live Game AI).
في النهاية، أخذ ألكسندر بالحديث عن عمله في سنغافورة وكيف افتتح قسم الذكاء الصناعي في الجامعة الوطنية. واستمر في الحديث هكذا محولاً الموضوع إلى حملة دعائية بحتة تتحدث عن الجامعة إياها بهدف توظيف المهتمين في العمل بهذا المجال بتمويل مفتوح على حد زعمه. طبعاً بعد انتهاء هذا الفاصل الإعلاني صفق الجميع لخلاصهم من هذه الورطة، ثم مرت فترة الأسئلة بشكل سريع قبل أن يخرج الجميع لالتقاط وجبة الغداء المجانية في صالة العرض.
تعليق جانبي: لم أستطع أن أحب هذا الرجل حقاً، خصوصاً عندما بدأ بالتشدق بجامعته السنغافورية إياها... أعتقد أنني كرهته كذلك لأنه يبدو أنه قد أصيب بلعنة هو الآخر، فقد توقفت أفلامه عن العرض وأصبحت تظهر سوداء تماماً ولم نستطع رؤية أي شيء منها، مما تسبب له بالكثير من الإحراج أمام الجمهور. هممم... لم أعلم أنني أملك موهبة نحس الآخرين من قبل...
الأربعاء، الثامن من نوفمبر. الساعة الواحدة والنصف ظهراً
الآن حان وقت الكلمة الافتتاحية (keynote) الثانية للمؤتمر. هذه الكلمة ذات أهمية خارقة بالنسبة لي وذلك بسبب طبيعة الشخص الذي سيلقيها... إنه كين بيرلين (Ken Perlin) شخصياً!! هذا الشخص هو أسطورة في عالم الجرافيكس. لا بد أنك قد تعاملت مع أبحاثه من قبل بشكل مباشر أو غير مباشر... ألم تستعمل ال Perlin Noise من قبل في أي برنامج رسوميات (Corel DRAW أو 3dsMax أو Photoshop أو.. أو..)؟ نعم، إنه مخترع هذه الحسابات التي تولد لك غيوماً عشوائية يمكن استخدامها في العديد من التطبيقات. طبعاً ال Perlin Noise هي أحد أبحاثه فقط في ما يدعى بال Procedural Graphics (يمكننا تسميتها الرسوميات المولدة برمجياً). كنت في الحقيقة في أسوأ حالاتي في هذه اللحظة لأنني لن أستطيع أن ألتقط أية صور للرجل. تباً...
الكلمة الافتتاحية الثانية: Ken Perlin (Professor of Computer Science – NYU Media Research Lab). Presented by A2M
بدأت الكلمة بتقديم ل Ken من قبل مدير شركة A2M لتطوير الألعاب، تحدث بها عن إنجازات هذا البروفسور في شتى مجالات الجرافيكس وخصوصاً في الحسابات ال procedural لتوليد معلومات بشكل فوري. بعد هذا بدأ المرح..
تحدث Ken بطريقته المميزة والمرحة عن نظرته الخاصة لما يتسبب بإعطاء إيحاء الجمود المعهود لشخصيات الكمبيوتر، ضارباً بذلك أمثلة كفلمي Final Fantasy و Polar Express من جهة، ومن جهة أخرى Bugs Bunny. ثم عرض من خلال سلسلة من البرامج الصغيرة التي تعكس أبحاثاً ضخمة قام بها كيف يمكن استخدام ال Procedural Animation لكسر جمود الشخصيات بشكل فعال. الفكرة تكمن في تحويل عملية ال animation إلى عملية إخراج فقط كما نفعل مع الممثلين، بحيث لا نفكر بأمور يقوم بها الممثل بشكل طبيعي كالتوازن والوصول إلى الأشياء المحيطة. تعتمد أبحاث Ken على جعل الكمبيوتر يقوم بحساب كل هذه التفاصيل بطريقة طبيعية تعتمد على ال Perlin Noise (طبعاً). النتيجة النهائية كما رأيناها هي حركات من التعقيد لدرجة أنك لا تستطيع تفريقها عن ال Motion Capture. مع فارق كبير وهو أن هذه الحركات تتفاعل بشكل فوري مع البيئة المحيطة. الشخصيات تنظر حولها وتتابع محاور اهتمامها، تتوازن على الأرض الوعرة، تتحرك بسلاسة مطلقة، خطواتها سليمة ولا تنزلق أبداً! ثم تأتي الضربة القاصمة وهي أن كل هذه الحركات يمكن نقلها بسهولة تامة من أي rig إلى آخر. كمثال قام أمامنا بتوليد حركة لشخص مغرور يرفع رأسه في تكبر ويبرز مؤخرته ويمشي رامقاً الناس في الطريق بنظرة متعالية، وبضغطة زر واحدة قام بنقل نفس الحركة إلى خروف صغير!! ليصبح لدينا خروف مغرور!! أمر كالسحر تماماً!! الأبحاث تشمل نظام Footstep Simulation ل��ساب حركة الأقدام على الأرض، ونظام متابعة Tracking System. لم يذكر Ken الخوارزميات التي يستخدمها تماماً في حساباته، لكن هناك الكثير من ال IK وحسابات التوازن والقصور الذاتي في الموضوع... أنهى Ken حديثه بدعوة جميع الشركات للعودة للاهتمام بحركات الشخصيات بدلاً من تفريغ الوقت كله لمؤثرات الرسم الخاصة والتي تفقد حيويتها بدون الحركة الطبيعية.
بمجرد أن أنهى Ken حديثه، ارتجت القاعة الواسعة بالتصفيق الحار لمدة لا تقل عن الدقيقة الكاملة. وخرجت من الصالة شاعراً بخليط آخر من المشاعر (مختلفة نوعاً ما هذه المرة) هي السعادة والضآلة والاهتمام. السعادة لأنني قابلت للتو أسطورة كبيرة في عالم الجرافيكس. الضآلة بسبب النتائج الضخمة لأبحاث هذا الشخص العبقري. والاهتمام في تطبيق هذه الأبحاث الرائعة في عالم الألعاب...
كنت أفكر الآن، بقي أن أقابل Jim Blinn وعندئذ يمكنني الموت مرتاح الضمير... لا بأس، لا بأس...
للمهتمين برؤية آخر أبحاث Ken Perlin، زوروا موقعه على الإنترنت ، حيث ستجدون الكثير من البريمجات الصغيرة التي قام بعرضها لنا أثناء كلمته الافتتاحية...
(اضغط هنا لتحميل التسجيل الصوتي للمحاضرة - 12.8 MB)
ألقيت نظرة على بقية المحاضرات في المؤتمر لهذا اليوم، لكنني لم أجد منها ما يغريني بالبقاء أكثر.. إذاً حان وقت العودة... هاااااه... كل هذه الأحداث استهلكت قواي ااااه خخخخخخ…
الخميس، التاسع من نوفمبر. الساعة العاشرة والربع صباحاً
اليوم الثاني والأخير من المؤتمر... ليس الوضع بهذا السوء الآن، فأنا مستعد بكل أسلحة الصحفي لتوثيق أهم أحداث هذا المؤتمر اللطيف. دفتر (مع قلم هذه المرة)، المسجل، و –طبعاً- الكاميرا!
المحاضرة الأولى: Jos Stam (Autodesk, Inc.): A General Dynamical Solver for computer graphics
محاضرة في غاية الأهمية، وشخصياً كنت أنتظر هذا المحاضر بفارغ الصبر منذ أن علمت بقدومه إلى المؤتمر. يعمل يوس (نعم يقرأ اسمه "يوس" وليس "جوس") بفريق أبحاث Autodesk حالياً (أو فريق أبحاث Alias سابقاً) وتتركز أبحاثه في مجال ال Dynamics Simulation بمختلف نتائجها. من الجدير بالذكر أنه عمل لفترة مع رون فيدكو (Ron Fidkiw) في نفس الأبحاث (إلا أن رون يعمل مع ILM)... باختصار، هذا اسم آخر من هؤلاء الذين تقرؤهم في كتب مراجع الجرافيكس السميكة...
يوس ستام يحاول إقناع الجمهور أن الألعاب يجب أن تكون مستقرة ولا يحصل لها crash!
تنبيه! الآن سيبدأ بالكلام عن ال Simplyx !
المحاضرة تتحدث عن حل موحد لكل الأنظمة الديناميكية المستخدمة في الجرافيكس. وهذه تشمل: القماش والملابس (Cloth)، السوائل (Fluids)، الأجسام الصلبة واللينة (Rigid and Soft Bodies). الحل يجب أن يكون قادراً على التعامل مع أية أشكال عامة، وأن يكون سريعاً، ومستقراً، و (وهذا غريب نوعاً) أن يكون سهل البرمجة!
النظام يعتمد على مبدأ رياضي غريب (بالنسبة لي على الأقل) للتعبير عن الأجسام باستخدام ما يدعى بال Simplyx. وال Simplyx هو بنية شجرية تتكون من أب وعدة أبناء تنمو في الأبعاد كلما ارتفع مستوى الأب. فأخفض Simplyx هو نقطة أحادية البعد، يمكن أن تكون ابناً ل Simplyx ثنائي البعد يعبر عنه بخط مكون من نقطتين، والذي بدوره ابن ل Simplyx مثلث وهكذا. هذا النظام في تكوين الأشكال له أيضاً ميزة في تقسيم السطوح (Subdivision) بشكل سريع. انتقل يوس بعد ذلك إلى عرض المشاكل التي تواجه أنظمة حل الديناميكس الحالية وكيف أن نظامه يتغلب عليها بنجاح كبير. تأتي السرعة من حقيقة أنه يحل حساباته (ألعن سلسلة من التكاملات والمعادلات التفاضلية) ب model أحادي البعد، ثم يطبق الحل على أبعاد أعلى (3D مثلاً) بشكل مشابه. رأينا مثال على طريقة الحل لأشكال أحادية البعد وثنائية البعد بالإضافة لبعد إضافي هو الزمن. المثال كان يقوم بكشف التصادمات وحلها، وقد قام بتطبيق الحسابات على "شوربة" من الأجسام ثلاثية الأبعاد والتي تتكون من أرقام كبيرة من الكرات والعصي.. كلها تتفاعل بدقة تامة ولا تتقاطع مع بعضها، والحل كان ثابتاً كالصخرة. رأينا بعدها سلسلة من الأمثلة تحل مشاكل الأقمشة والسوائل بشكل سلس تماماً حتى في حالات شديدة التعقيد (راقصة تدور حول نفسها بسرعة مرتدية رداءاً واسعاً).
النظام مرن وقادر على استيعاب خطوات حساب إضافية لمماثلة أية ظواهر غير تلك التي يتم حسابها حالياً (أي غير كشف التصادمات وحلها، حسابات الأقمشة، السوائل، والأجسام الصلبة واللينة).
انتهت المحاضرة بتصفيق حاد (مع أن العديد من الأشخاص لم يفهم شيئاً مما يحدث، منهم أنا طبعاً) ثم جاءت فترة الأسئلة أسهمت فيها بسؤال غبي كالعادة:
هل تقوم حساباتك بتقديم أية معلومات إضافية لل renderers؟ كمثال حوض الماء الذي رأيناه في أحد الأمثلة...
لا. الماء الذي رأيناه ببساطة تم إظهاره باستخدام ال Particles Renderer المدمج في Maya...
وهو أمر مثير للاهتمام حقاً لأن المثال المذكور كان يشابه أحد أمثلة أبحاث رون فيدكو والتي تفخر باستخدام ال renderer الخاص ب ILM...
طبعاً خرجنا من المحاضرة بخليط من المشاعر تشابه تلك التي خرجت بها من كلمة كين بيرلين المفتاحية...
(اضغط هنا لتحميل التسجيل الصوتي للمحاضرة - 12.4 MB)
الخميس، التاسع من نوفمبر. الساعة الحادية عشرة والنصف ظهراً
التقيت بقائد المبرمجين في الفريق سيرجي بعد المحاضرة الأولى وتبادلنا بعض الآراء حتى حان وقت المحاضرة القادمة!
المحاضرة الثانية: Jean-Francois St-Amour (Ubisoft Montreal): Bare metal: modern graphics hardware architectures
جان فرانسوا يعمل كمبرمج 3D في Ubisoft، وهدف محاضرته هذه هو تقديم نظرة تقنية عميقة لمعمارية أجهزة الجرافيكس الحديثة. بدأ جان بشرح خط عمل الرسوميات ال 3D في كروت الشاشة الحالية من لحظة تسليم ال vertices إلى لحظة خروجها على شكل pixels على سطح الشاشة. ثم أعطى بعض التوصيات عن كيفية الاستفادة المثلى من المزايا الحديثة في هذه الأجهزة. انتقل بعد ذلك إلى شرح عام لمعالجات الجرافيكس في ال PC وال Xbox360، إلا أنه قدم معلومات قليلة عن ال Playstation3 وتقريباً لا شيء عن ال Wii وذلك بسبب كونه لم يعمل بأية مشاريع على هذين الجهازين الأخيرين...
جان فرانسوا يستعرض قائمة المواضيع التي سيناقشها في محاضرته
انتهت المحاضرة بدون أية أسئلة، وخرجت أنا وسيرجي شاعرين بالإحباط لأن المحاضرة لم تغني معلوماتنا بأي شيء يذكر، لذا قررنا أنه باعتبار أن عقولنا لم تمتلئ تماماً فقد حان الوقت لنملأ بطوننا... التقطنا وجباتنا وانتقينا إحدى الطاولات المستديرة لنجلس عليها ونتجاذب أطراف الحديث. إن سيرجي هو شخص حاد الذكاء لدرجة أنه قد يجرحك إن لم تكن حذراً. تحدثنا سوية عن مواضيع مثل جدوى الحصول على Masters وهراء من هذا القبيل... ثم انفصلنا بعد الغداء ليعود هو للعمل، بينما قررت أنا البقاء لاصطياد المزيد من المحاضرات...
صالة المعرض... توجد أيضاً مجموعة من الطاولات للجلوس والطعام، حيث جلست أنا وسيرجي نتحدث
مضيفكم الأثير وسام... نعم أعرف... لكني لم أستطع مقاومة حب الشهرة !
تعريفات: الرياء
الخميس، التاسع من نوفمبر. الساعة الواحدة والنصف ظهراً
كنت أتجول في أرجاء المؤتمر شاعراً بالحيرة لأنني مهتم بحضور محاضرة قرب الساعة الثالثة ظهراً، لكن الوقت ما زال باكراً. المهم، أفقت لأجد نفسي أمام قاعة المؤتمر الكبيرة.
نظرت إلى البرنامج فوجدت أنها:
قاعة الكلمات الافتتاحية... يمكنك عدّ الكراسي بدلاً من الخراف قبل النوم
الكلمة الافتتاحية الثانية: Glenn Entis (Senior Vice President, Chief Visual & Technical Officer - EA). Presented by EA Montreal
لم أكن جد متحمساً للدخول، تقريباً على مبدأ "مزمار الحي لا يطربه". إلا أنني لم أجد طريقة أفضل لإضاعة الوقت... لذا دخلت واتخذت لنفسي مقعداً قريباً من المنصة لأن نظري ضعيف كما تعلمون...
بدأت الكلمة بتقديم من ألين تاسكان (Alain Tascan) رئيس استديو EA بمونتريال (وهو أحد الأشخاص الذين أشعر بأنهم يحبونني بدون تحفظ). قام ألين بتقديم المحاضر السيد جلين إنتيس (Glenn Entis) وهو الرئيس للتقنيات والبصريات في EA Canada.
ألين تاسكان يؤدي واجبه نحو رئيسه... الكثير من المديح والشكر وما إلى ذلك
ثم بدأ جلين بالحديث عن موضوع مشابه لذاك الذي تحدث عنه كين بيرلين في اليوم السابق. طبعاً الفرق هنا هو أن كل الأمثلة مأخوذة من ألعاب EA. رأينا نبذة سريعة عن تطور الجرافيكس في لعبة FIFA منذ FIFA94 وحتى FIFA2006، كما رأينا بعض العروض التقنية ل Tigerwoods Golf على جهاز ال Playstation3، والتي كانت بالفعل مثيرة للاهتمام (مطابقة للواقع بشكل فائق).
أوف كورث إتث أ متش مور كامبلكث برابلم...
هذا جلين طبعاً يقول: Of course it’s a much more complex problem... لكنه يملك لثغة لطيفة في لسانه تجعل كل حروف السين تخرج ثيناً... المهم، كان يتكلم عن خط فاثل – أقصد فاصل بين البساطة والواقعية والتأثير على اللاعب. كان يقارن بين Pacman و (طبعاً) فلم Final Fantasy، وكيف أن الجودة في الصورة قد تعطي انطباعاً سلبياً إن لم تتحد مع جودة مشابهة في الجوانب الأخرى (كالتحريك والتفاصيل).
في هذه اللحظات يتلقى جميع الحاضرين الجرعة اللازمة من ال propaganda من EA
عنوان الكلمة جذاب، وقد قام جلين بإظهاره من خلال منتجات EA طبعاً
انتقد جلين مفهوم: "New Platform = Add more polygons" المنتشر بين الاستديوهات، وشدد على أهمية الحركات في إعطاء الواقعية. ثم قام بسرد مجموعة التقنيات المستخدمة حالياً في بناء شخصيات ألعاب EA الرياضية، وتشمل:
- التوضيع الدقيق للجسم، التفافات ناعمة وانحن��ءات طبيعية.
- توضيع الأقدام.
- انتقال مركز التوازن والقصور الذاتي.
- الانتباه ال procedural (عفواً لا أعرف كيف أترجمها) كمتابعة العينين والرأس لمحاور الاهتمام في المشهد.
وفي النهاية قام بعرض أحد الأدوات المطورة داخلياً في EA لتوليد حركات طبيعية للوجه في ال real-time ذات تفاصيل عالية جداً يتم التقاطها من خلال ثلاثة كاميرات موضعة بشكل معين لتلتقط كافة تجاعيد الوجه ليتم ضغطها بشكل ما ويتم استخدامها ك textures في ال real-time...
انتهت الكلمة طبعاً بالتصفيق الحاد والكثير من الصور والهيييي والواااو... ثم خرجت من القاعة ولم يفتني ملاحظة أن رؤساء EA Montreal كلهم موجودين في المحاضرة، لا بأس بالقليل من الرياء الاجتماعي، ألا ترون هذا معي؟
(اضغط هنا لتحميل التسجيل الصوتي للمحاضرة - 4.93 MB)
الخميس، التاسع من نوفمبر. الساعة الثالثة إلا الربع عصراً
الآن حان وقت المحاضرة التي كنت أنتظرها... لم أجد أحد من زملائي هناك، لكن يوس ستام جلس بالقرب مني وقد بدا عليه تعبير من نوع "فلنر-ما-هي-القصة".
يوس ستام (يجلس قرب الحائط) يترقب بدء المحاضرة... لا أظنه كان سعيداً جداً في نهايتها
المحاضرة الثالثة: Marsel Khadiyev (Ephere Productions Inc.): Practical realtime hair for games and interactive applications
مارسيل يعمل كمستشار مختص بال hair simulation في شتى المجالات (الأفلام والألعاب). وهدفه من المحاضرة هو ليس تقديم حل لهذه المشكلة، إنما سرد الحلول الموجودة وتوضيح محاسن ومساوئ كل منها.
مارسيل يقوم بتعريف مفهوم "الشعر" لدى الجمهور... لحسن الحظ لم يتعمق كثيراً في التفاصيل
بعض النقاشات بين الجمهور والمحاضر قبل بدء المحاضرة بشكل فعلي
أولاً أوضح مارسيل أن الشعر في الجرافيكس هو ليس فقط ما يوجد على رؤوسنا، وإنما يشمل الفرو والحشيش وما شابه. إن العملية تنقسم لمجموعة مشاكل يمكن التعامل مع كل منها على حدة لكن بالترتيب. هذه الأقسام هي:
- البناء (Modeling):
- طريقة الشعيرات الموجهة (Guiding Hair) حيث يتم تشكيل الشعر بمجموعة محدودة من الشعيرات، ثم يتم استنتاج شكل بقية الشعرات عن طريق الاستقراء (interpolation). هذا النظام شائع في أغلب برامج ال 3D اليوم.
- طريقة ال Particles. تتوزع ال particles على السطح المطلوب ثم يتم استخدام ال vector fields لتمديدها إلى شعيرات طويلة تتفاعل مع القوى المحيطة.
- طبقات من ال geometry. كل طبقة تمثل حزمة من الشعر يمكن تحريكها ككل بشكل منفصل عن البقية. هذا النظام سائد في الألعاب ك Final Fantasy وبعض الأفلام. ذكر أيضاً مارسيل بعض المعادلات لتشكيل styles للشعر كالفتل والخشونة والتموج.
- التحريك (Animation):
- افتراض أن كل شعرة مكونة من خطوط مرتبطة ببنية متسلسلة من مصفوفات التوضيع (transformation matrices) مع حدود مطبقة على الزوايا بين المفاصل. يتم التحريك عن طريق حساب قوى فتل في هذه الزوايا ناتجة عن قوى متجهة (كالرياح والجاذبية).
- (خاصة بال geometry model): تحريك الطبقات باستخدام محاكي القماش (cloth simulator).
- النوابض المتصلة. نقاط مفاصل الشعر تتحرك مرتبطة مع بعضها البعض على نظام النوابض.
- الأجسام المفصلية. كل مجموعة مجسمة من الشعرات يتم التعبير عنها بسلسلة من الحلقات الاسطوانية المرتبطة مع بعضها، ويتم تحريكها باستخدام أي محرك فيزياء موجود (Physiques Engine).
- الإظهار (Rendering):
- طبقات مجسمة مع texture ذو شفافية عليها.
- طبقات متتالية حول السطح تمثل مقطعاً عرضياً في الشعرات. يمكن التحكم بالطول عن طريق إضافة المزيد من الشعر.
- رسم كل شعرة على حدة بحيث تتلاشى قرب نهايتها (alpha blending) والاعتماد على ال anti-aliasing للتخلص من خشونة النتائج.
- التظليل (Shading):
- الظلال (Shadows):
- صور الظلال الشفافة (Opacity Shadow Maps).
- ظلال حجمية (Volumetric Shadows).
في النهاية أظهر مارسيل خياره الشخصي من بين هذه الحلول كلها، وخياره الشخصي يعتمد البناء بال guiding hair والتحريك باستخدام محرك Aegia للفيزياء. ونتائجه تعمل بسرعة 32 FPS على معالج AMD 3800+ وكرت شاشة Geforce 7800 (وهي نتيجة سيئة برأيي الشخصي). كالعادة، تصفيق، أسئلة، تصفيق، ثم لحظة الحرية.
(اضغط هنا لتحميل التسجيل الصوتي للمحاضرة - 8.69 MB)
الخميس، التاسع من نوفمبر. الساعة الرابعة عصراً
حان وقت المحاضرة التي أنوي حضورها في هذا المؤتمر. هنا التقيت بمجموعة أخرى من زملائي في العمل. هذا الذي يرتدي النظارات وشعره أشقر ومنسدل هو ستيفان (Stephane)، وهو مبرمج رسوميات كما هي الحال مع مضيفكم هنا. أما الآخر فهو رايان (Ryan) وهو مبرمج مساعد ويعمل كذلك في برمجة الرسوميات، وهو كما تلاحظ إعصار من المرح والطاقة المجسد في شخص... دخلنا سوية المحاضرة فقط لنجد زميلنا الثالث فيتالي (Vitali) يجلس هناك بالفعل (وهو مهندس الصوت لدينا بالمناسبة)... بعض العبارات المرحة، ثم...
من اليمين إلى اليسار: رايان، فيتالي، ستيفان. مبرمج مساعد، مهندس الصوت، مهندس جرافيكس على الترتيب
المحاضرة الرابعة: Bruce Dawson (Microsoft): Design and Implementation of Multi-Threaded Games
بدأت المحاضرة بتقديم لبروس على أنه شخص يقود الدراجة الأحادية (unicycle) إلى العمل بدلاً من السيارة (أي دراجة هوائية بدولاب واحد فقط). وقد عمل في مجموعة استديوهات لتطوير الألعاب قبل أن ينتقل إلى العمل في Microsoft في لندن. طريقة بروس في الحديث كانت لطيفة جداً ومرحة.
بروس يتحدث عن بعض فضائح برمجي الألعاب! للأسف تم التقاط الصورة لحظة التفاته...
موضوع المحاضرة عملي جداً ويتحدث عن ال Multi-threading في الأجهزة الحديثة كال PC متعدد المعالجات وال Xbox360. الهدف هو معرفة الطرق المثلى لتشغيل كل هذه الطاقة المتاحة لنا. المشكلة برأي بروس هي مشكلة في تصميم البرنامج بالدرجة الأولى (أو هندسته بالأصح). حيث أظهر لنا كيف أن تصميماً لم يأخذ تعدد المهام بعين الاعتبار منذ البداية يمكن أن يصبح بعد إدخال تعدد المهام عليه. طبعاً المخطط كان كارثة... ثم عرض بعض المعماريات التي قد تكون ملائمة مع ضرب أمثلة للمهام الشائع تقسيمها عبر المعالجات (الفيزيكس، الصوت، الدخل، فك الضغط، قراءة الملفات). النصيحة العامة هي محاولة تخفيف نقاط التزمين (synchronization points) بين المهام قدر الإمكان.
انتقل بروس بعد ذلك إلى تفاصيل تطبيقية برمجية كالإجراءات المناسبة لكل مهمة وما شابه. إلا أنه في النهاية طرق موضوعاً حساساً يتكلم عن المؤقتات (timers) المثلى التي يجب استخدامها في الألعاب في ال PC وال Xbox360. بعد التصفيق انهالت الأسئلة على بروس (وهذا متوقع) لدرجة أنه أجل البقية منها لما بعد المحاضرة. طبعاً كان لدي سؤال صغير عن أحد الإجراءات الغامضة التي عرضها، وقد أعطاني إجابة شافية حقاً.
(اضغط هنا لتحميل التسجيل الصوتي للمحاضرة - 13.6 MB)
الخميس، التاسع من نوفمبر. الساعة الخامسة وبضع دقائق عصراً
خرجنا من المحاضرة الأخيرة نتبادل الآراء والمعلومات عما قيل في الداخل، ثم أضعنا حوالي ربع ساعة لنتفق على وجهتنا القادمة (هذا طبيعي مع أربعة مبرمجين)، ثم خرجنا من البناء وتوجهنا عائدين إلى الشركة، حيث اجتمعنا سوية (تقريباً سبعة مبرمجين) نتناقش عن أحداث المؤتمر وما تعلمناه من أمور جديدة وإلى آخر هذا الهراء الذي لا يهم قراءنا الأعزاء...
لا أدري ما المضحك في الموضوع، لكن عندما يبتسم ثلاثة مبرمجين في نفس الوقت فإن هذا معناه قرب نهاية العالم
متفرقات
طبعاً هناك الكثير من الأحداث التي صادفتني في الفترات الحرة بين المحاضرات، وبرأيي كانت هي أمتع ما في المؤتمر.
صالة العرض... طاولات الطعام بالإضافة إلى ركن الماساج والترفيه، وطبعاً منصات الشركات...
بالرغم من كلفة تذكرة الدخول الباهظة، فإن المؤتمر كان محتشداً بالجمهور المختص بصناعة الألعاب.
أولاً هناك صالة عرض الشركات، وقد كان لي حديث لطيف مع Softimage تعرفت من خلاله على مبرمج Softimage CAT وتحدثنا عن اجتماع Softimage القادم بعد أسبوعين. كانت هناك فتاة لطيفة ومجموعة من الشباب في Softimage، وطبعاً تجاهلت كل الشباب وتوجهت بحديثي إلى تلك الفتاة اللطيفة (أمزح فقط).
جناح Softimage كان مهتماً بإبراز كل من CAT و FaceRobot وطبعاً XSI... الشخص في المنتصف هو مبرمج CAT
الحديث مع هؤلاء الأشخاص كان فائق المتعة... إنهم حقاً يحبون منتجاتهم، ويحبون من يحبونها طبعاً!
هذه القبعة جلبت لي الوبال في جناح Softimage، إذ أنهم ما أن رأوني أرتديها
حتى قبضوا علي متلبساً بتهمة العنصرية...
رأيت عرضاً ل FaceRobot وتحدثنا عن إصداره الجديد وارتباطه مع الألعاب. ثم تبادلنا ذكريات عملي معهم في XSI.. اللطيف في شركة Softimage هو أنه يمكنك تركهم 10 سنوات ثم العودة لهم لتجد أن الأشخاص العاملين هم هم لم يتغيروا طوال هذه الفترة... خرجت من هذا اللقاء بهدية صغيرة من تلك الفتاة (أرأيت كيف يكون بعد النظر؟) هي عبارة عن T-Shirt لطيفة تحمل شعار Softimage|FaceRobot وما إلى ذلك...
أجنحة لشركات مختلفة في المعرض.. كلها تعرض أحدث تقنيات تطوير الألعاب...
جناح Autodesk في المعرض... لم أحظ للأسف بأي حديث معهم...
لكن يكفي أنهم منظمي المؤتمر ككل... شكراً !
Matrox كانت شركة بطاقات الإظهار الوحيدة ذات الوجود الفعلي في المؤتمر...
شركة Kynogon تعرض منتجها الرئيسي، محرك ال AI المتقدم لجميع أنماط اللعب...
جناح Nintendo من منظور الطاقية!
طبعاً جهاز Nintendo Wii كان هو نجم الحفل في جناح Nintendo في المعرض...
من أهم الأمور التي حدثت في اليوم الثاني هي أن صديقي إريك (Eric) قدمني إلى يوس ستام (Jos Stam) إياه... وكان لنا حواراً صغيراً طبعاً شكرته فيه على محاضرته التي صدع بها رؤوسنا...
-- تمت --