Isometric top-down maps from DOOM's WAD files

แชร์
ฝัง
  • เผยแพร่เมื่อ 1 ธ.ค. 2021
  • This video is about classic Doom's WAD files, how they work, and how using Python I created really cool looking isometric top-down views of Doom levels - right from the WAD files.
    Source Code: github.com/gamescomputersplay...
    Some of the interestin maps it generated: drive.google.com/drive/folder...
    (9 Gb, huge files warning)
    ------------------------------
    The Hunter by Audionautix audionautix.com
    Creative Commons - Attribution 3.0 Unported - CC BY 3.0
    Free Download / Stream: bit.ly/_the-hunter
    Music promoted by Audio Library • The Hunter - Audionaut...
    ------------------------------
    ------------------------------
    Bustin Loose by Audionautix audionautix.com
    Creative Commons - Attribution 3.0 Unported - CC BY 3.0
    Free Download / Stream: bit.ly/_bustin-loose
    Music promoted by Audio Library • Bustin Loose - Audiona...
    ------------------------------
  • เกม

ความคิดเห็น • 61

  • @hotwaff
    @hotwaff ปีที่แล้ว +5

    Doom has aged very well. The most unrealistic thing about the Hoover Dam map is how much water it's holding back.

  • @Muladeseis
    @Muladeseis 2 ปีที่แล้ว +7

    I hope they add some maps to the Doom Wiki using this script.

    • @GamesComputersPlay
      @GamesComputersPlay  2 ปีที่แล้ว +4

      Absolutely. Should be helpful to introduce the map, and some of them are quite beutifull too.

    • @gamerman7276
      @gamerman7276 3 หลายเดือนก่อน +1

      Or the idgames database

  • @DoomKid
    @DoomKid 2 ปีที่แล้ว +7

    I LOVE the way these look! thanks a million!

  • @precumming
    @precumming 2 ปีที่แล้ว +3

    Neat. I've been working on a BSP parser for TF2 maps in Rust (the only BSP parsers for Rust are for Quake 3), it's very similar to WAD and the analogy of it being a point and click adventure is very accurate and a lot of fun.

  • @VGCartography
    @VGCartography 2 ปีที่แล้ว +3

    i literally just sat down to track down/write such a program myself for a Doom mapping project and found your work. was even more surprised to see it is so recent! very impressive, thanks for sharing all your hard work!

  • @queuebit
    @queuebit 2 ปีที่แล้ว +6

    Thanks for building this and talking through your process.

  • @WilliumBobCole
    @WilliumBobCole 2 ปีที่แล้ว +3

    I love BigMacDavis walkthroughs! I only in the last few years got around to playing original Doom, and after missing a secret or two early on, I quickly stumbled upon his videos, so I got into a rhythm of playing through a level, then immediately watching his video on that level, partly to find out where anything I missed was so I could go back for it, and partly for the sheer joy of it. There is something super endearing about the way he talks and his wholesome love of the games, and it is awesome to see him getting a well deserved shout out here :D

  • @UofU10
    @UofU10 2 ปีที่แล้ว +2

    Very very cool project!! I love the style after all the transformations are applied. "Orthographic projection" did give me PTSD from linear algebra though so thanks for that trip.

  • @vkc553
    @vkc553 2 ปีที่แล้ว +2

    This is really cool! Thanks Decino- er... GCP.

  • @blockboygames5956
    @blockboygames5956 2 ปีที่แล้ว

    Fascinating video. Thanks for sharing. :)

  • @goebelmasse
    @goebelmasse 2 ปีที่แล้ว +1

    Misri Halek even looks epic from above.

  • @DexiazFantom
    @DexiazFantom 2 ปีที่แล้ว

    Impressive work!

  • @TehDamned
    @TehDamned 2 ปีที่แล้ว +2

    Nice video!
    I guess the error in 8:10 could be caused by the fact the map is in Hexen format WAD and not in basic Doom format. The error looks similar to the case, where you load a Hexen format map in editor under Doom format configuration.

    • @GamesComputersPlay
      @GamesComputersPlay  2 ปีที่แล้ว +1

      Yes, you are absolutely right. Sometimes ZDoom maps use this Hexen format for LineDefs and Things (for example, Pirate Doom is like this, and many others).
      I implemented support for that in later versions of wad2pic, but seeing is for the first time was a weird experience.

  • @ItsRamzi
    @ItsRamzi ปีที่แล้ว

    This was a really great video. I had chatGPT write Java code to convert linedefs to the isometric view, but it just looked skewed and not 3D. Your algorithm had additional steps and looks great. And this video contained better technical terms. What a great video. I am interested in rendering Doom in 3 or 4 perspectives. Top-down, isometric, 3rd person, and first person. It'd be so cool to be able to see all views, or to toggle between them. I don't understand why that's not like a standard feature on every game.

    • @GamesComputersPlay
      @GamesComputersPlay  ปีที่แล้ว

      Thanks!
      To be honest, what I did was a dead-end if you are looking for anything playable. It was more about having a bird's eye view of the whole map - with next to zero concerned about the time and computation it would require.
      If you looking for actual playable isometric Doom, I think I read that someone was making a Unity based port of Doom that was supposed to do that (named something like Nasty or IsoDoom - it might be two different things). Unfortunately, to the best of my knowlenge, all such projects were abandoned.

  • @Scanlaid
    @Scanlaid 2 ปีที่แล้ว +3

    DOOM is one of the GREATEST... yadda yadda ya 😂

  • @Raf99
    @Raf99 2 ปีที่แล้ว

    Nice Project :)

  • @luleta1644
    @luleta1644 2 ปีที่แล้ว

    this is wonderful!

  • @dalecooper4769
    @dalecooper4769 2 ปีที่แล้ว +3

    I'm a simple man. I see Doom, I upvote!

  • @alexneo5458
    @alexneo5458 ปีที่แล้ว

    Классно. Ты примерно реализовал мою идею. Я тоже думал о таких вещах. Можно рисовать карты для разных игр, можно для денди игр. Для них тоже есть карты в интернете, но не для всех игр. У меня два монитора, поэтому на втором мониторе я запускаю карту. Так гораздо интересней становиться играть.
    Но можно пойти чуть дальше и попробовать реализовать не просто такую карту. А карту в реальном времени, где будут подсвечиваться игрок и враги. Для этого придется подключаться к процессу игры и считывать из памяти координаты игрока, так же координаты противников. И рисовать их на карте. Так же можно рисовать разные объекты, тайники, секреты. Выводить количество объектов, которых осталось собрать. Например, в Gothic 2-3 надо растения для зелий собирать.

    • @GamesComputersPlay
      @GamesComputersPlay  ปีที่แล้ว

      То есть сделать шутер от третьего лица. Абсолютно реально - все для этого уже есть, но не на той технологии, на которой я делал. У меня это именно "взять всю карту и нарисовать гигантскую картину со всеми комнатами". А тут надо по сути дела тот же дум порт, только точка с которой рисуется картинка должны быть за плечами игрока. Кстати, может такое уже и есть - по идее не так много менять ведь надо.

  • @calcium8347
    @calcium8347 2 ปีที่แล้ว

    man this is amazing, l would love to see UDMF support for a program like this. great work!

    • @GamesComputersPlay
      @GamesComputersPlay  2 ปีที่แล้ว +1

      Thanks!
      Yes, I am gradually adding various features. Added support for texture-as-flat the other day. In the upcoming plans things like PNG-as-flat, PK3 (UDMF, if I understand correctly, is a part of that - but I haven't looked into the details yet). Finally, scaling down the final image - to be able to handle the really huge ones.

    • @calcium8347
      @calcium8347 2 ปีที่แล้ว

      @@GamesComputersPlay legendary! and UDMF (universal doom mapping format if i remember correctly) is simply a modern map format used by zdoom based source ports generally. adding support for 3d floors slopes and such. might be difficult to implement in some cases lol.
      these renders remind me of old gaming magazine map guides for games like tomb raider or banjo kazooie, would be really neat to see something similar for newer gzdoom based games and mods.

  • @inzyster
    @inzyster 10 วันที่ผ่านมา

    I’d love to see the same done for Dishonored.

  • @HalfEye79
    @HalfEye79 2 ปีที่แล้ว +3

    I would be very happy, if you could do this with the levels of Duke Nukem 3D and Blood, too.

    • @MyDIldoFace
      @MyDIldoFace 2 ปีที่แล้ว

      I just got blood yesterday, and if I got it any earlier, it would have replaced my obsession with doom

  • @borediideath6526
    @borediideath6526 ปีที่แล้ว +1

    Now make it playable the way it is.

  • @ltsMeNoodle
    @ltsMeNoodle 2 ปีที่แล้ว +9

    Great video, one quick question: why isn't it 100% reliable?

    • @GamesComputersPlay
      @GamesComputersPlay  2 ปีที่แล้ว +16

      Thanks!
      It is mostly becase of either new source-port specific features or errors in WAD files (that source port would handle but I just haven't caught them all). For example:
      - PK3 format
      - "Flats as Textures" feature
      - Heretic / Hexen based WAD files
      - Level names outside of standard level names
      - Levels that are too big (my 16G memory PC could handle around 15kx15k pixels map, but crashed on bigger ones)
      - some other non-standard features.
      Often it is not the whole program that would fail, but just some of the textures or flats are not there in the final picture. I am still patching up some of these, so the percentage can go a bit higher in the near future.

    • @steveneiselen7993
      @steveneiselen7993 2 ปีที่แล้ว +1

      @@GamesComputersPlay well that 5th constraint explains why there isn't an obligatory *Sunder* map in the video :-)

    • @GamesComputersPlay
      @GamesComputersPlay  2 ปีที่แล้ว +2

      ​@@steveneiselen7993 I underestimated the capabilities of the script, actually it CAN handle larger maps than 15x15k.
      The biggest it successfully generated were: Holy Hell Revealed (34kx27k), oku2v31 (31kx27k), Comatose (29kx26k).
      It is not always the sheer size, but the largest sectors' shape and size, as currently flood fill part is the bottle neck (it is not implemented with the maximum efficiency).
      The largest I've seen and failed to process, was the Doom NY map. it was 40k on one of the sides.
      As for the Sunder, Hm, I haven't seen that one. but let me give it a try. Chances are it can still handle it.

    • @steveneiselen7993
      @steveneiselen7993 2 ปีที่แล้ว +1

      ​@@GamesComputersPlay Looking forward to the findings on Sunder. I was about to say that another constraint might be the monster counts (as they get into the thousands), but you rendered NUTS with seemingly no issues - so such should be fine, lol.

    • @GamesComputersPlay
      @GamesComputersPlay  2 ปีที่แล้ว +1

      @@steveneiselen7993 So, I gave this Sunder WAD a go. Those were some of the largest maps, true (and the script managed not to crash even). Tool my laptop more than a day to generate all maps. The largest was 28x28k or so. Have a lot of high walls those maps, so not that good looking from isometric perspective, sadly. Although a couple were quite nice looking. Here's a couple examples:
      drive.google.com/file/d/1L1jCfBE9IvzMHvEqZz7gPDPWJk3QcCJP/view?usp=sharing
      drive.google.com/file/d/1g0HDKrmohtudkUOhMgmm1JRCm2XsDk1i/view?usp=sharing

  • @MrCantStopTheRobot
    @MrCantStopTheRobot 2 ปีที่แล้ว

    I've had the Ultimate Doom isometric generations on my computer for like six years...

    • @GamesComputersPlay
      @GamesComputersPlay  2 ปีที่แล้ว +1

      You actually got me intrigued. I think in the beginning I googled for something like this, but found nothing. There was a Doom in Unity port ( NASTY, I think was the name), that allowed something similar, but quite the same.
      Can you share some details (or resulting files)?

  • @Stevano_Cheesecake
    @Stevano_Cheesecake 2 ปีที่แล้ว

    this is awesome! i would love to hear the more technical parts, are you planning on doing another video about them?

    • @GamesComputersPlay
      @GamesComputersPlay  2 ปีที่แล้ว +1

      I think the most interesting thing about the original Doom (from the programming perspective that is) is the use of space partitioning algorithm. And truth be told, I still haven't figured out in details how it works. And then will have to figure out if there is an entertaining spin to make it into a video.
      I did think of maybe showcase the best maps I found (kind of what I have in the end of the video, but more extensive), things like, biggest maps, most enemies, intereting conversions, interesting archetectual things and so on. I went through couple of hundered WADs from "Top WADs of all time" and there are quite a few interesting things.

    • @GamesComputersPlay
      @GamesComputersPlay  2 ปีที่แล้ว +2

      BTW, have you see "Decino" channel, "Analytics" playlist? Best videos about Doom's tech side ever.

    • @Stevano_Cheesecake
      @Stevano_Cheesecake 2 ปีที่แล้ว

      @@GamesComputersPlay yes! his videos are so good

    • @jimmyhirr5773
      @jimmyhirr5773 2 ปีที่แล้ว

      Have you heard of Game Engine Black Book: Doom by Fabien Sanglard? That goes into a lot of depth about how Doom works.

  • @ItsRamzi
    @ItsRamzi 2 ปีที่แล้ว

    In gzdoom you can texture and animate the automap so it almost become a top down shooter. There are two problems. One is that you can't see where you're aiming. The other is that depth is lost. This technique in your video can solve the second problem. The first problem can be solved with a visible cursor or an angle indicator coming from the player sprite. Then instead of merely rendering views, you can actually play Doom in an alternative perspective.

    • @GamesComputersPlay
      @GamesComputersPlay  2 ปีที่แล้ว

      It sure should be possible, probably not with this implementation - this has essentialy FPS of 1/60, not a lot of fun playing like that. However, if limit field of view, make some optimizations, pre-render some stuff - I don't see it as too far fetched.

    • @ItsRamzi
      @ItsRamzi ปีที่แล้ว

      @@GamesComputersPlay outsource the rendering to Aws gpu servers.

  • @drizzziit1
    @drizzziit1 ปีที่แล้ว

    Could you please make a visual tutorial for us non-devs? :(
    I have been struggling with Python and the command prompt for an hour by now after successfully installing the libraries and despite following the githud instructions to the letter, it just doesn't want to work. I am stuck unable to define a path for my windows cmd prompt, and when i tried to use powershell instead it still doesn't work.
    Trying to use the executable equally doesn't work either telling me "wad2pic' is not recognized as an internal or external command
    or external command, an executable program or a command file."

    • @GamesComputersPlay
      @GamesComputersPlay  ปีที่แล้ว

      Hi there. Sorry to here that you have problems.
      You are on Windows, right?
      Let's try the executable again - among all ways this is the most attainable. If it says wad2pic is not recognized - you are in the wrong folder. So here are the steps:
      - download executable file, unpack all content of a zip file into a folder (say C:\Users\JonnDoe\Downloads\wad2pic-win-v1.0\wad2pic-win-v1.0, or whatever)
      - Win+R, then "cmd". Terminal window should appear (probably already in user's folder)
      - Next is the step you may be missing. you need to navigate the folder with wad2pic. If it is on the same drive, just do "cd [full name of the folder]".
      If you are on the different drive, you need to switch to the right drive first by using the command "c:" or "d:" of whatever the name of the drive is. Then do the "cd [full path to the folder]".
      Full path to the folder should start with the drive name (C:,D: or whatever), then go through all the folders and end up in wad2pic-win-v1.0 - that's the folder with wad2pic.
      Finally, when you have navigated to the right folder, type wad2pic. This time you should see a message like :
      Usage:
      wad2pic [] [options]
      wad2pic (-h | --license | --version)
      If you see that - you know how to start the program, and the next step is to pass WAD files into it. (The easiest way would be just to copy everything in this folder. It is a bit messy - there is a lot of stuff already, but at least you wouldn't have to trouble yourself with all that "path"-related issues.
      Let me know if this works - and if not, which stage you are at, we'll pick it up from there.

  • @thatoneguy9309
    @thatoneguy9309 2 ปีที่แล้ว

    Can someone help me? Im trying to use the program but no matter what I do it just says 'module 'wad2pic' not installed'.
    There's no tutorial and he says that it should be pretty easy... but I just cant figure out how to do it.

    • @GamesComputersPlay
      @GamesComputersPlay  2 ปีที่แล้ว +1

      Make sure you have 4 files in a folder:
      1. wad2pic.py
      2. iWAD file (Doom, Doom2), you need those for external WAD to work, same as for playing it
      2a. pWAD file, from which you want to get a map from (you can try doing it for iWAD to make sure it works)
      3. File that runs the script. In the simplest version, you need 2 lines in it:
      from wad2pic import wad2pic
      wad2pic([iWAD file name], [map name], [pWAD file name])
      That should work. It gets just a bit more tricky if you want to play with settings (angles, projections etc), but we'll cross that zig-zag shaped bridge when we get there.
      From what you are saying looks like the you are missing wad2pic.py in your folder. Is it there?
      Let me know if it worked out for you

  • @frognik79
    @frognik79 2 ปีที่แล้ว

    Duke3D next?

    • @GamesComputersPlay
      @GamesComputersPlay  2 ปีที่แล้ว +3

      Well...
      First, I do think Duke3D is kind of a highest point of that kind of 2.5D engines. As far as I know, they added seamless teleport and that allowed for some cool stuff - like getting inside the submarine or room you can go 720 degrees around. Would be cool to see how it worked.
      But sadly, I think Duke's files are no where near as friendly for taking them apart.

  • @Darteghoster
    @Darteghoster 2 ปีที่แล้ว +1

    Try rendering map15 of sunder megawad. Watch your computer explode.

    • @GamesComputersPlay
      @GamesComputersPlay  2 ปีที่แล้ว +2

      Well, Sunder indeed has a reputation for huge maps. Not undeserved, certainly.
      Having said that, I did try to run this thing on sunder. Here's what I can say:
      - it is indeed the megawad with very large maps.
      - the largest one, however, wasn't MAP15, it was MAP16. The resulting file was 900 Mb, 28kx28k. It took like 9 hours to draw. Computer survived.
      - also, this is not the biggest map ever. I think this title belongs to "Planisphere 2", a Doom version of New York city. That one indeed, crashed the computer.

    • @Darteghoster
      @Darteghoster 2 ปีที่แล้ว +1

      @@GamesComputersPlay oh, wow! thank you for your insight and new information!

  • @yb1829
    @yb1829 2 ปีที่แล้ว

    0 views gang where you at ?