All Projects → LogicAndTrick → sledge-formats

LogicAndTrick / sledge-formats

Licence: MIT license
C# parsers and formats for Half-Life 1 and related engines.

Programming Languages

C#
18002 projects
Kaitai Struct
9 projects
smalltalk
420 projects

Projects that are alternatives of or similar to sledge-formats

Lambda
A custom Source Engine level editor written in Go
Stars: ✭ 34 (-2.86%)
Mutual labels:  valve, bsp, vmf
uSource
uSource is a plugin for importing MDL / BSP / VMT / VTF and etc... resources to Unity!
Stars: ✭ 44 (+25.71%)
Mutual labels:  bsp, vtf, vpk
VTFLib
VTFLib is a LGPL open source programming library that provides a C and C++ API for reading and writing Valve VTF and VMT format image files.
Stars: ✭ 68 (+94.29%)
Mutual labels:  valve, vtf
map-compiling-toolkit
Tools for map compiling in Source Engine, tailored for Garry's Mod (and metastruct, sorry)
Stars: ✭ 17 (-51.43%)
Mutual labels:  valve, vmf
lambda-client
A Source Engine BSP Renderer written in Go.
Stars: ✭ 14 (-60%)
Mutual labels:  valve, bsp
kero
Kero is a Source Engine game engine client implementation written in Go.
Stars: ✭ 25 (-28.57%)
Mutual labels:  valve, bsp
GameTracking-HalfLifeAlyx
📥 Game Tracker: Half-Life: Alyx
Stars: ✭ 24 (-31.43%)
Mutual labels:  valve, half-life
source-engine-model-loader
Three.js loader for parsing Valve's Source Engine models
Stars: ✭ 54 (+54.29%)
Mutual labels:  valve, vtf
BS2PC
Half-Life PlayStation 2 map converter
Stars: ✭ 32 (-8.57%)
Mutual labels:  valve, half-life
bsp
Go package for parsing Valve's Source Engine .bsp (Binary Space Partition) map files
Stars: ✭ 29 (-17.14%)
Mutual labels:  valve, bsp
halflife-op4-updated
Half-Life: Opposing Force SDK based on Half-Life Updated, with bug fixes. Check README.md for more information.
Stars: ✭ 57 (+62.86%)
Mutual labels:  valve, half-life
flutter google maps
A Flutter plugin for integrating Google Maps in iOS, Android and Web applications. It is a wrapper of google_maps_flutter for Mobile and google_maps for Web.
Stars: ✭ 86 (+145.71%)
Mutual labels:  map
KuttSharp
🔪 .NET Package for kutt.it url shortener
Stars: ✭ 29 (-17.14%)
Mutual labels:  netstandard
TurnSignal
An anti-cable-twisting management utility for SteamVR.
Stars: ✭ 73 (+108.57%)
Mutual labels:  valve
Berry
Berry is a simple Tiled Map Loader for Corona SDK.
Stars: ✭ 16 (-54.29%)
Mutual labels:  map
Vortice.Vulkan
Cross platform .NET bindings for Vulkan, VMA, SPIRV-Cross and shaderc
Stars: ✭ 172 (+391.43%)
Mutual labels:  netstandard
php-sorted-collections
Sorted Collections for PHP
Stars: ✭ 22 (-37.14%)
Mutual labels:  map
Streaming Map Demo
Demo of Streaming Binary Data format in a Unity Application for Streaming Maps in realtime
Stars: ✭ 24 (-31.43%)
Mutual labels:  map
font-gis
Icon font and SVG for use with GIS and spatial analysis tools
Stars: ✭ 121 (+245.71%)
Mutual labels:  map
InTouch
👥 InTouch - is a programming SDK build around vk.com API exposing most of the social platform features including messaging, news feed fetching, communities, and media management.
Stars: ✭ 33 (-5.71%)
Mutual labels:  netstandard

Half-Life Formats Library

These C# libraries parse the formats you'll find in your Half-Life install directory. These are low-level libraries intended for developers. Some additional formats are included to include other related formats, such as those found in the Source and Quake engines.

Install using NuGet

Nuget Nuget Nuget Nuget Nuget Nuget

