MINI PROJECT – Doom’s E1M1 in Unity

Over the weekend I set myself a time limit, 48 hours of work to make E1M1. After 48 hours I’ll stop completely, fix whatever there is to fix and upload it to the internet. The 48 hours are now over.

1. The architecture

Making the architecture was honestly not the hardest, using a map extracted from the map I was able to follow pretty much perfectly where each vertices, faces and edges needed to go and since E1M1 is a pretty simple map and DOOM composed of very simple models, I didn’t have to be the most precise in my modelling. The result, even without texture, is pretty much done, with the exception of the entrance of the secret 2 in the yard, the acid in the last room, and the exterior in the second room.

What was harder was making the walls and make the height of the different elements correctly since I needed to do it pretty much by the looks of it, since I have no tools or means to measure them perfectly well, which is a shame since I’m a huge fan of precision. The result is very correct, yet incomplete since a lot of the rooms lacks a proper ceiling and the height of the walls are way too big and some walls are missing, the result of inconsistent modelling sadly.

2. The textures

Here’s lie the biggest challenge and maybe the thing that scared me the most about it. Texturing, with Blender of course, since the materials of Unity would have been too easy for the task. I needed a challenge and this was it.

I tried several method, ranging from individuals faces texturing to UVs. Of course I soon realized that the former method was a mess and the later was widely accepted as a huge standard. Of course, I believe that there is a lot of way to texture a game in Unity (ProBuilder for Unity including an amazing tiles texturing tools which work fairly well, but sadly it cost money, and it’s not something I have in my hands), but I only have the resources that Blender offers. So I settled with UVs.

First thing I needed to do was dividing my mesh into severals pieces to make the UVs accessible to a human being, texturing the whole mesh with UVs by hand and with photoshop would have been a nightmare. So I divided the mesh in rooms, then it was the time to make the UVs in Blender.

I tried once again several method. First the “Smart UV Project” option in Blender, which takes each faces and flatten it out the best it can. This process was used in the first room, and only in the first room since the UVs are, even if you keep it simple, a mess. It’s an automated process after all so it’s bound to be unperfect. While it could work for small objects or ten faces at a time, a whole mesh become a nightmare. But I used this method, and it was a huge mistake from me since I needed to follow precisely where each faces are.

Here’s the result : first : the UV itself; secondly : The UV with textured applied; lastly : The mesh with textures.


While the result looks nice, the effort wasn’t worth the trouble since it took me about three hours to complete it.

So I used a second method for the second room. Unwrapping and seam. The result is both nice, and fast since it took me about 30 minutes to complete the making of the UVs and the texturing itself:

(The white mesh are separated from the textured object)

This method was fast, efficient, and elegant. I used that for the last rooms I had time with, but since I spent so much time researching, experimenting and texturing with the first method I didn’t have much time left to do much more



3. Conclusion

While it was a good challenge, UVs were very frustrating to comprehend and I still don’t get it fully. A lot of experimentation is necessary to master it and what I imagined being something pretty simple was in fact one of the hardest thing I ever did in term of 3D work. I am not very proud of the result since there is some UVs that didn’t get imported correctly in Unity and I couldn’t get them to work. I am hoping that this kind of problems can be resolved in the future, and mostly if I make a big model.


You can download the project here, but be wary that it is very incomplete. :!J94mwShR!1tfXkEHjBoBTIhmzOK3NZaL3S6tbzeJU2C8Q97yS-wM





Leave a Reply

Your email address will not be published. Required fields are marked *