مدونة سلوان الهلالي

تطوير ألعاب - برمجة - علم نفس

كرنفال المطوّرين المستقلين: UDK

من أشهر محركات الألعاب اليوم هو محرك Unreal Engine، هو بلا منازع أكثر محركات الألعاب استخداماً حتى الآن، خاصة إصدارته الثالثة والتي تم استخدامها لتطوير Batman Arkham Asylum و  Mirror's Edge و Gears of War وآخرين، ما أروع الحصول على نفس الأدوات التي تم استخدامها لتطوير هكذا ألعاب؟

في مفاجأة رائعة فجرّتها شركة Epic قبل أسابيع، تم طرح طقم تطوير Unreal والمسمى UDK اختصاراً، والمذهل في الموضوع إنه نفسه محرك Unreal Engine 3 ولا وجود لأي محدودية مفروضة على إمكانياته على حد علمي، يتضمن UDK كذلك مجموعة من التقنيات التجارية مثل FaceFX و SpeedTree والمضمنّة مع المحرك لكي تستخدمها مجاناً! (اتفاق بين Epic والشركات المسؤولة عن تلك التقنيات)

هل بدأ لعابك يسيل؟ لقد بدئنا للتو..

 

 

Unreal Development Kit

 

UDK هو Unreal Engine 3 نفسه، إطار العمل الاحترافي المتكامل والذي يضم عدداً كبيراً من الأدوات التي تمكنّك من تطوير ألعاب عظيمة، إنشاء عوالم افتراضية، أو تطوير برامج محاكاة واقعية. تم تطويره من قبل شركة Epic Games بقيادة Tim Sweeny مؤسس الشركة، أول ظهور لـ Unreal Engine كان سنة 1998 في ثاني لعبة ناجحة للشركة والتي سميت Unreal، أصبح Unreal Engine في السنوات اللاحقة أساساً للكثير من الألعاب ذات الجودة العالية.

آخر جيل من المحرك هو الجيل الثالث، من الألعاب التي استخدمته:

  • Unreal Tournament 2007
  • Gears of War
  • Bioshock
  • Mirror's Edge
  • Batman Arkham Asylum
  • Mass Effect
  • وغيرها كثير

نواة المحرك مكتوبة بلغة ++C ويقدم محرك Unreal Engine 3 الكامل دعماً لجميع المنصات الأساسية مثل Windows، Linux، MacOS X، XBOX360، Playstation3 ودعم لـ DirectX9، DirectX10، OpenGL حسب المنصة، أما UDK فبالطبع يقتصر دعمه على Windows فقط، وكذلك فإن كود ++C للمحرك غير مقدّم مع UDK.

 

التطوير

 

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

 

محرّر Unreal

 

الأداة الرئيسية التي يعتمد عليها محرك Unreal هي المحرّر UnrealEd، ويمكن من خلاله عمل كل شيء تقريباً عدا كتابة البرامج التي تعرّف عناصر اللعبة (Actors) في Unreal.

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

في Unreal يسمى عنصر اللعبة الواحد Actor، وهنالك طريقة واحدة فقط لكتابة عناصر جديدة وهي البرمجة باستخدام UnrealScript.

UnrealScript هي اللغة التي يستخدمها Unreal وهي تستعير أفكار من لغتي ++C و Java، ولكن تضيف الكثير من الأفكار الموجهة للألعاب خصيصاً، على سبيل المثال كل عنصر يمتلك State Machine تعمل بالتوازي مع كود العنصر الفعلي، وكذلك فإن إمكانات الشبكات وتعدّد اللاعبين (networking/multiplayer) جزء من اللغة نفسها وليست مكتبة منفصلة.

أول عيب لاحظته في UDK هو عدم توفير برنامج لكتابة أكواد UnrealScript، يمكن بالطبع استخدام أي محرّر نصوص اعتيادي بدءاً من Notepad وانتهاءاً بـ Visual Studio، ولكن ليس لدي معلومات حول إمكانية إعداد Debugger لـ UnrealScript يدوياً باستخدام ادوات خارجية.

 

الجزء الرئيسي من محرّك Unreal هو محركّ اللعبة، ومعظمه مكتوب بلغة UnrealScript ويمكنك أن تلقي نظرة على الأكواد في المسار التالي (UDK/Development/Src/Engine/Classes)، على سبيل المثال تصفح ملف Actor.uc والذي يتضمن تعريف عنصر اللعبة النموذجي وجزء كبير من خصائصه مثل الفيزياء والحركة، يمكنك قراءة الكود بسهولة حتى وإن لم تكن درست UnrealScript لأنه مشابه لـ ++C كما ذكرت.

ولكي تزيد الأمور روعة، تقدم Epic مع UDK ديمو كامل للعبة Unreal Tournament مع أربعة خرائط، وبالطبع، أكواد اللعبة وعناصر اللعبة مقدّمة بالكامل لكي تستفيد منها، تجد تلك الأكواد في المسار (UDK/Development/Src/UTGame/Classes).

 

ديمو UTGame

 

بالإضافة إلى ذلك هنالك 3 ألعاب معمولة باستخدام UDK مقدمة لنا للدراسة، Whizzle وهي لعبة من نمط Casual، والثانية The Ball وهي تعديل على لعبة Unreal Tournament، وأخيراً Prometheus وهي لعبة شبيهة بلعبة Portal.

 

