Przewiń do głównej treści

Angry Birds Remake

W ramach przedmiotu Programowanie Obiektowe w języku C++ zaimplementowałem w zespole dwuosobowym własną wersję popularnej gry AngryBirds. Gra składa się z dwóch trybów:

  • adventure - kampanii składającej się z 14 poziomów o rosnącym poziomie trudności
  • custom - 5 poziomów, które gracz może sam przygotować w dostępnym edytorze poziomów

Przykładowa rozgrywka została zaprezentowana na filmie poniżej:

Implementacja i wykorzystane technologie
#

W grze wykorzystane zostały cztery biblioteki:

  • box2d - silnik fizyki wykorzystywany grze
  • SFML - render grafiki 2D
  • catch2 - framework wykorzystywany do testów jednostkowych
  • nlohmann/json - biblioteka do parsowania plików JSON

Cała gra została zaprogramowana w języku C++ w standardzie C++20 i bazuje na architekturze automatu stanów. Obsługa pamięci została oparta o inteligentne wskaźniki, dzięki czemu wyeliminowano ryzyko wycieków pamięci (przeprowadzono także testy w wykorzystaniem programu valgrind). W kodzie wykorzystano kontenery z biblioteki STL, a mechanizmy tworzenia obiektów korzystają z wzorca fabryki z użyciem szablonów, co pozwala na typowo bezpieczne i generyczne tworzenie bytów gry.