Jestem programistą C # i chcę poszerzyć swój zestaw umiejętności i dobrze się przy tym bawić. Znam niektóre podstawy C ++ i chciałbym napisać dla siebie prostą grę / silnik 2D w C ++. Jakich innych bibliotek lub zestawów SDK potrzebuję i gdzie znajdę tutoriale i zasoby informacyjne, aby przejść dalej?
Zajrzałem już do XNA z C #. Jest na to wiele zasobów, ale wolałbym używać produktów innych niż Microsoft. Chodzi o to, aby dobrze się bawić, stając się lepiej zaokrąglonym programistą.
Pamiętaj, że nie pytam o najlepsze miejsce na rozpoczęcie. Ja tylko z prośbą o A miejscem do rozpoczęcia.
Dzięki za wszelką pomoc!
Sugerowałbym użycie SDL . Minęło już sporo czasu, więc dokumentacja i wsparcie są całkiem dobre, i jest to jeden z najłatwiejszych sposobów na uzyskanie powierzchni do rysowania na ekranie. Pozwoli ci to ćwiczyć pisanie zajęć w C ++ (ponieważ prawdopodobnie będziesz chciał dużo zawinąć wywołania funkcji SDL C), a także da ci trochę doświadczenia w korzystaniu ze wskaźników i referencji oraz w zarządzaniu pamięcią. Zarządzanie własną pamięcią jest jedną z głównych różnic między C ++ i C #.
źródło
Osobiście wybrałbym Allegro 5 z następujących powodów:
Ma system kompilacji oparty na CMake. Dzięki temu praca na wielu platformach jest znacznie łatwiejsza niż w większości kompilacji systemów. To wydaje się drobna sprawa, ale ogólnie jest dość ważna. Ułatwia to budowanie biblioteki.
SFML jest nadal w znacznym stopniu zmienny. 2.0 to dość istotna zmiana. Podczas gdy Allegro przeszło już znaczącą zmianę w wersji 5, a teraz chodzi o stabilność.
Obejmuje modułowość w inny sposób niż SFML. W SFML pytasz o określone składniki, ale otrzymujesz je wszystkie. Jeśli poprosisz o element graficzny, otrzymasz cały element graficzny. Dzięki Allegro 5 zawsze otrzymujesz komponent graficzny. Ale jeśli nie chcesz używać ładujących bitmapy Allegro, nie musisz; możesz użyć własnego.
Ma bardzo dobrą dokumentację. SFML korzysta z dokumentacji w stylu Doxygen, ale nawet to dość spartańskie. Podczas gdy Allegro 5 jest bardziej wszechstronny, funkcje są pogrupowane w oparciu o określone systemy, które obejmują. Nie jest idealny, ale ogólnie jest lepszy.
Są wystarczająco inteligentni, aby nie próbować nawiązywać wątków. Dzięki C ++ 11 / Boost.Threads, które są szeroko dostępne lub tuż za rogiem, użycie innego opakowania wątków może być więcej niż problematyczne: może być niebezpieczne dla poprawnego działania kodu.
źródło
Myślę, że fantastycznym miejscem na początek jest LazyFoo . To sprawi, że zaczniesz działać z SDL szybciej niż w jakimkolwiek innym miejscu, które widziałem. Poleciłbym szybko wejść w OpenGL (jak tylko będziesz mógł go znieść), ponieważ dostaniesz znacznie więcej za swój programujący dolar - z akceleracją sprzętową. Jeśli wybierzesz tę trasę, polecam ten przewodnik .
źródło
Polecam SFML, jeśli używasz c ++. Szybko dostaniesz coś na ekranie, a używanie go z kodem gry c ++ jest proste.
źródło
Biorąc pod uwagę, że OpenGL przyspiesza obecnie 2D strony, nie jest tak ważne, aby mieć dostęp do szybkich rendererów oprogramowania, które Allegro i SDL mają (lub miały we wcześniejszych wersjach). Jednak gdy wybieram bibliotekę, koncentruję się na dojrzałości projektu, bazie użytkowników i dokumentach bardziej niż szybkości (o ile prędkość jest rozsądna), i powiedziałbym, że SDL i Allegro wygrywają na tych frontach. SDL wydało także potrójne tytuły AAA, takie jak Civ: Call to Power.
źródło