{"id":13438109,"url":"https://github.com/w23/OpenSource","last_synced_at":"2025-03-19T18:31:53.704Z","repository":{"id":6158834,"uuid":"7388384","full_name":"w23/OpenSource","owner":"w23","description":"Load Source games maps as combined meshes correctly positioned relative to each other","archived":false,"fork":false,"pushed_at":"2024-02-02T01:34:04.000Z","size":1118,"stargazers_count":165,"open_issues_count":29,"forks_count":16,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-03-15T04:03:26.106Z","etag":null,"topics":["half-life","half-life-2","opengl","opengl-es","raspberry-pi","source-engine","vulkan","wayland"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"wtfpl","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/w23.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING.WTFPL","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2012-12-31T15:41:14.000Z","updated_at":"2025-02-08T14:46:45.000Z","dependencies_parsed_at":"2024-01-10T05:57:01.077Z","dependency_job_id":"c00046c9-29b7-4480-86f1-055979f76028","html_url":"https://github.com/w23/OpenSource","commit_stats":{"total_commits":176,"total_committers":5,"mean_commits":35.2,"dds":0.06818181818181823,"last_synced_commit":"454773e75f458e415a9f3c79409b686661616b83"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w23%2FOpenSource","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w23%2FOpenSource/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w23%2FOpenSource/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w23%2FOpenSource/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/w23","download_url":"https://codeload.github.com/w23/OpenSource/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244483453,"owners_count":20460117,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["half-life","half-life-2","opengl","opengl-es","raspberry-pi","source-engine","vulkan","wayland"],"created_at":"2024-07-31T03:01:02.953Z","updated_at":"2025-03-19T18:31:53.699Z","avatar_url":"https://github.com/w23.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"[![Github build status](https://github.com/w23/OpenSource/actions/workflows/build.yml/badge.svg)](https://github.com/w23/OpenSource/actions/workflows/build.yml) [![Build Status](https://travis-ci.org/w23/OpenSource.png)](https://travis-ci.org/w23/OpenSource) [![Build status](https://ci.appveyor.com/api/projects/status/rgu44jqi1kt2jpw9?svg=true)](https://ci.appveyor.com/project/w23/opensource)\n\nOpenSource\n==========\nA 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.\n\n## Current status\nIt 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.\nHowever, it should be generally stable. It does run on Raspberry Pi. The entire Half-Life 2 fits into \u003c 512MiB video memory and renders ~1.5 million triangles at about 10fps.\n\nIf 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\n\n## What works\n- It builds and runs on Windows, Linux/X11 and Raspberry Pi (bare VideoCore libs, w/o X11); No macOS support yet, stay tuned.\n- VBSP format version 19 and 20, most of the maps from these games:\n  - Half-Life: Source\n  - Half-Life 2\n  - Half-Life 2: Episode One\n  - Half-Life 2: Episode Two\n  - Portal\n  - Portal 2. Well, somewhat. Its levels are not positioned correctly, requiring a lot of manual config patching, which has not been done.\n- Basic support for the following map features:\n  - Face geometry\n  - Displacements\n  - Base[0] textures\n  - DXT1/3/5 textures\n  - Reading VPK2 files\n  - Reading materials from pakfile lumps\n  - Packing textures with ETC1 on Raspberry Pi (packer is very naive and probably broken)\n\n## Building\n\nRequires CMake. Something like this:\n```\ncmake -E make_directory build\ncmake . -B build -DCMAKE_BUILD_TYPE=Release\ncmake --build build\n```\n\n## Getting binaries\nIf you don't want to build it yourself, you can find some pre-built Windows binaries in [Releases](https://github.com/w23/OpenSource/releases)\n\n## Running\nBasically you point OpenSource binary to a cfg file. It should automatically load game resources from default Steam install directory.\nThere 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.\n\nPreconfigured games are:\n- `hl1.cfg`: Half-Life 1. For this you need to install \"Half-Life: Source\" game from Steam. Regular Half-Life won't work.\n- `hl2.cfg`: Half-Life 2.\n- `hl2eps.cfg`: Half-Life 2, including Episode One, and Episode Two. You need them to be installed from Steam.\n\nAdditional options:\n- `-s` -- specify Steam install directory if it's different from the default one.\n- `-m` -- add additional map to load at origin\n- `-p` -- add a custom VPK file to load resources from\n- `-d` -- add a custom directory to load resources from\n- `-n` -- specify a limit to number of maps to load\n\nNotes:\n- Arguments order matters: options only apply to what follows them. E.g. `./OpenSource hl1.cfg -s \u003ccustom_steam_path\u003e` will not use `\u003ccustom_steam_path\u003e` for loading resources for `hl1.cfg`, but `./OpenSource -s \u003ccustom_steam_path\u003e hl1.cfg` will.\n- 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.\n\n## Streaming (ON HOLD)\nDevelopment was done almost entirely live.\n\nStream links:\n- [Twitch/ProvodGL](https://twitch.tv/provodgl)\n- [YouTube](https://www.youtube.com/c/IvanAvdeev/live)\n\nYou can also check out [previous streams recordings](https://www.youtube.com/playlist?list=PLP0z1CQXyu5DjL_3-7lukQmKGYq2LhxKA) and [stuff planned for next streams](https://github.com/w23/OpenSource/projects/1).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fw23%2FOpenSource","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fw23%2FOpenSource","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fw23%2FOpenSource/lists"}