Środek tygodnia zostanie odznaczony artykułem jak zacząć tworzenie gier w C++. Wczoraj opisywałem sam język C, kliknijcie tutaj jeśli C++ Was nie interesuje i nie patrzycie na programowanie obiektowe, tylko strukturalne.
TWORZENIE GIER W C++. INFORMACJE OGÓLNE
Język C++ stworzony przez Bjarne Stroustrupa we wczesnych latach .80 jest powszechnie znany jako "język C poszerzony o klasy", choć na tym się nie kończą zmiany. Dodanie paradygmatu obiektowego spowodowało znacznie większe zainteresowanie językiem i do dnia dzisiejszego jest on doskonałym kandydatem do pisania dowolnych aplikacji i programów. Prawdziwy "kombajn" optymalnego i sprawnego funkcjonowania mogący wycisnąć z procesora wszystkie soki. Warto zaznaczyć taki fakt, że wszystkie narzędzia przeznaczone do języka C jak najbardziej mogą być wykorzystywane i w C++. Mimo tego, że posiadają kilka różnic, są ze sobą bardzo spokrewnione a sam język C++ (jak również C) jest nadal wspierany, rozwijany i rozbudowywany co czyni go perfekcyjnym językiem na tworzenie w nim gier.
![]() |
C++ przyszedłszy na świat w latach .80 "wzbogacony" o dodatkowy paradygmat obiektowy, łączy optymalne działanie aplikacji z wygodnym pisaniem kodu.
Źródło: Wikimedia
LISTA PROGRAMÓW
Jak napisałem w poprzednim akapicie wszystko to, co dotyczy języka C, pozwala na tworzenie gier w C++. Pozwoliłem sobie jeszcze raz podać wszystkie tytuły dotyczące języka C oraz wprowadzić nowe, które dotyczą bezpośrednio języka C++:
- SDL
- Allegro
- Orx
- raylib (polecam :D!)
- Tilengine
- Unreal Engine
- Godot
- Urho3D
- CRYENGINE
- SFML
- nCine
- Cocos2d-x
GARŚĆ PORAD
Jeśli wiemy już na pewno, że chcemy rozpocząć tworzenie gier w C++, zerknijcie na kilka uwag na ten temat. Pozwoliłem sobie skopiować te same porady, które znajdziecie w artykule poświęconym językowi C gdyż jak wspomniałem wcześniej, są to języki bardzo spokrewnione działające w ten sam sposób:
- Język C++ (jak również C) nie jest przeznaczony dla amatorów. Aby umiejętnie się nim posługiwać, wymagana jest znajomość manualnego zarządzania pamięcią. Każda biblioteka / framework korzysta ze wskaźników w większym lub mniejszym zakresie.
- Kompilator nie uchroni przed wszystkimi błędami w kodzie. Program może zostać uruchomiony, ale może posiadać błędy podczas funkcjonowania programu najczęściej związane z niepoprawnym alokowaniem pamięci. Mało tego, język C nie posiada zdolności "identyfikowania" długości tablicy czy listy. Musimy o to zadbać samodzielnie również w C++, chyba że korzystamy ze struktur pomagających uchronić przed tego typu błędami np. "string" zamiast "char*".
- Każda biblioteka jest zdolna do wieloplatformowego eksportu, natomiast konieczne jest zaopatrzenie się w odpowiednie narzędzia. Android na przykład będzie potrzebował pakietu "Android NDK", a kompilacja do HTML będzie dostępna tylko poprzez "Emscripten" albo "WebAssembly". Należy zajrzeć do dokumentacji wykorzystywanej biblioteki i kierować się podawanymi wskazówkami co trzeba doinstalować i wykonać. Dotyczy to również języka C.
- Wybór architektury systemowej (32 lub 64 bity) w języku C++ MA znaczenie! Nie tylko powoduje to dylemat niekompatybilności dla systemów z powodu niewłaściwej architektury, ale także może zmienić zakresy niektórych typów danych, przez co na jednej wersji będzie chodzić perfekcyjnie, a na drugiej może dojść do przekroczenia zakresu liczb całkowitych!
Oto koniec debat na temat języka C++. Zrobicie jak chcecie, jednak stanowczo odradzam początkującym pisania od razu w C++! Tworzenie gier w C++ to nie jest bułka z masłem! Jest masa dużo łatwiejszych języków, a na początku każdej drogi chodzi przede wszystkim o doświadczenie, a nie próbę zrobienia "Doom Eternal" :). W tym artykule rzucamy okiem na wytwór Microsoftu jakim jest C#.