Posted November 26, 2015
I really love Quake for its modding support. And getting started is far easier than in modern games since the initial premise is far simpler. It's almost like Minecraft or Lego. A rough grid, a hand full of materials and your imagination.
BUT, in difference to Minecraft, there's a whole lot of things you CAN do at some point. Once you realize that those broad strokes aren't enough for what you're trying to express, you can bring your own models. You can tweak the lighting in thousands of ways and you can introduce bump, gloss and even parallax-mapping.
You'll find that there are different mapping tools and techniques, each with its own strengths and weaknesses.
And sometimes, you'll come up with novel ways to create effects that the creators of Quake never imagined. And let's admit it, we're all a little proud when we've come up with such a solution, so let's write about it.
==Generating RTLights: MAP2RTLIGHT==
Quake itself makes no use of light entities. In fact maps, once compiled, don't even contain lights anymore. Just shadow maps. Most of the time this works well, but a few modern effects like bump mapping need the actual lights in order to function. This is why most modern engines support RTLIGHTS, which are simple text files containing one entity per line. Creating these can be a bit tedious, which is why I'm using a little Javascript to generate them. It's very basic, but it also contains a simple MAP parser which might come in handy if you want to extract other information.
You can find it at https://github.com/hansschmucker/QuakeScripts . You'll need map2rtlight.cmd and map2rtlight.js . Put them into your ID1/maps directory.
To use it, you'll need a copy of the Mozilla Spidermonkey shell, which is part of the XULRunner package.
You can download it at https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/jsshell-win32.zip
Ideally, you'd put it at a useful location on your system and modify the path system variable, but you can just extract it to your ID1/maps directory as well.
Open a commandline and change to your ID1 directory. For example:
CD /D U:\Games\Quake\ID1\MAPS
Then run MAP2RTLIGHT with the map name as argument WITHOUT .MAP:
MAP2RTLIGHT Home2
BUT, in difference to Minecraft, there's a whole lot of things you CAN do at some point. Once you realize that those broad strokes aren't enough for what you're trying to express, you can bring your own models. You can tweak the lighting in thousands of ways and you can introduce bump, gloss and even parallax-mapping.
You'll find that there are different mapping tools and techniques, each with its own strengths and weaknesses.
And sometimes, you'll come up with novel ways to create effects that the creators of Quake never imagined. And let's admit it, we're all a little proud when we've come up with such a solution, so let's write about it.
==Generating RTLights: MAP2RTLIGHT==
Quake itself makes no use of light entities. In fact maps, once compiled, don't even contain lights anymore. Just shadow maps. Most of the time this works well, but a few modern effects like bump mapping need the actual lights in order to function. This is why most modern engines support RTLIGHTS, which are simple text files containing one entity per line. Creating these can be a bit tedious, which is why I'm using a little Javascript to generate them. It's very basic, but it also contains a simple MAP parser which might come in handy if you want to extract other information.
You can find it at https://github.com/hansschmucker/QuakeScripts . You'll need map2rtlight.cmd and map2rtlight.js . Put them into your ID1/maps directory.
To use it, you'll need a copy of the Mozilla Spidermonkey shell, which is part of the XULRunner package.
You can download it at https://archive.mozilla.org/pub/firefox/nightly/latest-mozilla-central/jsshell-win32.zip
Ideally, you'd put it at a useful location on your system and modify the path system variable, but you can just extract it to your ID1/maps directory as well.
Open a commandline and change to your ID1 directory. For example:
CD /D U:\Games\Quake\ID1\MAPS
Then run MAP2RTLIGHT with the map name as argument WITHOUT .MAP:
MAP2RTLIGHT Home2