Endless Survival - An alternative to Invasion
Version 0.5 features Vanilla Doom support so you can easily use gameplay mods with Endless Survival that uses RandomSpawner, it is recommended to create a config PK3 for proper balancing - see this OMGWPNS config PK3 as an example.
Spoiler: Description (Open)The premise of this WAD is straight forward: It plays like Invasion, except it's
not wave-based. Monsters constantly spawn, there is no end, no exit. The
objective is to survive as long as possible and get a damn good score doing it.
This is a WAD that is strictly for the Survival Co-operative game mode.
By default, Endless Survival can be played vanilla or with gameplay mods. Mod
support has been added that can replace vanilla Doom with any reasonably coded
gameplay mod. See the modders guide section below for further detalis.
Each player starts with the Chainsaw, Shotgun, Chaingun, and additionally with
all other weapons except for the BFG on Nightmare. Monsters randomly spawn and
give a random amount of points upon death from a player source.
Health, armor and ammo spawn from designated areas (one health/armor deposit per
level, multiple ammo deposits based on the layout) and respawn when a player
picks up said items. Weapons are unlocked based on kills or points, and there is
4 weapons for each threshold type, starting with the Super Shotgun and followed
by the Rocket Launcher, Plasma Rifle and the BFG. Some maps allow up to six
weapon slots for each threshold type which can be unlocked with creating a
config PK3 for weapon mods, please refer to endless_omgwpns_v1.pk3 as an
example. Armor is upgraded when you reach a certain threshold of points.
The points you gain from killing monsters scales on the skill level, as the type
of monsters that spawn are based on the skill level. On certain skill levels,
there are monsters that are referred to as "strong monsters", which have a
stronger presence than the average monster of that skill level, if they are
chosen to spawn there is a less than 100% chance of them actually spawning. If
they fail to spawn, a regular monster will spawn instead. They do not give
additional points.
There is also a level up system, which reduces the delay of monster and ammo
spawns. Leveling up is achieved by reaching a threshold of monster deaths.
Bosses spawn every 50 kills on all skills except I'm Too Young To Die and
Nightmare, as bosses spawn every 100 kills on I'm Too Young To Die and bosses do
not spawn at a set interval on Nightmare. Endless Survival has a built-in
feature for spawning super bosses, which can be used by creating a config PK3
for a monster mod that contains overpowered bosses. Please refer to
endless_omgwpns_v1.pk3 as an example of super bosses.
Bosses have a small chance of randomly spawning on Ultra-Violence, while it is
guaranteed on Nightmare if they are chosen to spawn. Non-random bosses give a
lot of points if they die (less if they die from monster damage), while random
bosses give less points. Monsters do not infight, and kills are not counted for
monsters that die due to monster damage.
Spoiler: Old screenshots (Open)
MAP01
MAP02
MAP03
MAP04
Spoiler: Modders (Open)The best feature of Endless Survival as of v0.4 is that it has very powerful
ACS config libraries - a general library (SVCONFIG), a map config library
(SVMAPS) and a monster spawn library (SVMONST). They can be modified by modders
and placed in a seperate PK3 to completely change what monsters spawn, what
types of weapons, powerups, ammo types and armor that spawn at the start of the
map, the threshold of how many kills are required before non-random bosses
spawn, and many more features. This allows Endless Survival to be paired with
any gameplay mod that is reasonably coded. Refer to svconfig.acs, svmaps.acs and
svmonst.acs in the acs folder of this PK3 for more details.
It is also possible to expand on the mechanics of Endless Survival thanks to the
extension library (SVEXTEND), which has pre-defined functions used in the core
library that can be populated or replaced with custom code to provide features
that are not planned to be implemented in the core library. Refer to
svextend.acs in the acs folder of this PK3 for more details.
The core library (SVCOMMON) and global variable library (SVGLOBAL) defines the
"engine" of Endless Survival. There should be almost no need to modify these
libraries. If you can find a justified reason for modifying the core library or
global variable library, please make a post in the forum thread listed at the
end of this text file, or PM me on the Zandronum forums and I will be happy to
discuss. Refer to svcommon.acs and svglobal.acs in the acs folder of this PK3
for more details.
Existing maps will most likely be updated in the future to allow growth for
generic mod expansion that is beyond the scope of what I am personally
achieving.
Spoiler: Mappers (Open)Do you want to make a map for Endless Survival? I would love to see your
submission(s)! I recommend looking at existing maps for a good template of how
to create maps for Endless Survival, but I will also list a reference guide of
thing IDs and sector tags that are allocated for generic Endless Survival maps,
which can be modified in individual map scripts if desired:
TID reference list
1-999 = Map spots for spawning monsters
1000-1099 = Health
1100-1199 = Health spawn location
1200-1299 = Armor
1300-1399 = Armor spawn location
1400-1599 = Ammo
1600-1799 = Ammo spawn location
1800-1899 = Powerups
1900-1999 = Powerups spawn location
2000-2099 = Weapons
2100-2199 = Weapons spawn location
2200 = Out-of-map map spot
2201 = ZDoom mode out-of-map respawn map spot
2202-2399 = Monster path nodes
Hardcoded TIDs:
10000-10199 = Players
10200-10999 = Bosses
11000+ = Monsters
Sector tag reference list
50-99 = sectors for unlocking weapons by score
100-149 = sectors for unlocking weapons by kills
150-199 = sectors for unlocking powerups
It is recommended to use sector tags from 500 onwards for map-specific actions
Note: The sectors for unlocking weapons/powerups don't strictly need to raise
their ceiling by 24 units, if you want to have another method of unlocking
weapons/powerups such as lowering floors or moving polyobjects, please do
not hesitate to contact me and I'll cater for your needs!
Script numbers 1-20 are reserved (TODO: use named scripts for next release)
Spoiler: Changelog (Open)I'm looking forward to feedback and feature suggestions! I do want to add database support eventually to allow for high scores and hopefully other cool things, but I honestly have not played with databases yet (if anyone is willing to help here, I will gladly credit you!) so that will be a while away.v0.5 - May 28th, 2016
* ZDoom support! Players respawn in an out-of-map area and when all players have
died, it will end the map after seven seconds and move on to the next map.
This feature can also work in Zandronum, though it is not required
* The config library has been re-written to now use structs to make it
significantly easier to understand how to create config PK3s, it has also
been split into three libraries: general config library (SVCONFIG), map
spawn library (SVMAPS) and monster spawn library (SVMONST)
* Updated extension library to move the variables into a new library, global
variable library (SVGLOBAL)
* Core library has been updated to accomodate the changes for the config
libraries now using structs
* Fixed bug with strong monsters and random bosses always spawning, along with
who knows what else I've fixed by re-writing the code once again
* Vanilla Doom is now supported out of the box, this should allow gameplay mods
which don't use custom spawning code (as opposed to simply using
RandomSpawner) to work properly without needing modification, though it is
recommended to create a config PK3 for balancing
* Map fixes to MAP04, minor map changes to all maps
* MAP01 and MAP04 now have custom skies
* Players now spawn with all weapons and full ammo except the BFG in Nightmare
* Changes to OMGWPNS specific stuff are listed in the readme.txt in
endless_omgwpns_v1.pk3
v0.4 - April 29th, 2015
* Mod support!
* Endless Survival code has been almost entirely re-written and has now been
split into three libraries: core library (SVCOMMON), config library (SVCONFIG)
and extension library (SVEXTEND)
* I don't remember what bugs I've fixed since the previous version, to be honest
* Super Shotgun and Minigun are now given to the player immediately in Nightmare
* Maximum score for monsters reduced from 700 to 500 in Ultra-Violence
* Zombieman, Grenade Zombieman, Pulse Zombieman, Sargeant, Imp, Death Imp,
Demon, Spectre, Lost Soul, Slime Demon and Baby Cacodemon removed from
Ultra-Violence
* Pain Elemental, Conjurer, Summoner and Caco Elemental removed from strong
monsters list on Ultra-Violence
* Tarantutron and Plasma Chaingun Guy removed from Nightmare
* Missile Mastermind, Arachnotron and Mancubus added to Nightmare
* Monsters spawned by Pain Elemental, Conjurer, Summoner and Caco Elemental no
longer die when the parent has died in Nightmare
* Imp Lord no longer spawns as a non-random boss from Hurt Me Plenty onwards
* Revenant Lord no longer spawns as a non-random boss in I'm Too Young To Die
* Superbosses now spawn in Nightmare every 100 kills (there is still only one
super boss type)
* Minor map changes to MAP04
v0.31 - April 19th, 2015
* Uncompiled ACS library script is now available!
* Yet another significant cleanup and optimisation of ACS library script code
* Fixed a script error where monsters in UV will give the same amount of score
as a random boss due to an incorrect IF statement with checking which death
script to run if the value of bossgenerator was 50-65, and said value would be
maintained until the condition that changes the value of bossgenerator is met
again (when the spawn script tries to spawn a random boss)
* Increased level cap to 15 and refactored monster spawn delay times based on
the current level
* Item depositories no longer use teleport destinations and now use map spots
* Fixed a texture alignment issue on MAP02
v0.3 - April 15th, 2015
* New map, MAP05! This is a filler map to test random spawning weapons, it may
or may not stay in future versions depending on demand
* Fixed a bug in MAP03 where a sector had an incorrect sector tag
* ACS library cleanup which should allow for greater expandability/complexity of
maps
* Decreased the score given for boss kills from 10000-15000 to 7500-10000
* Decreased the score given for super boss kills from 25000-30000 to 20000-25000
v0.22 - April 12th, 2015
* Added double ammo for the ammo depository that is in the same location as the
player spawns on each map
* Doubled the number of spawns on MAP02, enabled the lift to be used by monsters
* Added a lift at the ledge on MAP03, which can also be used by monsters
v0.21 - April 8th, 2015
* Bosses now spawn after a three second delay, an actor to visually notify where
a boss is spawning has been added
* Added expanding outside area for map03 and a new ammo depository
* Level cap increased from 11 to 13 (threshold for reaching level 11 has been
decreased)
* Algorithm for the monster spawn delay with regards to leveling up has been
refactored
v0.2 - April 1st, 2015
* Eight new monsters! Mini-Spider Mastermind, Suicide Demon, Pain Elemental,
Conjurer, Summoner, Caco Elemental, Arachnotron Lord and Demon of the Pit!
* Note on Pain Elemental and similar creatures: The summoned monsters do not
count towards monster kills or deaths in any way. If you kill the summoner,
all that were created by the summoner will die. All summoners are classified
as strong monsters
* Super bosses implemented! Only one currently exists (Demon of the Pit), they
spawn every 500 kills on Hurt Me Plenty and Ultra-Violence and give twice the
score than regular bosses (will probably increase the score bonus even more in
a later update)
* Strong monster spawn chance has been increased from 40% to 50% on Hurt Me
Plenty, 60% to 66% on Ultra-Violence, and now 33% on Hey, Not Too Rough
* Baron of Hell added to strong monster list on Hey, Not Too Rough only (will
spawn 100% of the time on higher skill levels)
* Removed Revenant and Suicide Soul from Hey, Not Too Rough
* Detailing of MAP02 improved by a fair amount, textures are now aligned
properly along with a few extra layout additions
* MAP04 textures are now aligned properly so it looks slightly less like ass
v0.11 - March 30th, 2015
* Added Tarantutron to the strong monsters list (40% chance to spawn on HMP, 60%
chance on UV, 100% on NM)
* Enabled mini-Spectre
* Removed Minion from I'm Too Young To Die
* Standardised ammo placement in the ammo deposits across MAP02, MAP03 and MAP04
* Minor map changes to MAP04, added a new ammo deposit area
v0.1 - March 26th, 2015
* Initial release
Servers are available at:
TO BE UPDATED
DOWNLOAD ENDLESS SURVIVAL v0.5
DOWNLOAD OMGWPNS v5 CONFIG PK3 (version 1)
Special thanks to:
Vicious Pariah - this project would have been forever unreleased and I wouldn't have came back to the Doom community if he didn't seek me out on Steam and I decided to randomly give him what I had done at that point
Dakkon - for being the first fan of this project and giving me a lot of very useful feedback early on
arkore - for giving me incentive to push forward with releasing the library script and expanding greatly on having customization features
All of the people in #vr who helped me with random ACS questions
Everyone who has given feedback that was useful and not complaining about the difficulty