https://github.com/galaco/sourcenet
Source Engine network client protocol implementation. Join Source Engine games as a real client
https://github.com/galaco/sourcenet
multiplayer netcode source-engine source-engine-games udp-client valve
Last synced: 2 months ago
JSON representation
Source Engine network client protocol implementation. Join Source Engine games as a real client
- Host: GitHub
- URL: https://github.com/galaco/sourcenet
- Owner: Galaco
- License: unlicense
- Created: 2018-11-12T22:59:19.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-03-16T08:54:44.000Z (over 2 years ago)
- Last Synced: 2024-11-17T12:49:57.745Z (11 months ago)
- Topics: multiplayer, netcode, source-engine, source-engine-games, udp-client, valve
- Language: Go
- Homepage:
- Size: 43 KB
- Stars: 31
- Watchers: 3
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://godoc.org/github.com/Galaco/sourcenet)
[](https://goreportcard.com/badge/github.com/galaco/sourcenet)
[](https://golangci.com)
[](https://travis-ci.com/Galaco/sourcenet)
[](https://circleci.com/gh/Galaco/sourcenet)# SourceNet
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).### Getting started
##### Prerequisites
* 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).### Examples
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.### Credits
A lot of this wouldn't have been possible without the work of leystryku: [https://github.com/Leystryku/leysourceengineclient](https://github.com/Leystryku/leysourceengineclient)