MTrop Posted November 19, 2021 (edited) (You need to have DoomTools installed to use DoomMake. Go on! Get it!) EDIT: If you haven't already, you should update DoomTools to fix a big bug in DoomMake. See this post for more info! Your DoomMake version should be at least 0.13.1! Alright, everybody. I've been hearing things. I've been hearing that you are slapping together Doom projects all willy-nilly and kvetching about needing to pare back the textures used for the final product. I've been hearing that you've been wanting to get into MBF21 and/or DSDHACKED development, but the patch building is just one tiny piece of the puzzle. I've been hearing about some of you that manage your projects in single WADs and making one point of failure for your magnum opus, and perhaps need some kind of repository-driven solution. I hear you need a better way. Well, guess what? That "better way" exists! DoomMake What if I told you that you could do all of those things in one command? You'd say I was crazy. But you can. Enter DoomMake. DoomMake is a project builder for Doom mods. It's a program that builds a file system scaffolding where you throw everything in the correct directories and your wonderful WAD file pops out! Whether you are making something by yourself or with others, DoomMake does the heavy lifting when it comes time to package up your work before you send it out into the world! "Heavy lifting," I might add, that includes exporting only the map textures necessary to play your mod, so that you don't have to do that manually! The Most Common Project Now, a lot of y'all are gonna be like, "Matt, you're a handsome, charismatic dreamboat, but what you are promising can't possibly be that easy." Well, aside from the parts where I'm a handsome, charismatic dreamboat, you're wrong. It IS that easy! The most common kind of project is gonna be one with maps, loose assets, and textures from a texture WAD, right? DoomMake's got you covered. Type this at the command line to make that initial project structure: doommake myproject --new-project assets texturewads maps Then you'll have to answer some quick questions: What is your project's WAD name (blank for "PROJECT")? SOMEJUNK Path to project IWAD (blank to skip)? H:\Doom\IWADs\DOOM2.WAD And then after some stuff gets generated, you'll see this in your project directory that was just created: Those files and folders are the main scaffolding of your project. Those .script and .properties files are what drive the DoomMake build process. Everything is editable! If you update DoomMake itself (via DoomTools updates), your project's build will still work! See that /src folder? Let's take a look inside! Change that wadinfo.txt. That becomes your text file (and is imported as WADINFO in the final WAD file). Record and maintain project credits in credits.txt. That gets imported as CREDITS in the final WAD, as well. Put (or edit) all of your maps in /src/maps. Use your favorite map editor! Only the map WADs are read! Throw your texture WADs in /src/wads/textures. You'll use those files for editing maps. You've got a /src/assets folder for all of your loose assets: A place for global-space stuff like DEMOs or GENMIDI or whatever, a place for graphics, music, sprites, or sounds, imported as-is. The /src/convert directory will contain graphics, sounds, and sprites that get automatically converted on build and placed in asset directories. But how are you going to edit all of those assets and whatnot? Easy! Using SLADE! It's got a directory mode! Just open that /src directory and you can move stuff in, alter, and save to the project structure! And then when you're all done, just jump into your project directory at the command prompt, and type: doommake THAT'S IT! DoomMake will then chew through all of your project stuff, spit out some intermediate WAD files in the /build directory, and assemble your project as a texture-minified product in the /dist directory! And there you have it. DoomMake is also smart enough to not rebuild stuff that didn't change, so you can keep rebuilding stuff as you edit other things. What else can it do? It also has templates for DECOHack (or other patch utilities), initializing a Git repository for your project (and Mercurial), and even running your project from DoomMake in your favorite source port! And if there's a tiny thing it doesn't support out of the box, you can edit all of the project scripts until it's how you like it. What CAN'T it do? Well... it doesn't put together GZDoom and Eternity PK3/PKEs out of the box, yet. But it's coming soon! Just need to figure out the best approach for that sort of thing. Nothing says you can't code that yourself in the DoomMake scripts! DoomTools (and DoomMake) should contain documentation about it. Oh. Well, any help for other types of Doom projects? Sure! Here's a webpage for giving you the correct command line for creating the project scaffolding of your dreams, plus a lot of extra information about all the different templates in your project: https://mtrop.github.io/DoomTools/doommake-quickstart.html There's even an example project that you can clone and build yourself using Git! BEHOLD IT'S POWER! https://github.com/MTrop/doommake-example Who is using DoomMake? All the cool kids are using DoomMake! Prominent authors! Me! Maybe YOU, one day! Now, get out there and MAKE SOMETHING! Edited November 30, 2021 by MTrop : Added info about a bug 72 Share this post Link to post
lokbustam257 Posted November 19, 2021 (edited) 7 minutes ago, MTrop said: Who is using DoomMake? All the cool kids are using DoomMake! I like this 5 Share this post Link to post
boris Posted November 19, 2021 One thing the OP doesn't mention is that when DoomMake compiles everything it extracts only those textures from the texture WADs that are actually used in the maps. This works with animated textures, and even with multiple texture WADs. That makes using DoomMake a no-brainer even for single map projects that are using a texture WAD. So yeah, you should be using DoomMake! 15 Share this post Link to post
Gibbon Posted November 19, 2021 Finally, tools that aren't in damn C#! Nice work dude, Java rocks. 4 Share this post Link to post
DuckReconMajor Posted November 19, 2021 luv u 4 this ❤ 1 hour ago, boris said: One thing the OP doesn't mention is that when DoomMake compiles everything it extracts only those textures from the texture WADs that are actually used in the maps. This works with animated textures, and even with multiple texture WADs. That makes using DoomMake a no-brainer even for single map projects that are using a texture WAD. jesus, I figured this would be a nice TODO but it's already there. 1 Share this post Link to post
MTrop Posted November 19, 2021 I've updated the OP to include that tidbit. It wasn't obvious enough from the original text. Whoops! Thanks, everybody. 3 Share this post Link to post
MFG38 Posted November 19, 2021 1 hour ago, Gibbon said: Finally, tools that aren't in damn C#! What's wrong with C#? 2 Share this post Link to post
thiccyosh Posted November 19, 2021 I'll take ten! I'll give you all of my money and my liver! 1 Share this post Link to post
baja blast rd. Posted November 19, 2021 If you need testimonials: "I downloaded this expecting a handy way of speeding up some clunky stuff associated with Doom projects, but it lived up to the title and made my map for me. My one criticism is that I misnamed it by accident the first time around and I now have a pet cow." -rd 7 Share this post Link to post
Stupid Bunny Posted November 19, 2021 Quote Self-Described Legend I will now back you up on this This is amazing. I may have to fart around with my ongoing WAD project so that I can manage it this way from now on. 4 Share this post Link to post
Arrowhead Posted November 19, 2021 (edited) 15 hours ago, MTrop said: I've been hearing that you are slapping together Doom projects all willy-nilly and kvetching about needing to pare back the textures used for the final product. So just to confirm, this will allow me to not have to use Slade's 'maintenance tools' to strip textures/flats/patches from a WAD? Just trying to make sure I understand this tool's usage. If so, this is truly quite awesome! Edit: never mind, just saw Boris' post :) 1 Share this post Link to post
MTrop Posted November 19, 2021 1 minute ago, Arrowhead said: So just to confirm, this will allow me to not have to use Slade's 'maintenance tools' to strip textures/flats/patches from a WAD? That would be correct! DoomMake is non-destructive, so it finds what is used from your maps and texture resources (via WTexScan and WTEXport), and just mooshes that in with the other bits and pieces that it assembles for the final WAD. 4 Share this post Link to post
JadingTsunami Posted November 19, 2021 This is a great idea, and something sorely needed. Are multiple texture WADs permitted and merged, or is it required to have only one texture WAD? 0 Share this post Link to post
MTrop Posted November 19, 2021 2 minutes ago, JadingTsunami said: Are multiple texture WADs permitted and merged, or is it required to have only one texture WAD? It can work with multiple. ...though I have not stress-tested that very much. Feel free to report your findings, should you attempt to do so! 0 Share this post Link to post
Deadwing Posted November 19, 2021 Holy hell, I've been thinking about the necessity of a tool like this >.< This is fantastic! No need to store one big file in the github anymore haha! 0 Share this post Link to post
boris Posted November 19, 2021 25 minutes ago, MTrop said: It can work with multiple. ...though I have not stress-tested that very much. Feel free to report your findings, should you attempt to do so! I tried it with CC4tex and OTEX and it worked fine, although I didn't test how well it handles the ANIMATED and SWITCHES lumps. 1 Share this post Link to post
magicsofa Posted November 19, 2021 I'm both excited and worried about this. Excited because it will make using lostres.wad so much more fluid. Worried because I might get overwhelmed by having all those textures in front of me, and end up just staring into the void for a while. 2 Share this post Link to post
Wavy Posted November 19, 2021 (edited) Hmm. I may port over one of my projects that has been in development hell over to this and DECOHack. Development for the WAD has been an absolute mess with DeHackEd editing and utilising resources, so DoomMake could likely improve my workflow. No idea about how easy that would be (especially recreating the DeHackEd in DECOHack), but it'd remove a lot of weight off my back from then on. Thanks for all the work you've put into these awesome tools you handsome, charismatic dreamboat! Edited November 20, 2021 by Wavy 3 Share this post Link to post
Remilia Scarlet Posted November 20, 2021 But I'm already using Rakefiles and my own generator ;_; 0 Share this post Link to post
DannyMan Posted November 20, 2021 Idk man, should I really use DoomMake? 1 Share this post Link to post
Dragonker Posted November 20, 2021 (edited) 4 hours ago, MFG38 said: What's wrong with C#? Windows-centric. 0 Share this post Link to post
MFG38 Posted November 20, 2021 31 minutes ago, Dragonker said: Windows-centric. Only the graphical/GUI side of it is. The language itself is cross-platform otherwise, albeit limited to console app functionality in Mac and Linux. 1 Share this post Link to post
ENEMY!!! Posted November 20, 2021 (edited) This could be particularly useful for my project as I'm currently working with Ben "Makkon" Hale's Quake textures, which, at 512x512, take up a lot of space, even when converted to 8-bit PNGs. I could get away with bundling OTEX with my WAD/PK3 if it contained several levels, but bundling the Makkon textures would result in a rather off-putting file size, and naturally filtering out unused textures from those will be tedious and time consuming. I think there's a good chance of me making use of this particularly once it gets PK3 support. 0 Share this post Link to post
Catoptromancy Posted November 20, 2021 I am posting in this thread because this thread needs more posts. 1 Share this post Link to post
Nevander Posted November 20, 2021 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. 0 Share this post Link to post
CBM Posted November 20, 2021 (edited) 22 hours ago, MTrop said: Who is using DoomMake? All the cool kids are using DoomMake! Prominent authors! Me! Maybe YOU, one day! Now, get out there and MAKE SOMETHING! 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? 0 Share this post Link to post
Biodegradable Posted November 20, 2021 Sounds awesome, MTrop! Another terrific piece of QoL Doom tech to make people's lives just a little less cumbersome. 0 Share this post Link to post
Wavy Posted November 20, 2021 (edited) 56 minutes 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. DoomMake gives a PK3 styled file system for developing WADs, which you can convert directly into a WAD using only a simple batch file or command. It also converts DECOHack files into a usable DeHackEd as well, without the need for doing that manually. Here's an example that MTrop provided: https://github.com/MTrop/doommake-example In short, it's basically DueTex on steroids. 2 Share this post Link to post