Doom is a old 3D shooter from ID software. Today, Doom has become far more advanced then the original Doom released in 1993, and 1995 (Doom II: Hell on Earth).
Source ports such as ZDoom, GZDoom, Doomsday are helping to keep the game alive, and with editors that work in recent versions of Windows, we can also create our own Game entirely.
Editing levels for Doom, and the new source ports, is typically very easy. We have a number of open source tools available to create, not only levels, but also new monsters, items, and textures.
To edit the levels themselves, GZDoom Builder is probably the most modern choice As for the resources, SLADE is probably the best choice, as it also allows to import .png files, which are supported by modern engines.
XWE and Doom Builder 2 are older editors, and XWE is known to mess up .wad files occasionally. However, regardless of which editors you are using, it is recommended you take frequent backups of your .wad'(s).
Gimp and Paint.NET are both free, and can be used to create new textures, which can then be imported into your wads with Slade.
GZDoom Builder vs Doom Builder
GZDoom Builder is a fork of the old Doom builder 2, and aims to support more features from modern source ports. As of the writing of this, it is still actively maintained.
If you are using GZDoom Builder for the first time, you should note some minor differences. To enter and exit visual mode, the Q key is used, in the old Doom Builder 2 it was the W key. It seems this change has been poorly documented, resulting in people getting stuck, or wondering what happened to the visual mode.
Editing tools are available in the left side of the editor.
When first using Slade, and if you are getting missing dll errors. Try using the installer instead of the archive, this should also install any required dll files, most likely caused by not having installed Microsoft Visual C++ 2015 Runtime.
Adding a new texture in Slade, is as simple as double clicking on the patches button, doing this sould open a dialog where you can select a file you want to import.
Adding flats and ceiling textures are done differently, as they need to be placed between the FF_start and F_end markers. If your wad file does not have these, simply create them. Then when you create a new flat texture, start by creating a New Entry between the FF_start and F_end markers, then right click on your entry and choose Import. You also need to add the entry to Texturesx before the flat will be available in your level editor.
Read the editing tutorials to learn how to use the different tools.