Updated Introduction to Mapbase (markdown)

Blixibon 2019-09-18 22:19:52 -05:00
parent 39223075af
commit af85d4fdd8

@ -1,7 +1,7 @@
The original idea of Mapbase came from me (Blixibon) starting different personal Source projects and bringing a few constant quality-of-life improvements from mod to mod. These improvements were getting scattered across different projects and were difficult to port each time, so I wanted to create a special kind of "base" mod that me and anyone else could draw from for any project going forward. This idea eventually evolved into Mapbase, which grew far past my original vision. It even needed this wiki to document everything.
**Mapbase** is a special mod for Source 2013 designed to be used as a "platform" by modders and level designers. Mappers would create their maps based off of this mod and larger mods with their own unique changes would draw from Mapbase's code and assets. Rather than being a mod purely intended to change how the game plays or feels, Mapbase is almost entirely dedicated to improving the engine for mod creators themselves, attempting to alleviate the craziness of Source and provide new capabilities that help level designers make previously impossible visions easy.
The original idea of Mapbase came from me (Blixibon) bringing a few general quality-of-life improvements to each mod I started making. These improvements were getting scattered across several different projects and were getting difficult to port, so I wanted to create a special kind of "base" mod that me and anyone else could draw from for any project going forward. This idea eventually evolved into Mapbase, which grew very far beyond my original vision.
## New entities and I/O/KV
Mapbase adds **50+** new entities and hundreds of new I/O/KV (Inputs/Outputs/Keyvalues) to the engine, and that's not even counting filters or things ported from other branches of Source. Most of these additions are supposed to make it easier to use existing features/concepts (quality-of-life improvements) or are mostly related to the "map logic" pipeline and have nothing to do with the game itself, so most of these changes could go right over players' heads. For example, one of these logic entities is logic_skill, which could read the player's difficulty setting and detect when it's changed. A more direct entity, `point_entity_replace`, lets you instantly "replace" one entity with another, giving the illusion of transformation (kind of like `phys_convert`, but more flexible). There's also `game_convar_mod`, which lets you set the value of a convar and safely saves/resets automatically on map load/unload, not having to rely on point_server/clientcommand at all. Another entity called `logic_measure_direction` is a direct variant of the existing "logic_measure_movement", but it moves entities to the ends of built-in traces instead.