Alfredo Posted December 14, 2021 (edited) Hi there! Glad you could join us. Class is about to begin. Welcome to the Doomworld course on Fluid Dynamics. Where you learn all about the different liquids that comprise every aspect of our daily Wads! Whether it be plain water, glowy slime, sludge, or even fireblu, there's lots to discover involving Doom's various fluids! Now, everyone pick up a syllabus on your way in. Take your seats, and we'll all review it together! 1. Summary: The purpose of this course is to examine, document, and experiment with the properties of the various fluids found in Doom. Utilizing these interesting new properties, we shall conduct a field study on how they can affect mappers in their level and encounter designs. 2. Fluids: Water Spoiler Water has the most unusual property of cleansing you of your wounds. Pay special attention to Doomguy's health here. You can see that standing in water will heal you by 5 health per half second. Perfect for when you're being ambushed by pesky hitscanners. When you're full of holes, take a bath! Lava: Spoiler Lava functions....exactly how you expect it would. It burns. It hurts, Don't stand in the lava. Refunds will not be offered to any student burned in the lava. You can clearly see that lava consistently chunk's the player's health by 10 per tic. Slime: Spoiler Slime may seem icky and look unpleasant to stand in, but I assure you thats far from the truth. Upon setting foot in this miracle juice, your body glows a pale white, and you become impervious to harm....Well, except for emotional harm. I tried standing in it while breaking up with my girlfriend, cannot recommend...MOVING ON! Sludge: Spoiler Sludge... that gunk that gets stuck to your foot. That hairy clump lurking in your shower drain. No one has dared trying to actually make practical use out of these mundane things...until now. Sludge has been found to grant hardened layers of armor for those brave enough to cake themselves in filth. As you can see from our specimen, his armor rating jumps by chunks of five percent every half second. Not only does it grant armor from nothing. If you are wearing Mega Armor, the sludge remembers the type and will mimic the damage reduction of the Mega armor, up to a maximum of 104% (Goes up in tics of 5, if you have 99 armor, it will overcap at 104 and stop ticking.) Fireblu Spoiler Ahh fireblu. The Icy Hot of hell. The breaker of bitrates and the bane of video quality around the world. The meme of the Doom fluids hides a clever secret to those daring enough to set foot in its depths. Behold. Our subject vanishes, somewhat, before your very eyes! It has been documented that hellspawn have difficulty seeing a person who is standing still inside a section of fireblu, though, none have come back to tell us that themselves. We heard about this from their cousin. Blood: Spoiler Last, but certainly not least. Blood....Blood does nothing. Nothing special about it. Splash about in it all you like. 3. Grading Rubric: Grading shall be as follows: Final Exam: 100% Your Map is your final exam. Don't let the high percentage discourage you, its there to encourage you to do your best work. To ensure that you receive the highest grade possible, simply follow these guidelines: 1. The Mapper must include at least 3 out of the 5 special fluids outlined in the Fluids section. Details on how to implement them can be found in the Textbook. 2. There are no restrictions on the size, or shape of your map. So long as it does not crash the game upon launch or suffer horrendous framerate issues. 3. No custom monsters or textures are allowed. 4. Target port is GZDOOM or similar port that supports ZScript. Mapping format is UDMF. 5. Terrywads And Jokewads are not allowed. You will be immediately expelled if caught doing either of these. 6. Custom midis are not required, but are encouraged. 7. A minimum level of quality will be levied against students. All levels will have the chance to be tested by myself and others before final submission. If your level is not up to snuff, it will be kicked back to you for revision along with reasons why. 8. The due date for your Final exams is April 1st, 2022. This should provide ample time for experimentation, revision, feedback, compilation and procrastination(I know you will. c: ) 4. Textbook and Necessary Supplies: There are 3 items in the resource zip: SD.WAD: A modified version of the Mapwich 1 texture pack, which includes all textures from doom 1 and 2 with the additions of Waterfalls and Lavafalls. Mek's box of skies: Provides a nice selection of skyboxes for whatever theme you want for your map. Liquids.WAD: This contains all of the scripts and items needed to recreate all of the fluid effects. Simply open it in Ultimate Doom Builder and open the script window. Fluidlib.WAD: Load this wad along with the resource pack and it will automatically apply script properties to all fluid textures. Much easier than my method! Links to all necessary content: Spoiler Resources.zip fluidlib-v3.zip Once you have reviewed the syllabus. Please declare whether you wish to enroll in the course or not. Simply claim an open seat on the enrollment list below. (This is equivalent of picking your map slot. A maximum of 32 maps may be submitted!) Seat 1(professor): Alfredo Seat 2: RastaManGames Seat 3: Womp The Cat Seat 4:Thelokk This is my first attempt at running a community project. I hope everyone has fun during class! Note: Please submit a post with a final version of your level when you feel that no more edits are needed. IF you think your level is complete already, simply post "I am finished." I'm sorry its taken so long to get a hand on things. I'm dealing with a lot on my end and I haven't had any time to really devote to Doom. Edited April 11, 2022 by Alfredo Submit your finals. 31 Quote Share this post Link to post
Walter confetti Posted December 14, 2021 What a interesting course Mr professor, but I'm not sure if i can participate in this lesson, i have too much other stuff to follow! But i wish you and everyone wants to join this course good luck for it! 2 Quote Share this post Link to post
Zion Posted December 14, 2021 What an interesting subject! I would love to enroll on a class, i'll take the second seat! 2 Quote Share this post Link to post
dac Posted December 15, 2021 It is good to learn, and to keep learning. Taking Seat 11. 2 Quote Share this post Link to post
MFG38 Posted December 15, 2021 I'm intrigued. You can slap me down into a random seat, if that's at all possible. 1 Quote Share this post Link to post
Terminus Posted December 15, 2021 Some of these are... oddly familiar. ;) Good luck on the project, mate! If you need playtesters you know who to hit up. 1 Quote Share this post Link to post
Worst Posted December 15, 2021 (edited) Hi, this looks like a pretty cool course! However I can't help but notice that the way you are handling the liquid scripts could be done in a much more efficient and uhh easier on the students kind of way. Instead of each participant slapping scripts and placing sector actions and effects by hand on each of their levels and sectors, a much less error-prone method would be to use a globally loaded ACS library as a resource. This way each mapper only needs to select the correct texture/flat, and the rest is taken care of by the ACS library. I've attached a wad that does just this, feel free to use it for the project, if you like it. (or for any other purpose) This ACS library approach also has the advantage that if something needs to be changed with regards to how the liquids behave, it can just be adjusted in the ACS library script, and every single map does not need to have their map scripts updated for it. Also I noticed that the scripts you provided will for the most part break in multiplayer. The ACS library I made is multiplayer compatible, which I'm sure isn't the focus of this project, but having it compatible also probably doesn't hurt either way. Edit: Also using the "Actor enters sector" and "Actor leaves sector" things, as in your example map, has the potential issue that the liquid effect gets activated even if the player is not touching the surface, for example if they are somewhere up high on a ledge, but have the middle of their hitbox on the liquid sector, thus "entering" it. Edit2: Added a new version below that fixes an oversight in the state system and adds support for non-solid 3d floors & full sector height fluids. Edit3: Yet another version that fixes the fireblu invisibility expiring over time. fluidlib-v3.zip On 12/14/2021 at 5:24 AM, Alfredo said: 4. Target port is GZDOOM or similar port that supports ZScript. Mapping format is UDMF. Since you mention ZScript in particular, does that mean that mappers can use it outside of custom monsters? Edited December 28, 2021 by Worst improved and fixed version added 8 Quote Share this post Link to post
Alfredo Posted December 16, 2021 (edited) 10 hours ago, MFG38 said: I'm intrigued. You can slap me down into a random seat, if that's at all possible. Slapped you down in slot 29! (Rolled a dice to decide.) 4 hours ago, Worst said: Instead of each participant slapping scripts and placing sector actions and effects by hand on each of their levels and sectors, a much less error-prone method would be to use a globally loaded ACS library as a resource. This way each mapper only needs to select the correct texture/flat, and the rest is taken care of by the ACS library. I've attached a wad that does just this, feel free to use it for the project, if you like it. (or for any other purpose) This is awesome! Thank you so much for compiling the scripts like this. I had heard about this method, but never actually looked into it when making these scripts a while back. This is super cool. I definitely think this is better than the way I was doing it. I'll be updating the OP to include the wad and how to use it. For those looking at this post. Using the Fluidlib.wad is very easy. Simply load it as a resource when creating your map, and the fluid properties will automatically apply depending on the texture. Again. Thank you very much Worst! 4 hours ago, Worst said: Since you mention ZScript in particular, does that mean that mappers can use it outside of custom monsters? Not sure what you're asking about here. Do you mean using Zscript to create custom monsters? Edited December 16, 2021 by Alfredo 3 Quote Share this post Link to post
MFG38 Posted December 16, 2021 13 hours ago, Alfredo said: Slapped you down in slot 29! Sounds good. A suitable slot for the idea I have. c: 1 Quote Share this post Link to post
Worst Posted December 17, 2021 (edited) I have made a new version of the FluidLib ACS library, which fixes a little oversight in the fluid state system, which allowed you to keep the fluid effect if you were very quick on your feet. I also realized that it didn't work in all scenarios, for example when using a non-solid 3d floor or with underwater tunnels that don't have any liquid textures in them. This new version makes such setups possible too, though they require using a custom UDMF sector text property "user_fluid" that should match the fluid name. For non-solid 3d floors it needs to be set in the control sector. For underwater, etc. the sector itself needs to use the same "user_fluid" custom UDMF sector text property. fluidlib-v2.zip fluidlib-v3.zip On 12/16/2021 at 2:45 AM, Alfredo said: Not sure what you're asking about here. Do you mean using Zscript to create custom monsters? Nah I actually meant the opposite of that. Since the rules don't allow custom monsters, I was basically just wondering if using ZScript was instead allowed for other purposes? If you wanna keep it simple, you can of course just not allow it in any capacity. Edited December 28, 2021 by Worst Added new version 1 Quote Share this post Link to post
Alfredo Posted December 17, 2021 17 minutes ago, Worst said: I have made a new version of the FluidLib ACS library, which fixes a little oversight in the fluid state system, which allowed you to keep the fluid effect if you were very quick on your feet. I also realized that it didn't work in all scenarios, for example when using a non-solid 3d floor or with underwater tunnels that don't have any liquid textures in them. This new version makes such setups possible too, though they require using a custom UDMF sector text property "user_fluid" that should match the fluid name. For non-solid 3d floors it needs to be set in the control sector. For underwater, etc. the sector itself needs to use the same "user_fluid" custom UDMF sector text property. fluidlib-v2.zip I hadn't considered 3D floors for usage beyond building more complex level geometry. I'm sure someone will be happy they can apply the effects there. 17 minutes ago, Worst said: Nah I actually meant the opposite of that. Since the rules don't allow custom monsters, I was basically just wondering if using ZScript was instead allowed for other purposes? If you wanna keep it simple, you can of course just not allow it in any capacity. Utilizing Zscript is permitted, I use it all the time to for kill triggers and more complex fight setups. So long as you aren't violating the rules or doing something that'll cause performance issues. I don't see a problem with using Zscript. Just don't alter the existing properties of the liquids or create new ones. 0 Quote Share this post Link to post
myolden Posted December 17, 2021 Wow, this is a cool concept. Throw my name down wherever you (or a RNG of your choice) decide. 1 Quote Share this post Link to post
Alfredo Posted December 17, 2021 3 minutes ago, myolden said: Wow, this is a cool concept. Throw my name down wherever you (or a RNG of your choice) decide. The Dice have chosen. You shall be slot 6! 1 Quote Share this post Link to post
myolden Posted December 17, 2021 13 minutes ago, Alfredo said: The Dice have chosen. You shall be slot 6! Works for me! 1 Quote Share this post Link to post
Snikle Posted December 17, 2021 Sounds fun, and I need a reason to learn UDMF. I'll take MAP23. 1 Quote Share this post Link to post
Worst Posted December 22, 2021 On 12/17/2021 at 2:51 AM, Alfredo said: Utilizing Zscript is permitted, I use it all the time to for kill triggers and more complex fight setups. Oh that sounds interesting. I'd think that regular old ACS would be enough for kill triggers, but since I haven't used Zscript too much, it's likely that I'm just unfamiliar of its advantages in those setups. 1 Quote Share this post Link to post
Womp the Cat Posted December 24, 2021 I'd like to get involved in this! Could I take map 16? 1 Quote Share this post Link to post
Womp the Cat Posted December 25, 2021 Thanks for adding me Alfredo, and a merry christmas to you and the other mappers! I was busy with the resources yesterday, and found some interesting things about fireblu. the player does not need to be standing still in fireblu to be invis, however, there seems to be a limited time in which the player will be invis for, and after awhile, they will no longer be invisible and will have to leave and return to the sector to reactivate it. Not sure if its intentional or not but something for mappers to keep in mind probably? 1 Quote Share this post Link to post
Alfredo Posted December 25, 2021 8 hours ago, Womp the Cat said: Thanks for adding me Alfredo, and a merry christmas to you and the other mappers! I was busy with the resources yesterday, and found some interesting things about fireblu. the player does not need to be standing still in fireblu to be invis, however, there seems to be a limited time in which the player will be invis for, and after awhile, they will no longer be invisible and will have to leave and return to the sector to reactivate it. Not sure if its intentional or not but something for mappers to keep in mind probably? So I went back in and tested this myself and it seems that Invis is the only fluid that has a timer associated with the application of its effects. Perhaps this is because of the way the powerup is applied in the script? I don't think its too huge of an issue, so long as you aren't forcing the player to remain in the fireblu for longer than the powerup's duration. I genuinely never noticed the time limit when I made a map for these fluids originally. The timer oddly enough does not apply to the Invuln slime. 1 Quote Share this post Link to post
Worst Posted December 25, 2021 33 minutes ago, Alfredo said: So I went back in and tested this myself and it seems that Invis is the only fluid that has a timer associated with the application of its effects. Perhaps this is because of the way the powerup is applied in the script? I went ahead and did some investigation on this as well. Turns out that the function being used for the invisibility effect is basically equivalent of giving the invisibility powerup to the player. I had not realized this before. So basically this line of code: SetPlayerProperty(0, ON, PROP_INVISIBILITY); Is the same as doing the following: GiveInventory("PowerInvisibility", 1); And PowerInvisibility has the original built-in duration of 1 minute, so it doesn't last forever because the effect is only applied when first entering/touching the liquid. 44 minutes ago, Alfredo said: I genuinely never noticed the time limit when I made a map for these fluids originally. The timer oddly enough does not apply to the Invuln slime. If you tested with the fluidlib, then yeah it does not apply a timer, since I took a slightly different approach from your original liquids.wad, and assigned the player the invulnerability status using SetActorProperty(0, APROP_Invulnerable, ON) instead, which does not have a timer to it. 53 minutes ago, Alfredo said: I don't think its too huge of an issue, so long as you aren't forcing the player to remain in the fireblu for longer than the powerup's duration. I think the invisibility effect could be made infinite by making a new powerup type in ZScript or Decorate that has an infinite value set for the Powerup.Duration property. And then adjusting the fluidlib to give this new type of invisibility powerup instead. In my opinion changing the effect to be infinite would be more logical, since the player is not just grabbing a single sphere, but rather will be wading knee-deep in the liquid, so I think it would be logical for the effect to last as long as the player is in there. I don't mind updating the fluid library wad, so that the invisibility effect is infinite (while in fireblu liquid). Or even instead make both the invis and invulnerability time limited like picking up the original powerups (But imo that doesn't entirely make sense in this setting). Of course, @Alfredo this is your decision to make here :) 2 Quote Share this post Link to post
Alfredo Posted December 25, 2021 4 minutes ago, Worst said: I don't mind updating the fluid library wad, so that the invisibility effect is infinite (while in fireblu liquid). Or even instead make both the invis and invulnerability time limited like picking up the original powerups (But imo that doesn't entirely make sense in this setting). Of course, @Alfredo this is your decision to make here :) It'd definitely make more sense for each powerup to be infinite while standing in the fluid. If you don't mind making the changes then please do so. :) I'll update the OP accordingly when its ready. Thank you very much! 2 Quote Share this post Link to post
Worst Posted December 28, 2021 Alright, here's the updated version of the FluidLib ACS library, where the invisibility effect no longer expires over time. Spoiler Technically it still expires because the engine doesn't support infinite durations for powerups, but the duration has been set long enough, that it would take roughly two years in-game for it to expire. It's extremely unlikely that anyone would spend two years of real time standing in the liquid without exiting the liquid or the map... fluidlib-v3.zip 1 Quote Share this post Link to post
Alfredo Posted December 29, 2021 9 hours ago, Worst said: Alright, here's the updated version of the FluidLib ACS library, where the invisibility effect no longer expires over time. Reveal hidden contents Technically it still expires because the engine doesn't support infinite durations for powerups, but the duration has been set long enough, that it would take roughly two years in-game for it to expire. It's extremely unlikely that anyone would spend two years of real time standing in the liquid without exiting the liquid or the map... fluidlib-v3.zip It has been done. Thanks for all the support! :) 0 Quote Share this post Link to post
Womp the Cat Posted December 29, 2021 (edited) Hey folks! I've gotten to a point where I could do with some external feedback and playtesting. I have added 2 skies, and a new midi to the map, it's already in slot 16. so you will have to idclev there. I've also added one basic dialogue script, but can remove it if it conflicts with the rules of the project. I have not implemented difficulties yet, because I wanted to see how others found the gameplay first. I've had alot of fun with this. thanks for the opportunity. (most recent version) I have only tested it in GZDoom 4.4.2. when I try to run it in Prboom or Glboom I get this error (p_setuplevel level wad structure is incomplete. there is no ML_Nodes Lump) Which I believe has to do with the nodes not building properly, but it's beyond my expertise at this point on how to fix this? it works with Gzdoom though. so Idk. Just updating this with v3 of my map, still needs a bit of detailing, but otherwise the combat feels good, and I have now implemented all difficulty settings. Can't escape the painted skyv03.rar Edited January 18, 2022 by Womp the Cat changed the zipfile to the latest version of the map 1 Quote Share this post Link to post
MFG38 Posted December 29, 2021 5 hours ago, Womp the Cat said: I have only tested it in GZDoom 4.4.2. when I try to run it in Prboom or Glboom I get this error (p_setuplevel level wad structure is incomplete. there is no ML_Nodes Lump) I'd wager a guess that's because you're trying to run a GZDoom map in a port that doesn't support GZDoom features. 1 Quote Share this post Link to post
Womp the Cat Posted December 29, 2021 1 minute ago, MFG38 said: I'd wager a guess that's because you're trying to run a GZDoom map in a port that doesn't support GZDoom features. Lol yup that would do it, sorry, i dont use prboom, but thought it would be a good idea to test on a few ports. also, there was some funky mid textures in the one room which I have now fixed. Can't escape the painted sky v02.zip 1 Quote Share this post Link to post
Alfredo Posted February 21, 2022 Hi everyone. Hope you've all had a good year so far. I apologize for not posting more frequent updates. I've been a tad busy with work at the office and with other things. That aside. I have begun working on the opening map: Vile Lecture. Its a bit bare bones at the moment, but I should have something playable sometime later. Spoiler Hope everyone's having fun with this concept. Can't wait to see what everyone comes up with! Signups are still wide open until March 18th! If you're interested at all. Feel free to take a slot! Thank you! -Alfredo 3 Quote Share this post Link to post
Thelokk Posted February 21, 2022 Uuuh I could use some Doom schooling. Map 19 available? 1 Quote Share this post Link to post
Alfredo Posted February 22, 2022 21 hours ago, Thelokk said: Uuuh I could use some Doom schooling. Map 19 available? Added! Please take your seat! 2 Quote Share this post Link to post
Thelokk Posted February 28, 2022 The Plasma Factory welcomes you soon(tm) 2 Quote Share this post Link to post
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.