Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
GoldSource SDK Base 2018 (Draft)
Note: this is not an actual feature, it is a suggestion to Valve.
The GoldSource SDK Base 2018 tool is used by GoldSource engine mods to run under the new, community developed version of the GoldSource engine.
Since providing access to the engine to a group of modders, they have been hard at work developing a branch of the engine that provides updates, bug fixes and modernized functionality to enable modders to take advantage of new hardware, software, graphics APIs and more to push their mods beyond what GoldSource could originally do.
- Increased engine limits: Various engine limits, such as the engine memory heap size, maximum number of entities, maximum map size and others have been increased or made customizable on a per-mod basis to allow for larger, more complex mods
- Reworked engine networking to handle increased limits, solve issues with networking large volumes of data
- Improved error handling to avoid memory corruption and memory leaks: late precaches now work, missing precaches do not terminate the game
- The VGUI2 UI is available to modders with a sample implementation in the SDK
- Retained mode OpenGL renderer with mod-specific shader library support
- New callbacks inspired by Source and Quake 2
- Better string pool backing pfnAllocString to improve memory usage
- Improved memory allocation for engine code to reduce or eliminate dependency on Quake's zone memory allocator
- Engine level code moved to game code, mimicking Source and Quake 2. This enables modders to customize features such as physics, cheats, etc
- Improved filesystem interface containing Source engine upgrades
Using the SDK
GoldSource SDK mods are loaded from steamapps/goldsourcemods, unless the mod is on Steam, in which case it may be redistributed in its own game directory in steamapps/common.
A file named
gameinfo.txt, mimicking Source contains the information needed for Steam to add the mod to Steam's game list and launch it with the correct SDK Base version.
In all other aspects, mods will function as they did when placed in the Half-Life directory. However, any mods that assume they are located relative to any game files will not function correctly, and will require modification to use the filesystem provided by the engine.
An updated Half-Life 1 SDK is available on Github:
insert link here
This SDK is the recommended base for new mods, and is updated with new interfaces, bug fixes and more to support modders.
What this means for vanilla Half-Life
Backwards compatible updates may be merged into the vanilla version of the engine at Valve's discretion. Critical bug fixes, performance fixes and other important changes may be added in on a case-by-case basis, but Valve is not obligated to do so.
The team is working hard to further develop the engine and provide features as needed. The current plan is to provide updates, upgrades and bug fixes that do not break backwards compatibility.
Once most potential changes have been exhausted, a new branch of the SDK will be created that makes breaking changes in order to provide a better modding environment. This will be largely focused on upgrading existing interfaces and features in order to streamline engine design, improve performance and deal with fundamental design issues.
The team appreciates any and all feedback. They are active on various platforms, including a Discord server (
insert link here), the Steam Community forums (
insert link here), and on the AlliedModders forums (
insert link here).
Bug reports may be directed to the GoldSource SDK Base Github repository:
insert link here
Anyone interested to help with development may contact the team at
insert list of communication methods here.
Be aware that Valve requires you to sign an NDA, and you may not disclose the contents of the engine or information obtained by using access permitted by this agreement.
Valve retains the right to terminate access at any time for any reason.