<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>My C Game Just Generated Its First World (And It's Multiplayer)</title>
        <link>https://peertube.pbento.pt/videos/watch/af0195a9-a83b-492f-b103-0442c77a88bb</link>
        <description>In this episode of the Dear Universe devlog, we upgrade our C multiplayer engine with a non-blocking, Raylib-style socket API and a 2-byte length-prefix protocol to handle TCP packet fragmentation cleanly. Next, we implement a 2D Perlin noise generator from scratch, fine-tuning scale and roughness to build procedural terrain. Finally, we fix isometric rendering issues by switching from wireframes to solid cubes, using a depth-sorting formula ($X + Z - Y$) to prevent overlap bugs, and adding directional side shading to give the 2.5D mountains realistic depth. Perlin noise interactive example: https://sven-knoblauch.github.io/projects/perlinnoise2D/perlinnoise2D.html Java implementation of Perlin Noise: https://gist.github.com/alksily/7a85a1898e65c936f861ee93516e397d Perlin noise in c: https://gist.github.com/nowl/828013 00:00 - Intro &amp; Raylib-Style Socket API Design 03:00 - Structuring Byte Payloads &amp; Length Readers 07:45 - The Packet Fragmentation Problem (Buffer Limits &amp; Static Allocation) 12:15 - Implementing 2-Byte Packet Header Framing 18:30 - Accumulating Streamed TCP Chunks in Non-Blocking Sockets 22:30 - State Machine Implementation for is_message_ready 33:55 - Network Byte Deserialization &amp; Struct Unpacking 42:15 - Debugging Network Protocol Errors (Length Mismatches) 46:25 - Validating Server-to-Client Chunk Synchronization 48:30 - Researching 2D Perlin Noise for Isometric Heightmaps 52:45 - Porting &amp; Writing 2D Perlin Noise in C 1:01:45 - Building Frequency, Octaves &amp; Cubic Smoothing Functions 1:10:40 - Fixing Coordinate System Wraparound for Negative Offsets 1:16:50 - Debugging Socket Hangs &amp; Render Loop Locks 1:22:25 - Tuning Perlin Noise: Frequency vs. Depth &amp; Map Scales 1:30:15 - Solving Isometric Depth Sorting &amp; Occlusion Bugs 1:39:40 - Diagonal Slicing Math (X + Z - Y) vs. Painter's Algorithm 1:46:10 - Wireframe vs. Solid Cube Rasterization 1:51:30 - Debugging Artifacts &amp; Column Generation Math 1:55:00 - Adding Directional Lighting &amp; Shading for 3D Depth 2:01:20 - Final Generated 2.5D Mountainous Terrain &amp; Next Steps Do not forget to like and subscribe!</description>
        <lastBuildDate>Sat, 26 Sep 2026 16:35:08 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>PeerTube - https://peertube.pbento.pt</generator>
        <image>
            <title>My C Game Just Generated Its First World (And It's Multiplayer)</title>
            <url>https://peertube.pbento.pt/client/assets/images/icons/icon-512x512.png</url>
            <link>https://peertube.pbento.pt/videos/watch/af0195a9-a83b-492f-b103-0442c77a88bb</link>
        </image>
        <copyright>All rights reserved, unless otherwise specified in the terms specified at https://peertube.pbento.pt/about and potential licenses granted by each content's rightholder.</copyright>
        <atom:link href="https://peertube.pbento.pt/feeds/video-comments.xml?videoId=af0195a9-a83b-492f-b103-0442c77a88bb" rel="self" type="application/rss+xml"/>
    </channel>
</rss>