HOW TO: Create an IWAD?

Need help with your project? Ask here.
User avatar
Syfo-Dyas
Posts: 182
Joined: Sun Oct 09, 2005 21:54
Location: Ohio
Contact:

HOW TO: Create an IWAD?

Post by Syfo-Dyas »

HOW TO: Create an IWAD?


Now that I'm back and activitly working on my Star Wars Legacy project again, I would really like to scrap my original resource pWAD and build up an iWAD instead, using bits and pieces I've put together for the old resource wad, and creating new bits and pieces to take advantage of some of GzDOOM's features, yet with the primary goal being to maintain compaiblity with the recent (and future) source enhancements that have been brought to Odamex.

I would like to post this question on DOOM World where the majority of the community resides, but I'm afraid my sharp tongue got me banned from there years ago, so I must rely upon sub-communities such as this for help, though as fate would have it, it would seem that the majority of my favorite members from DOOM World (and New DOOM) all pretty much hang out here anyhow, so all is well. ;)

What I would like to know, and what I was in the process of learning how to do when I was last working on the Star Wars project, is how to create an iWAD in order to make my project 100% "DOOM2.WAD" free.

What I had done in the past was use FREEDOOM.WAD as a base, then I would add in scripts, flats, patches, and what have you via Wintex and XWE, slowly replacing all traces of FREEDOOM with my own material.
Now for reasons I'm just now coming to understand, I really made a mess of the FREEDOOM.WAD and ended up with a working custom iWAD, that was also littered with garbage, and at times produced garbage within the game itself such as corrupted textures, non-playing music, missing or misplaced sprite frames, etc. (BEX and DEH are a LOT to wrap one's mind around).
Now that I've decided once more to rebuild my Resource iWAD from scratch, I would like to know in advance if I am wasting my time by replacing resources in the FREEDOOM.WAD with my own, and if I should just create a new iWAD from scratch. Then, if this is the most practical course to take, how would I go about doing so, what is the anatomy of an iWAD, what makes it tick, what are it's requirements, etc.?


Or, if by simply replacing the resources within FREEDOOM.WAD with my own, are there any inconsistansies that I should be aware of? I.E. I noticed that FREEDOOM.WAD has textures that are not present in DOOM2.WAD. Considering that my project will have nothing to do with DOOM 2, I don't see how this will cause a problem, but I am concerned that there might also be differences with FREEDOOM.WAD's sprite sytem in relation to DOOM2.WAD's, things that might perhaps cause conflicts with my already existing BEX and DEH code. Am I being paranoid here, or is this so?

I can't think of any other questions at the moment, but I thank you all in advance for what ever light you might be able to shed on this subject, and I wanted to say that it feels great to be back, thanx again for the warm reception!
User avatar
NeuralStunner
Posts: 253
Joined: Tue Dec 29, 2009 3:46
Location: IN SPACE
Contact:

Re: HOW TO: Create an IWAD?

Post by NeuralStunner »

This post explains what (G)ZDoom looks for when you tell it "this is an IWad". :)
Dean Koontz wrote:Human beings can always be relied upon to exert, with vigor, their God-given right to be stupid.
Spoiler: System Specs
User avatar
Rex Claussen
Developer
Developer
Posts: 2600
Joined: Tue Jul 11, 2006 18:36
Contact:

Re: HOW TO: Create an IWAD?

Post by Rex Claussen »

How important is it for your game to be "DooM/2.wad" free? Keep in mind that if you want to distribute the game to people who may not own DooM, DooM2, or the Final DooM games, they can always run your game with FreeDooM.

If it's not crucial to be DooM/2.wad free, then you can easily move away from the IWAD concept and retain your BEX & DEH code.

Also, if you're using GZDooM, why not use DECORATE instead of DEH. It's far more versatile and easy to use (being text based).
User avatar
Gez
Developer
Developer
Posts: 1399
Joined: Mon Oct 22, 2007 16:47

Re: HOW TO: Create an IWAD?

Post by Gez »

The answer is here:
Syfo-Dyas wrote:Odamex


Honestly, this doesn't seem like a good idea to create a TC for an engine without a proper content definition language. If it were me, I'd do it for Skulltag instead of Odamex; like Mega Man 8-bit Deathmatch. That would also allow me to use the niftier recent features added to ZDoom like GAMEINFO and the MAPINFO GameInfo stuff, MENUDEF, and so on, with the hope that it'll be supported eventually and make the TC that much more polished. But it's not me.
User avatar
Syfo-Dyas
Posts: 182
Joined: Sun Oct 09, 2005 21:54
Location: Ohio
Contact:

Re: HOW TO: Create an IWAD?

Post by Syfo-Dyas »

Neural: Thankx, I'm going to check into that link now.


Gez: What is a proper content definition language?

Rex: I feel I must really elaborate to help you to understand my posistion, so here it goes...

Back in the day used to goto the book store, grab a doom editing book off the shelf, and try to make sense of what I was looking at. It had been my dream to upgrde my Amiga enough to play DOOM smoothly, and I really wanted to make my own levels out of it, but didn't think I was smart enough to learn how to do so.
Then in 2001, for what ever reason, the only thing I found my self thinking about was DOOM. By this time I'd broken down and built a PC to accomodate my FPS addiction (though for the note, I still use Amigas), and I felt compelled to look up the current state of DOOM editing, now that DOOM's source had been released.
It was at this point that I discovered DOOMGL, and then DeepSea, and finally DOOM Legacy, my all but dead LOVE!
After familiarizing my self with the basics of Legacy, DeepSea, DeHacked, and Wintex, I began to create basic maps, and slowly attempt to learn various tricks that can be done with DOOM. After about a month I decided that I just had to create a Star Wars game! I knew it was going to be a major task, especially considering that I had just began learning to edit, and on top of that, I was producing errors like you would not believe, but I was determined!
It was around this time that I discovered the classic Star Wars map where you play a level inside the Death Star. I can not tell you how many hours I spent on that map alone, playing it over and over again and never getting bored, it felt HUGE, vertical, and Star Warsy! My imagination began to race!
Then I ran across your Total Conversion with the expansion pack and was blown away once again! I remember thinking,"this is a work of art, how the hell did he do all this?!" It was intimidating to say the least, in fact it almost made me want to give up. At the time it appeared so utterly complex that I thought I'd never be able to create something even a tenth as original, amazing, and fun, but I couldn't. I could not let it wrest, and I intended to make a Star Wars TC that would stand on it's own merit, and I figured that with the features that were specific to Legacy itself, I could pull off something that felt very Star Wars in nature, and would be fun to play as well.

And then it was that the lead guy behind Legacy got a job with Activision or something if memory serves correctly, and you all know the rest of the story from there.

I kept the faith for a while, then right as I was about to give up hope that Legacy would ever get the updates needed for me to realize my project as I had began toenvision it, GzDOOM emerged from out of no where featuring 3D Acceleration, BOOM support, ZDOOM support, and DOOM Legacy support amongst other things!
I was back in business, and had a this point officially crossed over the ZDOOM divide without feeling like I'd totally turned my back upon the underdog that Legacy has always been.

At this point I became overwhelmed again because ZDOOM is just sick with features, and it just keeps getting better. On top of that GzDOOM has all these additional features that bring it to the point of not even knowing where the hell it begins and where it ends if ever, my God! :)

So I was doing my thing, creating tons of Hi-Res sprites, textures, and what have you while sitting at my cubical at work, then as fate would have it, the storage site that AMD once provided me for free vanished from the face of the web, and I Lost listerally, GIGs of work. All my resource files gone! At least those that had been geared for GzDOOM specificlly, all my classic Legacy material was still on a pile of CD's at home.

Around this time I moved to Arizona, was making preparations for marriage, etc. etc. etc.
The Nintendo DS came out, and port of PrBOOM was released for it. I used to run the DOOM show more or less on the Dreamcast, and hosted the page for nxDOOM, as well as many tutorials, and files that the author of nxDOOM and I had created or adapted from other's work. At the time I had considered putting together a lite version of my project for the Dreamcast, but save error issues prevented me from taking it too far, though I have considered doing it still since there is now a port of aDOOM for the Amiga which runs like a Dream on the Dreamcast, also the author had expressed interest in porting over PrBOOM, but we've not spoken in some time.
There was also Legacy on the XBOX, but it never really went anywhere either.

Anyhow, the PrBOOM port on the DS had me psyched. I could take my old Legacy work and adapt it over to BOOM, implement a few MBF features, and attempt to produce something like I've never seen being done in community projects in relation to PrBOOM, such as Working Health Stations, a flying enemy drone that could be shot down, picked up, then repaired and set into the air to work at your defense, etc. I was really wracking my brain trying to come up with new and original ways to use BOOM's features to produce ZDOOM like qualities, all the while remaining frienly to the DS's limited resources.
At the time the DS version did not feature a pWAD loader, so I was insistant upon making the TC into a stand alone iWAD that did not require a copy of DOOM, and could be uploaded fully without legal issues with ID software. When the pWAD loader became available, I still stuck with my guns in consderation for the limited system resources.
I of course was content with the idea that my project would also run on nearly every OS under the sun, Amiga OS, MorphOS, and BeOS included, though saldy not all ports were complete and featured many nasty bugs.

It was around this time that both relationship fell apart, and the DS port failed to get needed updates to keep it running on modern DS's so life pretty much sucked, but I pressed on in hopes to at least have something running on BeOS (assuming the code ever got fixed), and Amiga related OS's.

Sometime later, PrBOOM appeared on the Wii, it was not perfect, but it worked good enough, plus I saw that it also got ported to the GP32, WIZ, or what ever they call that open source game system. I believe PrBOOM is on the Pandora as well. So again I got my hopes up, but again the project pretty much fell to the way side, but does at least work.

