الشبكة العربية لمطوري الألعاب

  Luay Yari مشاركة 1

السلام عليكم:
بدون مقدمات أنا أريد أ ن أتعلم مجال صناعة الألعاب و أن أبدع فيه و فمن أي خطوة يجب أن أبدأ ؟ و بأي موضوع يجب أن ألم به غير البرمجة؟

خبير مدير وسام البهنسي مشاركة 2

صناعة الألعاب ليست بالضرورة برمجة ألعاب. لكن في النطاق المحلي هي كذلك.
ببساطة، المجالين الرئيسيين هما تصميم الرسوميات، والبرمجة. إن أردت إتقان أحدهما، فعليك إيجاد شخص يتقن الشق الآخر ويتعاون معك لإنجاز شيء ذو قيمة.
سأبدأ بالحديث عن الشق البرمجي. هناك عدة طرق للوصول إلى نفس النتيجة، لكن القاعدة العامة هنا هي: "الطريق الأصعب هو الذي يعطي الخبرة الحقيقية". إن كنت تريد أخذ الأمور بجدية وتصبح مبدعاً في هذا المجال، فابتعد عن المحركات الجاهزة التي تتيح لك صناعة لعبة كاملة بضغطتي ماوس. نحن هنا بصدد التعلم والخبرة، لذا لا أجد مانعاً من إعادة اختراع الدولاب على سبيل المعرفة والتجريب.
الأدوات... لحسن الحظ، يمكنك برمجة ألعاب كاملة على الـ PC دون أن تضطر لدفع أي قرش، ولا أتكلم هنا عن القرصنة، وإنما جميع الأدوات اللازمة لبرمجة لعبة للـ PC فعلاً مجانية (مترجم ++VC بدون واجهة استخدام، مكتبات OpenGL، مكتبات DirectX، مكتبات Win32 API إلخ).
هذه _هي _ (وأشدد على كلامي هذا) الأدوات الحقيقية التي عليك تعلمها إن أردت أن تصبح شيئاً ما ترغب به الشركات. أما التلاعب والاعتماد على الـ samples والـ Copy/Paste فلن يوصلك لأية نتيجة.
الإنترنت مليييئة بمراجع عن الموضوع، وإن كنت مهتماً بالشق البرمجي، فيمكنني اقتراح مجموعة من الكتب تفيد في وضعك على الطريق الصحيح.
كما أن لديك مرجعاً مهماً هو هذا الموقع☺ نحن هنا دائماً لمساعدتك في أية مشاكل تواجهها، لذا فلا تخف أن تصل لطريق مسدودة.

إن كنا نتكلم عن فريق لعبة نموذجي، فهناك العديد من الأدوار. مصمم اللعبة، رسام شخصيات، مصمم 2D أو 3D (حسب اللعبة)، رسام texture للـ 3D، كاتب سيناريو، مهندس صوت، موسيقي، مبرمج، مصمم مراحل.
هذا بغض النظر عن الفريق الإداري طبعاً. لكن لشخص يريد أن يتعلم أو يكتسب خبرة، يمكنه إنجاز لعبة محدودة بمساعدة شخص واحد فقط، وأنا جدي هنا... نعم، شخصين يمكنهما بناء لعبة صغيرة ومسلية كذلك إن كانت الفكرة جديدة. فهل ستكون أنت الشخص التالي الذي سيفعل ذلك؟ ☺

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

خبير مدير وسام البهنسي مشاركة 3

التعليق على مشاركة وسام البهنسي في Oct 12, 2005 9:38 :

> هذه _هي _ (وأشدد على كلامي هذا)
> الأدوات الحقيقية التي عليك تعلمها إن أردت أن تصبح شيئاً
> ما ترغب به الشركات. أما التلاعب والاعتماد على الـ samples
> والـ Copy/Paste فلن يوصلك لأية نتيجة.

فقط كي أوضح قصدي هنا:
الـ samples هي من أهم المراجع المتاحة للمبرمجين. ما عنيته أن لا تقوم بأخذ الـ sample كما هو ثم تقوم بنسبه إلى نفسك. هذا عمل مشين. الولد المؤدب هو من يقرأ الـ sample ويفهمه قبل أن يستفيد منه بالشكل الصحيح في برنامجه الخاص. الفكرة هي أننا بشر لنا عقول لنطور بها ما بدأه من سبقنا، ولسنا -عفواً- قروداً نأخذ ظاهر ما يفعله البشر ونترك الفكر☺

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

  Luay Yari مشاركة 4

شكرا و لكن هل يمكنك مساعدتي بإعطائي عناوين المواقع والكتب اللازمة في شق بداية هذا الطريق
و هل يمكن تحويل لعبة تم برمجتها على الكمبيوتر إ لى جهاز آخر كألعاب الفيديو المعروفة؟

خبير  Mohammad Khashashneh مشاركة 5

Console programming is very different from PC game programming. As far as I know, you need the Official SDKs ( Software Development Kit ) for each console to legally program games. BUT, there are many unofficial tools and SDKs for learning how to program these consoles called Homebrew Tools. Consoles such as the PSP , PS2 , Gameboy Advance and DS... These Tools are Opensource and free supported by a huge user base. All you need is to google.

My question is : To program 3D you need to rely on APIs such as DirectX , OpenGL and SDL. is it right to learn these APIs first or is it better to try to Learn by making my own 3D rendering code. This process is Hard and takes a lot of time, and As far as I know most people learn 3D programming concepts by learning OpenGL or DirectX.

من سار على الدرب وصل, من جد وجد...
بس عتبك على اللي بيسمع

خبير مدير وسام البهنسي مشاركة 6

