صناعة الألعاب ليست بالضرورة برمجة ألعاب. لكن في النطاق المحلي هي كذلك. ببساطة، المجالين الرئيسيين هما تصميم الرسوميات، والبرمجة. إن أردت إتقان أحدهما، فعليك إيجاد شخص يتقن الشق الآخر ويتعاون معك لإنجاز شيء ذو قيمة. سأبدأ بالحديث عن الشق البرمجي. هناك عدة طرق للوصول إلى نفس النتيجة، لكن القاعدة العامة هنا هي: "الطريق الأصعب هو الذي يعطي الخبرة الحقيقية". إن كنت تريد أخذ الأمور بجدية وتصبح مبدعاً في هذا المجال، فابتعد عن المحركات الجاهزة التي تتيح لك صناعة لعبة كاملة بضغطتي ماوس. نحن هنا بصدد التعلم والخبرة، لذا لا أجد مانعاً من إعادة اختراع الدولاب على سبيل المعرفة والتجريب. الأدوات... لحسن الحظ، يمكنك برمجة ألعاب كاملة على الـ PC دون أن تضطر لدفع أي قرش، ولا أتكلم هنا عن القرصنة، وإنما جميع الأدوات اللازمة لبرمجة لعبة للـ PC فعلاً مجانية (مترجم ++VC بدون واجهة استخدام، مكتبات OpenGL، مكتبات DirectX، مكتبات Win32 API إلخ). هذه _هي _ (وأشدد على كلامي هذا) الأدوات الحقيقية التي عليك تعلمها إن أردت أن تصبح شيئاً ما ترغب به الشركات. أما التلاعب والاعتماد على الـ samples والـ Copy/Paste فلن يوصلك لأية نتيجة. الإنترنت مليييئة بمراجع عن الموضوع، وإن كنت مهتماً بالشق البرمجي، فيمكنني اقتراح مجموعة من الكتب تفيد في وضعك على الطريق الصحيح. كما أن لديك مرجعاً مهماً هو هذا الموقع☺ نحن هنا دائماً لمساعدتك في أية مشاكل تواجهها، لذا فلا تخف أن تصل لطريق مسدودة.
إن كنا نتكلم عن فريق لعبة نموذجي، فهناك العديد من الأدوار. مصمم اللعبة، رسام شخصيات، مصمم 2D أو 3D (حسب اللعبة)، رسام texture للـ 3D، كاتب سيناريو، مهندس صوت، موسيقي، مبرمج، مصمم مراحل. هذا بغض النظر عن الفريق الإداري طبعاً. لكن لشخص يريد أن يتعلم أو يكتسب خبرة، يمكنه إنجاز لعبة محدودة بمساعدة شخص واحد فقط، وأنا جدي هنا... نعم، شخصين يمكنهما بناء لعبة صغيرة ومسلية كذلك إن كانت الفكرة جديدة. فهل ستكون أنت الشخص التالي الذي سيفعل ذلك؟ ☺
التعليق على مشاركة وسام البهنسي في Oct 12, 2005 9:38 :
> هذه _هي _ (وأشدد على كلامي هذا) > الأدوات الحقيقية التي عليك تعلمها إن أردت أن تصبح شيئاً > ما ترغب به الشركات. أما التلاعب والاعتماد على الـ samples > والـ Copy/Paste فلن يوصلك لأية نتيجة.
فقط كي أوضح قصدي هنا: الـ samples هي من أهم المراجع المتاحة للمبرمجين. ما عنيته أن لا تقوم بأخذ الـ sample كما هو ثم تقوم بنسبه إلى نفسك. هذا عمل مشين. الولد المؤدب هو من يقرأ الـ sample ويفهمه قبل أن يستفيد منه بالشكل الصحيح في برنامجه الخاص. الفكرة هي أننا بشر لنا عقول لنطور بها ما بدأه من سبقنا، ولسنا -عفواً- قروداً نأخذ ظاهر ما يفعله البشر ونترك الفكر☺
شكرا و لكن هل يمكنك مساعدتي بإعطائي عناوين المواقع والكتب اللازمة في شق بداية هذا الطريق و هل يمكن تحويل لعبة تم برمجتها على الكمبيوتر إ لى جهاز آخر كألعاب الفيديو المعروفة؟
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.
من سار على الدرب وصل, من جد وجد...
بس عتبك على اللي بيسمع
التعليق على مشاركة 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).
التعليق على مشاركة Luay Yari في Oct 13, 2005 22:56 :
> شكرا و لكن هل يمكنك مساعدتي بإعطائي عناوين المواقع > والكتب اللازمة في شق بداية هذا الطريق و هل يمكن تحويل > لعبة تم برمجتها على الكمبيوتر إ لى جهاز آخر كألعاب > الفيديو المعروفة؟
كما قال محمد، الـ consoles ليست أجهزة PC مخبأة في علبة صغيرة. ستضطر لإعادة كتابة جزء لا بأس به من اللعبة كي تعمل على نظام console آخر (هذا بفرض أنك استعددت لهذه العملية مسبقاً).
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
التعليق على مشاركة 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 عليها. البرنامج ببساطة يقوم بتلوين النافذة بألوان تتدرج مع الزمن. جاء صديقي ليرى النتيجة، وقال: همف! أين الاختراع في الموضوع؟
وهكذا سقطت آمالي من قمة السعادة إلى هاوية الاكتئاب!
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☺
من سار على الدرب وصل, من جد وجد...
بس عتبك على اللي بيسمع