From d04256a56c66a5455d86b6fcbc034b26be4d04ca Mon Sep 17 00:00:00 2001 From: Michael Howard Date: Fri, 24 Apr 2026 15:28:03 -0500 Subject: [PATCH] Docs: Overhauled README with professional layout and updated feature list --- README.md | 194 ++++++++++++++++++++---------------------------------- 1 file changed, 70 insertions(+), 124 deletions(-) diff --git a/README.md b/README.md index 7bfce14..f23c2fa 100644 --- a/README.md +++ b/README.md @@ -1,145 +1,91 @@ -# MorriCraft +# 🟦 MorriCraft ![MorriCraft](assets/TitleImage.png) -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.*