So what’s been going on?

It’s been a while since I posted anything here and with me being off work for vacation, I thought I’d throw in some updates between my endless house decorating.

L4DoD
The regular co-cop version has ended its production cycle.  I don’t feel there’s much more I want to do with it simply because it isn’t as much fun for me to play and I’m fed up with players using it purely as an achievement plugin.  They simply don’t want to cap flags, rise to the challenge of defeating Zombie hordes.
They just want to sit in windows, where the Zombies can’t reach and shoot Zombie after Zombie, bitching and whining when a Zombie kills them with a shovel, or the Witch comes up behind them.
So there will be no further updates.
If I release a version of L4DoD, it will be this version.  Andi67, a fellow DoDS programmer from Germany, has provided me with the Witch model for L4DoD, so I feel it’s only fair he can run a German version of L4DoD.
Once I figure out the packaging, I’ll fire him a copy.

L4DoD Versus
This is simply fun to play.  If players want to sit back and cap flags, well, they have four opposing Zombie players who will cap back. Wanna get achievements, well, then you are going to have a challenge because these Zombies can go through doors and hallways!
It still requires a lot of tweaking and the balance is not quite right, but it is getting much better.  It is very much still in Beta because the game testing in this needs a lot of work.

For example last night, I was playing as Grey Dude and I was cutting through the Allies like butter, and yet, while playing as Witch, I couldn’t get near the Allies because of the low health.  So I have to figure out that stuff too.
In the meantime, I’m working on ESP for the human Zombies so that they can see where all the Allied players are through walls, etc.  I have also added a health read-out since the human Zombie doesn’t know how much health he has..

So watch this space!

New mode – Left4DoD Versus

This has been on the cards for a while.  I get constantly asked why humans cannot play Zombie like in the Left4Dead versus mode and the main reason is that it would require a major rewrite to get the game mode working properly.  Everything has been tailored to bots and getting humans just to play the five special infected requires a different way of thinking.

So I had a bath.  Those of you who know me, know that this is where I get 90% of my inspiration and true to form, I thought of a way it could be done.

The deal is this.  There can only be four special infected on the Axis team at any one time so a bunch of things need to be controlled:

  1. Every one needs to be able to play a special zombie at some time, so randomly swapping people is a good way of doing it.  If not, people complain they never get to play Zombie…and they do complain.
  2. Zombies need to be a lot easier to kill.  Special Infected now have intelligence meaning they can hide, sneak around, get to areas of the map quickly, go in places where the bots can’t go.  So they have to be weaker.
  3. Allied guns need to be more powerful to deal with the specials.
  4. Spade hits need to be weaker for Special Infected.
  5. You should not have Special Infected until Allied server numbers increase.

So we have a test server running the Beta right now:
69.162.99.28:27015 TheVille.Org XV – Left4DoD-Versus Zombies

To be honest, it’s not as popular as Co-op for some reason.  I’m getting the impression that people just like to go, shoot bots and get achievements, rather than face a challenging map (the Allies do lose more frequently).
So more tweaking is going to have to be done over the next while.

Well that was embarrassing

You think you have every base covered when you upload a new version of the plugin.

But nothing prepared for the dumbassed bug I added to the plugin.  Somehow, in some weird editing screw up, I deleted the line where Zombies slowly get more health as they die.
For for two days straight I couldn’t figure out why players were racking up 400+ kills…

I changed the program and with Squeeeeze’s and Oldman’s help I managed to get the levels back to where they should have been before the bug.

*sigh*

Cube Soccer Update coming soon

I received a nice PM the other day from one of the admins on The Escapist servers saying that he couldn’t find a decent TF2 Cube Soccer server out there.  The goals either never materialized or the Cube never appeared.

So I quickly threw up a TF2 Cube Soccer server for him to play on and it went squirly for him too.  So it left me pondering what the hell was wrong with the plugin.

Going through the code, which I had last updated on November 2008, it was simply awful.  Timers not being handled properly, inefficient code and loads of cvars.  People know my feelings, these days, on multiple settings for people to screw up…
The biggest issue was with weapons.  The Cube would replenish The Scout Force-a-Nature with the same amount as the Scattergun…which would mean an endless supply of ammo.

