W jakim języku jest napisany kod źródł. do Jagged Alliance 2

Witam wszystkich

Z tego co się orientuje to jest on napisany w języku C++. Na chwilę obecną nie znam się kompletnie na tym, dlatego mam do Was pytanie czy na pewno to jest ten język oraz czy to jest jakaś specjalna wersja tego języka.

Kod źródłowy

http://jagged-alliance.pl/plik12/pobierz/

Chciałbym wdrożyć w nim dość zaawansowane zmiany, czy wystarczy zacząć uczyć się od razu tego języka, aby tego dokonać, czy może warto nauczyć się wcześniej jakiegoś innego języka programowania.

Z góry dziękuje za odpowiedź.

Na pierwszy rzut oka dużo bardziej przypomina czyste C.

Tak w ogóle fajnie, że obrałeś sobie ambitny cel, ale żeby dokonywać poważnych modyfikacji w kodzie istniejącej gry, wypadałoby mieć parę lat doświadczenia. Nie znasz języka, nie umiesz “myśleć programistycznie”, C to dosyć trudny, niskopoziomowy język, gry to strasznie złożone programy -> wszystko to składa się na fakt, że szanse powodzenia twojego projektu są bliskie 0;

Przez analogię - twój post wygląda mniej więcej jak “Nie mam pojęcia o mechanice. Powiedzcie - to klucz czy śrubokręt? Będę tuningował Boeninga 747” na forum dot. mechaniki i aeronautyki. Słowem - nie wiesz, na co się porywasz.

Pobieżnie przejrzałem kilka plików. Jest projekt Visuala (dosyć starego, z którego roku ta gra?).

Większośc kodu jest w C, jest trochę kodu C++, są wstawki assemblerowe, kod korzysta z visualowych rozszerzeń języka.

Sama znajomość języka to trochę za mało do wprowadzania większych zmian w projekcie tego kalibru :wink:

Tym bardziej spróbuje swoich sił. Jeśli po pół roku nauki dalej nic mi nie będzie wychodzić, to wtedy zrezygnuje.

Bardzo dobra analogia opisująca moją sytuację, ale absolutnie nie zrażam się do mojego celu. Już mnóstwo rzeczy i zmian wykonałem w tym kodzie i wszystko po kompilacji w Visualu działa bez zarzutu i błędu. Gra się absolutnie nie wysypuje. To były bardziej proste rzeczy na zasadzie dodania nowych rzeczy do już istniejącej listy, czy zmiana interfejsu gry, współrzędnych, parametry obiektów i tak dalej, lecz to co chcę teraz wykonać wymaga przynajmniej zrozumienia jak to wszystko jest powiązane i skonstruowane, dlatego wolę najpierw zasięgnąć Waszej rady.

Z 1999 roku.

Bardzo proszę o rozwinięcie myśli, co dokładnie wchodziło by w grę.

Jest to język C z dodatkowymi bibliotekami,silnik gry tworzy się tak,aby obudowywać go w bibliotekach,mając silnik można zrobić nową podobną grę,Język C++ to C rozszerzony o klasy,dziedziczenie,programowanie obiektowe.C nie jest trudny.Ogólnie programista musi nauczyć się myśleć jak maszyna,komputer wykonuje ciąg prostych instrukcji w stylu c=a+b,porównuje wartości,sprawdza i w zależności od spełnienia bądż niespełnienia warunku,wykonuje jedne bloki instrukcji,lub inne.Poczytaj sobie o algorytmach,to jest wstęp do nauki programowania.Wyszukiwanie wartości w zbiorze liczb,sortowanie,rozwiązywanie równań kwadratowych.Jeśli to zrozumiesz,zrozumiesz czym jest programowanie komputerów.Algorytmy są podstawą programowania.Ciąg operacji dający rozwiązanie problemu - algorytm,przekłada się na język programowania,dodaje do tego dane do przetworzenia i otrzymuje działające programu

Jeśli nigdy nie programowałeś spora droga przed tobą by dojść do poziomu takich projektów :wink:

Musisz umieć myśleć logicznie, analitycznie, wiedzieć mniej/więcej jak działa komputer, nauczyć się programować.

Na początek zapoznaj się z http://gynvael.coldwind.pl/?id=238 i http://gynvael.coldwind.pl/?id=374.

Naucz się C++ http://xion.org.pl/productions/texts/coding/megatutorial/ i http://www.intercon.pl/~sektor/cbx/ oraz poczytaj o C https://pl.wikibooks.org/wiki/C.

Powinieneś rozumieć działanie wskaźników http://www.youtube.com/watch?v=bewTJaboGIw, http://www.youtube.com/watch?v=1I0ObS-RQvQ, http://www.youtube.com/watch?v=ICrBkVxkdVI, http://www.youtube.com/watch?v=mqCULVvaS1c, http://www.youtube.com/watch?v=YvA8tNm0FbA, http://www.youtube.com/watch?v=B7x-RWNGhgc, http://www.youtube.com/watch?v=_5pfrvlY_cA, http://www.youtube.com/watch?v=OuJMvfwblb0, http://www.youtube.com/watch?v=ByzWW_IiGU0.

Zauważyłem wstawki assemblerowe w tym kodzie, więc dobrze by było jakbyś się zapoznał z assemblerem http://rudy.mif.pg.gda.pl/~bogdro/index.php,

(dla kompletności możesz się zapoznać z [http://re.coldwind.pl/](http://re.coldwind.pl/)), [http://www.youtube.com/playlist?list=PL7CA8FE35B665D4DD.](http://www.youtube.com/playlist?list=PL7CA8FE35B665D4DD.)

Właściwie to polecam wszystkie filmy z tego kanału http://www.youtube.com/user/GynvaelColdwind :slight_smile:

Z tego co widzę ta gra używa WinAPI, więc MSDN nie powinien być Ci obcy http://msdn.microsoft.com/en-us/library/hh447209 (oczywiście nie musisz wszystkiego znać na pamięć) :wink:

Dobrze by było jakbyś poznał kilka paradygmatów programowania.

No i przede wszystkim dużo chęci :stuck_out_tongue:

Jest to bardzo duże uproszczenie :wink:

Musiałbyś się ładne kilka lat uczyć, żeby w ogóle ten kod zrozumieć, rozumieć zarys projektu itd. Język jest tylko narzędziem, którego każdy głupi może się nauczyć i rozumieć poszczególne linijki, ale zrozumieć napisany dawno temu spory projekt - to już wymaga umiejętności i DOŚWIADCZENIA.

Dzięki za info. Przyda mi się na pewno.

Z tym u mnie akurat nie ma problemu, logika i analityka to moje mocne strony, ogólnie rzecz biorąc jestem bardzo techniczny, dlatego nauka absolutnie nie powinna sprawić mi większego problemu. Bardzo Ci dziękuje za wszystkie linki i info. Jestem Ci dłużny.

Tego akurat mam od groma.

No właśnie ja tak na początku myślałem, że wystarczy będzie zrozumieć poszczególne linijki kodu co oznaczają i będzie po sprawie, lecz jak widać myliłem się i przede mną mnóstwo nauki. Nie zamierzam wdrażać jakiś mega zaawansowanych nowości, tylko że tak powiem bardziej usprawnić grę poprzez zmiany w kodzie. Wszystko zamierzam rozplanować w czasie, bo zdaje sobie sprawę, że w parę tygodni tego nie zrobię, tylko przynajmniej w kilkanaście miesięcy.