A first-person multiplayer survival crafting game focused on scenic exploration, cooperative gameplay, creative construction, and tameable animal companions—especially cats.
This repository contains select systems and prototypes developed for the game as part of an ongoing portfolio project.
⚠️ Disclaimer
This codebase is under active development and is intended for portfolio and educational purposes only. It is not the full game or a finished product.
- Built for Unity Netcode for GameObjects (NGO)
- Server-authoritative movement with client-side prediction (host excluded for accuracy)
- Player input is serialized via a
PlayerMovementInputDatastruct and sent to the server each frame using RPCs - The server processes all movement logic and updates animation states
- Camera pitch is synchronized with a
NetworkVariable<float> - Non-owners are prevented from controlling the
CharacterControlleror camera directly - Supports:
- Sprinting, jumping, gravity, fall detection
- Ground check using physics sphere
- Smooth acceleration & deceleration
- Mouse and gamepad look input
- Vertical camera pitch clamped via Cinemachine
- Animation parameters (
Speed,Walking) updated based on state
- Modular, container-based design
- Server-authoritative item handling
- Drag-and-drop inventory UI implemented and functional
- Server-authoritative hotbar system synchronized via
NetworkVariable<int>for selected slot index - Supports cycling through hotbar slots via scroll input and direct slot selection
- Uses Unity Input System callbacks registered only for the owning player
- Selected tool items can be used through input (e.g., attack action) with server RPC validation
- Item usage triggers gameplay effects on server and replicates visuals/effects to clients via client RPC
- Spawns item visuals in the player’s hand socket on all clients to represent the currently equipped tool
- Item usage logic is delegated to
ItemUsageSOsubclasses such asResourceToolUsageSO(handles raycasting and resource node damage) - Robust error and state checking with detailed debug logging using
DLog
- Client inputs trigger server RPCs (
UseItemServerRpc,SetSelectedIndexServerRpc) to ensure server authority - The server validates and applies item usage effects before broadcasting visual feedback to all clients
- Item instance data is tracked and used to ensure proper contextual behavior (e.g., durability, unique IDs)
- Replicated visuals (spawned prefabs for equipped items) are controlled on clients to maintain sync and immersion
- Unity Netcode for GameObjects (NGO)
- Unity Input System
- Cinemachine
- Custom Systems:
EntityStats– Movement speed and stats systemInputManager– Centralized input handlingCharacter– Marker or logic wrapperDLog– Logging utility, publicly available on GitHub
- Modular building system with snap points (Valheim-inspired)
- Tameable animal companions with unique behaviors (starting with cats!)
- Resource gathering and crafting
- Dynamic weather and day-night cycle using UniStorm
Made with lots of 🐈 by NoSlimesJustCats
🔗 github.com/NoSlimes
This repository is for portfolio and educational demonstration purposes only.
Do not reuse, distribute, or commercialize any code or assets without explicit permission from the author.