Last night, I ripped through the code, pragma semicoloned it (!) and changed the way weapons and the Cube work.
Now, instead of constantly refilling to max ammo, the Cube gives only a quarter ammo refill.

Why, you ask?  Surely it is way more fun with endless ammo and just shooting the crap out of anything and anything…
Players need a challenge.  They need to run out of ammo to make them run closer to the Cube and get more involved in the action.  Running around deathmatching, for some, is enjoyable, but when you don’t have a lot of ammo to do it, it becomes a problem and makes you play closer to the Cube.

I’m also changing the way damage is dealt.  No more mirror damage (whose bloody idea was that anyway?).
To put it simply, the further you are from the Cube, the less damage your weapons do.
Now this has an interesting side effect.
It means we can re-include all those classes that were left out, like the Sniper or the Spy.
I was never happy about making Cube Soccer a Scout only game…that’s not the point of TF2 and anyone who wants to make this into a Tribes style Soccer game is not thinking straight.  There are all these classes and they all do awesome things to counteract each other.  So why can’t they be included?  Why can’t we include Snipers?  They can be picked off by Spies.  Why can’t we include Engineers who can be picked off by Soldiers? Besides it’s tough building sentries with limited metal.

So I’m going to be messing with this over the next few nights and maybe try to reinvigorate this plugin and some of the awesome maps that comes with it.

New content

I added two new items for players this weekend:

Pills
The player who picks these up, gets faster speed for a brief period of time.  I’ve actually noticed a bug in it, while playing last…it is supposed to give them full health for a brief period of time and so that needs to be fixed!  You try to think of everything…lol

Zombie Blood
VALVe could use this one in L4D/2 …A player picks up Zombie Blood and it makes him invisible to the Zombies – they don’t target him.
In Left4DoD, players have found this incredibly useful for capping those difficult last flags like in Avalanche or Anzio.

The items are Zombie drops.
The Pills drop 1 in every 10 while the Zombie Blood drops with a 1 in 50 chance.  You pick them up, you use them.
Now I hear some of you saying, why can’t I keep them,  to use whenever I want?

Well there’s a reason for that.
In DoD:S, I am unable to add extra weapons/items, draw a hand holding it, give it a slot, add it to the next item on the mousewheel.  It’s just not do-able with SourceMod.  I would need to completely re-write the game and add my own stuff in C++.

Ah, you say, why not create a command like use_blood or something?
I learned from my experience with DoDS:RPG, 3 years ago, that multiple binds for players drive them crazy.  Servers can’t create the binds since the server has no access to the client’s config.  So players have to create the binds themselves.  Binding a key to use_blood or use_pills would be simply off-putting and not user-friendly.  The whole point of the game is to keep it as simple as possible – so that anyone can walk in, shoot Zombies with no binding.

How many times in a Left4DoD game do you hear people say “How can I get the German weapons?”.  I mean it’s plastered everywhere – when you die, the motd, the faq, the server ads – to use !equip to get the weapons yet people still ask.  So now add several more commands….you get the idea?

So the current method is far simpler and a more rewarding experience.
Besides, the added randomness makes it so much more fun!

Still to do this week:
Achievements: heading for the bath to have a good think about that one
Voices specifically for helping players identify the Emo coming

Tidying up a few bugs

There are a couple of bugs that I have been neglecting for the past few weeks while I’ve been updating TheVille.Org’s web server and stats.

One of these is the gas glitch.  The Gasman dies, the gas cloud dissipates and yet in certain areas on the map, players still experience the gas effect, usually because the Gasman’s timer has not killed itself. So I rewrote the way it happens.
Now it should be much more reliable and it also means less resources are being used by the server.
At one point, during testing, I also made the gas choke the player, causing damage.  Maybe this might be preferable to just having your vision buggered up, but I left it out simply because players wouldn’t know why they were getting damage.

