Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Remilia Scarlet

[wip] Freaky Panties

Recommended Posts

28 minutes ago, Suitepee said:

Any easter eggs planned?

Nah, it's just a quick simple level to test out an idea.  Though maybe I'll throw in some literal easter eggs...

Share this post

Link to post

Looks like another one of those "my pc can't handle it" maps of yours :D
I wonder how a vanilla or boom map made by you would look like o:

Share this post

Link to post

When I initially saw this on them tweeterz, I became instantly intrigued by the concept. I know it involves ACS, but I'm curious as to how exactly you intend on implementing the dynamic difficulty. I'm guessing it's essentially measuring things like the player's health/ammo/etc., am I correct?


EDIT: Nevermind, just took a proper look at the OP.

Edited by MFG38

Share this post

Link to post


The levels look great (as usual) and I love the dynamic concept. I assume that it would start out at the equivalent of HMP and then scale up or down as needed?


Also, I echo the sentiment of interesting title.


9 hours ago, Suitepee said:

Interesting idea, even more interesting choice of name. Any easter eggs planned?

Given the title, I hesitate to wonder what sort of easter eggs you were thinking of.

Share this post

Link to post
11 hours ago, MFG38 said:

EDIT: Nevermind, just took a proper look at the OP.

Haha yeah, I was going to mention this.  But if you still want more info, here ya go.


There are two tables that both deal with health.  The first table is used to calculate the base damage factor for the player (that is, how much damage the player receives from an attack; 1.0 = normal amount).  It has three columns: health threshold, minimum number of deaths, and the new damage factor.  A script, DifficultyAdjuster_DamageFactor(), is run every so many seconds (three at the moment) that looks at this table and first looks up the correct row based on the player's health.  If it's less than or equal to the threshold, it then looks at the number of deaths column for that row.  If it's greater than or equal to that value, then it makes note of the damage factor for that row.


Next, it uses the second table.  This table has three columns as well: low death threshold, high death threshold, and a multiplier.  What it does is checks to see if the number of deaths falls within the range of the low and high death thresholds for a given row, then adjusts the new damage factor by that multiplier.  It then sets the player's APROP_DamageFactor property to the computed value, delays, and repeats the process.


Now as I mentioned, I'm keeping track of the number of deaths.  What this means overall is that the more times you die, the easier it gets.  In order to correctly keep track of this number between respawns and save game loads, this value is stored in a custom CVAR ("alexa_num_deaths").  To keep it from getting too easy, every once in a while (1 minute 12 seconds right now), another script will fire and reduce this value by one, never going below 0.  I call this the DeathFudger() script.  This is one way it gradually gets harder again.


Another script, PossiblyMakeHarder(), is triggered not on an interval, but occasionally by a linedef.  This script looks at the current CVAR value for the number of deaths ("alexa_num_deaths"), as well as the average time between the last three deaths (also stored in a CVAR, "alexa_average_last_death"), and gradually increases the Damage Factor for the player.  This one behaves differently in that it'll possibly raise the damage factor above 1.0, meaning the player can take extra damage compared to normal.  Obviously since it deals with the number of deaths, this means this is indirectly influenced by the DeathFudger() script as well.


As for ammo spawning, I simply use proximity and a threshold.  For example, if the player is below 10 shells and is within 800 map units of a particular MapSpot, a shell box spawns there.  This is all done in a set of spawning scripts.  However, the script that calls these spawning scripts does take other stuff into account.  Specifically, if you've died a lot, things spawn a lot more often.  If you've barely died, it takes a bit longer.  The differences here are small and vary by seconds.

Health is controlled the same way as ammo.

There's one place where, when I spawn enemies with a script, I take into account the number of deaths to control what gets spawned.  The difference is between a demon and a spectre right now, so that isn't being used much.

I have a stat collection system in place that I borrowed from Umbra of Fate.  Originally I used it for testing (because UoF was a pain to test).  I simply added the number of deaths and the average time between deaths stats to it.  However, there's always room to take the other stats it collects into account.  It also keeps track of average health, armor, and ammo counts, and has a reset mechanism that can be called as-needed.

Edited by YukiRaven : hit tab and enter accidentally, posting early

Share this post

Link to post

Freaky Panties is almost done!  I'm at the point that I need a few playtesters to run through it, so if you're interested, shoot me a PM.  Just be sure to read the OP so that you know what this is about.


I ended up simplifying the difficulty adjustment just slightly in the end, while also expanding it in ZScript very slightly.  This shouldn't be noticeable in most cases, but it should make things pretty natural feeling.  At least it has in my own testing.


As far as what's still left to do, the final area still needs, but I need to wait until it's better tested to do so.  I also need to get the music finished, but that won't take long.  I've decided to use an old song of mine called Cyber-Run, rearranged for a YM2151 + SegaPCM chipset (like in many 16-bit Sega arcade games).  This was originally going to be a VGM file, but since the sound code in GZDoom doesn't seem to support this particular chip combination (despite it being supported by the VGM format), I'll have to render it to an Ogg Vorbis file.  No biggie.  If you're curious, I'm using DefleMask to write the song.


There's also a small handful of bugs, visual or otherwise, that I want to squash.  But it's nothing that will affect playtesting.


Latest screenshots:









Note the area in the west.  This is the final area that needs playtesting before I detail it :D  The northern area is just the exit room.


Share this post

Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now