Wróć do projektów
Game Development · Unity 3D
2024 Projekt indywidualny Survival Mode

Wyspa Mystery

Survivalowa gra FPS z systemem zagadek logicznych. Eksploruj niebezpieczną wyspę, unikaj drapieżnika i znajdź sposób na wezwanie pomocy przed zapadnięciem zmroku.

Unity 3D
Silnik
C#
Skrypty
NavMesh
Przeciwnicy
FPS
Kamera
2024
Rok

Przeżyj noc
lub zgiń próbując

Wyspa Mystery to survivalowa gra FPS stworzona w Unity 3D jako projekt indywidualny. Gracz ląduje na tajemniczej wyspie i musi znaleźć sposób na wezwanie ratunku zanim zapadnie zmrok — eksplorując teren, rozwiązując zagadki i unikając drapieżnika.

Projekt skupia się na budowaniu napięcia atmosferycznego — gęsta mgła, aktywny wulkan i AI wilka tworzą środowisko, w którym każda decyzja ma znaczenie.

🌋
Otwarty świat wyspy
Eksploracja terenu z wulkanem, lasem i domem jako głównym celem
🐺
AI Drapieżnika
Wilk patroluje teren i wykrywa gracza w zasięgu wzroku — Chase AI
🥥
Minigra zręcznościowa
Rzucanie kokosami w 3 cele w ciągu 5 sekund — odblokowanie skrzyni
🔦
System interakcji FPS
Raycasting — podnoszenie przedmiotów, otwieranie drzwi, zapalanie ogniska
🌫️
Atmosfera i efekty
Gęsta mgła ograniczająca widoczność i efekty cząsteczkowe wulkanu

Stack technologiczny

🎮
Unity 3D
Główny silnik gry. Obsługa scen, fizyki, oświetlenia i systemu cząsteczek.
⚙️
C#
Skrypty gameplay — sterowanie graczem, logika AI, zarządzanie stanem gry i UI.
🧭
NavMesh AI
Unity Navigation Mesh — automatyczne wyznaczanie tras dla wilka na terenie wyspy.
📷
FPS Controller
Własny kontroler pierwszoosobowy z raycastingiem do interakcji z obiektami.
Particle System
Efekty cząsteczkowe — dym wulkanu, płomienie ogniska, unoszące się pyłki.
🎬
Animator
Unity Animator Controller — animacje wilka (patrol, bieg, atak) i otwarcia skrzyni.
🖥️
Unity UI
Canvas — HUD z licznikiem zebranych artefaktów, ekrany wygranej i porażki.
💡
URP Lighting
Universal Render Pipeline z dynamicznym oświetleniem i mgłą atmosferyczną.

Jak to działa

01
AI Wilka — stany

Wilk operuje w trzech stanach: Patrol, Chase i Attack. Przejście między nimi steruje NavMeshAgent w zależności od odległości i pola widzenia gracza.

if (distToPlayer < chaseRange
    && HasLineOfSight())
  state = WolfState.Chase;
else
  state = WolfState.Patrol;
02
Raycasting — interakcje

Każda klatka kamera rzuca promień w przód. Trafienie w obiekt z tagiem Interactable wyświetla podpowiedź i wywołuje akcję.

if (Physics.Raycast(
  cam.position, cam.forward,
  out hit, interactRange))
  hit.collider
    .GetComponent<IInteractable>()
    ?.Interact();
03
Minigra — timer i cele

Skrypt odlicza 5 sekund i zlicza trafienia w 3 cele. Po spełnieniu warunku wywołuje animację otwarcia skrzyni przez Animator.

timer -= Time.deltaTime;
if (hitsCount >= 3)
  anim.SetTrigger("Open");
else if (timer <= 0)
  FailMinigame();
04
System postępu

GameManager przechowuje liczbę zebranych artefaktów. Dopiero po zebraniu wszystkich gracz może zapalić ognisko i wygrać grę.

if (artifactsCollected
    == totalArtifacts)
  campfireInteract
    .SetActive(true);
else
  ShowHint("Znajdź artefakty");
05
Atmosfera — mgła i oświetlenie

Mgła skonfigurowana przez Unity URP — gęstość rośnie wraz z odległością. Wulkan emituje ciągły system cząsteczek z dymem i popiołem.

RenderSettings.fog = true;
RenderSettings.fogDensity
  = 0.04f;
// Particle System: rate=25/s
06
Warunki wygranej / porażki

Gracz wygrywa zapalając ognisko z zebranymi zapałkami. Przegrywa gdy wilk dotknie go lub gdy minie limit czasu.

void OnTriggerEnter(Collider c) {
  if (c.CompareTag("Wolf"))
    GameManager.GameOver();
  if (c.CompareTag("Campfire")
    && hasMatches)
    GameManager.Win();
}

Klawiatura i mysz

W A S DRuch postacią
MyszRozglądanie się
EInterakcja z obiektami
CTRLRzut kokosem / akcja
SHIFTSprint
ESCPauza / Menu
Racing 3D Wszystkie projekty