A seaside exploration game built in Unity, designed to showcase Technical Artist skills through custom shaders, VFX, and environmental systems. The focus is on clean, readable, and decoupled code that supports stunning visual work.
You arrive by boat at an abandoned seaside village at dusk. A distant lighthouse—the only light on the horizon—beckons you. Your journey across the village and bay to reach and activate the lighthouse reveals traces of the people who once lived here.
- Third-Person Controller — State-based movement machine (Idle, Walking, Running, Jumping, Swimming, Interacting, OnBoat).
- Starting Boat Cutscene — Begins exploration on a moving boat (
PF_Boat_Parent.prefab) where the player can walk on the deck. Upon arrival, triggers a transition and disembarks the player onto the dock. - New Input System — Full cross-platform support for Keyboard/Mouse, Gamepad, and Touch layouts.
- Interaction System — Interface-based (
IInteractable) with UnityEvents supporting Instant, Toggle, and Hold workflows. - Cinemachine Camera — Smooth third-person camera tracking.
- Doors — Toggle open/close with automatic closing on exit.
- Sitting — Context-aware sitting mechanics with prompt feedback.
- Fire Pits — Hold to ignite (requires matches).
- Collectibles — Seashells and readable notes scattered across the island.
- Boat — Board, disembark, and undock mechanics with platform motion tracking.
| Feature | Techniques | Tools |
|---|---|---|
| Ocean System | Gerstner waves (4 primary, 2 secondary), depth-based color fade, shore foam, crest foam, caustics, fresnel reflections, refraction offset | Shader Graph, HLSL |
| Day/Night Cycle | Animated sun/moon orbits, skybox exposure curves, light probes, dynamic ambient and fog coloring | C#, URP, ScriptableObjects |
| Interactive Fire | Flames, embers, smoke, heat distortion, flickering light | VFX Graph |
| Weather Effects | Rain particles, wet surfaces, puddles, fog, global wind | VFX Graph, Shaders |
| Terrain Materials | Triplanar mapping, height blending, slope detection, shoreline wetness | Shader Graph |
| Post-Processing | Time-of-day LUTs, bloom, depth of field, vignette | URP Volume |
- Singleton Managers —
GameManager,AudioManager,MobileControlsManager, andScreenFadeorchestrators. - ScriptableObject Event Channels — Decoupled communication channels (
GameEventSo,FloatEventSo,IntEventSo, etc.) avoiding tight system coupling. - Water Preset System — Swappable scriptable presets (Ocean, River, Lake, Pond) managing wave parameters and coloring.
- Main Menu — Level Select, Options, and Quit workflows.
- Screen Fade — Reusable overlay shader panel managing start-up fade-ins and transition fades.
- Loading Screen — Additive scene progress tracker displaying level-loading tips.
- Options — Audio sliders, graphics presets, and frame rate settings (30 vs 60 FPS toggles).
- Mobile Controls Canvas — Adaptive On-Screen Joysticks and Touch Zone Look panels that activate on mobile platforms.
- Unity 6000.5.0f1 (Unity 6) or higher.
- Input System
- TextMesh Pro
- Universal Render Pipeline (URP)
- Shader Graph
- Visual Effect Graph
- Addressables
- AI Navigation (NavMesh)
- Clone the repository:
git clone https://github.com/raminres/Seaside.git
- Open the project in Unity 6000.5.0f1.
- Open Assets > Scenes > LV_MainMenu.unity (or LV_TestScene.unity to test sandbox mechanics directly).
- Hit Play to explore.
| Action | Keyboard/Mouse | Gamepad | Touch |
|---|---|---|---|
| Move | WASD / Arrow Keys | Left Stick | Virtual Joystick |
| Camera | Mouse | Right Stick | Drag on Screen Touch Zone |
| Interact / Sit | E | A | Interact Button |
| Sprint | Left Shift | Left Trigger / Button | Sprint Toggle Button |
| Jump | Space | South Button | Jump Button |
Assets/
├── Scripts/
│ ├── Core/ # Managers, singletons, utilities
│ ├── Player/ # Controller, animation, states
│ ├── Interactables/ # Door, Collectible, FireStarter, BoatInteractable
│ ├── Environment/ # WeatherController, DayNightCycle, DayNightPreset
│ ├── UI/ # Menus, HUD, prompts, ScreenFade
│ └── Water/ # WaterController, WaterPreset, WaterPresetFactory
├── Shaders/ # Shader Graphs + GerstnerWaves HLSL includes
├── VFX/ # VFX Graph assets
├── Data/ # ScriptableObjects (Events, GameState)
├── Settings/ # URP render pipeline settings and Input Actions
└── Art/ # Models, textures, audio clips, and animations
This project is open-source under the MIT License. Feel free to use, modify, and distribute it as needed.