Docs: Overhauled README with professional layout and updated feature list
This commit is contained in:
parent
b2a36a249b
commit
d04256a56c
194
README.md
194
README.md
|
|
@ -1,145 +1,91 @@
|
|||
# MorriCraft
|
||||
# 🟦 MorriCraft
|
||||
|
||||

|
||||
|
||||
MorriCraft is a high-performance voxel engine built with C++ and Raylib. It features a custom physics engine, dynamic world generation, and an interactive inventory and crafting system.
|
||||
**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.
|
||||
|
||||
## Features
|
||||
- **Custom Physics**: Stable "Ground-Lock" system prevents camera jitter and ensures smooth movement.
|
||||
- **Dynamic World Generation**: Multi-octave Perlin noise (FBM) for realistic terrain, including biomes like grass, sand, and forests.
|
||||
- **Advanced Crafting**: Includes both a 2x2 player inventory grid and a 3x3 workbench system.
|
||||
- **Optimized Rendering**: Texture batching and neighbor-chunk caching for stable 60+ FPS.
|
||||
- **Cross-Platform**: Builds for both Linux and Windows.
|
||||
---
|
||||
|
||||
## Version History
|
||||
## 🌟 Key Features
|
||||
|
||||
### v2.1.7 - Log Realism (Latest)
|
||||
* **Authentic Oak Logs**: Replaced plank-fallback textures with dedicated bark (side) and ring (top) textures.
|
||||
* **Multi-Texture Rendering**: Implemented specialized draw calls for logs to support independent side/top textures.
|
||||
### ⚔️ 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**: Falling damage and block-breaking progress.
|
||||
|
||||
### v2.1.6 - Inventory Insight
|
||||
### 👥 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.
|
||||
|
||||
### v2.1.0 - Personalization & Stability
|
||||
* **Integrated Skin Editor**: Personalize your shirt and pants colors directly from the Options menu.
|
||||
* **Network Skin Sync**: Custom skin colors are now synchronized between all players via an updated handshake protocol.
|
||||
* **Enhanced World Sync**: Increased chunk rebuild priority and optimized block update broadcasting for real-time consistency.
|
||||
* **Refined Nameplates**: Elevated nameplates to 2.1f for better visibility above the new humanoid models.
|
||||
* **Diagnostic Logging**: Added developer-focused logging for world state changes to ensure parity.
|
||||
### 🔨 Crafting & Inventory
|
||||
- **Dual Crafting Modes**: Supports both 2x2 player crafting and 3x3 Workbench crafting.
|
||||
- **Inventory Insight**: Hover over any item to see its name and properties with dynamic tooltips.
|
||||
- **Authentic Visuals**: Specialized rendering for complex blocks like logs (bark/rings) and crafting tables.
|
||||
|
||||
### v2.0.9 - Identity Update
|
||||
* **Humanoid Player Models**: Replaced placeholder "blue blobs" with multi-cube humanoid shapes.
|
||||
* **Chat Input Isolation**: Inhibited movement and action keys while the chat interface is active.
|
||||
### ⚙️ Performance & Tech
|
||||
- **Optimized Voxel Engine**: Texture batching and neighbor-chunk caching for stable 60+ FPS.
|
||||
- **Dynamic World Gen**: Multi-octave Perlin noise (FBM) with forest, desert, and stone biomes.
|
||||
- **Cross-Platform Portability**: Standalone binaries for Windows and Linux with zero external DLL dependencies.
|
||||
|
||||
### v2.0.8 - Real Update & LAN
|
||||
* **Real Update System**: Implemented live file download via `curl` for seamless client updates.
|
||||
* **Open to LAN**: Added a button to the Pause menu to host a world session instantly.
|
||||
* **UI Fixes**: Corrected the main menu "Connect" button navigation.
|
||||
---
|
||||
|
||||
### v2.0.7 - Collaborative Polish
|
||||
* **Streamlined Multiplayer UI**: Relocated all networking settings to a dedicated "Join Server" screen.
|
||||
* **Fresh Start Survival**: Players now start in new worlds with an empty inventory.
|
||||
* **Full System Updater**: Overhauled the updater to handle comprehensive file replacement.
|
||||
## 🚀 Getting Started
|
||||
|
||||
### v2.0.6 - World Sync & Visibility Hardening
|
||||
* **Host-Side ID Tracking**: Fixed a critical bug where the host could not see connected clients.
|
||||
* **Auto-Chunk Generation**: Updated `SetBlock` to automatically generate chunks for remote updates.
|
||||
* **Reliable Data Streams**: Implemented `SendAll` and `RecvAll` with micro-sleeps to guarantee delivery.
|
||||
### Prerequisites
|
||||
- **Linux**: `libpulse-dev`, `glfw` development headers.
|
||||
- **Windows**: MinGW-w64 (for cross-compilation).
|
||||
|
||||
### v2.0.5 - Persistence & Volume Control
|
||||
* **Stateful Volume Settings**: Fixed global scope for volume variables to ensure persistence across sessions.
|
||||
* **Selective Config Saving**: Refined `SaveConfig` to only persist user preferences (Volume, Name) and ignore session-specific state.
|
||||
### Build Instructions
|
||||
|
||||
### v2.0.3 - Multiplayer Protocol Hardening
|
||||
* **Protocol Synchronization**: Overhauled the packet processing loop to prevent data drift and 'ghosting' blocks.
|
||||
* **Notification Debouncing**: Implemented filters to ensure join/leave messages are only triggered once per action.
|
||||
* **Cross-Platform Stability**: Replaced non-portable socket flags with a robust `select()`-based architecture for Windows/Linux parity.
|
||||
* **Body Validation**: Hardened the data reception logic to ensure complete packet consumption and prevent buffer overflows.
|
||||
#### 🐧 Linux
|
||||
```bash
|
||||
mkdir build-linux && cd build-linux
|
||||
cmake ..
|
||||
make -j$(nproc)
|
||||
./MorriCraft
|
||||
```
|
||||
|
||||
### v2.0.2 - The Social & Sync Update
|
||||
* **Integrated Chat System**: Press `Enter` to open the chat box and communicate with other players in real-time.
|
||||
* **Player Notifications**: Added automated alerts for players joining or leaving the session.
|
||||
* **Multi-Player Visibility**: Fixed player tracking to ensure all peers are correctly identified and rendered for all clients.
|
||||
* **Handshake Optimization**: Host now pushes seed, time, and existing player states instantly upon connection.
|
||||
* **Update Integrity**: Fixed the auto-update system to correctly write version files after a successful download.
|
||||
#### 🪟 Windows (Cross-compile)
|
||||
```bash
|
||||
mkdir build-windows && cd build-windows
|
||||
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-windows.cmake ..
|
||||
make -j$(nproc)
|
||||
```
|
||||
|
||||
### v2.0.1 - World State Synchronization
|
||||
* **Real-Time Block Sync**: Introduced `NetSetBlock` to synchronize all mining and placement actions across peers.
|
||||
* **Time Sync**: Host acts as the master clock, ensuring identical day/night cycles for everyone.
|
||||
* **Seed Sync**: Corrected world generation so that clients automatically adopt the host's seed.
|
||||
---
|
||||
|
||||
### v2.0.0 - The Multiplayer Milestone
|
||||
* **P2P Architecture**: Implemented a cross-platform peer-to-peer networking stack using standard sockets.
|
||||
* **Direct Connect**: Added the ability to join servers via IP and Port from the main menu.
|
||||
* **Remote Avatars**: Introduced 3D representation for other players with dynamic floating nameplates.
|
||||
* **Server Mode**: Integrated a non-blocking host listener into the standard world generation flow.
|
||||
|
||||
### v1.9.1 - The Connectivity & Polish Update
|
||||
* **Persistent Configuration**: Added `config.cfg` to save player preferences and identity.
|
||||
* **Player Identity**: Implemented a required name-entry sequence on first launch.
|
||||
* **Auto-Update System**: Integrated version-checking, update notes viewer, and download progress simulation.
|
||||
* **Multiplayer Preparation**: Added Server Mode toggle and Direct Connect interface foundation.
|
||||
* **Performance Fixes**: Resolved edge-case frustum culling artifacts.
|
||||
* **Audio Refinement**: Fixed music transitions between menus and gameplay states.
|
||||
* **UI Polish**: Optimized layout for the Options and Main Menu screens.
|
||||
|
||||
### v1.6.6 (Latest)
|
||||
- **Tool Scaling**: Increased the size of held items (Axes/Sticks) in first-person for better visibility.
|
||||
- **Custom Assets**: Integrated a high-detail community wooden axe asset.
|
||||
- **Visual Polish**: Improved the viewmodel orientation and stability.
|
||||
|
||||
### v1.6.5
|
||||
- **Audio Optimization**: Implemented a rapid-crossfade system for cleaner day/night music transitions.
|
||||
- **UI Bug Fixes**: Resolved music state issues when entering the Options and Crafting menus.
|
||||
|
||||
### v1.6.4
|
||||
- **Immersive Audio**: Added material-specific digging sounds (Grass, Wood, Stone, Sand).
|
||||
- **Viewmodel Overhaul**: Held blocks are now rendered as 3D textured cubes instead of white boxes.
|
||||
- **Audio Sync**: Tied digging sounds to mining progress for better tactile feedback.
|
||||
|
||||
### v1.6.3
|
||||
|
||||
### v1.5.2
|
||||
- **Stability Fixes**: Resolved texture corruption and state-management bugs with workstations.
|
||||
- **In-Game Clock**: Added a 12-hour AM/PM HUD clock and day/night status indicator.
|
||||
- **Lighting Engine**: Implemented a global day/night cycle (300s) with dynamic sun/moon and world tinting.
|
||||
|
||||
### v1.4.2
|
||||
- **UI Redesign**: Overhauled the inventory and crafting windows to match the classic Minecraft layout.
|
||||
- **Character Preview**: Added a player preview placeholder in the inventory.
|
||||
- **Centered Layout**: All UI grids are now symmetrically centered.
|
||||
|
||||
### v1.4.1
|
||||
- **Texture Fixes**: Corrected leaf and log textures.
|
||||
- **Inventory Stability**: Fixed the double-toggle bug when pressing 'E'.
|
||||
- **Bug Fixes**: Resolved grass rendering issues and fixed tree generation.
|
||||
|
||||
### v1.4.0
|
||||
- **Crafting Table**: Implemented the Crafting Table block and 3x3 grid interaction.
|
||||
- **Advanced UI**: Centered stack counts and added red versioning to the title screen.
|
||||
|
||||
### v1.3.x
|
||||
- **Physics**: Implemented "Ground-Lock" stabilization.
|
||||
- **Inventory**: Added basic drag-and-drop support.
|
||||
- **Wireframes**: Added real-time block selection highlights.
|
||||
|
||||
## Build Instructions
|
||||
|
||||
### Linux
|
||||
1. `mkdir build-linux && cd build-linux`
|
||||
2. `cmake ..`
|
||||
3. `make -j$(nproc)`
|
||||
|
||||
### Windows (Cross-compile from Linux)
|
||||
1. `mkdir build-windows && cd build-windows`
|
||||
2. `cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-windows.cmake ..`
|
||||
3. `make -j$(nproc)`
|
||||
|
||||
## Controls
|
||||
## 🎮 Controls
|
||||
- **WASD**: Movement
|
||||
- **Space**: Jump
|
||||
- **Mouse**: Look / Aim
|
||||
- **Left Click**: Destroy Block
|
||||
- **Right Click**: Place Block / Use Crafting Table
|
||||
- **E**: Toggle Inventory
|
||||
- **Left Click**: Attack / Destroy Block
|
||||
- **Right Click**: Place Block / Use Workbench
|
||||
- **E**: Open Inventory
|
||||
- **Enter**: Open Chat
|
||||
- **1-9**: Hotbar Selection
|
||||
- **ESC**: Pause Menu / Close Inventory
|
||||
- **ESC**: Pause / Menu
|
||||
|
||||
---
|
||||
|
||||
## 📜 Version History
|
||||
|
||||
### v2.1.7 - Log Realism (Latest)
|
||||
- **Visual Overhaul**: Added authentic Oak Log textures with separate bark and rings.
|
||||
- **Multi-Texture Rendering**: Implemented specialized draw calls for complex cube mapping.
|
||||
|
||||
### v2.1.6 - Inventory Insight
|
||||
- **Item Tooltips**: Added mouse-over identification for all inventory items.
|
||||
- **UI Polish**: Dynamic tooltip positioning and screen-edge detection.
|
||||
|
||||
### v2.1.2 - Combat & Health
|
||||
- **PvP Melee**: Added ray-traced hit detection and synchronized knockback.
|
||||
- **Heart HUD**: Implemented an 8-heart health system.
|
||||
|
||||
### v2.1.0 - Personalization Update
|
||||
- **Skin Editor**: Integrated shirt and pants color customization.
|
||||
- **Humanoid Models**: Transitioned from placeholder "blobs" to multi-cube player avatars.
|
||||
|
||||
---
|
||||
*Developed by the MorriCraft Team. Built with Raylib 5.0.*
|
||||
|
|
|
|||
Loading…
Reference in New Issue