YouTube SummarySee all summaries
Watch on YouTube
Publisher thumbnail
The Cherno
44:3811/26/24
Software Dev

Making a REAL Multiplayer Game Server! // Hazel Engine

11/26/24
Summaries by topic
English

This podcast details the development of a multiplayer game server using the Hazel engine, specifically focusing on implementing the server on a Linux VPS. The process involved resolving a critical crash bug related to managed object marshalling between C and C++ and successfully deploying the game server, allowing multiple clients to connect and interact in a synchronized environment.

Hazel Server Development

00:01:17 The developer outlines the Hazel engine's networking capabilities, leveraging Valve's game networking sockets library and the Hazel server for the server-side logic. Games are scripted in C++, and the server is also programmed in C, utilizing existing tools to create game environments.

Linux Server Implementation

00:02:16 The developer aims to deploy the Hazel server on a Linux VPS, requiring a headless build without a GUI. This step is crucial for making the server suitable for hosting a multiplayer game.

Crash Bug Resolution

00:09:00 The developer encountered a crash on Linux specifically related to the 'script component get instance' function, which returned a Coral managed object. This crash took a week to resolve, with Emily, a volunteer, ultimately providing a solution.

Managed Object Marshalling Fix

00:16:52 The crash was due to issues with marshalling small data types between C and C++ on Linux. The workaround involved passing pointers instead of values to circumvent compiler optimizations, effectively fixing the crash on Linux.

Multiplayer Functionality

00:41:41 The developer successfully implements basic multiplayer functionality by synchronizing player positions and spawning game objects across clients connected to the server. This achieves the goal of multiple players interacting in the game world.