Currently Supported Formats

  • Sledge.Formats - Small formats, or formats that are shared
    • Id
      • MipTexture - Quake MipTexture used in WAD and BSP files
    • Valve
      • Liblist - The format used for the liblist.gam file.
      • SerialisedObject - The format used for many Valve config files used in Steam HL, Source games, and Steam. Some file types that use this format are VMT, VMF, RES, VDF, gameinfo.txt, and many text files found in Source game directories.
    • Pointfile - .lin & .pts pointfiles generated by map compilers where there's a leak
  • Sledge.Formats.Map - Map source files used by level editors
    • Formats
      • HammerVmfFormat - The format used by Valve Hammer Editor 4 for map source files.
      • JackhammerJmfFormat - Experimental support for Jackhammer's JMF format
        • Only supports JMF v121
      • QuakeMapFormat - The format used by most Quake engines for map source files.
        • Supports the formats used in Quake 1 (idTech2) and Half-Life 1 .map files.
        • idTech3 and idTech4 .map files are not currently supported.
      • WorldcraftPrefabLibrary - .ol prfab files created by Worldcraft/Hammer.
        • Prefab libraries are just bundled RMF files, so the version restrictions apply to the RMFs inside the prefabs as well. Some of the default prefabs that ship with Worldcraft/Hammer will not load currently because of this.
      • WorldcraftRmfFormat - The format used by Valve Hammer Editor 3 for map source files.
        • RMF version 1.6 and up (Worldcraft 1.5b+) is currently supported.
  • Sledge.Formats.Bsp - Compiled map files used by the engine
    • BspFile - A format used by Quake based engines for compiled maps.
      • Currently supports Quake 1 (v29), Quake 2 (IBSP v38), and Half-Life 1 (v30) bsp formats.
      • Not currently supported: BSP2 (DarkPlaces engine), Quake 3 (IBSP v46), Source (VBSP v17-21)
      • Currently, visibility data is not parsed, it is kept as a binary blob.
      • Editing of lightmap data is currently not well supported and must be done manually.
      • The library does no checking to ensure that the indexes and offsets are correct. Possibly a higher-level library could wrap around this format to provide developers with a more flexible BSP creation experience.
  • Sledge.Formats.Packages - File package formats used by Quake/HL1/Source
    • PakPackage - The PAK format used in Quake 1/2 and non-Steam Half-Life.
    • VpkPackage - The VPK format used by post-SteamPipe Source engine games.
  • Sledge.Formats.Texture - Texture formats used by Quake and Half-Life
    • Wad
      • WadFile - The WAD format used by Quake 1 and Goldsource to store textures
        • Currently supports Quake 1 (WAD2) and Goldsource (WAD3) formats
        • The ColorMap and ColorMap2 will load, but won't contain any data. These lump types aren't used anywhere.
        • Quake 1's gfx.wad contains a lump called "CONCHARS", which has an invalid type. There's special logic to handle this lump.
    • Vtf
      • VtfFile - The VTF format used by the Source engine.
        • Currently supports all formats that VtfLib supports (read only, not write)
  • Sledge.Formats.GameData - Game data formats used by level editors
    • Fgd - The FGD format used by Worldcraft, Valve Hammer Editor, JACK, TrenchBroom, Sledge, and other editors
      • Source 1 & 2 FGDs will load as long as they are valid, but their use is not fully tested.
      • FGD files with invalid syntax will usually work, but in some cases will not be as lenient as Hammer/JACK can be

Unsupported formats (may be added in the future)

  • MDL, used for models in many Quake-based games.
    • MDL v6 (IDPO), used in Quake 1.
    • MDL v10 (IDSQ/IDST), used in Half-Life, which adds skeletal animation.
    • MDL v44-49 (IDSQ/IDST), used in Source, along with VTX, VVD, ANI, and PHY files. This is a very complex format, so it's not high priority.
  • DEF, game data format used by older Quake editors

Unsupported formats (probably won't be added)

  • GCF, used by pre-SteamPipe Steam Half-Life - this format is no longer in use, so it's not really useful to create a library for it. Use HLLib if you need to work with these files.
  • PK3, used in Quake 3 games - this format is just a zip file with a different extension. Other libraries (including .NET itself) already have good support for zip files.
  • WAD1, used in the Doom engine - this is a bit too far out of scope for this project, which is focused mostly on Half-Life 1.
  • MD2 and MD3, used for models in non-Valve Quake engines - MDL formats are extremely complex and not very well documented, so these are considered out of scope for this project for now.
  • Anything introduced in Doom 3, Source 2 or newer engines.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].