Zimenk, jak zwykle wielkie ambicje :) Co oczywiście nie jest złem, ale muszę cię zniechęcić. Życie jest okrutne a w programowaniu żeby coś osiągnąć (w tych czasach) trzeba kilku/kilkunastu lat wysiłku. Mówiąc (pisząc) osiągnąć chodzi o to, że gry i aplikacje, w ogóle cała technologia w dzisiejszych czasach stoi na poziomie maksymalnym. Dla przykładu 3 lata temu kupowałem kompa (na tamte czasy dość dobry: 1GB ram, ~1.7GHZ procek itd) Teraz jak widze na powiedzmy allegro są komputery ~50x lepsze, i nie przesadzam a o graniu w lepsze gry typu Gothic 3 lub GTA 4 moge zapomnieć ;(. No a tak o to co pytałeś:
-Jeśli chcesz podstawową grę:
Gre da się stworzyć nawet na poziomie podstawowym w danym języku. Jeśli programowałeś albo jesteś troche wtajemniczony to wystarczy umieć pętle, tworzenie zmiennych i funkcje. Do tego troszeczke czasu na nauczenie wybranej biblioteki (co naprawde zazwyczaj nie jest trudne). Całość wymieniona wyżej zajmie Ci około tygodnia. Tylko powiem Ci tak: Dajmy na to że umiesz tyle ile napisałem powyżej. Kod gry Ping-Pong zajmie ci gdzieś 1000-5000 linii kodu. Kiedy umiesz pisać na poziomie bardzo wysokim zajmie ci to najwyżej 500 linijek. To jest właśnie to. Tu nie widać bardzo dużej różnicy (może sie wydaje ale to mało) ale tu raczej łatwiej by było liczyć w procentach bo nie chodzi nam często o Ping-Ponga. Dajmy na to że gierka MMO ma 100000 linii kodu. Jest bardzo umiejętnie pisana przez bardzo wykwalifikowanych programistów. Teraz zabiera się za to początkujący programista (no niech będzie da rade). Jego kod zajmie kilkanaście razy więcej linii. Powiedzmy że początkujący pisać będzie tak:
BITMAPA postac_obrazek;
int postac_x, postac_y, postac_w, postac_h;
int postac_maxhp, postac_maxmp, postac_hp, postac_mp;
Bardziej wykwalifikowany programista posłuży się obiektowością i zrobi to tak:
Jeśli nie programowałeś to tego nie zrozumiesz, ale zapewniam Cię że dużo to daje.
Teraz znowu wróćmy do tematu. Aby stworzyć coś typu mario wg. mnie wystarczy tak:
-Znajomość w języku programowania duża/bardzo duża (np. C++ do OOP (Obiect Oriented programming))
-Znajomość narzędzia wspomagającego pisanie (np. biblioteka graficzna) na poziomie dużym/bardzo dużym
-Znajomość matematyki dobra (ew. trygonometria)
-Brak "słomianego zapału"
-Duże chęci
-(w przypadku C++) znajomość biblioteki standardowej "STL" w stopniu średnim/dobrym
Jeśli chcesz zaawansowaną grę (3D lub lepsze gry 2D)
-Znajomość języka programowania bardzo duża/doskonała (np. większa część C++)
-Znajomość narzędzia wspomagającego (np. biblioteka, silniki) na poziomie bardzo dużym/doskonałym (raczej doskonały)
-Znajomość matematyki bardzo dobra (tutaj MUSI być trygonometria i inne rzeczy)
-Baaardzo duże chęci
-(w przypadku C++) znajomość biblioteki standardowej "STL" w stopniu dobrym/bardzo dobrym
I NAJWAŻNIEJSZE bardzo duży "staż" w programowaniu. Trzeba napisac ogółem bardzo wiele kodu żeby w praktyce sobie dać radę!
TO WSZYSTKO JEST OFC. WG. MNIE!
Napisałem to wszystko (wymagania etc.) głównie dla tych co chcą z łatwością pisać (chociaż dla zaawansowanych gier to i tak niezbyt dużo da).
WoW to chyba mój najdłuższy post.
Podsumowując (i dodając kilka rzeczy) zalecałbym zrobić tak:
- Czytać kursy/książki o np. C++ (lub innym języku) aż osiągnie się bardzo wysoki poziom
- Krok następny. Zacząć pisać gry 2D i różne algorytmy (chodzi aby poćwiczyć logiczne myślenie (co naprawde później uświadamiamy sobie że czasami jest trudne) i matematyke w C++)
- Krok następny. Zacząć pisać, pisać i jeszcze raz pisać trudniejsze zadania.
- Krok następny. Zacząć pisać gry 3D cały czas ucząc się C++.
Te wszystkie porady UP. dotyczyły ogółem gier a nie silników ale silnik często używany jest nie jako silnik graficzny lub fizyczny tylko jako kod odpowiadający za mechanizmy danej gry, który tylko do niej jest potrzebny.