Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 18 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,28 @@
# src2mc

Convert Source Engine maps (`.bsp`) into Minecraft 1.21.1, so that recreating a
game's geometry does not start with days of manual blocking-out.
Bring Source Engine maps (`.bsp`) into Minecraft 1.21.1 -- not just their
shape, but how they look, sound and behave -- so that recreating a game does
not start with days of manual blocking-out.

Built for recreating the Half-Life 2 universe (Half-Life 2, **Entropy: Zero**
and **Entropy: Zero 2**). Portal, Portal 2 and INFRA convert as well, and are
the current in-game test maps.

**At a glance** -- a Rust converter plus a NeoForge companion mod that give you:

| | |
|---|---|
| **Geometry** | Exact Source surfaces drawn on ordinary, editable blocks; sub-block (1/16) collision; displacement terrain |
| **Looks** | Real Source textures (own atlas, mipmaps), every prop as its real mesh with skins and tints, Minecraft lighting, Iris shaderpacks |
| **Performance** | Source's PVS, frustum and GPU occlusion culling, batched props, threaded mesh building |
| **Sound** | Soundscapes, ambient sounds and per-material footsteps, re-encoded to Ogg; captions |
| **Logic** | Source's entity I/O on the server: triggers, buttons, doors, relays, timers, level changes, `point_template`, scripted text and screen effects |
| **Motion** | Doors, lifts, trains and conveyors as Sable sub-levels you can ride; animated props |
| **Input** | BSP v19/20/21/22, loose files or inside VPKs; in-game tested on Portal, Portal 2 and INFRA maps |
| **Scale** | ~66k lines (Rust converter, Java mod), 600+ Rust tests, campaigns of many maps in one bundle |

Not yet: VScript, breakable movers, `.phy` prop collision.

There are two ways to get a map into Minecraft:

- **The companion mod (current).** `src2mc mod export` writes one campaign
Expand Down
Loading