180 lines
7.7 KiB
Markdown
180 lines
7.7 KiB
Markdown
# 🟦 MorriCraft
|
||
|
||

|
||
|
||
**MorriCraft** is a high-performance, multiplayer-ready voxel engine built from the ground up using **C++** and **Raylib**. Inspired by classic survival games, it features a custom physics engine, real-time world synchronization, and a deep crafting system.
|
||
|
||
---
|
||
|
||
## 🌟 Key Features
|
||
|
||
### ⚔️ Combat & Survival
|
||
- **PvP Combat**: Real-time melee combat with synchronized hit registration, knockback, and audio feedback.
|
||
- **Health System**: 8-heart health system with a visual HUD and damage mechanics.
|
||
- **Survival Mechanics**: Block-breaking progress and material-specific dig times.
|
||
|
||
### 👥 Multiplayer & LAN
|
||
- **P2P Architecture**: Cross-platform networking stack using standard sockets (Windows/Linux).
|
||
- **Instant LAN Hosting**: Host your world with a single click from the pause menu.
|
||
- **Skin Personalization**: Built-in skin editor to customize your character's shirt and pants, fully synchronized across the network.
|
||
- **Global Chat**: Press `Enter` to communicate with other players in real-time.
|
||
|
||
### 🔨 Crafting & Inventory
|
||
- **20+ Recipes**: Full crafting tree from logs to tools — wooden & stone tier tools, furnace, chest, doors, fences, ladders, and more.
|
||
- **Dual Crafting Modes**: 2×2 player inventory grid and 3×3 Workbench with pattern matching.
|
||
- **Smart Stacking**: Left-click merges same-type stacks, right-click picks up or places one item at a time.
|
||
- **Inventory Tooltips**: Hover over any item to see its name.
|
||
|
||
### 🌲 World & Visuals
|
||
- **Multi-Texture Blocks**: Oak logs render with bark sides and ringed tops/bottoms. Grass has separate top/side/bottom faces.
|
||
- **High-Detail Foliage**: Custom leaf textures with natural green tinting.
|
||
- **Dynamic Lighting**: Full day/night cycle with atmospheric color shifts.
|
||
- **Optimized Rendering**: Texture batching, neighbor-chunk caching, and frustum culling for 60+ FPS.
|
||
|
||
### ⚙️ Technical
|
||
- **Dynamic World Gen**: Multi-octave Perlin noise (FBM) with forests, sand beaches, and ore veins.
|
||
- **Cross-Platform**: Standalone binaries for Windows and Linux with zero external DLL dependencies.
|
||
- **Auto-Update System**: Built-in version checking and download support.
|
||
|
||
---
|
||
|
||
## 🚀 Getting Started
|
||
|
||
### Prerequisites
|
||
- **Linux**: `libpulse-dev`, `glfw` development headers.
|
||
- **Windows**: Download the pre-built zip from Releases, or cross-compile with MinGW-w64.
|
||
|
||
### Build Instructions
|
||
|
||
#### 🐧 Linux
|
||
```bash
|
||
mkdir build-linux && cd build-linux
|
||
cmake ..
|
||
make -j$(nproc)
|
||
./MorriCraft
|
||
```
|
||
|
||
#### 🪟 Windows (Cross-compile)
|
||
```bash
|
||
mkdir build-windows && cd build-windows
|
||
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-windows.cmake ..
|
||
make -j$(nproc)
|
||
```
|
||
A pre-built `MorriCraft-Windows.zip` is available in the repository root.
|
||
|
||
---
|
||
|
||
## 🎮 Controls
|
||
| Key | Action |
|
||
|-----|--------|
|
||
| **WASD** | Movement |
|
||
| **Space** | Jump |
|
||
| **Mouse** | Look / Aim |
|
||
| **Left Click** | Attack / Destroy Block |
|
||
| **Right Click** | Place Block / Use Workbench |
|
||
| **E** | Open Inventory |
|
||
| **Enter** | Open Chat |
|
||
| **1-9** | Hotbar Selection |
|
||
| **ESC** | Pause / Menu |
|
||
|
||
---
|
||
|
||
## 📜 Crafting Recipes
|
||
|
||
### 2×2 Player Grid
|
||
| Input | Output |
|
||
|-------|--------|
|
||
| 1 Log | 4 Planks |
|
||
| 4 Planks (2×2) | 1 Crafting Table |
|
||
| 2 Planks (vertical) | 4 Sticks |
|
||
|
||
### 3×3 Crafting Table
|
||
| Recipe | Output | Recipe | Output |
|
||
|--------|--------|--------|--------|
|
||
| PPP / .S. / .S. | Wooden Pickaxe | CCC / .S. / .S. | Stone Pickaxe |
|
||
| PP. / PS. / .S. | Wooden Axe | CC. / CS. / .S. | Stone Axe |
|
||
| .P. / .P. / .S. | Wooden Sword | .C. / .C. / .S. | Stone Sword |
|
||
| .P. / .S. / .S. | Wooden Shovel | .C. / .S. / .S. | Stone Shovel |
|
||
| PP. / .S. / .S. | Wooden Hoe | CC. / .S. / .S. | Stone Hoe |
|
||
| CCC / C.C / CCC | Furnace | PPP / P.P / PPP | Chest |
|
||
| PP. / PP. / PP. | Door ×3 | PSP / PSP | Fence ×3 |
|
||
| S.S / SSS / S.S | Ladder ×3 | ... / ... / CCC | Stone Slab ×6 |
|
||
|
||
*P = Plank, S = Stick, C = Cobblestone. Mirrored variants supported.*
|
||
|
||
---
|
||
|
||
## 📜 Version History
|
||
|
||
### v2.2.20 - UI Polish & Spawn Fixes (Current)
|
||
- **Ignore Update**: Added an "Ignore" button to the update prompt to skip updates for the current session.
|
||
- **Chat Fix**: Resolved an issue where the chat box would remain stuck open after sending a message.
|
||
- **Universal Tooltips**: Item names now appear when hovering over items in ALL screens (Chest, Crafting Table, and Cheat Menu).
|
||
- **Morning Spawn Fix**: Adjusted the initial spawn time to ensure new worlds start in bright daylight.
|
||
- **Version UI**: Moved the version number to the bottom-left to avoid cutting it off on different screen sizes.
|
||
|
||
### v2.2.19 - Torch & persistence Overhaul
|
||
|
||
### v2.2.18 - Persistence & UI Fixes
|
||
|
||
### v2.2.6 - World Management
|
||
- **7:00 AM Spawn**: New worlds now start in the morning for immediate daylight.
|
||
- **Naming System**: Cleaner sequential naming (`World`, `World 1`, `World 2`) instead of nested parentheses.
|
||
- **Anti-Stuck Physics**: Active collision resolution pushes players out of blocks if they overlap.
|
||
- **Build Path**: Windows artifacts are now stored in `build-windows/` for easier deployment.
|
||
|
||
### v2.2.5 - UX & Inventory Polish
|
||
- **Shift-Click**: Holding Shift and clicking picks up entire item stacks instantly.
|
||
- **Scrollable Menus**: Added scroll bars and mouse-wheel support for the "Load World" menu.
|
||
- **UI Padding**: Increased padding across all panels to ensure text never overlaps borders.
|
||
|
||
### v2.2.4 - Visual & Update Stability
|
||
- **X-Ray Fix**: Neighborhood chunk dirtying ensures internal faces are culled immediately.
|
||
- **Smart Updates**: Client only prompts for updates if the remote version is strictly higher.
|
||
- **15x15 Pre-Gen**: Expanded spawn area pre-generation (225 chunks) to eliminate horizon drop-offs.
|
||
|
||
### v2.2.3 - Async Generation & Help
|
||
- **Loading Screen**: Added a progress bar for asynchronous world generation/loading.
|
||
- **Help Command**: Added `/help` to chat to display all available console commands.
|
||
- **Spawn Surface**: Guaranteed surface placement after full chunk pre-generation.
|
||
|
||
### v2.2.1 - World & Seed Polish
|
||
- **Cliff Fix**: Resolved issues where new worlds would spawn with missing chunks.
|
||
- **Render Distance**: Increased default render distance to 4 for a more expansive view.
|
||
- **Auto-Updater**: Platform-aware updates target Windows vs Linux binaries.
|
||
|
||
### v2.2.0 - Biome & Generation Update
|
||
- **Seed Fix**: Proper avalanche-hash for seeds, making every world truly unique.
|
||
- **Biomes**: Added Grassland, Desert, and Rocky biomes with sand beaches at sea level.
|
||
- **Commands**: Added `/seed` command to view the world seed in chat.
|
||
|
||
### v2.1.9 - Crafting Overhaul
|
||
- **20+ Recipes**: Added Log→Planks and full wooden/stone tool tier crafting.
|
||
- **Smart Inventory**: Left-click stacks same items, right-click picks up or places one.
|
||
- **Future Item IDs**: Added furnace, chest, ladder, fence, torch, door, and stone slab types.
|
||
|
||
### v2.1.8 - Forest Fidelity
|
||
- **HQ Leaves**: New high-definition leaf texture with proper green tinting.
|
||
- **Tree Fix**: Corrected log rendering to use multi-texture bark/ring mapping.
|
||
|
||
### v2.1.7 - Log Realism
|
||
- **Oak Log Textures**: Dedicated bark (side) and ring (top) textures for logs.
|
||
|
||
### v2.1.6 - Inventory Insight
|
||
- **Item Tooltips**: Mouse-over identification for all inventory items.
|
||
|
||
### v2.1.2 - Combat & Health
|
||
- **PvP Melee**: Ray-traced hit detection with knockback and audio feedback.
|
||
- **Heart HUD**: 8-heart health system.
|
||
|
||
### v2.1.0 - Personalization
|
||
- **Skin Editor**: Shirt and pants color customization, synced across network.
|
||
- **Humanoid Models**: Multi-cube player avatars replacing placeholder blobs.
|
||
|
||
### v2.0.0 - Multiplayer
|
||
- **P2P Networking**: Cross-platform sockets with direct connect and LAN hosting.
|
||
- **Chat System**: Real-time text communication between players.
|
||
|
||
---
|
||
*Developed by the MorriCraft Team. Built with Raylib 5.0.*
|