Edukacyjna gra strzelniczo-logiczna zbudowana na silniku Godot Engine 4.6.1. Projekt stworzony dla konkursu CKZiU "School Games 2026" przez uczniów klasy 4TP (Programista) w 2025-2026 roku. Gra promocyjna dla Centrum Kształcenia Zawodowego i Ustawicznego w Łodzi, opublikowana jako open source do celów edukacyjnych.
Autorzy: Tymon Woźniak, Olga Orłowska
Project Ricochet to gra, gdzie gracz wcielając się w kulę, musi celować i strzelać, aby poruszać się po poziomach szkoły CKZiU. Główne elementy:
- Mechanika celowania: Kliknij gracza, przeciągnij myszę - system pokazuje trajektorię lotu z odbiciami od ścian
- Boost z kawy: Zbierz kawę z automatu (wyzwalana po uderzeniu) - zwiększa siłę strzału o 50%
- Monety szkolne: Zbieraj CezCoiny (monety szkolne) + zdjęcia z eventów CKZiU
- 3 poziomy gry: Tutorial (bez presji czasu), Level 1 (timer od pierwszego strzału), Level 2 (pełny timer 3 minuty)
- Hazardy: Specjalne strefy śmiertelne wymagające precyzji
- Wersja 4.6.1 (lub nowsza, zgodna z 4.6.x)
- Silnik OpenGL Compatibility (domyślnie zainstalowany)
- System operacyjny: Windows 10+, Linux (Ubuntu, Fedora i inne), przeglądarki WebGL2
- Pamięć RAM: minimum 512 MB
- Miejsce na dysku: ok. 200 MB
- Procesor: x64 (Windows, Linux) lub WebGL2 (HTML5)
git clone https://github.com/Moderrek/project-ricochet.git
cd project-ricochet- Pobierz Godot 4.6.1 z https://godotengine.org/download
- Otwórz Godot Engine
- Kliknij "Open Project"
- Wskaż folder
project-ricochet(ten, który przed chwilą sklonowałeś) - Godot załaduje projekt automatycznie
Naciśnij F5 w edytorze lub kliknij przycisk Play (w górnym rogu). Gra uruchomi się w oknie.
Gra pracuje identycznie na Windows, Linux i w przeglądarce. Aby stworzyć wersję do uruchomienia bez Godot Editor:
- Przejdź do Project → Export
- Dodaj nowy preset "Windows Desktop"
- Ustaw folder docelowy (np.
export/windows) - Kliknij Export Project
- Gotowy plik .exe pojawi się w wybranym folderze - dwuklik uruchamia grę
- Przejdź do Project → Export
- Dodaj nowy preset "Linux/X11"
- Ustaw folder docelowy (np.
export/linux) - Kliknij Export Project
Uruchomienie z terminala:
chmod +x ./project-ricochet ./project-ricochet
- Przejdź do Project → Export
- Dodaj nowy preset "Web"
- Ustaw folder docelowy (np.
export/web) - Kliknij Export Project
Uruchomienie lokalnie:
cd export/web
python -m http.server 8000Otwórz http://localhost:8000 w przeglądarce Firefox lub Chrome.
project-ricochet/
├── autoloads/ - Singletony (globalne obiekty ładujące się na start)
│ ├── game_manager.gd - Zarządza czasem, poziomami, statystykami gry
│ ├── scene_changer.gd - Przejścia między scenami (fade in/out)
│ ├── save_manager.gd - Zapis postępu gracza
│ ├── photo_manager.gd - Zarządzanie galeriami zdjęć
│ └── network_manager.gd- Komunikacja z API (news, dane zdalnie)
│
├── scenes/ - Sceny gry
│ ├── levels/ - Poziomy: tutorial, level 1, level 2
│ ├── entities/ - Gracz (ball physics)
│ ├── interactables/ - Obiekty interaktywne (drzwi, automat do kawy, palety)
│ ├── collectibles/ - Przedmioty do zbierania (monety, boost, zdjęcia)
│ ├── menus/ - Menu główne, ekran końcowy
│ └── ui/ - Interfejs użytkownika (HUD, timery, liczniki)
│
├── resources/ - Konfiguracje Godot
│ ├── data/ - Skrypty danych (poziomy, skinki, zdjęcia)
│ ├── levels/ - Dane poziomów (.tres)
│ ├── photos/ - Galerię zdjęć szkolnych
│ └── themes/ - Motywy interfejsu
│
├── assets/ - Grafiki i dźwięki
│ ├── images/ - Sprite sheets, ikony, grafiki
│ ├── sounds/ - Efekty dźwiękowe, muzyka
│ ├── fonts/ - Czcionki TTF
│ ├── icons/ - Ikony interfejsu
│ └── photos/ - Zdjęcia z eventów szkolnych
│
├── shaders/ - Specjalne efekty wizualne
├── project.godot - Konfiguracja projektu Godot
└── README.md - Ten plik
- Celowanie: Kliknij na gracza, przeciągnij myszę - zobaczysz linię pokazującą gdzie poleci
- Strzał: Puść przycisk myszy - gracz leci w tym kierunku
- Odbicia: Gracz odbija się od ścian (maksymalnie 2 razy, zanim straci energię)
- Boost: Zbierz kawę z automatu - następny strzał będzie 1.5x silniejszy
- Zbieranie: Dotknij monet (CezCoiny) i zdjęć - liczą się do wyniku
- Hazardy: Omijaj niebezpieczne strefy - jeśli gracz je dotknie, respawnuje po 1.2 sekundy
- Koniec: Dotknij bramki na końcu poziomu - przechodzisz do następnego
- Timer: 3 minuty (180 sekund) - z wyjątkiem tutoriala (bez timera)
- W Level 1: timer zaczyna się po pierwszym strzale
- W Level 2+: timer od razu
- Boost: +50% siły na jeden strzał, wyczerpuje się co sekundę podczas gry
- Statystyki: Gra liczy wszystkie strzały, odbicia i śmierci
Projekt jest napisany czystym kodem:
- Singletony (autoloads): Globalne obiekty - GameManager, SceneChanger, SaveManager - załadowują się raz na start
- Sceny modułowe: Każdy poziom, drzwi, przedmiot - to osobna scena, którą można edytować niezależnie
- Komunikacja przez sygnały: Komponenty informują się nawzajem o wydarzeniach (np. gracz zbierz monetę → HUD się aktualizuje), zamiast sprawdzać co klatkę
- Fizyka Godot: RigidBody2D dla gracza, StaticBody2D dla terenu, Area2D dla collectibles
To pozwala grze działać sprawnie nawet na starszym sprzęcie szkolnym.
Gra działa identycznie na wszystkich platformach - kod jest napisany tak, żeby działać wszędzie.
| Platforma | Status | Format | Uwagi |
|---|---|---|---|
| Windows 11 | Testowana | .exe | Domyślna platforma do testów |
| Ubuntu 22.04+ | Testowana | ELF binary | Pracuje gładko |
| Fedora | Testowana | ELF binary | Pracuje gładko |
| Chrome (HTML5) | Testowana | WebAssembly | Brak instalacji, otwiera się w przeglądarce |
| Firefox (HTML5) | Testowana | WebAssembly | Brak instalacji, otwiera się w przeglądarce |
- Projekt do nauki: Wzorowy przykład, jak zbudować grę od zera
- Czysty kod: Każda funkcja ma jasny cel, łatwo się czyta
- Dokumentacja: Pliki README.md w każdym folderze wyjaśniają strukturę
- Open source: Możesz modyfikować, dodawać własne poziomy i obiekty
- Promocja: Gra pokazuje możliwości szkoły - fizykę, logikę, grafiki
- Edukacyjna: Uczy precyzji, planowania i myślenia w 2D
- Konkurs: Tworzona na konkurs "School Games 2026" z zamiarem zostania na edukację
- Przykład dobrej organizacji projektu w Godot
- System singletów i scen modułowych
- Komunikacja między komponentami przez sygnały
- Zapis gry w JSON-ie
- Zarządzanie zasobami (grafiki, dźwięki, dane)
Projekt opublikowany na licencji MIT. Oznacza to, że możesz go używać, modyfikować i rozpowszechniać swobodnie. Detale w pliku LICENSE.
Projekt pochodzi z konkursu CKZiU "School Games 2026" i został upubliczniony jako open source. Celem jest:
- Promowanie szkoły CKZiU w Łodzi
- Pokazanie uczniom, jak buduje się gry
- Materiał edukacyjny dla nauczycieli informatyki
- Inspiracja dla przyszłych projektów szkolnych
- Godot Engine: https://godotengine.org
- Dokumentacja Godot 4: https://docs.godotengine.org
- GDScript: https://docs.godotengine.org/en/stable/getting_started/scripting/gdscript/index.html
Każdy podfolder w projekcie zawiera plik README.md z dodatkowymi informacjami o organizacji. Sprawdź je jeśli chcesz zrozumieć szczegóły konkretnej części gry.