من الجدير بالذكر أن عدم توفير كود ++C لمحرك Unreal Engine سوف يؤدي إلى حتمية الاعتماد الكامل على UnrealScript وهي لغة يقوم محرك Unreal بتنفيذها بطريقة التفسير فوري (Interpreted) من ما يعني أنها أبطئ كثيراً من كود ++C، قد يؤثر ذلك على المشاريع المتوسطة التي يتم تطويرها باستخدام UDK لأن أي أكواد معقدة سوف تكون بالنتيجة بطيئة، وسوف يؤثر ذلك سلباً بالتأكيد على المشاريع الضخمة تأثيراً جدّياً.

من الأفضل أن أشير أيضاً إلى أن كود UnrealScript الذي يشكل محرك اللعبة والمقدم مع UDK يقدم اداءاً جيد جداً لسبب، إن حاولت تصفح بعض ملفات UnrealScript المقدمة لا شك أنك لاحظت معرّفات كثيرة تسبق تعريف الإجراءات وأحياناً تصف class معيّن، يهمنا هنا تحديداً المعرّف native، يعني هذا المعرّف أن كود الإجراء الفعلي (أو جزء من الـ class) مكتوب باستخدام ++C للحصول على أفضل اداء ممكن، وليس باستخدام UnrealScript، بطبيعة الحال لا نملك مع UDK هذه الإمكانية، ألا وهي كتابة جزء من الكود في ++C، كذلك لا يمكن تعديل جزء كبير من محرك اللعبة المقدّم مع UDK مباشرة، لأن أي تعديل على جزء native يجب أن ينعكس على ++C ونحن لا نملك تلك الإمكانية، ولكن يمكن بدلاً عن ذلك وراثة class من نوع native، وعمل override لإجراءاته.

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

ومن المهم فهم تبعات عدم تقديم كود ++C قبل اتخاذ قرار استخدام UDK لعمل مشروع جدّي.

 

رخصة الاستخدام

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

والآن، لنفرض أنك قد أصدرت لعبتك وبدأت أرباح المبيعات تصلك، الـ 5000 دولار الأولى من الأرباح التي تحصل عليها لك بالكامل، ولا تطالب Epic بأي نسبة هنا، بعد الـ 5000 دولار الأولى يجب عليك أن تدفع لشركة Epic ما نسبته 25 بالمئة من الأرباح، تلك هي الرخصة باختصار.

على سبيل المثال، لنفترض أنك طوّرت لعبة أسميتها الأرنب المفترس، ثم قررت إصدارها تجارياً، يجب عليك أولاً دفع 99 دولار لشركة Epic للحصول على حق النشر التجاري، لنفترض أنك حصلت على أرباح  5000 دولار من اللعبة في أول شهر، هذه الأرباح لك بالكامل (مبروك مقدماً وأنت مطالب بعزيمة غداء محترمة)، ثم في الشهر الثاني حصلت على أرباح 10000 دولاراً، فيجب أن تدفع من هذه الـ 10000 دولار 25% أي 2500 دولار لشركة Epic، وتستمر بعد ذلك في دفع 25% من أي أرباح تحققها اللعبة.

 

