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.