Xaser Posted November 20, 2021 The real kickass things about this sort of "edit raw files on disk and build the wad" workflow are: Source control. You can make a Git repo for the project and hey ho you've got backups and history and a changelog and all that good stuff. If you've got a lot of text lumps (e.g. DECOHack for a DEHACKED-heavy thing), you can point a superpowered text editor like Visual Studio Code or Sublime at the folder. re: #2, SLADE's built-in text editor isn't bad but it doesn't hold a candle to modern "IDE-lite"s like VSCode, and you can still use SLADE for the things it does best (e.g. sprite offsets, format conversions, TEXTUREx editing if you wanna use patches to assemble things, etc.) Still though, #2 is a nice comfy thing but if you're not doing #1 yet, get on it. It will save your ass. 8 Quote Share this post Link to post
boris Posted November 20, 2021 (edited) 5 hours ago, Nevander said: Forgive my dumb question but why not just use SLADE to create your WAD or PK3 like normal? It may be helpful to add to the OP what DoomMake does exactly that SLADE doesn't, for dummies like me who don't get it. Exactly because the old way makes you edit a WAD directly. Doing that has several downsides: one humongous file with hundreds or even thousands of entries in a flat structure, making it hard to navigate having everything in one file makes it annoying to share between a team, because you have to upload (and everyone else has to download) the whole file even if only a single texture (or whatever) was changed. It's also bad for version control. Having a proper directory structure makes it very easy to use with something like Git (which can make sense even if only used locally, since you have a history of changes you can browse) if something goes wrong with the WAD it's likely gone, taking everything with it (I hope you have backups!) probably more 5 hours ago, CBM said: A few questions... how does it determine if a picture is a flat or a texture? and does it convert some random image format accordingly? what is the purpose of "lock.json"? where do .deh files belong, in assets? To add textures and flats that are not inside a texture WAD you have to start your project with the "textures" template (among the others you want to use). That'll create the following directories: src/convert/flats --> put your non-Doom format (like PNG) flat images here src/convert/patches --> put your non-Doom format (like PNG) patch images here src/textures/flats --> put your Doom format flat images here src/textures/patches --> put your Doom format patches here That means you don't have to manually convert your PNGs to the appropriate Doom format files, you just have to put them into the corrosponding directory in the "convert" directory and DoomMake will convert them automatically. For textures you also have to define the textures from the patches in the src/textures/texture1.txt or src/textures/texture2.txt files. Unfortunately there doesn't seem to be a way to automatically convert a single image to a patch+texture (sounds like a good feature request @MTrop. Edit: I created an issue for that: https://github.com/MTrop/DoomTools/issues/58). So yeah, DoomMake can also be used to only create texture WADs! To include .deh files you have to start your project with the "patch" template (among the others you want to use). That'll create a directory called src/patch, where you can put your .deh (that directory by default includes a blank .deh patch). Note that you can also use the "decohack" template to let DoomMake build the .deh file from DECOHack code. the lock.json file includes hashes of the "convert" directories, it's used to only re-convert the files in there if something was changed in the folder. Edited November 20, 2021 by boris 4 Quote Share this post Link to post
CBM Posted November 20, 2021 (edited) 14 minutes ago, boris said: To add textures and flats that are not inside a texture WAD you have to start your project with the "textures" template (among the others you want to use). That'll create the following directories: src/convert/flats --> put your non-Doom format (like PNG) flat images here src/convert/patches --> put your non-Doom format (like PNG) patch images here src/textures/flats --> put your Doom format flat images here src/textures/patches --> put your Doom format patches here That means you don't have to manually convert your PNGs to the appropriate Doom format files, you just have to put them into the corrosponding directory in the "convert" directory and DoomMake will convert them automatically. For textures you also have to define the textures from the patches in the src/textures/texture1.txt or src/textures/texture2.txt files. Unfortunately there doesn't seem to be a way to automatically convert a single image to a patch+texture (sounds like a good feature request @MTrop). So yeah, DoomMake can also be used to only create texture WADs! To include .deh files you have to start your project with the "patch" template (among the others you want to use). That'll create a directory called src/patch, where you can put your .deh (that directory by default includes a blank .deh patch). Note that you can also use the "decohack" template to let DoomMake build the .deh file from DECOHack code. the lock.json file includes hashes of the "convert" directories, it's used to only re-convert the files in there if something was changed in the folder. Cool! Thanks for the help! And this tool will be very usefull... especially because SLADE is somewhat buggy and hysterical when it comes to flats Edited November 20, 2021 by CBM 0 Quote Share this post Link to post
jazzmaster9 Posted November 20, 2021 We be making some Doom :D Congrats on the Official Release, will definitely take a deep dive to getting this set up. 0 Quote Share this post Link to post
MTrop Posted November 20, 2021 (edited) 9 hours ago, boris said: For textures you also have to define the textures from the patches in the src/textures/texture1.txt or src/textures/texture2.txt files. Unfortunately there doesn't seem to be a way to automatically convert a single image to a patch+texture (sounds like a good feature request @MTrop. Already suggested: https://github.com/MTrop/DoomTools/issues/58 EDIT: I just put 2-and-2 together - that's you, right? Haha! EDIT2: I also just realized it was in your post. Boy, this morning is not my best... Seems doable. 9 hours ago, boris said: ...DoomMake can also be used to only create texture WADs! Correct, but the out-of-the-box templates won't merge the full thing into the final product. The build/textures.wad file that gets created contains them all, but they never get "released". I wonder if I should code a case in the build scripts for bundling just a texture WAD if it has no maps nor other texture resources. Hmmm... Edited November 20, 2021 by MTrop 1 Quote Share this post Link to post
MTrop Posted November 22, 2021 DoomMake's been updated: DoomMake Changed for 0.13.0 Added: `infiles` as a valid option field for `TOOL::DECOHACK`. Changed: Improved HTML documentation output. Changed: Single-patch texture generation added to the `textures` and `texturesboom` templates (new projects). (Enhancement #58) As always (or for you newcomers), you can update DoomTools by typing: doomtools --update There are other things changed, so the full release is here: https://github.com/MTrop/DoomTools/releases/tag/2021.11.22-RELEASE 6 Quote Share this post Link to post
Wavy Posted November 23, 2021 I can't seem to get sky replacement textures working. I have a set of sky textures (RSKY1-3) and a modified TEXTURE1 lump due to the skies being longer. I made a WAD that has them and put them into the "wads/textures" folder but they don't seem to carry over at all. I think it might be due to how it grabs all the textures that each maps use, but as skies aren't used in any map, they get left behind. So, how do I go around adding a skies in that case? 0 Quote Share this post Link to post
DarkIceCyclone Posted November 23, 2021 not sure what i'm doing wrong, but for some reason, it doesn't even want to load my wads 0 Quote Share this post Link to post
MTrop Posted November 23, 2021 7 hours ago, Wavy said: I can't seem to get sky replacement textures working. I have a set of sky textures (RSKY1-3) and a modified TEXTURE1 lump due to the skies being longer. I made a WAD that has them and put them into the "wads/textures" folder but they don't seem to carry over at all. I think it might be due to how it grabs all the textures that each maps use, but as skies aren't used in any map, they get left behind. So, how do I go around adding a skies in that case? It won't pick up new replacement skies to carry over if you don't have maps on those slots that use them. Or at least, it should pick them up. If it's for Doom 2, they need to be named "SKY1" through "SKY3", like the original textures. If they aren't, they have to be referenced in a map in some way (such as on a sidedef). 2 hours ago, DarkIceCyclone said: not sure what i'm doing wrong, but for some reason, it doesn't even want to load my wads Without more information about how you are setting up your project, I cannot help you. 1 Quote Share this post Link to post
DarkIceCyclone Posted November 23, 2021 15 minutes ago, MTrop said: It won't pick up new replacement skies to carry over if you don't have maps on those slots that use them. Or at least, it should pick them up. If it's for Doom 2, they need to be named "SKY1" through "SKY3", like the original textures. If they aren't, they have to be referenced in a map in some way (such as on a sidedef). Without more information about how you are setting up your project, I cannot help you. chances are, i'm too stupid to use it. in other words, since i don't know how to use map info or hell, even slade, i also don't know how to use the program 0 Quote Share this post Link to post
Stupid Bunny Posted November 27, 2021 @MTrop I'm going to use this to manage my current project. I want to know in your professional opinion what the best way is, or if DoomMake has any nice native way to package only one map WAD at a time. I'd love to be able to conveniently distribute individual maps for testing, especially since atm my plan is to make maps in the MAP01 slot now and assign them final slots later, since, again, that makes testing easier. Related: if I have MUS stored in individual map WADs, will the MUS lumps also be picked up and consolidated by DoomMake? Because that will be an easier way for me to keep track of which music goes with each map as I go about ordering things. 1 Quote Share this post Link to post
MTrop Posted November 27, 2021 Currently, there is no out-of-the-box way to do individual map packaging, however, it is not an insurmountable task. You may have to start with a project structure that would build the final product, and then make your own custom target or targets (and get creative with an additional merge script or two) for packaging an individual map. The scripts/doommake-lib.script contains some useful functions that can make that easier. The default behavior for DoomMake is to only merge in just the map's lumps from each map, which means that it will ignore the music lumps) but you can change the WadMerge merge script scripts/merge-maps.txt to do anything you want. Alternatively, you could leave the music in the music folder, but change how they get merged in and as certain specific lumps in the scripts/merge-assets.txt script. You should be able to find the documentation for the WadMerge (and WadScript/RookScript) in the DoomTools package under the docs folder (you can find that by typing doomtools --docs at the prompt - it should open the documentation folder in most desktop environments). Unfortunately, I could not account for every use case, but you still can change pretty much everything about how your project builds using an existing project setup. Hope this helps! 1 Quote Share this post Link to post
Stupid Bunny Posted November 27, 2021 Thanks a ton @MTrop, I’ll look through the docs and the scripts and decide how I want to do this going forward. I’m still very much getting the hang of both DoomMake and directory management in SLADE but my old, one-wad project already feels so clumsy and unwieldy in comparison. Having it parse out the unused textures will be especially nice. 0 Quote Share this post Link to post
Stupid Bunny Posted November 29, 2021 Sorry to doublepost, but I'm also having trouble getting a custom sky to merge into the wad. I've actually set it as a wall texture in the map, but when I open the dist version of the map, it seems there's no sky there. I'm not sure if it's something wrong with the custom texture wad I made, although when I test the map in UDB the sky shows up fine, and it's in the wad\textures folder, so I'm not sure what's happening there. Oh yes also there are duplicates of all the patches, plus the patch and texture tables, being imported from the d1gfxd2 WAD file. It's not breaking anything but I imagine it shouldn't be happening :p 1 Quote Share this post Link to post
MTrop Posted November 30, 2021 @Stupid Bunny I really gotta see what you're doing with your project. Hopefully it's not some sort of bug. Do you have a public repository or a ZIP file of your project structure? Feel free to DM me on DoomWorld. 1 Quote Share this post Link to post
holaareola Posted November 30, 2021 Man, this looks fantastic. What a great job, I'll be using this for future projects for certain. 1 Quote Share this post Link to post
MTrop Posted November 30, 2021 (edited) It wouldn't be a proper release without a giant bug, eh? IMPORTANT: If you created any project with both the maps and texturewads template (probably most of you) and you are getting duplicate texture/patch namespace merging in your release WAD, do the following: In doommake.script, find the doRelease() function declaration ("check function doRelease() {") and look for the first line in that function that says: ",getMapTexWad()" and delete it. Then, open up scripts/merge-release.txt and delete the last "mergewad" line before the "finish" line. It should build properly after that (after a doommake clean). A release will be made shortly to fix this. EDIT: Release made: https://github.com/MTrop/DoomTools/releases/tag/2021.11.30B-RELEASE Doing a doomtools --update will grab it. If you made a project recently with those templates, you may have to do those fixes, or you can just recreate an empty project and copy over your full src folder to the fixed project. Sorry for the inconvenience! Edited November 30, 2021 by MTrop Added release. 4 Quote Share this post Link to post
Deadwing Posted December 16, 2021 This is fantastic! It will make my work a lot better! It's also really easy to use and can't wait to add more stuff. Here's a very initial template I created so far with git (no more huge .wad files that get regularly update inside it anymore!) http://github.com/Tomasoares/moondust 2 Quote Share this post Link to post
MFG38 Posted January 5, 2022 Question: is it possible to integrate DoomMake into an existing project? 0 Quote Share this post Link to post
MTrop Posted January 5, 2022 Answer: If you split it into pieces, and shove those pieces into where it wants those pieces. You'll probably have to create a project scaffolding using DoomMake that will have the structure for what you need (assets, textures, etc.), and then you can export/move all of that stuff into the correct directories. At the moment, I do not a have an out-of-the-box solution for migrating projects into its structure, but you can either change your project to a structure it wants or code it from scratch in its scripting language, which I wouldn't recommend if you are starting out. 1 Quote Share this post Link to post
magicsofa Posted January 5, 2022 On 11/27/2021 at 9:48 AM, Stupid Bunny said: Related: if I have MUS stored in individual map WADs, will the MUS lumps also be picked up and consolidated by DoomMake? Because that will be an easier way for me to keep track of which music goes with each map as I go about ordering things. Off topic but... you should be using MIDI: Quote Support for standard MIDI files in vanilla Doom was added in version 1.5, which meant WAD authors no longer needed to convert MIDI files to MUS. However, since this was achieved by the game running MIDI2MUS internally when needed, authors looking for vanilla compatibility should make sure that the MIDI file they include can be successfully converted. Vanilla Heretic and Hexen, derived from version 1.2 of the Doom code, still require that music be converted to MUS format before inclusion in a WAD. 1 Quote Share this post Link to post
Stupid Bunny Posted January 5, 2022 @magicsofa Oops, I guess I meant the music lumps--they are in MIDI format, it was bad wordage on my part to refer them as MUS (I wouldn't be bothered to go to the trouble of converting them anyway). Thanks though! I've been getting a ton of mileage out of DoomMake btw, so convenient for compartmentalizing everything and a little more ease of version control. Everyone should be using DoomMake, indeed. 2 Quote Share this post Link to post
Sneezy McGlassFace Posted January 6, 2022 That looks really cool, thanks Especially OS agnosticism is much appreciated. 0 Quote Share this post Link to post
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.