This tutorial is going to bring a WHOLE lot more life into my maps! :D Also this is pointless to add but, if you place a polyobject startline right next to the door area (in the map NOT the dummy sector!) It completely breaks the map. Thankfully it is easily salvageable. Also a few other things, 1: Polyobjects can go over gaps without crashing however it completely derps the texture to the point of mis-aligning the door. Take it from me you need to be careful if you decide to do rotating/swinging objects or doors. And 2: Does anyone know how to pull-off poly-object effects (like for example a swinging door) but NOT have to delete a sector so the door looks like it swings open to an outside area and the door has a proper flat top to it.
Target Angles work like drawing against a protractor. When you set it to north, you only turn it 90 degrees, west turns it 180ish, east sets it back to 0, and so on and so forth. It just draws out a route on where to turn and it turns it until it reaches a specific angle.
Watched 5 tutorials finally yours. You are the only one that pointed out the 2nd anchor is actually a a start spot thing and not just a second anchor, now my doors work, and the poly object can be mapped properly. Thank you sir.
Thanks dude. Your lessons are really great. I'm just getting started to use GZDoom builder. I've made a small map that has 13 rooms and 25 enemies (took me almost 6 hours just to do that) and this helps me to get better at doing it.
All my friends and classmates learning useless crap like Unreal or Unity and I'm learning the industry's REAL game engine of choice. But, no, seriously, thanks for this, Chubz. I haven't made DOOM maps in years, but I should really, REALLY get back in it. I am curious about one thing, why don't you ever speak during the gameplay segments of the video when you're testing things out? You should mute the game's music and mention anything happening in the game that the viewer should note WHILE it's happening.
Most of the time I don't talk during the gameplay segments because all I'm doing is demonstrating what we just created. I tend to let the gameplay speak for itself, then resume talking when I get back to the editor. I do like your suggestion though... I'll definitely keep it in mind if I feel there's something I should add while playing.
@@Zen-rw2fzGZDoom offers 3d model support, as well as support for true 3d environments represented in a 2-dimensional map. GZDoom is not 2.5d. Yes, the map is 2d, but the level geometry can be 3d. There are limits, of course, but these can be overcome.
@@badbeardbill9956 what I said is that it's based on a 2d engine. It's an opengl port so of course it's 3d as we know it now a days but since it's based on doom it ends up having a lot of limitations
@@Zen-rw2fz idk, there are some gzdoom things out there that are unrecognizable as having any such limitations. I think at this point the only real similarities between GZDoom and the og doom engine are that GZDoom just has all the default settings set to "Doom" mode lol. It's like if someone built a Doom port out of UE4. Sure, in the current configuration it would be limited to Doom's limitations, but this is by choice for compatability reasons rather than a real limitation of the engine at this point :P
Once again im late to the party by a million years but regardless, thankyou for all these videos. Ive very recently started playing with doom mapping and these are so helpful! props to you.
A part 2 of this would be cool. There's a few interesting things I remember that can be done with polyobjects, like mirror polys (door splitting in half to slide), combining poly objects with 3dfloors (I think you have already done it in another tutorial) and controlling polyobjects with scripts, like, turning fans on / off, activating and deactivating damage, etc.
Only just started mapping. Doing a Vanilla marathon the moment for a 'New Mapper' competition, but I can't wait to try some of the things you've showed on the following map I make. Thanks for the vids, they're invaluable.
As an update, just started my first scripts, and they're coming along nicely thanks to these vids. Also got the polyobjects working, though I realised you can't map 2 in the same sector (I planned to have a vertical door with the bottom half going down and the upper half going up as normal). I'll keep digging though, so thanks for the many tips.
You can also make the front and back linedefs of the polyobject in the dummy sector act as switches for the polyobject itself, allowing you to trigger it as though it were a normal door. So, for those that didn't know, the linedef specials also copy over.
Excellent Tutorial, Chubz! I was waiting to find a tutorial finding out how polyobjects use sound effects. These polyobjects not only remind me of Wolfenstein but also those trap mansions and old vintage 3D puzzle games like Logic Quest. Ever heard of Logic Quest? I played that when I was a kid. Also when I get done with my college classes I might do a GZDooM Builder tutorial on vertical and horizontal portals.
Very detailed and businesslike tutorial for making quite a complicated thing easy to understand. :) There are no many tutorials online that actually help also even if looking answers to a little case. I can understand your point and answer your question just like from the school seat before you finish talking. This was not happening that easily in the school so I would suggest you to make a lot of tutorials. :)
Would you be willing to do a more advanced tutorial for polyobjects in the near future? Recently, I learned how to give polyobjects a set height (instead of rising endlessly to the sky), and its come in handy for outdoor areas where I use a ton of 3D floors.
How did you give em a set height? I'm not real familiar with the more advanced tricks/techniques that can be used with them. I've only ever used them for basic stuff like sliding doors.
@@Chubzdoomer You know that blank space in the dummy sector that's reserved for the polyobject itself? Well, you need to fill it in and give it all your desired middle textures. Then you need to give all four sides Polyobject Explicit Line. If you do it properly, you'll get a much cleaner looking polyobject, but its still an illusion best I can tell. I used these for better looking sliding doors in 3D floor structures outside, but I'm sure with some patience & skill, you could set up hidden passageways that could be revealed by a switch. Only real problem I know of is that the collision is still all there, so even though it doesn't appear to go up endlessly in the sky, it'll act so if you were to shoot above it. I'm sure TH-cam will hold this for review, but this short video I screengrabbed is the best way I can portray it. th-cam.com/video/uIv8Hv2F9zI/w-d-xo.html
@@DoomieGruntVentures That is awesome! Thanks for sharing that technique with me. I'm gonna have to experiment with it in the near future to see what all I can come up with.
I did read somewhere you can use scripting to fix collision so you can walk and shoot over/under the desired polyobject. But that's beyond me at this time.
also guys i made my 1st swing door right after this video. swing is just as simple as these. only thing you need is that anchor and startspot poly thing. should be at ends. [*....] [*.....] like this ig . this is best i can explain since u cant upload pics to comments sorry
It seems that noone has clarified the issue at 15:20 . I don't have GZDoom Builder (just DB2), but looking at it I can at least say that you should notice you actually set the rotation to 180 degrees, not 360. That for me perfectly corresponds with the descriptions in the Target Angle field: everything is just scaled 256:360. Since the initial point on a circle is set to be the one in the east and rotation is by default a counter-clockwise movement (these are the standards in math), rotating by 90 degrees gets you to the north, 180 to the west etc. I wonder what setting Target Angle to '0: East' would do - I am assuming the 360 degree rotation since the rotation by 0 degrees is utterly useless. Try that; if the wall flips twice, then it's like I'm saying. I hope it helps. Thanks for you awesome tutorials!
yeah tested around with it abit, it seems like the description is wrong because when you go to doom acs description this is what it says ------ Polyobj_RotateRight 3:Polyobj_RotateRight (po, speed, angle) Rotates a polyobject right through the specified angle. If angle is 255, then the polyobject will rotate continuously and never stop. po: polyobj to rotate speed: how quickly the polyobj should rotate angle: byte angle to rotate the polyobj through ------- so yeah ignore the words west/north/east/right/whatever and just use the 256:360 scale where 64 = 90 degree --- 128 = 180 degree --- and yeah 0 is 360 degree --- 255 = constant rotate also tried to change the polyobject start line and tried to change the switch to rotate left, also the angle did nothing when i changed it so it is just purely for tag use, i also tried to flip the whole map 180, still the same.
Thanks for a great explanation. Sadly i created a continuous rotating sector. First tried a dummy sector with same shape as my original sector. It gives me a fatal error. But when making a dummy square room bigger than my original, no fatal error anymore. Problem is the texture on the rotating sector have glitch, like in some specific angles, it looks like some of the texture are missing. Even both room are equal the same size. And i place anchor and start polyobjects in the middle at both place
@@Chubzdoomer For some reason it only works if a tag the poly object with 1. even if a edit the script. I am assuming the 1 in the script is the Poly ID?
I'd been wondering how to do this ever since I played Hexen! I was always way too intimidated by it. Awesome job~ Now, how's about that Donut Sector vid? ;)
do you know how to make a poly door, that functions like a normal (Normal according to doom) locked door. Like "You need a yellow skull to open this poly door"
As long as your map is in UDMF format, you can assign a lock (key requirement) to literally any line action by going into Line mode, right-clicking a line to pull up its properties, and then setting "Lock Number" to your desired key(s). Here's an image for reference: imgbox.com/fhhdRR02
Getting the sound sequences to work with polyobjects was easy enough, but I also wanted to change the sounds a floor made when lowered, and... I just can't get it to work. Spent a few hours of trying different things, but the best I could do was to make it so the sector didn't play a sound sequence at all. Getting it to play a custom one? No progress.
If you're using UDMF format, that's pretty easy. All you have to do after creating your SNDSEQ entry in Slade is open your map in Doom Builder, right-click the sector(s) that will be moving, and specify which sound sequence it should use (underneath the Effects category). Here's a small example I made using a few sounds I ripped from FreeDoom: www.mediafire.com/file/ughzyeu3d82ng01/CustomFloorSound_Example.wad/file
@@Chubzdoomer Also... I think I figured out what I had actually done wrong. The sound effect I wanted needed to be played "until done" and not just played normally, because the platform movement was so fast that the file never got the chance to make a sound. ¯\_(ツ)_/¯
You should be able to make moving walls using PolyObjects. Here's a big tutorial I did on them a few years back: th-cam.com/video/6JbM6qD7x-g/w-d-xo.html Jump to about 18m57s in that video to see me make a simple "moving rock wall." In order to have the movement loop (i.e. be perpetual), you'll need to resort to scripting. Here's a simple example: www.mediafire.com/file/vey0au39kps0whx/PerpetualPolyObject.wad/file
Hi! I would like to ask for some help... with SNDSEQ for PolyObject Doors. I can't make the door sound to be played when opening/closing said door. SNDINFO Lump: //Doors PolyDoor1 SOUNDS/Base/Doors/BigDoor2_Close (Full path since the name longer than 8 characters) SNDSEQ Lump: //Doors //BigDoor2_Close :PolyDoor1 door 0 Play PolyDoor1 end The Door type is: Polyobject Slide Door Polyobject Number: 1 Mirror Polyobject Number: 2 Sound Number: 0 (This being 0 because that's the SNDSEQ index of "PolyDoor1")
One major limitation is that PolyObjects are infinitely tall, so you can't make a vehicle that you can see over top of and jump on/ride or anything like that, unfortunately (at least not without some sort of wild workaround).
Chubzdoomer Thanks. Would a subway train work though? Since I just something to transport players around and not have some action movie shooting with all the Matrix jumping on the top of the train.
@@SuperLeosid I don't think so. Since they're infinitely tall, they can only ever act like walls (block the player completely). You'd probably just have to fake a subway train by fading to black, then coming back into another scene with the walls and floor scrolling to simulate movement (perhaps screen shake as well?), then fade out and in again to when the train has stopped at its new destination. Script-wise that'd be pretty easy.
I have a question regarding rotating sector that functions as door, you use an anchor on let's say "an empty sector", is there a way to give a height for that sector say if you want to make a rotating wall with proper height that functions as floor? (rotating floor) cuz when i use your method I get infinite-height wall that occupies your actual sector height.
I recommend getting the version with the latest date here: devbuilds.drdteam.org/gzdbbf/ Just unzip it with 7-zip and you should be able to run it without the need for any installation.
@@childalpha6954 Yeah that's the C# Source Code for the project. You'd open it up in Visual Studio and from there, compiling it would turn it into the actual program.
@@ChubzdoomerI tried that but it's not working. Is there a limited number of tags you can have on a level? Because I'm trying to make a shootable button as Tag 12 but after put in the tag when I try to connect with my bars number 12 doesn't show up.
@@quakenerd6068 I think Hexen format's tag limit is 255 (and UDMF supports well over a thousand), so that shouldn't be the problem. When you say the "number 12 doesn't show up," I'm not sure I understand what you mean. Tags are usually typed in manually, so you shouldn't need to see them anywhere beforehand. The way you should be designing it is like this (using a door opening as an example): 1. Give the door (sector) an unused tag 2. Give the "shootable switch" (line) an Open Door action, and point it to the same tag you assigned the door in step 1. 3. Set the "shootable switch" line's Trigger to Projectile Hits
@@Chubzdoomer alrighty I'll try again. What I was talking about was whenever i start to put in a tag number there's a list that shows the numbers already taken. Do you have to put it in manually for both the switch and door
@@quakenerd6068 Ah I see what you mean. I rarely, if ever choose the numbers from the dropdown list. I just type the tags manually, and if they match up the editor should reflect it (when you highlight over the line or sector, an editor line should appear that shows you their tags are linked together).
Yep, and thankfully it's really easy! Just import the sound the same way you see here, except don't bother with SNDSEQ (only create SNDINFO), then inside your walkover script use this code: PlaySound(0, "SOUND NAME HERE", CHAN_BODY, 1.0, FALSE, ATTN_NORM, FALSE); You obviously want to replace SOUND NAME HERE with the actual name of your sound, but keep it in quotations.
You can't go over or under PolyObjects, so unfortunately that isn't possible. (Well, technically there IS a way to make one you can go over using double-sided lines and the "3D Middle Texture" flag, but it's very limited and looks ugly compared to 3D floors.)
I just made it work even though it looks ugly. I used interactive portals (the action in Doom Builder is called Sector Set Portal) and I made three sectors on top of each other. I put the PolyObject in the middle sector and I can walk over and under it. l use a side from the same dummy sector as I use for the PolyObject. Oh, and you'll need to create a sector inside the dummy sector. It still works, you just need to make it double sided and give it textures. The ugly part is that it wont get a top or bottom, probably disappears with the rest of the roof and floor as part of the Sector Set Portal, so it looks like you're standing in the air with just a frame around your feet. But it works. :P It's probably easier and prettier to make some script that can make 3D floors appear and disappear in a sequence. Either if you make them actually appear and disappear or shift the flags so they get invisible and Non-Solid at the same time.
@@quakenerd6068 Yeah, under the Scroll category both Hexen and UDMF format have actions like Scroll Up, Scroll Down, and even Scroll Both (which lets you scroll left/right AND up/down). If you're making a strictly-vanilla map, I'm pretty sure you can only scroll left and right. I see options for scrolling up and down, but those won't work in vanilla source ports like Chocolate Doom.
Can you utilize a sound in a script (void)? I scripted a special door script that 'opens' by fading the screen to black and teleporting the player, similar to Silent Hill. However, I can't figure out how to play the sound I put into my WAD. I defined it in SNDINFO and SNDSEQ but it still doesn't work when I play it.
@@Chubzdoomer Correct, it isn't attached to any polyobject; the script is activated by pressing 'use' on a 'door' that is actually just a wall with a door texture, but it acts as a door that 'teleports' the player. But I want to script a door open and close sound when you press use and activate the script.
@@JackJack-zo4zt Ahh, gotcha. In that case you should just need it in SNDINFO and not SNDSEQ. You can then play it using a function like ActivatorSound, as seen here: zdoom.org/wiki/ActivatorSound
I think there are some hacky methods that allow you to have (non-infinitely tall) PolyObjects that you can stand on, so you could probably do it that way. I've never really experimented much with it myself, though.
As long as the doors all share the same sector tag, a single switch with a "Door Open" action (targeting that tag) should open them all simultaneously.
@@Chubzdoomer Well because you have to delete the poly sector, there is no way to give them all the same sector tag. I've tried giving the line tag for the poly start line of each door an ID tag number. But when you try the switch it says "EV_OpenPolyDoor: Invalid polyobj num: 10" I've even tried to create one poly object and just have multiple anchors, which failed because only one door would be there when you play the game. Tried giving all the line defs the same poly number and none of the doors spawned. Another issue not related to the switch is being unable to have two separate doors on the ground floor and for the room above. Seems like you are not able to have two poly doors in the same space. Even if you create them to be on different 'Z' alignment. The door above will still go all the way through. And vise versa with the door that opens after picking up dead guards gun. That door also will go all the way to the top floor as well.
@@NathanClevenger1337 You're right, sorry about that. For some reason I replied to your comment thinking it was on one of my scripting videos. I didn't even realize your question was regarding PolyObjects until I saw your response! If you want to handle multiple PolyObjects with a single switch, your best bet is to use a basic script that loops through (and moves/activates) all of them. Here's an example I whipped up, with a well-commented script to make it a little easier to understand: www.mediafire.com/file/ccvk86iiwftaa29/Polyobject+Prison+Door+Example.wad/file You're mostly making use of "For" loops to achieve running through the PolyObject doors (one loop for the doors on the left side, and the other for the right). I have a whole ACS scripting tutorial series here on my channel, as well as a tutorial specifically on loops. Here's my ACS Loops tutorial if you want to check it out: th-cam.com/video/whTAOwvw2eU/w-d-xo.html And here's the entire ACS tutorial playlist just in case you're interested: th-cam.com/video/G1wks0o7Pow/w-d-xo.html
@@Chubzdoomer Awesome! Greatly appreciate it!! With all the new games feeling soulless and huge scam cash grabs. I've been forced to go back to playing older games. I was building maps for Duke3D. But for some reason I've hit a wall where my screen just goes black in some areas with the build engine being buggy with the room over room. So coming back to using GZDoom Builder is a lot better and way more stable compared to the Build engine. Now learning about PolyObjects & 3dFloors, its a whole new experience with building maps. Thank you again for all your helpful videos!! With DukeNukem3D I had a level design book I could refer to. But with doom I have to rely on the internet.
I could be wrong, but I don't think there is. For custom door sounds the best way seems to be making use of SNDSEQ (sound sequences). Here are a couple Wiki pages on them: zdoom.org/wiki/Sound_sequence zdoom.org/wiki/SNDSEQ
The editor I was using in this video was GZDoom Builder, but I recommend using Ultimate Doom Builder today (it's an updated "fork" of GZDoom Builder, and basically the most advanced/fully-featured spinoff of Doom Builder 2). You can grab it here: forum.zdoom.org/viewtopic.php?t=66745
a very clear and concise tutorial thank you! i have question, do you know if its possible to make two sets of sliding door sound sequences? i tried making another and I get an error.
@@Chubzdoomer :liftSounds door 0 play LFTSTART stopsound LFTSTOP end :MovingfloorSound door 1 playrepeat FLRMOVE end :MovingDooropen play MOVDORO nostopcutoff
end
:MovingDoorclose play MOVDORC nostopcutoff
end
:SlidingDoorOpen play DROPEN nostopcutoff end :SlidingDoorClose play DRCLOSE nostopcutoff end [SlidingDoor door 3 0 SlidingDoorOpen 1 SlidingDoorClose 2 SlidingDoorOpen 3 SlidingDoorClose
@@tjames6427 Nevermind my last reply (on not being sure). I just figured out what's going on: Your first Sliding Door sequence is missing a closing bracket (the ] symbol) at the end.
Hmm, I have a question! I've made a test map of your water and this one and combined it into one level, it's all perfect and the PolyObject works! Though, one thing that just tingles my pringles is that my switch isn't making any sound or changing texture ? Thank you very much if you could respond to this question!
I'm pretty sure you need to use scripting, but the good news is that the script itself is incredibly easy to write. Here's an example I made with a well-commented script that should be easy to follow: www.mediafire.com/file/vey0au39kps0whx/PerpetualPolyObject.wad/file
Chubzdoomer i need some help man. I am trying to figure out how to make buildings you can walk in. I want to come from underground and outside to a few walk in buildings???
Chubzdoomer ok i got it working but i am having trouble with getting the floor light under the platform to adjust. I use my triangle dummy sector to adjust light on the platform top and bottom just fine but i cant get it to adjust on the floor below the platform any thoughts??
You should be able to adjust the lighting of the floor below the platform by looking at it and holding CTRL and scrolling the mousewheel (in Visual Mode).
One thing I didn't understand is, the different wads, because I'm new to this. Are you referencing the doom wad and your custom wad when playing the map?
Yeah. You should have Doom Builder set up so that your Doom 2 IWAD is automatically loaded anytime you start a new map. To do this go to Tools->Game Configurations then click the game configuration you're using (preferably UDMF format, which is the best). This should bring you to the Resources tab by default. Click the Add Resource button and navigate to, then double-click your Doom 2 IWAD. You should also set up Doom Builder so that it automatically launches GZDoom or whichever source port you're using when you click the Test Map button. Doing this is pretty similar to setting up the IWAD: Go to Tools->Game Configurations, click the configuration/map format you're using, click the Testing tab, then click the green plus symbol next to Engine and navigate to + double-click your source port's executable. If you do these two things (set up your IWAD and specify the source port), every time you start a new map (or load an existing one) in Doom Builder your settings should take effect and you can quickly & easily test the map by either pressing F9 or clicking the Test Map button on the toolbar (the green "play" icon).
Nope. Since they were originally implemented in Hexen, they only work in source ports. You also need to be using Hexen or UDMF map format (preferably UDMF).
@@swaggerbauer UDMF format is the best one to use for features like this. Hexen format works too, but UDMF is an updated/extended version of it, so it's more or less obsolete at this point.
I was thinking about including those for a double-sliding door or even a double-horizontal crusher, but I eventually opted against it. If I ever do an Advanced PolyObjects tutorial I'll probably cover them in that one (as well as explicit lines/more complex shapes).
This tutorial is going to bring a WHOLE lot more life into my maps! :D
Also this is pointless to add but, if you place a polyobject startline right next to the door area (in the map NOT the dummy sector!) It completely breaks the map. Thankfully it is easily salvageable.
Also a few other things, 1: Polyobjects can go over gaps without crashing however it completely derps the texture to the point of mis-aligning the door. Take it from me you need to be careful if you decide to do rotating/swinging objects or doors.
And 2: Does anyone know how to pull-off poly-object effects (like for example a swinging door) but NOT have to delete a sector so the door looks like it swings open to an outside area and the door has a proper flat top to it.
The flat top effect isn't really possible but you can give it a finite hitbox through scripting.
Target Angles work like drawing against a protractor. When you set it to north, you only turn it 90 degrees, west turns it 180ish, east sets it back to 0, and so on and so forth. It just draws out a route on where to turn and it turns it until it reaches a specific angle.
Watched 5 tutorials finally yours. You are the only one that pointed out the 2nd anchor is actually a a start spot thing and not just a second anchor, now my doors work, and the poly object can be mapped properly. Thank you sir.
Thanks dude. Your lessons are really great. I'm just getting started to use GZDoom builder. I've made a small map that has 13 rooms and 25 enemies (took me almost 6 hours just to do that) and this helps me to get better at doing it.
All my friends and classmates learning useless crap like Unreal or Unity and I'm learning the industry's REAL game engine of choice.
But, no, seriously, thanks for this, Chubz. I haven't made DOOM maps in years, but I should really, REALLY get back in it. I am curious about one thing, why don't you ever speak during the gameplay segments of the video when you're testing things out? You should mute the game's music and mention anything happening in the game that the viewer should note WHILE it's happening.
Most of the time I don't talk during the gameplay segments because all I'm doing is demonstrating what we just created. I tend to let the gameplay speak for itself, then resume talking when I get back to the editor. I do like your suggestion though... I'll definitely keep it in mind if I feel there's something I should add while playing.
I'm not sure about that, the gzdoom engine has a bunch of limits, it's based on 2.5d games while you can create 2d and 3d games with unity
@@Zen-rw2fzGZDoom offers 3d model support, as well as support for true 3d environments represented in a 2-dimensional map. GZDoom is not 2.5d. Yes, the map is 2d, but the level geometry can be 3d. There are limits, of course, but these can be overcome.
@@badbeardbill9956 what I said is that it's based on a 2d engine. It's an opengl port so of course it's 3d as we know it now a days but since it's based on doom it ends up having a lot of limitations
@@Zen-rw2fz idk, there are some gzdoom things out there that are unrecognizable as having any such limitations. I think at this point the only real similarities between GZDoom and the og doom engine are that GZDoom just has all the default settings set to "Doom" mode lol. It's like if someone built a Doom port out of UE4. Sure, in the current configuration it would be limited to Doom's limitations, but this is by choice for compatability reasons rather than a real limitation of the engine at this point :P
Awesome tutorial that made something initially intimidating very clear! It's so satisfying to see doors move in a way they weren't supposed to :)
Once again im late to the party by a million years but regardless, thankyou for all these videos. Ive very recently started playing with doom mapping and these are so helpful! props to you.
A part 2 of this would be cool. There's a few interesting things I remember that can be done with polyobjects, like mirror polys (door splitting in half to slide), combining poly objects with 3dfloors (I think you have already done it in another tutorial) and controlling polyobjects with scripts, like, turning fans on / off, activating and deactivating damage, etc.
The fake contrast taking effect when the wall slots into place looks really cool.
This guy has the best doom builder tutorials.
I try, man. I try.
Only just started mapping. Doing a Vanilla marathon the moment for a 'New Mapper' competition, but I can't wait to try some of the things you've showed on the following map I make.
Thanks for the vids, they're invaluable.
As an update, just started my first scripts, and they're coming along nicely thanks to these vids. Also got the polyobjects working, though I realised you can't map 2 in the same sector (I planned to have a vertical door with the bottom half going down and the upper half going up as normal).
I'll keep digging though, so thanks for the many tips.
Nice. I wish there was these videos in the 90's when I was trying to make levels.
More like we wish there were polyobjects in the 90's.
Thanks.
Awesome tut, Chubz! Good pace and blend of showing/explaining/doing! I'm off to try some of this on my WAD!
You can also make the front and back linedefs of the polyobject in the dummy sector act as switches for the polyobject itself, allowing you to trigger it as though it were a normal door. So, for those that didn't know, the linedef specials also copy over.
*cowboy teaches u how to map in doom be like* :
America wouldn't be a great country without cowboy and wild west stuff.
I've observed that the majority of retro video game enthusiasts are from the US south. Would be interesting to know why.
Idk but I’m in love with the accent AND the channel
Excellent Tutorial, Chubz! I was waiting to find a tutorial finding out how polyobjects use sound effects. These polyobjects not only remind me of Wolfenstein but also those trap mansions and old vintage 3D puzzle games like Logic Quest. Ever heard of Logic Quest? I played that when I was a kid.
Also when I get done with my college classes I might do a GZDooM Builder tutorial on vertical and horizontal portals.
Fantastic tutorial! Polyobjects sure have come a long way.
Very detailed and businesslike tutorial for making quite a complicated thing easy to understand. :) There are no many tutorials online that actually help also even if looking answers to a little case. I can understand your point and answer your question just like from the school seat before you finish talking. This was not happening that easily in the school so I would suggest you to make a lot of tutorials. :)
Thanks Chubz, nice Job!!!
Oh wow... I remember doing this with Hexen twenty plus years ago! It introduced the idea of polyobjects.
This was a whole video of incredibly useful tips and tricks. Thank you very much!
Awesome tutorial! Thanks!
i guess i cant have more easiest way to learn polyobj than this. THANK YOU so much. you just covered everything. Omg :D
Lift start, F L T start. 😂
Great video btw that part had me laughing pretty good though.
Those LFTs scrambled my brain for some reason.
Would you be willing to do a more advanced tutorial for polyobjects in the near future? Recently, I learned how to give polyobjects a set height (instead of rising endlessly to the sky), and its come in handy for outdoor areas where I use a ton of 3D floors.
How did you give em a set height? I'm not real familiar with the more advanced tricks/techniques that can be used with them. I've only ever used them for basic stuff like sliding doors.
@@Chubzdoomer You know that blank space in the dummy sector that's reserved for the polyobject itself? Well, you need to fill it in and give it all your desired middle textures. Then you need to give all four sides Polyobject Explicit Line. If you do it properly, you'll get a much cleaner looking polyobject, but its still an illusion best I can tell.
I used these for better looking sliding doors in 3D floor structures outside, but I'm sure with some patience & skill, you could set up hidden passageways that could be revealed by a switch. Only real problem I know of is that the collision is still all there, so even though it doesn't appear to go up endlessly in the sky, it'll act so if you were to shoot above it.
I'm sure TH-cam will hold this for review, but this short video I screengrabbed is the best way I can portray it. th-cam.com/video/uIv8Hv2F9zI/w-d-xo.html
@@DoomieGruntVentures That is awesome! Thanks for sharing that technique with me. I'm gonna have to experiment with it in the near future to see what all I can come up with.
I did read somewhere you can use scripting to fix collision so you can walk and shoot over/under the desired polyobject. But that's beyond me at this time.
also guys i made my 1st swing door right after this video. swing is just as simple as these. only thing you need is that anchor and startspot poly thing. should be at ends. [*....] [*.....] like this ig . this is best i can explain since u cant upload pics to comments sorry
It seems that noone has clarified the issue at 15:20 . I don't have GZDoom Builder (just DB2), but looking at it I can at least say that you should notice you actually set the rotation to 180 degrees, not 360. That for me perfectly corresponds with the descriptions in the Target Angle field: everything is just scaled 256:360. Since the initial point on a circle is set to be the one in the east and rotation is by default a counter-clockwise movement (these are the standards in math), rotating by 90 degrees gets you to the north, 180 to the west etc. I wonder what setting Target Angle to '0: East' would do - I am assuming the 360 degree rotation since the rotation by 0 degrees is utterly useless. Try that; if the wall flips twice, then it's like I'm saying.
I hope it helps. Thanks for you awesome tutorials!
yeah tested around with it abit, it seems like the description is wrong because when you go to doom acs description this is what it says
------
Polyobj_RotateRight
3:Polyobj_RotateRight (po, speed, angle)
Rotates a polyobject right through the specified angle. If angle is 255, then the polyobject will rotate continuously and never stop.
po: polyobj to rotate
speed: how quickly the polyobj should rotate
angle: byte angle to rotate the polyobj through
-------
so yeah ignore the words west/north/east/right/whatever and just use the 256:360 scale where 64 = 90 degree --- 128 = 180 degree --- and yeah 0 is 360 degree --- 255 = constant rotate
also tried to change the polyobject start line and tried to change the switch to rotate left, also the angle did nothing when i changed it so it is just purely for tag use, i also tried to flip the whole map 180, still the same.
i really really appreciate your tutorials. im making mod for hexen. so i need swinging doors the most. i hope they both are same.
Thanks for a great explanation. Sadly i created a continuous rotating sector. First tried a dummy sector with same shape as my original sector. It gives me a fatal error. But when making a dummy square room bigger than my original, no fatal error anymore. Problem is the texture on the rotating sector have glitch, like in some specific angles, it looks like some of the texture are missing. Even both room are equal the same size. And i place anchor and start polyobjects in the middle at both place
I wonder if you could use polyobjects to create a ceiling fan.
You don't need a sector on the projection. It spawns on the start spot thing regardless.
Nice tutorial.
"SpawnPolyobj: Poly 2 does not exist" Error, have you had this issue?
Nope, I can't say I've run into that one before.
This man sounds like doctor Phil! =)
How to move poly objects perpetually? like for example two pillars going back and forth or a ceiling fan?
Here's an example I made several years ago showing how to do just that:
www.mediafire.com/file/vey0au39kps0whx/PerpetualPolyObject.wad/file
@@Chubzdoomer That is amazing. what is trigering the mechanism though? I can't find the trigger
@@Chubzdoomer and thank you
Found it, it is a script.@@Chubzdoomer
@@Chubzdoomer For some reason it only works if a tag the poly object with 1. even if a edit the script. I am assuming the 1 in the script is the Poly ID?
I have a problem, I am making a door that rotates, the first sound is played, but the stop sound is not heard
Forget it, I already made it work xd
I'd been wondering how to do this ever since I played Hexen! I was always way too intimidated by it. Awesome job~
Now, how's about that Donut Sector vid? ;)
I'm sure it's hard for id Software to make horizontal sliding doors. Now I know the reason why they make all doors slide vertically.
do you know how to make a poly door, that functions like a normal (Normal according to doom) locked door. Like "You need a yellow skull to open this poly door"
As long as your map is in UDMF format, you can assign a lock (key requirement) to literally any line action by going into Line mode, right-clicking a line to pull up its properties, and then setting "Lock Number" to your desired key(s).
Here's an image for reference:
imgbox.com/fhhdRR02
@@Chubzdoomer wow... it was that easy, this whole time. thanx a million man
Getting the sound sequences to work with polyobjects was easy enough, but I also wanted to change the sounds a floor made when lowered, and... I just can't get it to work.
Spent a few hours of trying different things, but the best I could do was to make it so the sector didn't play a sound sequence at all. Getting it to play a custom one? No progress.
If you're using UDMF format, that's pretty easy. All you have to do after creating your SNDSEQ entry in Slade is open your map in Doom Builder, right-click the sector(s) that will be moving, and specify which sound sequence it should use (underneath the Effects category).
Here's a small example I made using a few sounds I ripped from FreeDoom:
www.mediafire.com/file/ughzyeu3d82ng01/CustomFloorSound_Example.wad/file
@@Chubzdoomer Thanks! I swear I looked all over for an option on that tab, but my brain must have just skipped over it.
And it's just RIGHT THERE.
@@Chubzdoomer Also... I think I figured out what I had actually done wrong.
The sound effect I wanted needed to be played "until done" and not just played normally, because the platform movement was so fast that the file never got the chance to make a sound.
¯\_(ツ)_/¯
Is it possible to make a moving wall similar to Rise of the Triad ones? So, that it loops in a circle, for instance.
You should be able to make moving walls using PolyObjects. Here's a big tutorial I did on them a few years back:
th-cam.com/video/6JbM6qD7x-g/w-d-xo.html
Jump to about 18m57s in that video to see me make a simple "moving rock wall."
In order to have the movement loop (i.e. be perpetual), you'll need to resort to scripting. Here's a simple example:
www.mediafire.com/file/vey0au39kps0whx/PerpetualPolyObject.wad/file
Many thanks!
Hi! I would like to ask for some help... with SNDSEQ for PolyObject Doors. I can't make the door sound to be played when opening/closing said door.
SNDINFO Lump:
//Doors
PolyDoor1 SOUNDS/Base/Doors/BigDoor2_Close (Full path since the name longer than 8 characters)
SNDSEQ Lump:
//Doors
//BigDoor2_Close
:PolyDoor1
door 0
Play PolyDoor1
end
The Door type is: Polyobject Slide Door
Polyobject Number: 1
Mirror Polyobject Number: 2
Sound Number: 0 (This being 0 because that's the SNDSEQ index of "PolyDoor1")
So like, could I make a moving vehicle? Like a train, truck, or tank?
One major limitation is that PolyObjects are infinitely tall, so you can't make a vehicle that you can see over top of and jump on/ride or anything like that, unfortunately (at least not without some sort of wild workaround).
Chubzdoomer Thanks. Would a subway train work though? Since I just something to transport players around and not have some action movie shooting with all the Matrix jumping on the top of the train.
@@SuperLeosid I don't think so. Since they're infinitely tall, they can only ever act like walls (block the player completely). You'd probably just have to fake a subway train by fading to black, then coming back into another scene with the walls and floor scrolling to simulate movement (perhaps screen shake as well?), then fade out and in again to when the train has stopped at its new destination. Script-wise that'd be pretty easy.
I have a question regarding rotating sector that functions as door, you use an anchor on let's say "an empty sector", is there a way to give a height for that sector say if you want to make a rotating wall with proper height that functions as floor? (rotating floor) cuz when i use your method I get infinite-height wall that occupies your actual sector height.
I think there may be some tricks you can use to create walkover Polyobjects (that aren't infinitely tall), but I'm not real familiar with them.
tghank you
Now we can make wolf3d doors in doom thanks
Is there anyway to make 3D polyobjects?
I think there are some hacky methods you can use to make it so that they aren't infinitely tall, but I'm not real familiar with them.
Chubzdoomer How do I set up GZdoom Builder? The version I obtained might be the source code and i'm no programmer
I recommend getting the version with the latest date here: devbuilds.drdteam.org/gzdbbf/
Just unzip it with 7-zip and you should be able to run it without the need for any installation.
Chubzdoomer Thanks already got it, but I still want some closure on this: github.com/jewalky/GZDoom-Builder-Bugfix
@@childalpha6954 Yeah that's the C# Source Code for the project. You'd open it up in Visual Studio and from there, compiling it would turn it into the actual program.
In GZDOOM Builder, how do you make shootable switches in Hexen format?
When you edit the switch's/line's properties, just change Trigger (at the very bottom) to "Projectile Hits."
@@ChubzdoomerI tried that but it's not working. Is there a limited number of tags you can have on a level? Because I'm trying to make a shootable button as Tag 12 but after put in the tag when I try to connect with my bars number 12 doesn't show up.
@@quakenerd6068 I think Hexen format's tag limit is 255 (and UDMF supports well over a thousand), so that shouldn't be the problem.
When you say the "number 12 doesn't show up," I'm not sure I understand what you mean. Tags are usually typed in manually, so you shouldn't need to see them anywhere beforehand.
The way you should be designing it is like this (using a door opening as an example):
1. Give the door (sector) an unused tag
2. Give the "shootable switch" (line) an Open Door action, and point it to the same tag you assigned the door in step 1.
3. Set the "shootable switch" line's Trigger to Projectile Hits
@@Chubzdoomer alrighty I'll try again. What I was talking about was whenever i start to put in a tag number there's a list that shows the numbers already taken. Do you have to put it in manually for both the switch and door
@@quakenerd6068 Ah I see what you mean. I rarely, if ever choose the numbers from the dropdown list. I just type the tags manually, and if they match up the editor should reflect it (when you highlight over the line or sector, an editor line should appear that shows you their tags are linked together).
Any way to make a script that plays a Custom Sound when walking over a linedef?
Yep, and thankfully it's really easy! Just import the sound the same way you see here, except don't bother with SNDSEQ (only create SNDINFO), then inside your walkover script use this code:
PlaySound(0, "SOUND NAME HERE", CHAN_BODY, 1.0, FALSE, ATTN_NORM, FALSE);
You obviously want to replace SOUND NAME HERE with the actual name of your sound, but keep it in quotations.
Okay, same goes for use option? like for secret stuff, like jokes? I guess so. Maybe you could do a Tutorial on that sooner or later.
There are no red lines in my version of Doom Builder
Which version are you using?
@@Chubzdoomer I realized my issue. I was using the regular Doom Builder 2.
I've acquired GZ Doom Builder now so now, it looks the same.
Something I just thought. 3D floors plus PolyObject? Horizontal moving 3D floors!?
You can't go over or under PolyObjects, so unfortunately that isn't possible. (Well, technically there IS a way to make one you can go over using double-sided lines and the "3D Middle Texture" flag, but it's very limited and looks ugly compared to 3D floors.)
I just made it work even though it looks ugly. I used interactive portals (the action in Doom Builder is called Sector Set Portal) and I made three sectors on top of each other. I put the PolyObject in the middle sector and I can walk over and under it. l use a side from the same dummy sector as I use for the PolyObject. Oh, and you'll need to create a sector inside the dummy sector. It still works, you just need to make it double sided and give it textures.
The ugly part is that it wont get a top or bottom, probably disappears with the rest of the roof and floor as part of the Sector Set Portal, so it looks like you're standing in the air with just a frame around your feet. But it works. :P
It's probably easier and prettier to make some script that can make 3D floors appear and disappear in a sequence. Either if you make them actually appear and disappear or shift the flags so they get invisible and Non-Solid at the same time.
How do you make textures scroll like they sometimes use for the faces texture?
It differs slightly per map format, but there should be a "Scroll" category that contains all of the different texture-scrolling line actions.
@@Chubzdoomer thank you. Also is it possible to have vertical scroll and are there any examples in any of the original maps of it?
@@quakenerd6068 Yeah, under the Scroll category both Hexen and UDMF format have actions like Scroll Up, Scroll Down, and even Scroll Both (which lets you scroll left/right AND up/down).
If you're making a strictly-vanilla map, I'm pretty sure you can only scroll left and right. I see options for scrolling up and down, but those won't work in vanilla source ports like Chocolate Doom.
Okay thanks. Final question of this topic, does UDMF format work for Heretic?
@@quakenerd6068 Yep! UDMF format can be used for Doom, Heretic, Hexen, and even Strife.
Can you utilize a sound in a script (void)? I scripted a special door script that 'opens' by fading the screen to black and teleporting the player, similar to Silent Hill. However, I can't figure out how to play the sound I put into my WAD. I defined it in SNDINFO and SNDSEQ but it still doesn't work when I play it.
Is this a sound that you just want to play with a script, and that isn't actually attached to the PolyObject in any way?
@@Chubzdoomer Correct, it isn't attached to any polyobject; the script is activated by pressing 'use' on a 'door' that is actually just a wall with a door texture, but it acts as a door that 'teleports' the player. But I want to script a door open and close sound when you press use and activate the script.
@@JackJack-zo4zt Ahh, gotcha. In that case you should just need it in SNDINFO and not SNDSEQ. You can then play it using a function like ActivatorSound, as seen here: zdoom.org/wiki/ActivatorSound
A lot of work, but it is beautiful
Now how exactly would I go about making a Rotating Bridge?
I think there are some hacky methods that allow you to have (non-infinitely tall) PolyObjects that you can stand on, so you could probably do it that way. I've never really experimented much with it myself, though.
@@Chubzdoomer Thanks, I'll give it a shot, I guess
@Chubzdoomer Update, A year later, I got my map pack done and I got a lot better at making mods, Thanks Chubz for your awesome tutorials ❤️
You rock!
How would it be possible to have one switch open several prison doors?
As long as the doors all share the same sector tag, a single switch with a "Door Open" action (targeting that tag) should open them all simultaneously.
@@Chubzdoomer Well because you have to delete the poly sector, there is no way to give them all the same sector tag. I've tried giving the line tag for the poly start line of each door an ID tag number. But when you try the switch it says "EV_OpenPolyDoor: Invalid polyobj num: 10"
I've even tried to create one poly object and just have multiple anchors, which failed because only one door would be there when you play the game.
Tried giving all the line defs the same poly number and none of the doors spawned.
Another issue not related to the switch is being unable to have two separate doors on the ground floor and for the room above. Seems like you are not able to have two poly doors in the same space. Even if you create them to be on different 'Z' alignment. The door above will still go all the way through. And vise versa with the door that opens after picking up dead guards gun. That door also will go all the way to the top floor as well.
@@NathanClevenger1337 You're right, sorry about that. For some reason I replied to your comment thinking it was on one of my scripting videos. I didn't even realize your question was regarding PolyObjects until I saw your response!
If you want to handle multiple PolyObjects with a single switch, your best bet is to use a basic script that loops through (and moves/activates) all of them.
Here's an example I whipped up, with a well-commented script to make it a little easier to understand:
www.mediafire.com/file/ccvk86iiwftaa29/Polyobject+Prison+Door+Example.wad/file
You're mostly making use of "For" loops to achieve running through the PolyObject doors (one loop for the doors on the left side, and the other for the right). I have a whole ACS scripting tutorial series here on my channel, as well as a tutorial specifically on loops.
Here's my ACS Loops tutorial if you want to check it out:
th-cam.com/video/whTAOwvw2eU/w-d-xo.html
And here's the entire ACS tutorial playlist just in case you're interested:
th-cam.com/video/G1wks0o7Pow/w-d-xo.html
@@Chubzdoomer Awesome! Greatly appreciate it!!
With all the new games feeling soulless and huge scam cash grabs. I've been forced to go back to playing older games.
I was building maps for Duke3D. But for some reason I've hit a wall where my screen just goes black in some areas with the build engine being buggy with the room over room.
So coming back to using GZDoom Builder is a lot better and way more stable compared to the Build engine.
Now learning about PolyObjects & 3dFloors, its a whole new experience with building maps.
Thank you again for all your helpful videos!! With DukeNukem3D I had a level design book I could refer to. But with doom I have to rely on the internet.
Yay now I can make my rott mod!
I've always wondered: in Doom, is there a way to program door sounds that correspond to the texture rather than just the LineDef?
I could be wrong, but I don't think there is. For custom door sounds the best way seems to be making use of SNDSEQ (sound sequences). Here are a couple Wiki pages on them:
zdoom.org/wiki/Sound_sequence
zdoom.org/wiki/SNDSEQ
How do i get my Editor Hud to look the same as yours?
The editor I was using in this video was GZDoom Builder, but I recommend using Ultimate Doom Builder today (it's an updated "fork" of GZDoom Builder, and basically the most advanced/fully-featured spinoff of Doom Builder 2).
You can grab it here:
forum.zdoom.org/viewtopic.php?t=66745
@@Chubzdoomer Awesome, thanks for the help
a very clear and concise tutorial thank you! i have question, do you know if its possible to make two sets of sliding door sound sequences? i tried making another and I get an error.
Yeah, you should definitely be able to have more than one. Can you show me your code?
thanks for the quick reply!! same thing just my extra door code its called MovingDoor
@@Chubzdoomer
:liftSounds
door 0
play LFTSTART
stopsound LFTSTOP
end
:MovingfloorSound
door 1
playrepeat FLRMOVE
end
:MovingDooropen
play MOVDORO
nostopcutoff
end
:MovingDoorclose
play MOVDORC
nostopcutoff
end
:SlidingDoorOpen
play DROPEN
nostopcutoff
end
:SlidingDoorClose
play DRCLOSE
nostopcutoff
end
[SlidingDoor
door 3
0 SlidingDoorOpen
1 SlidingDoorClose
2 SlidingDoorOpen
3 SlidingDoorClose
[MovingDoor
door 2
0 MovingDooropen
1 MovingDoorclose
2 MovingDooropen
3 MovingDoorclose
]
@@tjames6427 Nevermind my last reply (on not being sure). I just figured out what's going on: Your first Sliding Door sequence is missing a closing bracket (the ] symbol) at the end.
thank you! had no clue i needed it
Hmm, I have a question! I've made a test map of your water and this one and combined it into one level, it's all perfect and the PolyObject works! Though, one thing that just tingles my pringles is that my switch isn't making any sound or changing texture ?
Thank you very much if you could respond to this question!
I'm not sure why that'd be. Feel free to email me the WAD though, and I'll check it out! (chubzdoomer @ gmail dot com).
Probably a stupid question but, is there a way to get the polyobject to slide back and forth perpetually?
I'm pretty sure you need to use scripting, but the good news is that the script itself is incredibly easy to write. Here's an example I made with a well-commented script that should be easy to follow:
www.mediafire.com/file/vey0au39kps0whx/PerpetualPolyObject.wad/file
Chubzdoomer i need some help man. I am trying to figure out how to make buildings you can walk in. I want to come from underground and outside to a few walk in buildings???
I recommend 3D floors. Here's a tutorial I did on them: th-cam.com/video/5rsLrwFlhME/w-d-xo.html
Chubzdoomer thanks man i will give it a shot. I really appreciate you taking the time to help
Chubzdoomer ok i got it working but i am having trouble with getting the floor light under the platform to adjust. I use my triangle dummy sector to adjust light on the platform top and bottom just fine but i cant get it to adjust on the floor below the platform any thoughts??
Chubzdoomer by the way im using gzdoom builder it might be a little different and im in doom 2 udmf
You should be able to adjust the lighting of the floor below the platform by looking at it and holding CTRL and scrolling the mousewheel (in Visual Mode).
this works for srb2 too?
I can't say for sure because I'm not overly familiar with SRB2, but I think it should!
idtech1 best engine
look up byte angle for doom
One thing I didn't understand is, the different wads, because I'm new to this. Are you referencing the doom wad and your custom wad when playing the map?
Yeah. You should have Doom Builder set up so that your Doom 2 IWAD is automatically loaded anytime you start a new map. To do this go to Tools->Game Configurations then click the game configuration you're using (preferably UDMF format, which is the best). This should bring you to the Resources tab by default. Click the Add Resource button and navigate to, then double-click your Doom 2 IWAD.
You should also set up Doom Builder so that it automatically launches GZDoom or whichever source port you're using when you click the Test Map button. Doing this is pretty similar to setting up the IWAD: Go to Tools->Game Configurations, click the configuration/map format you're using, click the Testing tab, then click the green plus symbol next to Engine and navigate to + double-click your source port's executable.
If you do these two things (set up your IWAD and specify the source port), every time you start a new map (or load an existing one) in Doom Builder your settings should take effect and you can quickly & easily test the map by either pressing F9 or clicking the Test Map button on the toolbar (the green "play" icon).
i've watched this video before, but now the sounds missing :S
It still has sound for me! Is it just this video? If so, that's fricking weird.
Are polyobjects working in vanilla doom?
Nope. Since they were originally implemented in Hexen, they only work in source ports. You also need to be using Hexen or UDMF map format (preferably UDMF).
@@Chubzdoomer aw, thank you for your answer
my next video is gonna be deep water tutorial. but i hope you have alot videos :p
do these work in vanilla doom ? no, right ? Never heard of the poly objects moving thingies...
Nope, this is a feature that started with Hexen.
Chubzdoomer . Hmmm so i need to use hexen Format and gzdoom for instance?
@@swaggerbauer UDMF format is the best one to use for features like this. Hexen format works too, but UDMF is an updated/extended version of it, so it's more or less obsolete at this point.
Does this work in Doom Builder 2?
Yeah, but I recommend using GZDoom Builder instead (Doom Builder 2 is no longer being updated).
Thanks, I'll give gzdoom a try
@@triangular1496 you want "gzdoom builder bugfix" BTW. Because the doom community hates stable fork names lol.
@@Kevin-jb2pv LOL 9 MONTHS LATER
❤❤❤
you forgot to mention mirrored polyobjects
I was thinking about including those for a double-sliding door or even a double-horizontal crusher, but I eventually opted against it. If I ever do an Advanced PolyObjects tutorial I'll probably cover them in that one (as well as explicit lines/more complex shapes).
I'm here because my memory isn't memorizing
27:27 dont mind
Huh?
whats wrong with the music
I was using OPL Synth, which emulates how most SoundBlaster PCs sounded when playing the game back in the 90s.
@@Chubzdoomer it sounds like genesis music but lifeless
HOT
Whow