Zaciekawieni obecnym postępem nad tym samym? Etap drugi mam już cały za sobą. Co to oznacza w praktyce oprócz przejścia do następnego? Zajmowanie się poprawkami, ale przede wszystkim, wsparciem sterowania dla kilku urządzeń, czyli klawiatura i dotyk. "raylib" jeszcze przez wiele długich dni będzie przeze mnie otwierany, a ja dopiero w czerwcu będę przechodził do sprawy przenoszenia aplikacji na wyższy poziom. Detale zostawiam w środku.

RAYLIB OBECNY PRZEZ CAŁY MAJ

Wczoraj skończyłem drugi etap szablonu, to było upiększanie i porządkowanie kodu. Wiele pracy, wiele szczegółów i szukania odpowiedzi po forach. StackOverflow przyniósł mi najwięcej informacji. Na samym początku toczyłem bój ze strukturami. Temat do którego jeszcze nie doszedłem w książce podsuwał mnóstwo pytań jak się z nimi należycie obchodzić. W trakcie tego doszły jeszcze spekulacje w jakim miejscu definiować strukturę, czy w pliku źródłowym, czy w nagłówkowym. Czemu powinno się dodawać słowo "extern" do zmiennych typu struktury i jaki to daje efekt końcowy. Albo dylemat: struktura czy wskaźnik do struktury? Jak "raylib" się zachowa gdy napotka taką modyfikację.

Cały problem polega na tym, że nie byłem w stanie doszukać się prostej jednoznacznej odpowiedzi typu "to jest czarne, a to białe". Jak organizować strukturę projektu. Jak obchodzić się z podkatalogami w folderze "src" i jaki to ma wpływ na dołączenia plików nagłówkowych. Czy takie pliki powinno się dorzucać do "src" obok plików źródłowych, czy do "include". Język C wciąż pozostaje dla mnie niezbadanym "terenem" w zdecydowanej większości. Przypomina mi trochę matematyczne "otwarcie się na wiele rozwiązań". Nie ma w nim jednego utartego schematu jeśli chodzi o rzeczy bardziej skomplikowane. Szczegóły takie jak dostosowanie ścieżki wyszukiwania dołączeń albo "pakowanie" plików nagłówkowych do innych podfolderów to kwestia zależna wyłącznie od wygody programisty. Muszę jednak przyznać, że czuję się w nim już dużo swobodniej niż miało to miejsce w kwietniu.

raylib

Prace nad drugim etapem szablonu do gier w "raylib" zajęły cały miesiąc czasu. Podczas upiększania kodu doszła od razu jego optymalizacja, która miała być częścią następnego etapu.

150% ZADAŃ DO WYKONANIA W RAYLIB

Spaprałem sobie kwestię podziału zadań do poszczególnych etapów. Był plan, żeby etap drugi polegał jedynie na uporządkowaniu funkcji, zmiennych, nazw funkcji, nazw zmiennych, stałych z dyrektyw preprocesora, a także przeanalizowaniu dołączeń plików nagłówkowych czy nie ma czegoś na wyrost. Dopiero po rozłożeniu na czynniki pierwsze dotarło do mnie, że od razu trzeba to zoptymalizować, bo jak jedynie pozmieniałbym nazwy na ładniejsze, to byłaby wysoka szansa, że do tego bym już nie wrócił.

Potem doszła elegancka segregacja plików oraz ich podział na mniejsze części. Własne funkcje zajmowały ponad sześćset linijek kodu. Myślałem, że wystarczy jedynie jeden plik, a tu figa. Trzeba było to poćwiartować i podzielić. Tu są funkcje dla obsługi sterowania, tutaj dla przycisków, a tu formatowanie tekstu. Robota czasochłonna jak nie wiem! Sam szablon w "raylib" na chwilę obecną to 29 plików źródłowych.


Taka historia. Z pewnością doczekacie się jeszcze niejednego wpisu na temat frameworka "raylib" i postępujących prac, które trwają już kilka miesięcy. Gdyby "HaxeFlixel" nie zrobił mnie w konia, to być może już teraz miałbym całość za sobą. Najgorsze jest to, że nawet jak to skończę, to nadal nie będzie gry, bo potem ją samą trzeba będzie zbudować w oparciu o ten szablon. Na tym zdaniu kończę dzisiejszy artykuł.

PODOBNE ARTYKUŁY