O projekcie Levels
Levels to autorski projekt hardkorowej platformówki 2D skupiony na stworzeniu responsywnego, przewidywalnego silnika ruchu oraz precyzyjnego systemu detekcji stanów fizycznych. Zamiast polegać na gotowych szablonach, cała logika poruszania się postaci oraz obsługa mechanik środowiskowych została napisana od zera w C# z użyciem programowania obiektowego i ścisłej kontroli wektorów prędkości.
Architektura kodu & Wyzwania techniczne
Podczas deweloperki skupiłem się na czystości kodu i optymalizacji pętli fizycznej. Kluczowe systemy zaimplementowane w projekcie obejmują:
- Autorski detektor stanów ruchu: Oprogramowanie przejść między stanami
OnFloor,InAiroraz obsługi asymetrycznej krzywej skoku (szybsze opadanie, zmienna wysokość skoku w zależności od długości wciśnięcia klawisza). - Coyote Time & Jump Buffering: Implementacja mikro-buforów czasowych zapobiegających frustracji gracza – system pozwala na skok kilka klatek po spadnięciu z platformy oraz rejestruje kliknięcie skoku tuż przed wylądowaniem.
- Modularny Game Manager: Architektura oparta na singletonie monitorująca cykl życia poziomu (Core Game Loop), stan gry, licznik zgonów gracza oraz czas z milisekundową dokładnością bez obciążania głównego wątku renderowania.
- Matematyczna obsługa wektorów: Implementacja płynnej akceleracji i tarcia kinetycznego przy użyciu funkcji interpolacji liniowej (
LerpiMoveToward), eliminująca efekt "pływania" postaci.
Dziennik zmian (Changelog)
v0.5.3 Alpha (Wydanie stabilne)
- Zaimplementowano pełną pętlę restartu i zarządzania scenami po kolizji z przeszkodą.
- Zintegrowano warstwę UI (Control Nodes) bezpośrednio z sygnałami C# generowanymi przez logikę gry.
- Wydzielono niezależne klasy dla statystyk sesji (licznik zgonów/czas) w celu zapewnienia izolacji danych.
- Skompilowano i zoptymalizowano build binarny (.exe) pod architekturę Windows 64-bit.
Najbliższe kamienie milowe (Wersja 1.0.0)
- Dodanie ruchomych platform obliczających wektor prędkości dziedziczonej przez gracza.
- Przebudowa UI z prostego licznika na dynamiczny HUD reagujący na stany krytyczne.
- Refaktoryzacja kodu pod kątem pełnego asynchronicznego ładowania kolejnych poziomów (Async/Await).