Needless to say, after a few years of this, my enthusiasm kind of got diminished a bit. Having had to change gears and focus so many times kind of burned me out, not to mention the bad fall out with my girl friend.
I hadn't been working too consistently on anything much at all. I'd go about 2 to 3 months a year where I took and interst again, then faded back out and worked on other, un-related projects, such a noiz composistion, video editing, reading, writing, nature, and the like.



And then Odamex happened, or rather the XBOX port happened, which promted me to give it a look. At the time I just thought it was just another Chocolate DOOM type attempt that just happened to play really well on-line and come with a nice little Server and connection manager. Boy was I totally way out in left field! I heard Odamex was good at what it did, but I did not realize it had BOOM support! At last I had acess to a QUALITY epanded DOOM port that worked flawlessly on a cheap and easily hackable game console, and my favorite next to the Wii for FPS's at that! The controls are flawless, the GUI is great, I could not ask for anything more, but there is more because I come to find that it is based not upon BOOM, but ZDOOM 1.22, and more than that they are now bringing over ACS, MAPINFO, SNDINFO, and other forms of ZDOOM support into the equation.
On top of this Hyper Eye, the author behind the XBOX port, has told me that it is very likely that his Wii port will at some time be completed! So needless to say I'm trying to be very active in that community as well, so sorry if I sould Odamex centric at times, because I truely and dearly love the GzDOOM project as if it were a human being! Well maybe not that strongly, but close!

So this means that I no longer need MBF support (as far as I can tell) to pull of some of the tricks I had intended for the PrBOOM project, which means I could regain GzDOOM compatability, which means I could later, once the project it advanced enough that I'm content with it, I could take the same sources and create a Delux Version of it (should I feel inspired), taking advantage of the additional features of GzDOOM!

So really and honestly, the only reason at this point to stick with the iWAD aproach is for the simple fact that I would like to have an all in one, easy to install package like Action DOOM. :)

That and the fact that I would also like to be prepared for any future console ports of this or that engine, that I might be able to adapt the project to. I used to Hex Edit PrBOOM to direct it to my custom named iWADs, so I don't see why I could not do this with other ports if needed.

And that is the condensed story of my relationship with Star Wars and DOOM, and why I would like to keep this project iWAD centric. That and the fact that I feel it is better to know as much about the raw material of classic DOOM as possible, the move up from there, especially since a few things are still unclear in my head.

Besides it would just be cool to understand what makes an iWAD work, though I'm thinking I will build it as a pWAD at first, then only create an iWAD out of it for the console based ports that require it. Though it would be cool to have my iWAD officially supported by Odamex so I could churn out Star Wars based DM, CTF, and expansion maps.

As for retaining Bex and Deh code, I can always inject them into the WAD file, so no loss either way.

Anyhow, sorry if your your eyes are now sore. ;)

P.S. I forgot to mention that Enjay's work has always impressed and influenced the hell out of me as well, not to mention the work that has been done over in the Df-2k.net scene. These factors, too many Star Wars novels and comics read, too many hours on with existing Star Wars games, and a friendly community have really kept me going. Thankx again to all who have ever helped or have taken there time to set up sites and projects such as this. My life would be a tad less interesting without you.
User avatar
Gez
Developer
Developer
Posts: 1399
Joined: Mon Oct 22, 2007 16:47

Re: HOW TO: Create an IWAD?

Post by Gez »

Syfo-Dyas wrote:Gez: What is a proper content definition language?
A language that allows to properly define content. :P


I mean, something like DeHackEd is not a content definition language. It just allows you to hack stuff. It is pretty much horrible to use.

DECORATE, on the other hand, allows you to add new content without having to sacrifice other actors. You can use very complicated logic easily. You can do things that are impossible to do in DeHackEd, notably use the plethora of parameterized action functions (codepointers) that you cannot use with BEX or DEH. You should try playing through KDiZD, Stronghold, Cold as Hell Special Edition, the Wolf3D TC or Urban Brawl to see what I mean.
User avatar
Syfo-Dyas
Posts: 182
Joined: Sun Oct 09, 2005 21:54
Location: Ohio
Contact:

Re: HOW TO: Create an IWAD?

Post by Syfo-Dyas »

Alright, I see what you mean now, and yes I'm aware of and somewhat familiar with the inner working of DECORATE, and I can assure you that if it ever becomes a part of Odamex, that I'm going to jump right on it as I am really not a big fan of DEH my self, but I got to go with what is resource friendly and portable, so for now that is where I'll stand, but time will tell, Odamex is going through some changes, so who knows what the future holds.

Now assuming I come back after my project is finished and add some touch ups for the GzDOOM side of things...

...there will be DECORATE enhancements to be sure! God knows my present grenade kind of sucks! :)


None the less, it is kind of fun trying to figure out ways to push a limited environment in new directions.
Post Reply

Return to “Editing Help”