The Molotovs had been annoying me for a while.  One of those “Damn I must fix that” things!
I rewrote the whole routine so that now players get credited with a Molotov kill.  I also shortened the time it takes to burn a Zombie.
I have had one or two requests to do something about the Molotov in spawn, where a griefer burns his team.  Immature and not in the spirit of co-op.  So to counteract this, any Molotov in spawn does not burst into flames.  I may look at hooking it into the TK system.
The fact is that this is a friendly fire game, much like L4D is.  I want it to remain friendly fire so that we can keep ‘The Infected One’.

Another issue has been a small problem with waypointing.
I had it that if a bot jumped twice, and couldn’t reach the target, it would forget the target and go to the next point.  But for some inexplicable reason, they would suddenly appear in the middle of the map and drop down.  It happened in Avalanche and Donner, specifically.
So I removed that part of the code and now they just forget the target, look for the next waypoint and keep moving.

The code is stable and running well and soon, I’ll move it up from Beta.

Achievements

VALVe started it and they are pretty much the gods of gaming, as far as I’m concerned.  Their development in the past couple of years has been well thought out and at times, I’m left speechless by the humor and genius that they put into their games.
Achievements are a clever way of keeping people in servers.  They need to be achievable yet not something you can do right away.

So I was thinking of a bunch of Left4DoD achievements that I’d like to start incorporating into the game:

  • Win a knife fight with The Infected One
  • Kill 100,000 Zombies
  • Kill a Tank with a pistol
  • Kill 3 Witches in the same life
  • Get an Emo to kill 6 of his own team while killing you
  • Kill 3 Gasmen with a Thompson

I’ll think of more later!

Stevo’s new Video

Stevo, as talented as ever, has put together a short trailer for Left4DoD!
What can I say, the guy is great at this stuff and the video is just awesome!

This video was embedded using the YouTuber plugin by Roy Tanck. Adobe Flash Player is required to view the video.

Voices and Sounds

Sound is an excellent way of reinforcing visual clues that something is going on in the game.  Left4Dead does this amazingly with the four characters each having their own way of dealing with the events around them, indirectly providing the player with clues to what is happening, like

“Pills here”
“There’s a Boomer around here”

Left4DoD needs the same thing to reduce the WTF moments.  The experienced players know about the Emo and the Grey Dude but they need audio cues as well.  The Emo surprise bombs people so much that he is probably the most hated Zombie!  So to counter that, I’m looking for voice actors (from the venerated ranks of TheVille of course) who will provide the necessary dialog…such as “Watch out! I see an Emo coming” or “Emoooooooooo”!!
The Witch and the Infected One provide small audio clues when they teleport behind someone but maybe nearby players will be able to add commentary…

This Mod has become much bigger than I originally thought.
It started purely as a concept to see if I could make bots work in DoDS.

Now it has evolved into something else.

“He puzzled and puzzled till his puzzler was sore…”

Merry Christmas, everyone!

So while Santa was visiting, last night, I was puzzling over code changes I had made that seemed to cause server lock ups and player time outs.  The thing is, I didn’t change very much so I’m very puzzled why it happens at all.
Today, for example, not a single lock up.  So weird.
So I’m guessing it was  NORAD and their Santa radar causing issues in Chicago and California…

I introduced a new difficulty weighting system.
The problem is this: on some maps like Anzio, the Allies kick Zombie butt, often reaching round scores of 8-0.
On others like Donner, Flash and Avalanche, it is very even.
On Argentan, the Zombies are very tricky to control.

So I devised a cunning system that allows me to weight certain maps to better control the balance.  I can set, via a map cfg, the difficulty for each individual map.  So Anzio now gets a slightly heavier weighting than the others, making it more of a challenge for Allies to win.  Coupled with the !votelevel system, players can vote the difficulty up or down so that if it gets boring you can push the level up or if it gets tedious just trying to survive, you can vote the level down.

The system also reports back to me the level of difficulty and the number of wins per team, so I can decide whether to push up or down, the default level of difficulty.

It is a hell of a lot easier than tweaking Zombie health or weapon strength.