مزايا UDK


  • محرّر Unreal والذي يقدم بيئة تحرير كاملة لمشروعك مع إمكانية استخدام جميع أدوات المحرّك الأساسية من داخل المحرّر. أهم تلك الأدوات:
    • محرّر التضاريس (Terrain Editor)
    • محرّر المواد (Material Editor): يقدم نظاماً فريد من نوعه لإنشاء المواد بشكل مرئي، يمكنك استخدامها لكي تطوّر مظلّلات لعبتك ومؤثراتها خاصة من دون الحاجة لكتابة سطر برمجي واحد. (تذكّر أن معظم أدوات المحرّر موجهة للفنانين الذين ليسوا من المعجبين بالبرمجة عادةً)
    • محرّر المجسّمات (Mesh Editor): يمكنك تغيير الخصائص الفيزيائية للمجسّم كذلك يمكن تبسيط المجسّم، إنشاء مستويات الدقة للمجسّم، إنشاء إحداثيات الإكساء، وكذلك أداة لتكسير المجسّم لإضافة قابلية التدمير.
    • محرّر الحركة (Animation Editor): لضبط الحركة العظمية للشخصيات وربطها بأحداث اللعبة وأكواد UnrealScript.
    • محرّر النباتات (Foliage Editor): يستخدم محرّك SpeedTree لإنشاء الأشجار، الحشائش، والزهور بكافة الأشكال والأحجام.
    • محرّر الهياكل الفيزيائية (Unreal PhAT): يمكن استخدامها لإنشاء هيكل عظمي فيزيائي للشخصيات والأشياء للحصول على مؤثرات من قبيل الدمى القماشية (Ragdolls).
    • محرّر الأنظمة الجزيئية (Unreal Cascade): تستخدم لإنشاء الأنظمة الجزئية والمؤثرات البيئية.
    • محرّر السينمائيات (Unreal Matinee): أداة إنشاء العروض السينمائية للعبة (Cutscenes or FMVs).
    • محرّر النصوص البرمجية المرئي (Unreal Kismet): يمكن استخدامه لكتابة أكواد بسيطة بشكل مرئي، مثلاً إن أردت أن تشغل مصعد ضمن مرحلة من مراحل اللعبة يمكنك كتابة وظيفية المصعد باستخدام Kismet.
    • محرّر واجهة المستخدم (UI Editor): يمكن استخدامه لإنشاء قوائم اللعبة وواجهتها (HUD) بالشكل الذي ترغب فيه، يقدم دعم لاستيراد خطوط TrueType.
    • محرّر الصوت (Sound Cue Editor): لإنشاء الأحداث الصوتية وتغيير خصائص الصوت.
    • محرّر المؤثرات الخاصة (Post-process Editor): يمكنك إنشاء أي عدد من المؤثرات الخاصة التي تنطبق على كامل العرض مثل Depth of Field أو Motion Blur.
    • متصفح المحتوى (Unreal Content Browser): أداة لإدارة جميع محتويات اللعبة.
  • الإظهار: نظام إظهار Gemini يقدم لك نظام إظهار متعدد المسارات (multi-threaded) يتيح إظهار مشاهد معقدة ومفصلة، يستطيع كذلك تعديل دقة المشاهد والمؤثرات الخاصة لكي يتناسب مع العتاد الذي يعمل عليه، يستند النظام على 64-بت HDR ويقدم مؤثرات كثيرة يمكن تطبيقها على المشاهد مثل Depth of Field، Motion Blur، و Bloom مع إمكانية إنشاء مؤثرات جديدة بأيدي الفنانين.
  • الحركة: نظام قوي للحركة، مع محرّرات متعددة، يستطيع نظام الحركة تطبيق الحركات الإجرائية (Procedural Animation) على الهياكل العظمية للشخصيات ويقدم نظام حركية عكسية كامل (Inverse Kinematics)، نظام حركة المجموعات، دعم لحركة الوجوه التحولية وإمكانية إنشاءها وتصديرها في Maya أو Max.
  • النصوص البرمجية: إمكانية كتابة النصوص البرمجية باستخدام لغة UnrealScript وهي لغة عالية المستوى مرنة وبسيطة، وإمكانية كتابة النصوص البرمجية بشكل مرئي باستخدام Unreal Kismet.
  • الفيزياء: يستخدم Unreal محرك الفيزياء PhysX من NVIDIA مع دعم لفيزياء العربات (Vehicle Physics)، البيئات القابلة للتدمير، نظام لمحاكاة الحشود (Crowd System).
  • الإضاءة والظلال: دعم لجميع تقنيات الإضاءة الحديثة (مثل Ambient Occlusion)، نظام Unreal Lightmass لإنشاء الإضاءة المحسوبة مسبقاً (باستخدام Global Illumination)، دعم للظلال في الزمن الحقيقي إضافة لتنعيمها.
  • المشاهد السينمائية: يمكن استخدام أداة Unreal Matinee لإنشاء المقاطع السينمائية بتحكم كامل بالكاميرات والمؤثرات الصورية.
  • الشبكات: نظام ألعاب شبكات عالي المستوى مع دعم عدد لاعبين يصل 64 واللعب عن طريق الإنترنت أو الشبكة المحلية.
  • المظلّلات: أداة تصميم مظلّلات مرئي مشابهه للأدوات الموجودة في برنامجي XSI و Maya موجهة للفنانين.
  • الصوت: دعم الأصوات ثلاثية الأبعاد، يستخدم Unreal مكتبة Ogg Vorbis لضغط الملفات، ويأتي مجهز بمحرّر أصوات.
  • الأنظمة الجزيئية: محرّر الأنظمة الجزيئية Unreal Cascade لإنشاء المؤثرات.
  • الذكاء الاصطناعي: نظامان لإنشاء المسارات في العالم ثلاثي الأبعاد مع خوارزمية خاصة لإيجاد المسار.
  • الفيديو: يستخدم Unreal أداة Bink Video لترميز الفيديو.
  • النباتات: محرّك SpeedTree الكامل متوفر مع UDK (برنامجي SpeedTree Modeler و SpeedTree Compiler المستقلين عن المحرّر)، يستطيع المحرّك إنشاء الأشجار والأعشاب بكافة أشكالها وأنواعها وتحريكها بشكل صحيح.
  • حركة الوجوه: نظام FaceFX مضمّن كجزء من UDK، يستطيع تحريك وجوه الشخصيات إستناداً إلى الملفات الصوتية للكلام.

 

روابط مهمة


 

