Its been a while since the last news update, and as we’re running the Beta with our contest winners right now, I though I’d bring everyone else up to date.
Anyone who tracks Werewolf and myself will have probably noted the inordinate amount of time we’ve been spending on the Source SDK in recent weeks, and you may have been thinking, ‘Are those two working on Factory V2?’ Well, short answer, yes we are. Having said that, allow us to spend a little time on a bit of reality that hit us a few weeks back. Basically, crap happens.
The Source SDK may well be a complimentary utility that allows us to build maps like the Achievement Factory, but its tools have rather a temperament about them. They’re fidgety, fickle, and have a tendency to fly off the handle at the least opportune time. There have been times when we’ve had to restart the Source SDK, among other things. Valve’s frequent update cycles aren’t helping matters, either.
Long story short, during the process of building Factory V2, the map became corrupt. Massively corrupt. So much of a mess that the best course of action was to subject things to a kind of reconstructive surgery. I took the whole map and reconstructed it on a new canvas, piece by piece, each time inspecting things to make sure corrupt elements were found and quickly dealt with. The whole process took the better part of two weeks. But with this update, I can deliver the good news that we are finally back on track and we are now moving away from map repair and back into map development, and boy have we got a lot in store.
The Diet and Rebuild
While reconstructing the map we took the opportunity to go over the mechanisms for everything so that we could eliminate as much unneeded stuff as possible, as well as switching things to ‘cheaper’ alternatives. The effect on the map has been that it runs a lot smoother. A particular thing we hope to have eliminated (or at least reduced the chances of) is crashes. Since TF2′s recent update, server owners can now see what causes a crash in that servers console logs. We noticed most of Factory’s crashes were to do with the no free edicts error that some of you may have seen before.
Allow me to explain what this is, and if you don’t want to know just skip to the next paragraph. The Source engine is designed to handle things called entities. Entities are everything from rockets, to players, to engineers buildings, to control points, to carts – pretty much if it does something, its an entity. Some of this entities come from the map, the rest from the players. Some of these entities have to be updated to all the clients on a regular basis (typically things that interact with the players or other entities in some way: triggers, buttons, doors, props). These are known as edicts. And the Source engine has a maximum number of edicts it can handle at any one time, if it goes over that maximum then the server crashes. The problem with Factory_V1 is that it took more than its fair share. A LOT more, mostly due to all the buttons, the combined game types (Payload carts take a lot of entities to run) all the bonus stuff, and lots of repetition. When you add in players killing bots at normally impossible speeds and their ability to keep firing their weapons, the server runs out of entities fast and often crashes.
We are still in the process of rebuilding, refining or redesigning some things. All in all, because of the operating changes some things have changed more than others, such as:
The New Bot Room Controls!
A button for each class, plus 1 for each action and the team swap, multiplied by 8. And that’s just the bot rooms. V1 has mountains of buttons, and buttons, as edicts, were things that Werewolf and I were looking to cull. Not all of them, but we wanted to erode that mountain down to a hill.
Another thing about the bot room buttons is that the control panels on V1 have each have a blast shield which when touched or used, raised up to allow players to use the buttons underneath. We did this because rockets, grenades and sticky bombs can all set off the buttons with their blast damage. Critical sticky bombs were the worst because even one bomb has a huge range, and it takes just 1hp worth of damage to press a button. The problem was that players often found the shield more or a hindrance than a help. Not only that, those blast doors were more edicts to track.
So while rebuilding the rooms, we took a look at what we could do to reduce the number of entities in each room, while also making the buttons safe from explosions. The result is what you see below. Sitting in the corner opposite the main door, the buttons are in a shielded booth which is protected from blast damage by a marvellous entity called func_nogrenades. What this does is basically disable any explosions within the zone. Instead all you see is a little while spot where the explosion should be. This zone extends far enough that even a crit-sticky cannot set off the buttons when placed on the edge of the zone. Any further towards to booth and the explosion is simply disabled.
This new setup has a couple of extra benefits over V1′s set-up; the booths shape also prevents bullets from accidentally hitting the buttons as you have to be in the booth (or quite close to it) in order to hit a button and players standing outside the room cannot hit the buttons at all. The only 3 buttons that are not in the booth are the helper button (in rooms 1-4 only), which are still back at the Helper Gates, the door lock buttons (visible on the left), and the clock which starts that useful countdown (above the lock button). In an earlier update, we also mentioned how we redid rooms 7 and 8 to make Engineer Bots build stuff for you to work with. Those buttons are now neatly integrated into the control panels in those rooms.
You might have noticed in the pictures there was no locker. That’s because there isn’t any, at least not the props for them anyway. As Werewolf explained before, certain types of props are harder to render than others and generally Valve try to use no more than 7 of these on any map. Well we had about 22 lockers before the reconstruction so we had to find a way to cut this number without losing the lockers functionality. The solution was to remove all but one locker and to unify all the of the func_regenerate’s (the actual working part of the lockers) into one single item. In their place are signs like the one seen in the floor on the left. You get the exact same functions as a normal locker, with the bonus of a bit more floor space and not having to render a complex model.
A couple of other features that you will notice in the bot rooms are improved door locking. As part of our efforts to cut out entities, the 10-minute timers have been removed meaning you can spend as long as you need in a room without the door opening by itself. We also removed the safety unlocks from the bots action buttons. For example, hitting the ‘Crocket’ button (the one that makes the soldier shoot 4 critical rockets) would send a command to that rooms door, telling it open. This was just in case you got killed and the room got left locked with no-one inside. We meant to remove these unneeded open commands in V1b when we introduced the prototype room detectors but we simply forgot. Now the only thing that causes the doors to open are if you press the button yourself to let yourself out, or the room has no players or sentrys’ in it.
Something we’ve actually brought back from V1a, is the automatic closing of the doors in the Helper rooms. Currently in V1b, if you let a Blue player in to help you the main front door stays open. This leads to other players wondering and interrupting the players already inside, so by closing the door it ensures some privacy.
We’ve refined the room detectors now that they only detect players and sentries and perform more checks of the room. We could have allowed Dispensers as well, but we chose not to because that could allow one Engineer to keep 3 separate bot rooms locked, and we thought this would be unfair. In any case, each and every time a bot door closes it checks the room for anything allowed, and if its empty it automatically reopens itself. Just to be clear, even if a troll managed to close a room from the outside (which I bet they can’t – if you’ll look that lock button is inside the nogrenades zone), the detector would recognise the room is empty and reopen. This anti troll feature is part of more general exploit fixing we did, such as:
There are currently a couple of easily used exploits that undermine the factory’s security. I won’t mention them here because we don’t want you using them, but all you need to know is that we have fixed them. We’ve gone though room-by-room thinking about what each class is capable of doing and deciding on what we were going to allow in each room. In some rooms, we’ve added the same type of Strange room functionality because that’s all the blue team need. Other rooms give players the instant re-spawning capability but don’t remove weapons, to make things easier on anyone there. Just like the strange room itself these effects end when you leave the room.
Speaking of the strange room…
New Strange Room…. again
We thought we had this one nailed down. Some teething issues with the door designs, but nothing major. Then we realised there were some weapons we couldn’t cater for, namely the “Mantreads” and the “Chargin’ Targe”. In both cases the shape of the room didn’t work for them. So, we rebuilt the whole thing from scratch. Using clever bits of mapwork, we designed each Strange Lane into three color-coded zones: a Red Zone, a Blue Zone, and a Neutral Zone. Only Red and Blue players are allowed in their respective zones, which the other side will see their progress blocked by a pane of glass. But in the Neutral Zone, both sides can meet. This allows for point-blank interactions, the kind you need for Targes and Mantreads. Each lane is long enough so that if you start from the beginning, by the time you reach the Neutral Zone, you can Shield Bash. Plus the last four lanes are double the width with additional height. With this, we were able to erect scaffolds that take you up and over the enemy. A Soldier with Strange Mantreads can walk off the platform, onto the enemy’s head (we augment your drop with a nice healthy push down to ensure some fall damage), and then will instantly return to the platform to repeat the process.
In addition, we’ve established a few safeguards to help prevent griefing. Each lane as you can see can be locked by their respective side (so no more interlopers). Furthermore, the Blue side has further protection from Red grief. When the door on their side is open, Red cannot shoot into their zone. Only when they cross into the Neutral Zone will their door close, allowing Red to begin shooting.
New jail building
And we better not catch you in our new Jail. We’ve done as much as we can to prevent grief, so if you still go so far as to defeat our safeguards and break our rules, you will regret it. As you can see from the picture, our new Jail/Translation Room building is a lot bigger. This is to allow us to post our rules in more languages. In case you’re wondering, the rules signs are now downstairs. Each will have a large flag above it so it’s easier to find the correct translation. Speaking of which, if you want to help us out with our translations, the Translation Project is here. We’ve added more languages but we need help making sure they are correct.
Improved Engineer Room
The Engineer Room had always been one of our most useful but complicated rooms. This complication led to some abuse of edicts and such, so we took serious looks at simplifying the room. One of the first things we did was to remove a lot of the trigger work that spawned the Dispensers and such. We discovered it was more stable to simply have them there all the time: the fewer things you spawn and remove at a time, the less stress it puts on the server in managing them. Things that get destroyed will still respawn themselves automatically as needed. To help reduce rendering load, we removed the window in that room, which also allowed us to rearrange the buildings inside more advantageously. Combined with the areaportal over the doorway, this means your client never renders the buildings until you open the door.
The few triggering actions that remained, we worked hard to smarten up. Our unique Metal Machines has always had a problem since they tended to drop lots of scrap pickups. Thing was, they were meant only for the Engineer, so when someone of the wrong class stepped in, it caused a mess. More than once, it was the Metal Machine that crashed our server, so I did some research and found a way to make it so the Dispensers only do their work in the presence of an Engineer. And since Engineers in the Factory will always collect metal, this keeps down the mess.
New Duelling game – Sentry-Jump Racing
A new off-map room, the idea of this game is to use your wrangled sentry to jump from platform to platform up a tall tower. The first player to reach the top platform wins, and causes something unpleasantto the other player. I won’t say what, it will spoil the surprise!
If however your not very good at sentry jumping, there is also a practice room. For now this is simply a large room with platforms around the edge. It also doubles a Rocket and Sticky jumping room. To help you along this room also has active-healing in effect, meaning you heal automatically without having to go find a health-pack or locker.
New Suicide booths
Of course, we have to keep the place interesting, so we put our heads together to come up with some amusing new ways to kill yourself, as well as making sure all the existing actually kill. Some were ways to creatively employ damage zones, others were things that just popped into our heads. But all are deadly.
You see that fabulous new cube at the top of the page? You all know it unlocks the skybox in V1. In V2, maybe it unlocks more. Just sayin’!