• Stars
    star
    151
  • Rank 246,057 (Top 5 %)
  • Language
    C
  • License
    Do What The F*ck ...
  • Created almost 12 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Load Source games maps as combined meshes correctly positioned relative to each other

Github build status Build Status Build status

OpenSource

A utility for loading and rendering many Source VBSP maps together as a single giant mesh. It can be used to see how big the game world is, just for amusement.

Current status

It is not production quality and is not ready for any professional and/or unsupervised use. It still has a lot of visual and other glitches. See issues. However, it should be generally stable. It does run on Raspberry Pi. The entire Half-Life 2 fits into < 512MiB video memory and renders ~1.5 million triangles at about 10fps.

If you wish, you could check out the old branch for a version from 2012 that was used for this video of entire Half-Life 1 world: https://www.youtube.com/watch?v=-SaRdQdW-Ik

What works

  • It builds and runs on Windows, Linux/X11 and Raspberry Pi (bare VideoCore libs, w/o X11); No macOS support yet, stay tuned.
  • VBSP format version 19 and 20, most of the maps from these games:
    • Half-Life: Source
    • Half-Life 2
    • Half-Life 2: Episode One
    • Half-Life 2: Episode Two
    • Portal
    • Portal 2. Well, somewhat. Its levels are not positioned correctly, requiring a lot of manual config patching, which has not been done.
  • Basic support for the following map features:
    • Face geometry
    • Displacements
    • Base[0] textures
    • DXT1/3/5 textures
    • Reading VPK2 files
    • Reading materials from pakfile lumps
    • Packing textures with ETC1 on Raspberry Pi (packer is very naive and probably broken)

Building

Requires CMake. Something like this:

cmake -E make_directory build
cmake . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build

Getting binaries

If you don't want to build it yourself, you can find some pre-built Windows binaries in Releases

Running

Basically you point OpenSource binary to a cfg file. It should automatically load game resources from default Steam install directory. There is a couple of pre-made cfg files for a few games. You can find them in pre-built archives, or in misc/ directory of this repo.

Preconfigured games are:

  • hl1.cfg: Half-Life 1. For this you need to install "Half-Life: Source" game from Steam. Regular Half-Life won't work.
  • hl2.cfg: Half-Life 2.
  • hl2eps.cfg: Half-Life 2, including Episode One, and Episode Two. You need them to be installed from Steam.

Additional options:

  • -s -- specify Steam install directory if it's different from the default one.
  • -m -- add additional map to load at origin
  • -p -- add a custom VPK file to load resources from
  • -d -- add a custom directory to load resources from
  • -n -- specify a limit to number of maps to load

Notes:

  • Arguments order matters: options only apply to what follows them. E.g. ./OpenSource hl1.cfg -s <custom_steam_path> will not use <custom_steam_path> for loading resources for hl1.cfg, but ./OpenSource -s <custom_steam_path> hl1.cfg will.
  • cfg files are not strictly necessary, it is possible to load maps only using arguments. However, landmark patching functionality is only supported via cfg files.

Streaming (ON HOLD)

Development was done almost entirely live.

Stream links:

You can also check out previous streams recordings and stuff planned for next streams.

More Repositories

1

obs-kmsgrab

"Zero-copy" Linux screen capture plugin for OBS that uses libdrm and dmabuf
C
76
star
2

jetlag_appear

appear by jetlag 4k intro sources
C
40
star
3

bepct4k

4k intro framework in pure assembly. No Visual Studio required!
Assembly
31
star
4

zenki

Lightweight video surveillance
HTML
25
star
5

dotfiles

Β―\_(ツ)_/Β―
Lua
24
star
6

atto

1e-18, codename: worobushek
C
19
star
7

drmtoy

In this repository I play with libdrm, KMS, DMA-BUF, Mesa, EGL and what else
C
14
star
8

yo24

A 4k intro developed live on twitch (and youtube) (and goodgame.ru)
C
9
star
9

nwep

A 4k intro for Revision 2017 made in collaboration with s.k.o.y.p
C
9
star
10

greetsgraf

(WIP) My clumsy take on greets graph bbs post (i can't into web dev)
Go
8
star
11

hd174k

Assembly
7
star
12

tool.gl

Yet another web-based shader livecoding environment
JavaScript
7
star
13

stameska

yet another demotool of mine
C
6
star
14

shlang

[WIP] Reliable binary pipe over UDP
Rust
5
star
15

SUCKS

[WIP] Highly experimental SOCKS proxy for bad networks
Rust
5
star
16

jetlag_stuck

stuck 4k intro by jetlag
C
4
star
17

yo27_507_212

507 212 by s.k.o.y.p & yolp [4096 bytes intro]
C
4
star
18

kapusha

tiny cross-platform framework for quick opengl hackery
C
3
star
19

Right_Hemisphere

Right Hemisphere 4k intro by SandS and jetlag
Assembly
3
star
20

cynth

Framework for livecoding music in C programming language
C
3
star
21

32kg

A game engine in <32 kilobytes
2
star
22

yo26

C
2
star
23

jetlag_posle

posle by jetlag, 1st place at Function 2018 4k intro compo
C
2
star
24

malincam

[WIP] minimalistic high-perf high-fps camera capture program for Raspberry Pi
C
1
star
25

micro-cmake-glfw-imgui-example

Super minimal example on how to use CMake+glfw+glad+imgui, quickly hacked together and half-broken
C
1
star
26

iced-fragment-shader-widget-example

Minimalistic example of drawing iced custom shader widget using a single fragment shader
Rust
1
star
27

murth

C
1
star
28

0.3js

Tiniest wrapper around WebGL
JavaScript
1
star
29

o08

Entry for miniLD44/7dRTS. Mostly unfinished.
C++
1
star