# VocationLife A life-simulation action RPG remake inspired by Fantasy Life, built in **Unreal Engine 5.8**. ## Vision - First-person gameplay (primary) with classic top-down camera toggle - Mouse, keyboard, and gamepad support via Enhanced Input - Co-op multiplayer (listen server first, dedicated server hosting) - Optional hardware ray tracing and scalability presets - Future crossplay via Epic Online Services (EOS) ## Requirements - Unreal Engine 5.8 - Windows (DX12), Linux (Vulkan), or macOS - GPU with ray tracing support for the RT preset (optional) ## Getting Started 1. Open `VocationLife.uproject` in Unreal Engine 5.8. 2. Allow the editor to compile the `VocationLife` C++ module on first launch. 3. Press **Play** — a test world (floor, mining nodes, enemy) is spawned automatically. ## Controls | Action | Keyboard | Gamepad | |--------|----------|---------| | Move | WASD | Left stick | | Look | Mouse | Right stick | | Jump | Space | A / Cross | | Interact / Craft | E | X / Square | | Attack | LMB | RT | | Toggle camera (FP / Top-Down) | V | Menu | | Quick save | I | Y / Triangle | | Pause | Esc | Start | ### Pause menu shortcuts While paused: - **F1–F5** — Graphics presets (Low → Ray Tracing) - **H** — Host co-op session - **J** — Find and join LAN session - **S** — Save game ## Project Structure ``` Content/VocationLife/ Blueprint extensions and art (create in editor) Source/VocationLife/ Core gameplay C++ (camera, input, inventory, crafting, multiplayer) Config/ Engine and server configuration ``` ## Dedicated Server Hosting Build the server target: ```bash /path/to/UnrealEngine/Engine/Build/BatchFiles/Linux/Build.sh \ VocationLifeServer Linux Development \ -project="/path/to/VocationLife/VocationLife.uproject" ``` Run headless: ```bash ./VocationLife/Binaries/Linux/VocationLifeServer \ -log -port=7777 -MaxPlayers=4 ``` Edit `Config/ServerConfig.ini` for server name, port, and player limit. Clients connect with: ```bash open 127.0.0.1:7777 ``` ## Multiplayer - **LAN / Null subsystem** — works out of the box for local testing. - **Steam** — set `SteamDevAppId` in `Config/DefaultEngine.ini` (default: 480 for Spacewar test app). - **EOS Crossplay** — enable `OnlineSubsystemEOS` plugin and fill credentials in `Config/DefaultGame.ini` under `[/Script/VocationLife.VocationEOS]`. ## Graphics Presets Presets are applied at runtime via `UVocationGraphicsLibrary`: - Low / Medium / High / Ultra — scalability levels - Ray Tracing — enables `r.RayTracing`, Lumen HW-RT, and path tracing ## Legal This is a fan project. It is not affiliated with Level-5 or Nintendo. Use original art and naming for any public release. ## Development Roadmap See the project plan for phased delivery: foundation → vertical slice → multiplayer → dedicated servers → crossplay.