Refraction is an open-source Source Engine 2013 mod aimed for adding some Quality-of-Life changes and fixes to the SP SDK.
At its current state Refraction is about 75% compatible with HL2 and Episodic maps.
- Replaced VPC with QuiverProjectCreator.
- Dropped Linux and OSX support for the sake of code simplicity.
- Small UTL changes and fixes (such as better C++ comment parsing).
- Restructured file hierarchy in order to make the code to be more game-oriented.
- A fully customizable GameUI replacement (NovelUI).
- A custom post-processing system allowing programmers to define custom screen-space effects. The
postprocess_controller
entity (replacesenv_tonemap_controller
and is partially compatible with its KV signature) allows toggling those effects (configuring values in a non-hacky way is TBA). - Lots of small fixes from VDC and SDK pull requests.
- Improved forward compatibility of HL2 maps running on Episodic builds (some entities were irreversibly changed making some maps unplayable; two of the numerous examples would be jeep entities - buggy was not working correctly, and mounted machine guns - they weren't working at all on HL2 maps).
- Quake-styled (or HL1-WON-styled) view rolling when strafing with customization.
- Unlocked Field of View (FOV). I recommend setting it at 105 for widescreen.
- Custom VGUI color scheme and fonts for the console.
- OpenAL sound system (
openal
branch) - discontinued. - Deferred sound system (
deferred-sound
branch) - put on hold.
- Shadow mapping
- ????
Refraction is a dual-licensed project.
- All the code that is left unchanged from the original SDK repo is licensed under the SDK license, see LICENSE_SDK for details.
- Any kind of third-party code (lib and public) is licensed under its appropriate license and notified in thirdpartylegalnotices.txt.
- All the remaining code that was directly contributed, unless explicitly stated is licensed under the MIT (Expat) license, see LICENSE_MIT for details.
In short: you may use the code as long as you have LICENSE_MIT added to your source and binary tree via thirdpartylegalnotices.txt