السلام عليكم..أكيد انكم تحبون الألعاب و لا سيما ال3d يعني مثل Tomb Riader أو Final Fantasy أو غيرها...
ولكن أغلبكم لم يفكر كيف تصنع هذه الألعاب ..أكيد انكم تقولون انها صعبة و معقدة و هي بالفعل كذلك..
من خلال بحثي لمدة عام و نصف توصلت لنتائج ممتازة ...
نظرية برمجة الألعاب لا تتكامل غلا باشياء ثابتة :
- شخصيات (أو ما يسمى بلغة البرمجة فئات أو كائنات ).
- مراحل(يتم استيرادها من الخارج).
- لغة برمجة و هي الأهم.
نبدأ بالشخصيات و هي مجسمات متكاملة تصمم بدقة باستخدام برامج عديدة لن أقول 3Ds max بل هناك برنامج متخصص
بتصميم الشخصيات فقط اسمه Poser يصنع شخصيات مذهلة.
أما المراحل حتما بال 3Ds max إذا لم تكن تستخدم محرك برمجي في لعبتك..
و أما لغة البرمجة فهناك العديد و لكن الVisual Basic غير قادرة على تحمل اللعبة ..
لذلك فاللغة الأساسية لبرمجة الألعاب هي :
Microsoft Visual C++
و هي اللغة الأعقد و الأصعب بين اللغات و تكمن قوتها في قدرتها على التعامل مع الذاكرة و الHrad Ware بحرية و هذا ما
يجعل مبرمجي الفيروسات يحبونها .
مثلا لكي تظهر أمامك صفحة فارغة يجب أن تكتب الكود التالي بلغة ++C:
كود:
#include <windows.h>
// Step 4: the Window Procedure
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASS wc;
HWND hwnd;
MSG Msg;
//Step 1: Registering the Window Class
wc.style = 0;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+23);
wc.lpszMenuName = NULL;
wc.lpszClassName = " The Crash ";
RegisterClass(&wc);
// Step 2: Creating the Window
hwnd = CreateWindow(
" The Crash ",
"The title of my window",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, 240, 120,
NULL, NULL, hInstance, NULL);
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
// Step 3: The Message Loop
while(GetMessage(&Msg, NULL, 0, 0) > 0)
{
TranslateMessage(&Msg);
DispatchMessage(&Msg);
}
return Msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM
lParam)
{
switch(msg)
{
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0;
}
فلك أن تقدر ما يجب كتابته حتى تصنع لعبة
- من داخل لغة البرمجة نقوم بإنشاء عالم ثلاثي و لكن كيف ..احزروا بواسطة ماذا ؟
إنه ال Direct x نعم الكثير منا يظن بأنه مسرع ألعاب ولكن هذا كلام خاطئ ال Diret x هو مكتبة قادرة على إنشاء العالم الثلاثي
الأبعاد بكل ماتريكساته و كاميراته و الإ ضاءه ..و أنت عندما تحمله على جهازك إنما تقوم بعملية تحديث للمكتبة التي عندك .
يقوم الDiretc x بإنشاء ثلاث أسطح واحد رئيسي وواحد يقوم بالرسم و الثالث يمسح بشكل مستمر.
ثم تقوم بإنشاء الكاميرا و إضاءه و تحديد مواقع كل ذلك و حركاتها.ثم تقوم باستيراد الشخصيات و المراحل بواسطة المحرك أو
بدونه ..
و بعدها تبرمج عقول هذه الشخصيات بواسطة ما يسمى بالذكــاء الاصطناعي و هي تقنية معقدة أيضا تستخدم في برمجة الآلات
لكي تصبح قادرة على التصرف بمفردها ..
و في نهاية تكون المهارة في الدمج بين كل هذه الأشياء و لاتتوقع أن تصنع لعبة بين يوم و ليلة فلنأخذ مثال أكبر شركة ألعاب
Electronic Arts تملك مئات العاملين في هذا المجال و مع هذا فلعبة مثل Fifa تحتاج إلى عامين او عام من العمل على أقل
تقدير...
ذكرت المعلومات السابقة للثقافة العامة أنا شخصيا مستمر في متابعة الموضوع حتى تروا ألعاب من برمجتي في النادي ..و أي
سؤال أنا جاهز ..
إيــاس
المفضلات