Lambda-Client
December 01, 2018
About
Lambda Client is a drop in binary + config file that 3D renderer Source Engine BSP files. It works will existing Source Engine game installations, across all supported platforms. You simply point the config file at the game install directory and run the binary; then select a map from the dialog.
Lambda Client is evolving regularly. Right now, the core objective is to create a performant game-agnostic bsp viewer that requires no configuration. One day I hope that it can be a click-and-run demo viewer, maybe even a client/SourceTV client replacement.
Features
Right now though, Lambda Client supports the following aspects of Source Engine:
- Full support for Source Engine application structures, including asset locations, as well as asset loading priority.
- Assets and configuration all pulled from game’s own
GameInfo.txt
. - Supports
.vpk
asset package format for loading assets - Support for
.vmt
material definitions. All properties imported, only some supported by the renderer - Support for
.vtf
texture formats - Support for
v20
&v21
bsp
s (testing focus on Counterstrike: Source and Counterstrike: Global Offensive) - Support for precalculated visibility data (
vvis
) structures (leaf
,node
etc.) for performance - Camera with navigation and frustum culling to smoothly navigate around the map
8 Support for
.vvd
,.vtx
,.mdl
,.phy
(partial) StudioModel formats. Some complex models are unsupported, as well as multiple skins. - Staticprop data support
- Entdata loading support (partial, only prop classes actually used)
Previews
_ Counterstrike: Source - de_dust2 _
Tools / dependencies
This is written in Go. Since it uses a desktop window, it has to use CGO somewhere. There are certain C dependencies that bindings are used for:
- GLFW
- OpenGL
- Imgui
- Platform specific dialogs (e.g. File Browser)
All other compiled code is pure Go. All the Source engine format parsers are created and hosted on my own Github, the exception being the vpk
parser, which is available on my Github as a fork, with my own modifications to support the v2
specification.
Download
Source: View GitHub repository