Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
printz

Source code for MAPtoWAD — convert Quake/Half Life maps to GZDoom maps

Recommended Posts

(crossposted from ZDoom forums)

Since I wasn't advancing on it any more, I've decided to simply release the source code, in its current state, of MAPtoWAD.

MAPtoWAD is a command-line utility that can read Half-Life uncompiled .MAP files (built using something like Worldcraft v3 or Hammer, I think) and convert them to GZDoom TEXTMAP (UDMF) lumps.

It reads all brushes from the Half-Life uncompiled map (.MAP, not .BSP) and uses their coordinates to build equivalent 3d floors in a GZDoom setting, all inside a very large 16384x16384x16384 cube sector with sky and line_horizon background, which would be very useful for making void maps. The result is something unreadable unstable in Doom Builder, but fully playable in GZDoom.

I stopped working on it because of a serious limitation: no speed optimization on GZDoom 3d floors at all.

Here is the source code, compilable with Dev-C++ or whatever works for you.

HOW TO USE IT:

- download Worldcraft for Half-Life so you can make HL maps
- download Wally so you can collect the textures from Doom into a Quake/Half-Life WAD
- find a Wad browser that can extract textures into PNGs without resorting to patches
- use Wally to import those into a WAD
- setup Worldcraft to use that WAD
- start mapping!
- after saving, do NOT try to use BSP/VIS/LIGHT. Just go to the command prompt and launch maptowad <halflife .map input> <gzdoom textmap output>
- use your favourite Wad browser to import the textmap into a UDMF setup
- use your favourite node builder on that setup.
- play!

As an example of where I used it, it's this HPack WIP: http://forum.realm667.com/viewtopic.php?f=20&t=2164&start=10 . I wish I had more updated screenshots. You may need to update the source code for your needs.

Share this post


Link to post

Oh hell yeah! If only Doom Builder could read them. This could make for better levels architecturally if one uses moderately low enough detail.

Share this post


Link to post

Well, to be more precise, Doom Builder can open them, and you can use that to rebuild nodes by shifting a thing two units. But it's very unstable (Doom Builder) in that situation and if you accidentally move some of the vertices, it will crash trying to split everything else.

EDIT: what I forgot to say was that it's only made for void maps (platforms suspended in thin air). Making general-purpose Quake maps will result in gross inefficiency, because even external walls and horizontal surface will become 3D floors. What about phenomenons like monsters hearing you?

I'm thinking of trying this again for Eternity, which does have BSP optimization even for 3D structures.

Share this post


Link to post
printz said:

I'm thinking of trying this again for Eternity, which does have BSP optimization even for 3D structures.

I have a feeling that targeting a portal engine will be much more difficult than targeting an extrafloor engine.

I'd also be surprised (pleasantly so) if performance was better.

Share this post


Link to post
andrewj said:

I have a feeling that targeting a portal engine will be much more difficult than targeting an extrafloor engine.

I don't know if it's too hard. I'll just have to search the 3D map for horizontal surfaces above and below brushes, and make sectors out of their 2D projection intersection. If a given surface has the void above or below it, it is discarded. I'll have to be careful to merge some of the brushes during the process, so I don't get zero-height sectors that would generate extraneous portal groups.

Then, when overlapped sectors appear, I'll consider tagging them in separate groups (layers) and flood-fill their neighbours with the same tags. When tag conflicts appear, I know I hit a group connecting sector, and there I will place the plane portal.

Share this post


Link to post

I know it's old, but was there any further progress on this idea?

Where can I find a working link?

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  
×