A Source Engine multiplayer client netcode implementation in Golang. This is very incomplete, and is based primarily on reverse engineering cs:source packet data, with a little help from the Source Engine code leaks (also see credits).
- Steam must be running, or steamworks will have issues.
steam_api64.dll
must be obtained from Steamworks SDK, and placed in this directory.- Create a file named
steam_appid.txt
. Contents should be only the Source Engine game appid you are acting as (e.g. Counterstrike: Source has appid 240).
There are 2 examples currently.
- Query public info from servers. This is the same information that you see on the Steam server browser listing.
- Initial client authentication and handshake. This example will progress to the point where the server begins to send packets to the client of its own accord.
A lot of this wouldn't have been possible without the work of leystryku: https://github.com/Leystryku/leysourceengineclient