ScratchNet
Solo Project
Direct Contributions
- Integrated and built custom DLLs into a unity game
- Incorporated a client-hosted listen server architecture
- Designed and integrated UDP packet-based systems using C++ socket programming to facilitate reliable connection like packet acknowledgement and delta compression
- Debugged and maintained DLL code through Visual Studio Debugger
Skills Demonstrated
C++
Socket Programming
Multi-threading
PC
Unity
Git
Package
Game Networking
Bit Manipulation
Low-level
About
ScratchNet is a custom networking package developed in C++ that can be integrated into Unity to connect 2–4 players over a local network developed over the course of 6 weeks. It uses socket programming to manage UDP packets for both client and server communication, following a client-hosted listen server architecture. In this setup, one client hosts the session as the server while other clients join, similar to implementations seen in games like Peak and Repo. The system includes packet acknowledgment, CRC checking, delta packet compression, serialization, and client/server synchronization, enabling reliable communication between all players.
Outcomes
This was my first exposure to networking concepts for games in a low-level environment, providing an opportunity to expand my technical skill set in C++. By the end of the project, I had significantly solidified my C++ experience and gained a deeper understanding of managing both the stack and heap effectively. Additionally, I learned the basics of multi-threading and techniques for making code thread-safe to prevent deadlocks, data corruption, and inaccuracies. Finally, the project gave me a comprehensive understanding of how game networking is integrated across systems to ensure reliable connections.