التعليقات (31) -

  • وسام البهنسي

    19/11/2009 01:50:25 م | الرد

    السلام عليكم، لقد انتشر هذا الخبر مؤخراً بشكل كبير، وهو أمر مفرح، لكن يجب توضيح بعض النقاط:

    * كود الـ ++C غير متوفر، وهذا يعني أنك ممنوع من طيف كبير وهام من الإمكانيات، منها كتابة مظللات رؤوس جديدة (vertex shaders)، استقدام مكونات جديدة لبناء المظللات (material nodes)، وعموماً يُمنع كتابة أي UnrealScript يُصدر للـ ++C من خلال تعليمة native، مما قد يمنعك من استخدام أية خوارزمية تحتاج لسرعة وغير مدعومة من المحرك (*A مثلاً).

    * كون المحرك يعمل على PS3 و Xbox360 هي ميزة تخيلية لن يستطيع مستخدمو UDK الاستفادة منها، فبدون اتفاقيات تطوير بين مستخدم UDK وبين مايكروسوفت أو سوني، فإنه لن يستطيع تشغيل المحرك على تلك المنصات.

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

    * بنفس الوقت ومن جهة أخرى، أنت لا تستطيع بناء لعبة ضخمة باستخدام هذا المحرك لأنك ستواجه عقبات في الأداء لا يمكن حلها سوى بالوصول إلى كود الـ ++C، ثمّ إن كَوْن Epic تشاركك الأرباح يعني أن جهودك في إنجاز هذه اللعبة الضخمة لن تثمر العائدات المناسبة في نهاية المطاف. فالنسبة ليست قليلة إطلاقاً... هذا يعني أن الألعاب الضخمة هي أيضاً من الممنوعات عملياً في هذا المحرك UDK.

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

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

  • Salwan

    19/11/2009 02:48:00 م | الرد

    عليكم السلام ورحمه الله،
    كيف حالك؟

    انت على حق، بالنسبة للنقاط التي ذكرتها.
    1. سوف أقوم بإضافة ما يشير إلى أنّ جزء العمل الخاص بـ ++C غير موجود بحكم عدم توفير كود ++C، وكذلك عدم إمكانية تعديل أي جزء من محرك اللعبة المكتوب مسبقاً بـ UnrealScript والذي يعتمد على مكونات native (خاصة native classes)، ولكن من وجهة نظر الأداء، لا أعتقد أنه مهم جداً عندما نتكلم عن الألعاب المستقلة لأن هذه الألعاب لا تتعدى حدود Wizzle أو Portal بالحجم والأداء المطلوب.
    2. بالنسبة لذكر أن المحرك يدعم PS3 و XBOX360 فيبدو أني خلطت بين التعريف بـ Unreal Engine 3 عموماً والتعريف بـ UDK تحديداً، شكراً للتنبيه.
    3. بالنسبة لاحتياج Unreal لمزايا متقدمة فأخشى إن تلك ضريبة استخدام المحرك ولا أنكر أن استخدامه للألعاب الصغيرة وحتى المتوسطة لا يمكن وصفه إلا بـ "overkill"، يقلقني أيضاً الحجم الإضافي المضاف عند استخدم Unreal مهما كانت اللعبة بسيطة (على سبيل المثال Wizzle وهي ليست إلاّ مرحلة واحدة وقائمة رئيسية بسيطة حجمها 100 ميغابايت!)، ذلك السبب لوحده كافي لجعل استخدام المحرك فعلياً مسألة بعيدة الاحتمال (على الأقل بالنسبة لي).
    4. بالتأكيد لا يمكن بناء لعبة ضخمة، ولكن يمكن بناء لعبة متوسطة بافتراض وجود فريق تطوير متكامل، أعتقد أني قرأت في مكان ما قبل فترة عن رخصة تجارية لـ Unreal Engine 3 لا تتيح الدخول لـ ++C موجهة لـ XBLA و PSN، ...لا اتذكّر اين، قد أكون مخطئاً.
    5. بالنسبة للتعلم الشخصي، أعتقد أنك نسيت مجتمع تعديل الألعاب، لا شك أن UDK هو استجابة لدعواتهم، ولكن لماذا تستبعد التعلم الشخصي؟ انا شخصياً قد استفدت من أشياء كثيرة من تعلم هكذا محركات في توسيع مداركي لكي أبني محركي الشخصي بطريقة أفضل.

    هل حمل ما كتبته حول UDK نبرة ترويجية؟ لا أنكر أني متحمس بخصوصه ولكن حاولت قدر الامكان نقل المعلومات المذكورة من المصادر من دون ترويج، يا ترى هل نجحت في ذلك؟

    سوف أقوم ببعض التعديلات هنا وهناك للتقليل من "الترويج" Smile

  • وسام البهنسي

    19/11/2009 04:07:06 م | الرد

    هل حمل ما كتبته حول UDK نبرة ترويجية؟ لا أنكر أني متحمس بخصوصه ولكن حاولت قدر الامكان نقل المعلومات المذكورة من المصادر من دون ترويج، يا ترى هل نجحت في ذلك؟

    كلا لم أقرأ فيما كتبتـَه أية نبرة ترويجية Smile
    طبعاً من حقك الكامل أن تدافع عن UDK فجلّ الاتهامات في كلامي هي من منظوري الشخصي، وقد تكون نظرتك مختلفة تماماً وأنا أحب معرفتها. احتجاجي ينصب على النبرة الترويجية التي تستخدمها Epic وغيرها. فهي ذات أسلوب التسويق الغربي القياسي والمعروف باعتماده على التدليس (وهو مزعج لأنه يستغبي الزبون). أعتقد أنني سأكتب عن هذا الموضوع في المرة القادمة Smile

    شكراً لك على هذه التدوينات الجميلة، وأنا من المتابعين المخلصين لها...

  • الشمّري

    19/11/2009 05:27:36 م | الرد

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

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

  • سلوان بدرة

    29/04/2010 05:57:25 م | الرد

    المقاله رائعة و مفيدة جدا شكرا سيد سلوان الهلالي على هذه المناقشة
    أظن ان الـ UDK هو شيئ جيد بالنسبة لفناني الثري دي مثلي حيث أنه من أجل لعبة بسيطة لا يوجد داعي للدخول في البرمجة و المناطحة مع البوينترز و الهيكلية الصعبة للـ ++C

  • يونس

    19/05/2010 02:32:04 م | الرد

    السلام عليكم
    مع احترامي لما ذكرتموه أيها السادة أن أري على العكس من ذلك ..
    لما لا تعتبر هذه فرصة لنا نحن العرب تمكنا من تطوير ألعاب ذات ميزات عالية .. أنا أتعلم استحدام هذا المحرك حاليا أستطيع أن أقول أن من يبدأ في تعلم المحرك يظن أنه محدود ومقيد ولكن من ييتعمق فيه يدرك أنه مفتوح بشكل يسمح لك كمبرمج ومصمم عمل أي شي تريدة .. اذا تعونا من الأعذار الواهية أو والحلم بتطوير محرك 2D ..
    لماذا لا نشكل فريق يتكون من 5 أشخاص على الأقل والبدأ في تعلم هذا المحرك .. أعتقد أن هذا أجدى
    ابداوا الأن ولا تضيعوا الوقت ...

  • عاشور

    19/06/2010 02:34:58 م | الرد

    مشكورين اصدقائي موضوعكم رائع جدا وان شاء الله الكل يستفيد

    اريد انا اسالكم كم سؤال لمن جرب هاد المحرك الرائع

    بما اني جديد  وساستخدم المحرك وبما اني ليس لدي الخبرة
    سوي برنامج 3dmaxفاردت ان اقوم بنمذجة بعص الشخصيات والبيئة واضافتها من الماكس الي برنامجudk الا اني فشلت في تصدير المجسمات الي البرنامج لا اعلم كيف اقوم بتصديرها واستخدامها كمارايت بالشروحات الخاصة بالبرنامج فهو يختار قطعة معينة(رجل الي .شخص ما او حتي الابواب والجدران .....الخ ) التي تسمي داخل البرنامجstatekmesh )ويقوم بترتبها وتجميعها مع بعضها البعض حتي ينتج عمل متكامل او مرحلة ما ويبدا بربط العناصرمع بعضها بواسطة kismet
    فمن يعرف كيف اقوم بحفظ المجسمات والبيئةثم اصدرها من الماكس اعتقد انها بصيغة FBXلكن(لا اعرف كيفية التصدير الصحيح)  ولكن تكمن المشكلة عند  استيرادها الي برنامج UDKحيث اني لا اعرف كيف الاستيراد الصحيح   احيانا اقوم باشتيراد مجسم ما فيظهر بدون خامة اويتوقف البرنامج عن العمل والخ من المشاكل  
    لا اقول بان البرنامج به مشاكل لكن لاني لا اعرف الطرق الصحيحة للاستيرادوالتصدير من والماكس وال
    UDK
    فرجاء اجابتي علي هاد السؤال
    اما سوالي  الثاني
    فهو هل بامكاني صناعة لعبة حيث تظهر بها الشخصية كاملة من منظور الشخص الثالث
    وسؤالي الثالث
    هل يجب ان اتعلم الانريل السكربت لاقوم بانتاج لعبة ما او فقط الاعتماد علي KISMET
    سوالي الاخير
    سمعت بان البرنامج يعتمد علي لغة الشي شارب ؟فهل هذا صحيح ؟وهل يحب ان اتعلمها ؟ام ماذا؟

  • Salwan

    22/06/2010 06:49:47 م | الرد

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

    @سلوان بدرة: مرحباً بك، يسعدني ان المقالة كانت ذات فائدة لك، حظاً سعيداً مع UDK Smile

    @يونس: وعليكم السلام ورحمه الله
    اذا كان تطوير محرك 2D هو مجرد حلم بالنسبة لنا كيف تتوقع ان نتعلم ونطوّر العاب ذات ميزات عالية باستخدام UDK؟ Smile
    المشكلة هي ان اي لعبة ذات مزايا عالية تستخدم UDK تحتاج جيشاً من الفنانين المختصين وحفنة من الاموال كميزانية، هكذا امكانات لا يمكن الحصول عليها بسهولة.. خاصة ان كنت في خطواتك الأولى.

    @عاشور: مرحباً بك هنا.
    بالنسبة لسؤالك الأول: لا اذكر التفاصيل تحديداً، هنالك اداة لتصدير المجسمات من ماكس لمحرّك Unreal تسمى ActorX، هل هي ما تستخدمه؟
    على كل حال كل ما تحتاجه من معلومات عادة ما يكون في موقع UDN. على سبيل المثال هذا الدرس القصير لاستيراد مجسّم: udn.epicgames.com/.../...ngStaticMeshTutorial.html
    ماذا يحصل عندما تطبقه؟
    وهذه الدروس جميعها تتكلم عن كيفية بناء المراحل: udn.epicgames.com/Three/UDKLevelCreationHome.html

    السؤال الثاني: بالتأكيد يمكنك ذلك! الفرق الوحيد هو موقع الكاميرا وحركتها.
    السؤال الثالث: حسب معلوماتي KISMET مناسب لاجراءات تفاعلية بسيطة داخل المرحلة، مثل المصاعد، الأبواب الأوتوماتيكية، والمنصات المتحركة مثلاً.
    إن كان هدفك عمل لعبة من نوع الشخص الأول، يمكنك استخدام نفس كود UTGame الذي يأتي كمثال مع تعديلات طفيفة، و KISMET.
    اما إن كنت تحتاج اي نوع من التخصيصات، فلا اعتقد ان هنالك مفر من UnrealScript.
    السؤال الاخير: إن كنت تقصد UnrealEd فهو حسب علمي مبني باستخدام مكتبة wxWidgets وهي احدى مكتبات ++C لبرمجة التطبيقات، المحرّك نفسه مبني باستخدام ++C ايضاً.
    ولكنك لا تحتاج على الإطلاق تعلّم لغة ++C لتستخدم UDK، تحتاج UnrealScript فقط.
    لا تتردد في طرح اي استفسارات اخرى. Smile

  • سلوان بدرة

    23/06/2010 12:04:44 ص | الرد

    السلام عليكم
    أحب أن أضيف على كلام السيد سلوان الهلالي أنه actorX plugin  موجد داخل ملفات الـUDK المنصبة على جهازك ما عليك سو تنصيبه على الماكس, و تحتاج إلى إضافة bones إلى المجسم حتى يعترف به كـ Skeleton Mesh
    أما بالنسبة لتعلم الـ Unreal Script فإنك لا تحتاج هذا في البداية عندما تقوم بعمل لعبة بسيطة أنا كلما زادت اللعبة تعقيدا فسوف تتضطر للتعامل معه
    أما في البداية فعليك أن تواجه ملفات الـ config  فإن الإعدادات الهيكيلة في البرنامج موجودة داخل هذه الملفات مثل ما هي المكتبات و الشخصيات و الخرائط التي تريد ان يطبخها(cook) مع اللعبة و ماهي الخريطة الرئيسية و الشخصية الأساسية وهكذا ..... و هي مكتوبة بالـUnreal Script  ولكنها سهلة التعديل عند تواجد مصدر يعلمك ماذا تريد ان تعدل
    بعض هذه الأشياء مذكورة في هذا الدرس المهم جدا http://www.theballthegame.com/tutorialudk.htm
    و أضيف إلى اللنكات التي أضافها السيد سلوان الهلالي هذه اللنك udn.epicgames.com/Three/UDKCommunityLinks.html تحتوي على كل ما هب و دب من دروس أعطيت على الـUDK من جميع الأشخاص الحبابين حول العالم و الذين قدمو دروس رائعة على البرنامج و من ضمنها دروس للـUnreal Script  وبعض هذه اللنكات هي قنوات على اليوتيوب تقوم بالإضافة بشكل مستمر أنصح بمشاهدتها
    أما أن المجسمات لا يوجد لها خامة فهذا أمر طبيعي فعليك إضافة كل شيء و عمل الخامات داخل الUDK و أما بخصوص أن البرنامج يتوقف فهذا أمر طبيعي و موجود داخل البرنامج فهو يحتوي على بعض المشاكل التي تجعلك تشد شعر رأسك و تتجه نحو الصلع كما حدث معي Smile
    أتمنى لك التوفيق

  • Salwan

    23/06/2010 12:29:03 ص | الرد

    @سلوان بدرة: أشكرك كثيراً على المعلومات، عشت Smile

  • عاشور

    24/06/2010 11:36:43 ص | الرد

    شكرا لكم اخوتي علي هذه المعلومات الرائعةولكم خالص الدعاء
    لكن  كما قلت لكم سايقا باني جديد علي محرك الالعاب  هذا وليس لدي الخبرة بمحركات الالعاب اصلا ولكن حبي للالعاب قادني الي هذا المجال الواسع الذي اصبحت اعرف القليل فيه
    فلدي بعض الاسئلة وهي
    1_ماهو  كود UTGameوكيف يتم التعديل عليه؟
    2_ماهوUnrealScript؟شرح مبسط عنها؟اضافة درس كتابي بالغة العربية في نفس هذا الموضوع يشرح مثال لاستخدامها؟وهل UnrealScript لغة سهلة التعلم؟حتي اقوم بالبحث عن الدروس الخاص باحترافها
    3_بالنسبة لسوالي الاخير السابق فكما قلت لقد قرات في احد المواضيع سابقا بان برنامج udkيعتمد في برمجة الالعاب علي لغة السي شارب ؟لكن لا اعرف كيف سيتم استخدام السي شارب او اي لغة اخري في برمجة الالعاب؟ و هل هناك فرق بين الس شاري والسي بلس بلس؟
    وشكرا لكم كثيرا اخواني علي ما تبذلوه من جهود ل��يصال المعلومة لمن لا يعرفها
    وجزاكم الله خيرا وبارك الله فيكم
    اسف لكثرة الاسئلة

  • Salwan

    24/06/2010 02:19:14 م | الرد

    @عاشور: اهلاً بك مرة اخرى، لا تعتذر عن طرح الأسئلة يا رجل! نحن هنا نساعد بعضنا البعض لكي نستفيد جميعاً Smile

    1. هو كود المثال المرفق مع المحرّك، لعبة شبيهه بـ Unreal Tournament ولكن أبسط، يبدو أن اسمها أصبح UDKGame في الإصدارات الجديدة، تجد الكود داخل Development/Src/UDKGame/Classes
    التعديل عليه يتم بشكل طبيعي باستخدام اي برنامج لتنقيح النصوص، مثلاً Notepad++ او Visual Studio
    2. لغة UnrealScript تقع تقريباً بين ++C و جافا ولها ميزات كثيرة خاصة بها موجهة للألعاب، اخشى ان دليلك الوحيد لتعلمها الآن هو عن طريق UDN وليس هنالك مصادر عربية حسب علمي، هذا هو المرجع الرسمي للغة: udn.epicgames.com/Three/UnrealScriptReference.html
    3. لا اعتقد ان UDK يستخدم #C.... فقط ++C و UnrealScript، هل تملك رابط للموضوع الذي قرأته؟

    على كل حال، لن تحتاج تعلّم سي شارب ولا سي++، لأن لغة البرمجة الوحيدة التي تحتاجها للعمل مع UDK هي UnrealScript. Smile

  • عاشور

    25/06/2010 04:03:03 م | الرد

    شكرا لك اخي سلوان
    وادامك الله بصحة وعافية
    لكن للاسف لا املك الرابط لاني قرأت الموضوع علي الماشي ولم احفظ رابط الموضوع الا اني سابحث عنه من جديد وان وجدته ساضعه
    1_اتمني ان افهم UnrealScript
    2_ اردت تصيدير مجسم من ال3DMAX2011عن طريق ACTORالا انه لاتوجد نسخة خاصة بال3DMAX2011
    قد تقول لي نزل نسخة 2009 او 2010 لكن الاجابة هي انا اواجه المشاكل الكثير  عند تنصيبها وكني اجد 3DAX2011ال مشاكل ومتوافق مع ويندز 7 النازل علي جهازي

    شكرا لك اخي مجددا وان شاء الله ارجع لك باسئلة جديدة
    ملاحظة اود بشدة عمل لعبة متل لعبة UNCHARTED  الجديدة لهذا اود التعلم علي البرنامج اضافة لل3DMAX فهل بامكاني الوصول لعمل مثل هذه اللعبة بعد التطور علي هذا البرنامج ؟ اعرف بانه يحتاج لفريق عمل كبير ؟ ومصاريف كتيرة؟ ومجهود اكبر؟مم يجعلني احيانا اصاب بالياس وخيبة الامل !

  • عاشور

    25/06/2010 04:08:55 م | الرد

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

  • عاشور

    01/07/2010 05:00:23 م | الرد

    السلام عليكم ورحمة الله وبركاتة
    بالنسبة لسوالي الثاني للتصدير عن طريق الاكتور اكس فوجد ت ان النسخة Actor x 2010 تصلح لماكس 2011
    لكني لم اجرب هل يعمل بشكل صحيح ام توجد اخطاء
    والسلاام عليكم ورحمة الله وبركاتة

  • عاشور

    03/07/2010 07:12:53 م | الرد

    شكرا اخواني لكن لم لم تجيبوني علي الاسئلة

  • عاشور

    03/07/2010 07:19:07 م | الرد

      لقد قمت بتحميل الاكتور اكس الخاص ب ال3DMAX2010وقمت بوضعه في ملفات البلقن الخاصة بMAX2011وقمت بتشغيله فالحمدلله نجحت لكن لم اجرب تصدير اي ملف
    وشكرا لكم كثيرا وان شاء الله نحترف سويا علي البرنامج

  • SandHawk

    04/07/2010 10:03:27 ص | الرد

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

    بالنسبة للعبة مثل Uncharted، تعلم ان من طوّرها (Naughty Dog) هو فريق كامل من كافة التخصصات ذو خبرة احترافية عميقة، واخذت منهم 3 سنوات من العمل على الأقل، والأهم من ذلك كله ان Uncharted لم تكن لعبتهم الأولى...
    لو عدنا لأصل شركة Naughty Dog، لوجدنا انها بدأت مع Andy Gavin و صديق طفولته Jason Rubin (وهم مالكي الشركة اليوم) اول لعبة لهم كانت في حدود سنة 1985 لعبة رياضيات بسيطة تحمل الاسم Math Jam على جهاز Apple II، لن تجد لها صوراً حتى!
    اول لعبة يمكنك ان تجد لها صوراً تحمل الاسم Dream Zone، وهي لعبة نصية مرئية تبدو هكذا:
    http://i46.tinypic.com/2le5h1d.png
    اول ظهور لشركة Naughty Dog كان عندما استطاعوا بيع لعبتهم التي تحمل اسم Keef the Thief سنة 1989 لشركة Electronic Arts اي بعد 4 سنوات من الالعاب التي لم تلاقي نجاحاً كبيراً:
    www.mobygames.com/.../keef-the-thief-a-boy-and-his-lockpick
    لاحظ بساطة بداية شركة Naughty Dog، وقل لي ما رأيك الآن؟
    ليس المهم عمل لعبة بمستوى Uncharted، ولكن المهم التحلي بالصبر والعزيمة الكافية لاتخاذ الخطوات الاولى الصعبة رغم العوائق حتى تصل في يوم ما الى ما تريد. Smile

  • عاشور

    04/07/2010 09:50:56 م | الرد

    شكرا لك اخي سلوان وان شاء الله احترف علي هاد البرنامج ولكن لم تجبني علي سؤالي  السابق (وعند طلب اتمني من احد الاعضاء ومنك خاصة اخي سلون لو تسجل كم درس تشرح الانريل سكربت فيها بما لديك من خبرة)
    وشكرا لك مرة اخري لما تقدمه لي من فائدة ورد علي استفساراتي التي ستكون ان شاء الله طريق البداية للاحتراف علي برنامج udk
    واضيف هل الغرب افضل منا ؟ هل يمتلكون عقول اذكي من عقولنا ؟لماذا لانصبح افضل منهم في مثل هذه المجالت؟!!!!!!!!!! التي قد تكون سهلة جدا بالممارسة وبعض المعرفة

  • SandHawk

    04/07/2010 10:31:34 م | الرد

    يسعدني انني قد استطعت المساعدة اخي عاشور Smile
    - بخصوص دروس UnrealScript، لا املك الوقت الكافي لذلك للأسف كما اني لا اعمل على Unreal هذه الأيام.
    - كلا ليسوا افضل منا، في هذا التخصص ليس هنالك غرب بالمعنى الصحيح، معظم فرق تطوير الالعاب تكون متعددة الجنسيات.

  • عاشور

    05/07/2010 04:26:09 م | الرد

    شكرا اخي سلوان لكن عندي سوال واتمني الا تطفش من كثرة اسئلتي
    قمت بتنزيل الفيجول ستوديو 2008
    علما اني شاهدت فيديو يستخدم الانريل سكربت من  خلال الفيجول ستوديو
    حيث انه عندما يختار project<--new<----file
    تظهر نافذةnew project
    يكون من ضمن project types-----------
    c++
    ATL
    CLR
    GENERAL
    MFC
    Smart Drivece
    Test
    Win32
    UnrealScript
    Other languages

    الخ.....   المطلوب كيف اضيف الانريل سكربت الي البرنامج  اي يكون ضمن البرنامج عند اي عنلية فتح  

  • SandHawk

    06/07/2010 01:55:26 ص | الرد

    الأداة الوحيدة الموجودة الآن التي تقوم بذلك تسمى nFringe، وهي مجانية للاستخدام المجاني فقط (free for non-commercial use)
    موقع الأداة:
    wiki.pixelminegames.com/index.php?title=Tools:nFringe
    للتحميل:
    wiki.pixelminegames.com/index.php?title=Tools:nFringe:Releases
    دروس فيديو لكيفية تثبيتها واستخدامها:
    forecourse.com/2009/11/preparing-udk-for-your-game
    Smile

    (آسف لعدم وضعهم كروابط، يبدو أن رمز ":" يسبب مشكلة ان كان ضمن رابط)

  • عاشور

    06/07/2010 11:06:33 ص | الرد

    شكرا لك اخي سلوان تعبتك معايا لكن بحثت البارحة ووجدتها وقمت بتنصيبها وتحميل نسخة الفيجول ستوديو  Visual Studio 2008 Shell  .من هاد الرابط
    www.jadeskaggs.com/.../
    شكرا لك اخي مرة اخري ما قصرت
    ان شاء الله ارجع باسئلة جديدة  دون ازعاجك ^ــــــ^
    لكن يقيت مشكلة ساحاول حلها وان لم انجح ساطرحها
    دمت في حفظ الله ورعايته

  • عاشور

    06/07/2010 11:31:41 ص | الرد

    السلام عليكم  
    لقد وجدت الحل للمشكلة التي واجهتي وهي اني كنت قد نصبت الnFringe الاصدار الاقدم والان قد نزلت اخر نسخة   nFringeSetup-1.1.16.101.msi  التي تم اصلاح الاخطاء بها.

  • عاشور

    06/07/2010 08:11:51 م | الرد

    لا تعتدز اخي الكريم بارك الله فيك ..لكن قد قمت بالبحث عن البرنامج البارحة بعد ان وضعت السوال ووجدت الحل
    شكرا لك
    وهو كما ذكرت
    شكرا لك

  • عاشور

    15/07/2010 06:42:51 م | الرد

    شكرا لك اخي سلوان  وبفضل الله
    استطعت بمساعدتك ان اجد الكتير لبرنامج UDKوقدوضعت موضوعا خاصا به
    تفضل وشاهد هذا الموضوع واعطني رايك  يهمني http://www.maxforums.net/showthread.php?t=179168
    واخير اريد ان اسالك سوال صغير وهو
    ماهو مؤهلك العلمي  اقصد ما تدرس  او تشتغل  هل انت مهندس
    لاني حتي الان لا اعرف بصراحة لكن اتوقع الاخيرة
    والسلام عليكم ورحمة الله وبركاته

  • Salwan

    15/07/2010 07:27:54 م | الرد

    مجموعة رائعة من المصادر! سلمت يداك
    وأشكرك على ذكر اسمي، لم يكن هنالك داع لذلك يا رجل!

    بالنسبة لمؤهلي العلمي فهو كما توقعت.. هندسة الكومبيوتر، ناقشت قبل ايام مشروع تخرجي وسأتخرج إن شاء الله الفصل القادم Smile
    ماذا عنك اخي عاشور؟

  • عاشور

    17/07/2010 05:42:43 م | الرد


    بالنسبةلي انا ادرس دبلوم تصميم ومونتاج بجامعة الازهر بغزة  ومن المفترض ان اتخرج هاذ الفصل الا ان مشروع تخرجي اجبرتني علي تاجيل هاد الفصل للسنة القادمة
    اذا لم يكن بها غلبة اضفني الي ايميلك FOXMAX-3D@HOTMAIL.COM
    والسلام عليكم ورحمة الله

  • عاشور

    18/07/2010 01:03:17 م | الرد

    حاليا ادرس دبلوم تصميم ومونتاج وهذا الفصل من المفترض فصل تخرجي فقمت بتاجيله للسنة القادمة بسب مشروع التخرج

  • حمد الحسن

    28/07/2010 11:28:44 م | الرد

    الاستاذ الفاضل سلوان الهلالي ، اشكرك على مجهودك في كتابة هذه المدونة الرائعة ويسعدني ان ارى اهتمام العرب ببرمجة الالعاب..

    لدي سؤال استاذي ، ماهو برأيك الافضل udk او unity3d ؟ ولماذا؟

  • Salwan

    29/07/2010 09:36:05 ص | الرد

    أهلاً بك حمد ويسعدني ان يكون ما اكتبه هنا ذو فائدة Smile

    رغم أن Unity3D و UDK مشابهان كحلول، إلا اني اجد صعوبة في عقد مقارنة مباشرة بينهما لأن كل منهم يستهدف شريحة معينة من المطوّرين... يعتمد ايهما الأفضل على ما تحتاجه.

    Unity3D محرك خفيف، عملي، ومن الممتع العمل معه... يستهدف الالعاب المحدودة نسبياً، ولا يقدّم دعماً لآخر ما توصلت له تقنيات الالعاب... اشياء كثيرة مفقودة فيه، حتى انه لا يقدم في اصداره الحالي Debugger للكود!
    ولكن هذه المزايا تجعل منه مناسب للأفراد والفرق الصغيرة ذوو الميزانية المحدودة الراغبين بتطوير العاب ذات نطاق محدود بسرعة (عادة Casual).
    كما يمكن تطوير العاب الانترنت من نوع MMO باستخدامه.

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

    الفرق بينهما يمكنك اعتباره الفرق بين لعبتي http://maxandthemagicmarker.com و htp://www.armyoftwo.com، حيث الأولى تستخدم Unity  والثانية Unreal Engine 3. Smile

    شكراً على الكلمات الطيبة

أضف تعليقاً

Loading