This is what I'd like to see more than anything in the world to have in KF.. and I don't think it really needs to be that complex.
It worked great for Diablo2. It had people excited by HGL, until being let down by the rest of the game.
I always found in RTS games that any sort of randomization options(like a few have random resources around the map so you can't go "Okay here is my build order.. after getting my main base set up, i venture off to this spot to set up. Well, with random resources, that spot isn't always the same, so you have to look around and find the best spot)
L4D's director AI was a nice start, but it would of been much better without the maps always having you do the same thing.
Gears of War's 2 paths to take was.. failure.
----------------------
Now I say it doesn't have to be complex. It doesn't have to be some huge engine change, it doesn't need to puzzle together rooms and sections like HGL, tiling basically.
----------------------
How I see it happen is (well I'm not a coder, so I'm just guessing it could work this way) you have an actor in the map editor called "Random spawner". In the properties of this you'd have a bunch of feilds where you can input the location of a static mesh to spawn, its orientation/size, and then you have a % chance for it to be chosen.
So say I could have a house in a map, and there are two sets of stairs to get up onto it. I could have my actor set up, and each one has a 50% chance set to spawn either a normal set of stairs static mesh, or a collapsed set of stairs static mesh.
(An easier way might be to just have a chance for rubble to spawn blocking the stairs, but collapsed would look cooler :] )
So, there is a 1/4th chance you can never get to that nifty 2nd floor of the house, because both stairs are collapsed and you can't get up. There is a 1/4th chance both are fine, which is nice but it means specimens can come up either set of stairs to get you from the front and behind. Then there is a 50% chance that that 2nd floor is easiest to defend, because just 1 of the stairs is intact.
The same could be done with some doors having properties for doors such as "begin welded" with health. Doors could randomly require a long time to unweld to open up and use, but usually they're open in the begining. You might think you're going to start a match by going to this one room, to find that room is blocked off and specimen will reach you before you can finish unwelding it that wave.
And of course doors completely blocked off, with that "random spawn" actor having a chance to create some rubble in the doorway, making it inaccesable. Maybe it requires you to go around, maybe you'll just never be able to go into that room you usually like, or maybe it makes it even more defendable because it's an blocked off entrance that specimen's can't get through either!
In the same token, you could have holes in ceilings which are sometimes there, sometimes not, which also enable a spawn there which would surely have you go "Oh, theres a huge hole in this ceiling. Not really the best place to set up camp."
Ladders would be cool to to sometimes be there, sometimes not, but then you need to have the code for climbing ladders appear with it which i guess is more complicated.
I mean, completely changed rooms would be cool, but that requires randomized BSP and stuff. I'd kill for just random static objects that block/open up paths/houses/rooms.
------------
Things like this could turn the 5 maps into hundreds of posibilities. You would have to "scout" the levels to see what you're dealing with and figure out the best way to handle it instead of using the same golden strategy every time.
I know there could be issues with pathing of zombies.. if you have a obsticle get spawned where zombie pathing goes past. But really, there should already be some AI code that says "I've been in this general are for 20 seconds without being able to attack anything. I should take another path to get to someone else, or take another path to get to this person" which would keep them from attacking welded doors that'll take forever to get through, which they could get past faster by taking another route. =]
It worked great for Diablo2. It had people excited by HGL, until being let down by the rest of the game.
I always found in RTS games that any sort of randomization options(like a few have random resources around the map so you can't go "Okay here is my build order.. after getting my main base set up, i venture off to this spot to set up. Well, with random resources, that spot isn't always the same, so you have to look around and find the best spot)
L4D's director AI was a nice start, but it would of been much better without the maps always having you do the same thing.
Gears of War's 2 paths to take was.. failure.
----------------------
Now I say it doesn't have to be complex. It doesn't have to be some huge engine change, it doesn't need to puzzle together rooms and sections like HGL, tiling basically.
----------------------
How I see it happen is (well I'm not a coder, so I'm just guessing it could work this way) you have an actor in the map editor called "Random spawner". In the properties of this you'd have a bunch of feilds where you can input the location of a static mesh to spawn, its orientation/size, and then you have a % chance for it to be chosen.
So say I could have a house in a map, and there are two sets of stairs to get up onto it. I could have my actor set up, and each one has a 50% chance set to spawn either a normal set of stairs static mesh, or a collapsed set of stairs static mesh.
(An easier way might be to just have a chance for rubble to spawn blocking the stairs, but collapsed would look cooler :] )
So, there is a 1/4th chance you can never get to that nifty 2nd floor of the house, because both stairs are collapsed and you can't get up. There is a 1/4th chance both are fine, which is nice but it means specimens can come up either set of stairs to get you from the front and behind. Then there is a 50% chance that that 2nd floor is easiest to defend, because just 1 of the stairs is intact.
The same could be done with some doors having properties for doors such as "begin welded" with health. Doors could randomly require a long time to unweld to open up and use, but usually they're open in the begining. You might think you're going to start a match by going to this one room, to find that room is blocked off and specimen will reach you before you can finish unwelding it that wave.
And of course doors completely blocked off, with that "random spawn" actor having a chance to create some rubble in the doorway, making it inaccesable. Maybe it requires you to go around, maybe you'll just never be able to go into that room you usually like, or maybe it makes it even more defendable because it's an blocked off entrance that specimen's can't get through either!
In the same token, you could have holes in ceilings which are sometimes there, sometimes not, which also enable a spawn there which would surely have you go "Oh, theres a huge hole in this ceiling. Not really the best place to set up camp."
Ladders would be cool to to sometimes be there, sometimes not, but then you need to have the code for climbing ladders appear with it which i guess is more complicated.
I mean, completely changed rooms would be cool, but that requires randomized BSP and stuff. I'd kill for just random static objects that block/open up paths/houses/rooms.
------------
Things like this could turn the 5 maps into hundreds of posibilities. You would have to "scout" the levels to see what you're dealing with and figure out the best way to handle it instead of using the same golden strategy every time.
I know there could be issues with pathing of zombies.. if you have a obsticle get spawned where zombie pathing goes past. But really, there should already be some AI code that says "I've been in this general are for 20 seconds without being able to attack anything. I should take another path to get to someone else, or take another path to get to this person" which would keep them from attacking welded doors that'll take forever to get through, which they could get past faster by taking another route. =]
Last edited: