Projekt LOOP · aktywny

SimpleGamesFactory

Zestaw bibliotek C++ do budowania gier na urządzeniach embedded (ESP32, Arduino) — od klasyków w stylu Arkanoida i Tetrisa po pseudo-3D strzelankę inspirowaną Wolfensteinem.

Podgląd projektu SimpleGamesFactory
Źródło: mjndev / X

SimpleGamesFactory (SGF) to biblioteka C++ do tworzenia gier na platformy embedded. Dostarcza podstawowe elementy potrzebne do zbudowania gry bez narzucania ciężkiej architektury silnika.

W ramach projektu rozwijane są m.in. pętla gry, sceny i przełączanie między nimi, obsługa akcji wejściowych, render targety, mechanizm dirty rectangles, kafelkowe odświeżanie obrazu, programowe sprite’y, kolizje i prostą fizykę brył sztywnych, narzędzia do pracy z formatem RGB565 oraz sterowniki wyświetlaczy. Silnik wspiera też rendering rzutem pseudo-3D (raycasting), dzięki czemu na tym samym mikrokontrolerze da się zbudować zarówno grę 2D, jak i prostą strzelankę w klimacie wczesnych FPS-ów.

Skalę zastosowań widać w repozytoriach demonstracyjnych organizacji: klony Arkanoida, Snake’a, Sokobana, Tetrisa i Blokusa, a także gra inspirowana Wolfensteinem 3D działająca na ESP32. Dzięki temu SGF jest jednocześnie biblioteką i poligonem do eksperymentów z ograniczonym sprzętem.

Eksperymenty z AI

Projekt sprawdza też, jak dużą rolę w tym procesie może odgrywać sztuczna inteligencja — zarówno przy rozwoju samego rdzenia SGF, jak i przy samodzielnym budowaniu na nim pełnych, małych gier. Jedna z przykładowych gier posłużyła jako materiał referencyjny, na którym model uczył się API i konwencji SGF, po czym samodzielnie stworzył kolejne gry i biblioteki oparte na tych samych, gotowych komponentach.

Filmy

STM32U585 + ILI9341 z przewijaniem sprzętowym

Ulepszony klon Wolfensteina 3D na ESP32

Źródło: X / mjndev

Demo z dźwiękiem i teksturami

Źródło: X / mjndev

Fizyka brył sztywnych i kolizje

Źródło: X / mjndev

Sprzętowe wygaszanie obrazu

Źródło: X / mjndev

Zrzuty ekranu