التعليق على مشاركة Mohammad Khashashneh في Oct 14, 2005 5:38 :

> My question is :
> To program 3D you need to rely on APIs such as DirectX
> , OpenGL and SDL. is it right to learn these APIs first
> or is it better to try to Learn by making my own 3D
> rendering code. This process is Hard and takes a lot
> of time, and As far as I know most people learn 3D
> programming concepts by learning OpenGL or DirectX.

يا إلهي! ستضيع الكثييير من الوقت لتكتب renderer خاص بك. طبعاً هو خبرة رائعة، لكن دع ذلك لوقت لاحق ستضطر لتعلم العديد من الخوارزميات لأداء أمور تجدها بسيطة في النهاية (رسم خط، تعبئة مثلث، إخفاء الأسطح المغطاة... الخ).
نعم DirectX أو OpenGL هما البداية الصحيحة للتعلم. إبدأ من كتاب معروف وسر معه خطوة بخطوة وستجد نفسك على الطريق الصحيح. يأتي مع DirectX ملفات الـ help الخاصة به (documentation)، وهي جيدة كبداية البداية، لكنها تتوقف عند هذا الحد لتقفز قفزة هائلة إلى مواضيع متقدمة جداً. لذا أفضل استخدام الـ SDK documentation للمرجعية فقط (referencing).

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

خبير مدير وسام البهنسي مشاركة 7

التعليق على مشاركة Luay Yari في Oct 13, 2005 22:56 :

> شكرا و لكن هل يمكنك مساعدتي بإعطائي عناوين المواقع
> والكتب اللازمة في شق بداية هذا الطريق و هل يمكن تحويل
> لعبة تم برمجتها على الكمبيوتر إ لى جهاز آخر كألعاب
> الفيديو المعروفة؟

كما قال محمد، الـ consoles ليست أجهزة PC مخبأة في علبة صغيرة. ستضطر لإعادة كتابة جزء لا بأس به من اللعبة كي تعمل على نظام console آخر (هذا بفرض أنك استعددت لهذه العملية مسبقاً).

كتب ومواقع، هممم... يقولون أن موقع http://nehe.gamedev.net جيد للبدايات مع DirectX.

هناك كتاب Advanced 3D Game Programming Using DirectX 9.0
تأليف Martha McCuller وتوزيع Wordware.
(لا تغرك الأسماء، فالكتاب موجه للمبتدئين حقاً).

وكتاب Beginning Direct3D Game Programming توزيع Premiere Press

أيضاً عملية google على Direct3D Introduction Tutorials ستظهر لك المزيد. لكني أفضل الكتب دائماً!

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

  Mohammad Aburrub مشاركة 8

Dear Luay

if one thinks twice, it is really a tough question,
let me try to answer as a beginner, I am not going
to say do this and that u become a game programmer however I
will give u some hints from my personal experience regardless
the fact that I did not make any thing serious till this point:

(1) educate yourself with some background and theory
before diving, for example u should know what is
a transform, projection, geometry and many more,
if u google with file type ppt u will get slides
prepared by teachers and students in some universities
(sorry to say that, not arab universities) that present
such subjects in an academic form which does not yield
impressive visual effects on the screen but it would make
u confident of the subject.

(2) Study and analyze an existing open source engine
and rewrite it your way, what I did, I took irrlicht
(http://irrlicht.sourceforge.net) and started studying it,
this is a very powerful engine with simple design, to
be honest with u, u will find some of its components
messy, and here u do it in your style. please do not
be disappointed if u find the engine tough the first time.
I could not understand every thing the engine does but at
least it lights the road for u and widen your thinking
in this field

(3) do not stop and give up if things do not work from the:
I am not gonna say the first time, I would say the 10th
time, keep retrying until it works, this way u build
one block each time, it is very long and tough trip,
so be aware of that. recall that games are one of the
most difficult projects to debug, if u are writing a program
that adds numbers then u can check the results but in games,
the output is something seen on the screen however in
reality it is data junks in memory, it is very difficult
to compare two things that differ in nature.

(4) do not look at the end of the road, for example do
not say how can I build a game like auto theft, your
brain will explode, just focus on your next step despite
the fact that it is step 3 out of 5000

(5) if u end up rotating a cube or or displaying a
textured polygon after some hard work,
I know u will be very happy since u know that allot
of technology, programming and hard work was involved
but if u want my advice do not show it to your family
and friends if they are not interested in the subject
since they will not be surprised, they will only look
at the cube and only the cube not on the technology
behind, they will disappoint you☺

I hope this would give u some light,
please do not forget us in palestine
from your prayers in ramadan

خبير مدير وسام البهنسي مشاركة 9

التعليق على مشاركة Mohammad Aburrub في Oct 21, 2005 14:19 :


> (5) if u end up rotating a cube or or displaying a
> textured polygon after some hard work,
> I know u will be very happy since u know that allot
> of technology, programming and hard work was involved
> but if u want my advice do not show it to your family
> and friends if they are not interested in the subject
> since they will not be surprised, they will only
> look at the cube and only the cube not on the
> technology behind, they will disappoint you☺

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

وهكذا سقطت آمالي من قمة السعادة إلى هاوية الاكتئاب!

وسام البهنسي
مبرمج في إنفيديا وإنفريمز

خبير  Mohammad Khashashneh مشاركة 10

Same here except I only made a simple Tetris like demo using 2D vector graphics.
I was very happy to do it but my friends were telling me that it was stupid.
But anyway , When you put your first Pixel on the screen You think you can take over the world☺

من سار على الدرب وصل, من جد وجد...
بس عتبك على اللي بيسمع