Old MechWarriors never die, we just go back to the scrapheap

Spent some time playing MW4 again, and finding myself slipping into old grooves like they never left.

Still was able to dance around, targeting a Cauldron-Born while keeping it between me and a heavier Templer. No problems zipping my Centurion into position to hammer away at the enemy ‘Mech, while scooting out of their firing envelope by the time their guns reload, maximum turn and burn.

I even found myself tactically directing the lance, more soundly than in times past actually, because of how much experience I’ve got as an Element Leader in [SAS]. That, and I still remember almost every tactical trick in the ‘Meching game lol.

You know RvS is brain damaged ….

when you’ve got three tangos shoulder to shoulder and shotgun aimed shells do nothing at point blank, except hit the snow directly behind them!

when you’re running like a bat out of hell and can still snipe a tango 30m away with a snapped buckshot

when tangos can dance around a load of buck like Michael Jackson on stage

when hand guns are better short range weapons then a shotgun

when tangos are better dancers then shooters, are worse shooters then noobs, and more accurate then Hathcock, while sliding down a staircase backwards!

I could go on and on, but I’ll just say Raven Shield demonstrates much brain damage.

RvS -= 1; SWAT4 += 1

I spent part of the playing around with Raven Shield and SWAT 4: TSS. Although to the best of my knowledge, Unreal Engine 2 did have support for joysticks, both these games shipped with that support half-assedly disabled 8=). In short, the games basically ignore all joystick input.

Never being one easily daunted, the three obvious solutions occurred: A/ configure the games for keyboard only operation and the joystick to emulate keyboard input; B/ use AHK; and C/ write a small toy to emulate a mouse by way of joystick input. I have already done A, and plan to test out B tomorrow (eh, today), if need be, perhaps play with C at some later date just for fun.

Under the Unreal Engine, or at least UE2: movement is a fairly simple thing. Basically you apply a positive or negative “Speed” factor to a given axis, resulting in some kind of movement: such as translating the players pawn(?) or moving the cursor. It’s kind of simple, +/- base X and Y axises are more or less your walk. Where as the aBaseX and aBaseY axises correspond to the mouse. For SWAT, the task is basically as simple as binding a group of keys to apply +/- Speed to those axises. The bigger the speed, the more reaction you get per key press. In Raven Shield however, despite several methods tried, only positive and negative X (left/right) movement was fully working. Irregardless of change, only upward Y movement was possible in RvS o/. After 6 years of it, I am often the first to call Raven Shield a pile of crap. Tuning my retired joystick to trigger those keys, is fairly simple: although the profiler lacks mapping JS to mouse aixses, sadly.

While it is possible to configure SWAT 4 for keyboard only operation, and thus JS based aiming; it creates somewhat of a problem. It’s virtually impossible to both be able to turn/maneuver around obstacles and to aim and fire at targets. The reason for this is somewhat Unreals fault, that and the fact that “Keyboard acceleration” is not quite, eh, the same as mouse acceleration. In testing with my stick, I found values of +/- 3.75 to 4 tended to work good for aiming, where as +/- 5 to 8 work better for turning. Since a joystick should garner a form of movement more acline to that of mouse acceleration, rather than a keyboards uniformity, it causes a conflict of interest. Mouse acceleration works on the indea, of increasing the speed of mouse movement in proportion to the distance you move it, e.g. it gets faster as the further you move it; where as accelerated it always moves at a steady rate. Perhaps a good if incomplete explanation, for anyone whose played a Playstation with an analog controller: mouse = stick, keyboard = d-pad; thus mapping js to keyboard = d-pad != analog stick. Obviously to play an FPS with a joystick, you don’t want it to behave like a sluggish ‘d-pad’. One way to solve this, would be to dynamically modify the Speed= value used by the key, incrementing/decrementing it by some stepping per use; while not as elegant as it might sound to some, is also impossible. UE2s console and command system could only handle the ++ and — operations by writing out the increment steppings using the pipe(|) operator, and following it up with an OnRelease operator to reset it back.

A better solution, obviously is just playing a ficken game with joystick support ^/.

As for the aforementioned method B, wouldn’t you happen to know that it’s already there. It would be the best solution, and AutoHotKey is a fine bit of software; one I’ve always wanted to find a good use for in games. Depending on how well it can be made to work at converting a JS into a mouse compatible HID, in particular with games in general, I might actually give up using the mouse for regular desktop usage. Thanks to my laptop and having encountered a fair bit of hardware in life’s travels, I have no special attachment to PC mice: only hatred for ones without tails. Than again, I don’t like wireless hardware for much, period.

The third method (C), well, is one that I would only consider worth the effort, because of the learning about Windows specifics that it would involve. I wouldn’t be surprised if Microsoft had it as a sample app somewhere either. The libraries I rely on for input backends (e.g. in Stargella) have their own portable handling of joysticks as is, so I’ve no real reason to care lol.

Gimped from the start, but still an [SAS] man

From Game Scores Volume I

Annoyingly gimped in the first 15 seconds of the game, yet somehow managing to limp through one of the largest RvS missions, and doing it faster then I’ve seen some 4 man elements do it too, lol. Over the years, I’ve actually seen people take over 20 minutes to do that map, even when in a ‘hustle’.
I was supposed to be training Bajorq a bit on RvS, but ubi interfered, so I guess I got all the practice time :-S.

A technical and pseudo psychological peek into Raven Shields AI


In putting the last touches on Private Airport (kai), I’ve been spending some more time to study how the games Artificial Intelligence works, special thanks to [SAS]_Maj_WIZ for pointing out a more thorough list of developer diagnostics ;). Since this is the closest look I’ve taken at Rainbows AI in about 5 years, and an even closer study of Terrorist and Hostage behaviour, I think it’s only fair to make a journal entry about it.

Here is a summery of my findings, and annotations about theories I’ve maintained for years:

The laser eyebrow problem

From the standing position, the source of each pawns aim is directly behind the skull, roughly where the head would be if the pawns stood erectly (like a tango). The point of aim, passes directly though eye level. When crouched the point is roughly near to behind the collar bone, and passes through the lower nasal cavity. In prone, it is much the same.

In real life (and any decent shooting game), that aim point should be chained to the weapon in the players hands.

How Tangos Fire Out Their Ass

Experiments with ShowFOV and GunDirection, demonstrate that there is no real connection between pawn animations, where the AI is looking, and where the AI is actually aiming; or as I have been saying for years, What You See Is Not Always What You Get. The most humerus moment in my testing, occurred with the Rear Guard “Facing” the rear but covering the elements front. My research shows that even if Rainbow is aiming at the target, they fail to engage terrorists outside their point of view. I.e. in the case of that rear guard, if a tango had walked up behind the element: it would’ve taken a moment for his aim point to realign with his field of view, resulting in the death of 2/3 the Rainbow AI element!

In short, this means that the AI walks around much like a Tank with an independent turret, only the artificial intelligence is riding in the drivers seat, not the gunners. Coincidentally, this is why the game has no real concept of muzzle clearance (as I have also been saying for years).

This may explain some of the more rolling on the floor laughing moments that often occur, when a “How close can you go” opportunity crops up in game. To prove a point, I cornered a tango in a corner and had him empty his magazine into me. Side stepping away and deactivating GOD mode, he was able to fire several rounds point blank into my pawn, before his aim point rotated to my new position – I died once the aim point got to me, not when the animations showed him shooting me.

Also it seems that hostages always seem to aim directly at Rainbow, but luckily the terrorist AI doesn’t notice that (or they would always see us comming).

So far, these tests satisfactory seem to prove that my ~6 years old hypothesis, about the “Tango firing out of his arse” problem being is indeed codified into Raven Shield by design. Between network latency, the (usual) use of unreliable UDP communication methods for multiplayer game play, and the systems divergent means of rendering and applying these actions (seeing, aiming, firing, hitting), suggest that there is no way to solve the aforementioned (annoying) problem without fundamental changes to the way Raven Shield works. Since that is not viable, one can only look at working around the problem; even with more processing power then a Cray XT5 super computer, you also need a very high throughput network link between clients and server, likely to an extend that is unobtainable over the modern internet.

In laymen’s terms, this means no matter how good your computer hardware or internet connection is,  the computer will always be able to cheat you. Should that change, most likely it will be so far in the future, we will be dead by then.

On the upside, I do believe that why the game is like this, was probably done in order to give the player more ‘time’ to shoot first (yes, some tangos have very slow reaction times: this appears why). It also appears to explain many of the discrepancies between common online play, single player, and LAN parties. However it is also worth noting, that this may have instead occurred due to limitations of the Unreal Engine (2) or Raven Shields own design and implementation.

Interesting Note: Now that an illegal RvS 1.60 SDK is available on the internet, it may be possible for cheaters to develop a method to take advantage of these problems. Imagine walking up on some one in Adversarial because you think they are looking away, then they shoot you out their arse ;). Luckily the engine has some respectable counter messures to such becoming (more) common.

Looking at the AIs skills

One of the very few things, that I have ever been able to praise Rainbow Six 3: Raven Shield for, is that the Rainbow AI often “Appears” to be covering their sectors, even if they totally suck at room clearing. In fact, their room clearing behaviour suggests that either the AI engine is extremely limited, or the game was made by people who know as much about CQB as the average RvS player, that is: absolutely nothing.

Since there is no connection (see above) between where the character on screen is looking (seeing), and where they are aiming (pointing), this means What You See Is Really Not What You Get. Have you ever seen in Single Player, where Rainbow is looking straight at a tango and gets owned without a shot? This is why. It is also why we can do the same to tangos online.

Terrorist movement is closer to What You See Is What You Get, then Rainbows; IMHO the movement for Rainbow was done to ‘look’ more realistic then it actually is (or the AI programmer sucked even worse then everything thinks). They also seem to have a tendency to remain fixed on hostages with their aimpoint, even while walking around a fair distance away. Ever got first sight on a tango, shot him trice, only to curse at him “Magically” shooting the hostage with barely a twitch? Yeah baby… he had that gun pointed at the hostage, all the while he was looking into your eyes.

Every type of AI in the game, demonstrates very poor skills at getting around the maps. I remember when I first started learning about pathing in Unreal Engines, I couldn’t help but think, “We’re still living in a dark age”… and that’s all I will say on that lol.

Hostage behaviour, well, what can I say… what you see is exactly what you get: a stupid slug. On the upside, the terrorists do not show any signs of being aware to hostages; this is why for example, if a Rainbow goes down while escorting, and the hostage becomes a prisoner again, the terrorist may continue walking past. All the fancy stuff about the tangos shooting the hostage, is a mixture of the games rudimentary AI, and things that map designer has programmed.

Since I don’t believe in taking advantage of the map design, or exploiting things I shouldn’t know in real life about the missions, I will not make a closer study of that kind of stuff, nor will I tell others much about it. If you want to figure out how to take even that (ugly) edge over the game, you can go learn how RvS works for yourself. Beat it punk.

I just study the mechanics and psychology of the games AI, you know, the whole know your enemy thing. In actual ops with SAS, I tend to employ more knowledge of human psychological behaviour then how the game was designed. That is both by intention

A Random Bullet Test

A tango surrendered and I fired a shot into his head, the round should have impacted his hand (placed on his head). There was a blood puff and a bullet hole in the wall directly behind his head, however the tango survived. Weapon used was an M16A2 at approximately 350-450 unreal units.

This suggests that terrorists have no brains, since the angle means the bullet must have penetrated his skull, and his hand (I pray) being all that slowed the high velocity FMJ round down enough to prevent a kill. Suggesting that any hit box modifiers applied, were for a ‘hand’ (arm) shot rather then a head shot.

N.B. other tests I have done over the years suggest this kind of problem and the ballistics model used, is why sniper rifles may incur a two-shot requirement on tango kills, and the exaggerated effects of JHP/FMJ selection on SWAT 4.

Anyone still awake and scratching their heads?



All this is based on roughly 6+ years of playing the game, much more then trivial knowledge of such matters, and being a very, highly observant individual.

Private Airport (kai) going RC

After much abuse and perhaps a weeks kicking, or two thirds of a week in man hours, the first map in my RvS map pack is almost complete. The first one, as one might infer from the title above, is a custom version of the Private Airport. In having to find something reasonable to prefix or suffix the maps with, I chose the simple suffix of ‘(kai)’ for each map, why? Just blame it on an Endless Waltz.

The map has been optimized for Co-Op Mission and Team Adversarial play, but should function as expected in most game types; there is also a tweak for Bomb mode. You would still recognize it as the Private Airport, and I have tried not to destroy the maps excellent flow, merely augment it and revivify the game play. Several areas are in my humble opinion, more realistic, while still reflecting the intended feel of the map. Since there is virtually no one left alive, who is playing Raven Shield off a 32MB or 64MB AGP card, I have also taken the liberty of “Fixing” the portaling a bit, trading the frame rate on your toaster oven, in the hopes of reducing some of the floating guns a wee bit (in so far, as that is actually doable in this fucked up game). I also seem to have fixed one of the most annoying rooms in all of RvS, in that process ;). See, I do know what I have been cussin’ at for all these years :-P. My changes shouldn’t impact anyone who has a computer that could play RvS without extreme abuse in the first place (Yes, it is time to give up on your 4MB 3dfx card and buy a new computer), and shouldn’t effect performance for 96-98% of players.

In architecting the changes for mission mode, the thought that kept running through my mind is “This map is gonna be pure evil”, and if you enjoy doing things Ninja style as much as I do, on top of forceful dynamic fare, one will no doubt enjoy playing the coop mission on ROE: RED and saving the day like a sneaky son of a gun, hehehe. Things have been engineered to offer a more tactical experience to both coop and advers. mode, and I think my Private Airport (kai) will be much better suited for Force on Force Training, not to mention bounding drills.

The changes are numerous, tallying over 25 completed tasks on my RTM, and countless dozens of on-the-fly changes that occurred to my twisted mind during editing phase. Being a methodical type about getting my plans carried out, of course corrections and issue tracking was pushed into my RTM list as needed, instant triage.

I will likely make the map available to a select few for closed door testing, once I’ve finished a bit more private testing on the airport. After that, I would say the map is essentially good to go out the door. There is still an unfinished portion of the map, that is non essential, but to complete it properly, would entail triple the work and completing a subsequently desired feature set. There is also a few other features I would like to add, such as maximizing the sniping opportunities even further, but that can wait until later. The next iteration of the map, will likely contain such changes.

For now, I’m content to move onto the last leg of testing the map, and to get started on my ‘next’ one, mauhauhauahauhauha!!!!!

Almost a Quaketorious Victory :'(

It was a nice double that quickly turned into a massive battle, going up from last to match leader in the first couple minutes… couldn’t be racking up frags any faster if I had a nuke: I actually had greater then 2:1 K2D ratio. It’s like no matter what the other players did, BAM I was right on’em, often being involved in  3 to 8 way melees.

Ended up neck in neck with another match leader at the end, and cinched it at like the last blink of an eye by scoring like 6 frags in near perfect succession, winning the game!

Loaded up the next map and was having like the best freaking roll of my life, bodies dropping left and right. There’s something uniquely satisfying about using my SAS skills to counter the other match leaders “Mad skillz”, with great effect no less. Again neck in neck for the lead and looking like the end of this match is gonna flop in the bag in a sec…. when I got called off to clean up someone elses disgusting mess. Worse then that, because of QLs scoring system, not only does that mean I was forced to forfeit everything earned during that pwntacular frag fest, it negatively impacts my reputation for the quit.

And so, family induced as only it could ever be, ends one of the best game nights of my miserable little life. There must be some bastard in the universe, who can take a perverse pleasure in that. Odds are we’re related.

Reflections upon times past

I’ve been sitting here a while, mostly stiring the thoughts around, my brains always been a stew pot. Mostly I’ve been looking back over my times in SAS. I can still see all the people I’ve known, the names are pages long now. My thoughts have gotten me to the point of hysterical tears, but I actually do feel a hell of a lot better… if a bit out of character. That’s the difference between the man and the machine.

The amount of time I’ve putted in, the era I joined up, the distance I place, helps me to look at things and see the truths there. It gives me a way of seeing things no other member I’ve met understands, because either they are to close, or to blind. That’s something that’s always separated me from my peers, past and present.

I came to SAS during a golden era, one hard fought for under Randoms command. Either it was SAS’s second or first golden era, perhaps even third, I’m to young to know that. The first great war I witnessed came during Heims period as commanding officer, it nearly destroyed SAS, and it helped push the “Good ol’days” into the history books, where us old farts and the aging farts still remember them. I saw the first and only Dishonorable Discharge (DD) in SAS history, and almost the entire clan either walk out or die of a broken heart; those who didn’t agree with James getting booted, and those that were so hurt at what the incident cost us. Most of my best friends in SAS drifted off into nothing, to damaged by it to participate as they once did, but caring to much for SAS to harm her by dropping out on the spot. It was a bloody mess, one I spent collecting information and dispersing it to the other members, trying to help them keep the faith. Darkest days I ever did see, even if my for bearers saw much worse.

Out of that train wreck, was the world my generation came of age in. We took to the trenches and worked like everyone else high and low did, SAS quickly recovered, and we pressed forward one foot after the other. I’ve seen the people we help mold come and go, both in good and bad alike, I’ve seen it all. In many ways, I feel that Rasa, Myself, and Rouge, were to young for the job set before us, but it’s boots we and our peers had to fill in order to survive. Through that is where cancer developed, and anyone who saw those days will agree, except those to close to the matter to see the wider scope of what happened. Dave and Rasas training sessions are really what built SWAT 4 from a passing fancy to a serious element of SAS life, and where the sins of our fathers first came into sight.

When I was young, I had the feeling of being groomed to be a Sergeant, watched over if you will.Whether I was or not, it’s with that same nature that I watched over the generations after me. Hexen is and has (sadly) remained, the only one to hit Trp to remind me, of me. The same sort of dedication, that drive to train, and so on, it made him one of the best. Miles was a little sap that grew on me, from someone I merely looked after, to being an incredibly dear friend, a teammate, and someone I consider a brother. When a young punk named Lazkostriker came along, he too became one of the important subjects my generation had a hand in, and one of the best instructors in SAS history, even better then Rasa. We helped shape what those members became, intentionally and unintentionally, and I had felt among them, is where our replacements would come from, but alas, not only did we out live the monsters (in both positive and negative senses of the word) that we helped to create, I have also outlived the others in my generation.

Through the people we helped bring into the SAS, lead to the wars that followed what we saw, and instilled a lingering cancer that was hard to remove. It’s that single thing, that I feel with the greatest remorse, because I was a part of it. Some might hold Rasa (whom I still consider a brother) responsible, but I hold us responsible, our generation. We’re the ones that made the curse or sat idly by when we should have acted. Members that followed, grew up waiting to receive the mark of a beast without even knowing it, even I hadn’t realized it until the line in the sand was years back. The generations that learned from mine, would go on to be some of the hardest working members in SAS history, as well as some of our worst…no ones a saint.

It would take 3 wars to ride us of such things, one batch at a time. I still know people that grew up in that slop of a situation, but survived it without becoming tainted by their surroundings; they are the ones I’ll have to trust, not to make our mistakes over again. Many of the others that came up through that mess were not so lucky, and fell into one trap or another. They are all gone now, along with some good souls, and some who could have been spared if they had come aboard during better days. It’s been my place to see what becomes of members, my honour to see them come full circle, and like wise, my pains and joys to watch what marks they would leave behind for others. That’s why this last and final war has taken so much out of me, because it proves that we were the real failures, not our commanders. If GCHQ has truly failed at anything during all my years of membership, it was in trying to lead stray hearts to water rather then shoot the horses early on. Honestly, I wonder if my generation never happened, would 3 out of 4 of the world wars in SAS have ever happened?

I’m tired of seeing good people brought into an uncertin future, all to often it hurts once the dice has stopped rolling. It’s the life of a phoenix, of death and rebirth from the ashes. Whatever successes my generation achieved, whatever positive influences we’ve made, none of it can outweigh the mistakes we made, and the mistakes we helped influence. That’s the legacy I’ve seen extinguished. I don’t know if it was just our inexperience at being NCOs that help breed what kind of members we became, or if it’s just our true selves coming out bit by bit. But I know this, the generations who will fold the next ones to come, are much better prepared then we were, and that is the comfort I find there.

SAS is now poised to become better then it has been, there’s no more wars to fight, no more dark cloud over head, and I pray, there never will be again. My crystal ball says in a few years, members will come aboard in golden days the way my generation did, GOD willing, they will be a success should they ever be forced into the ground we had to uphold.

Generation means different things to different people, for me, it is groups of people: who entered and spent their times as Recruit and Trooper together along much the same time frames. My generation was Rasa, Myself, and Leon, with Rouge and Mandolore coming into the picture just in time to be apart of it, or one very close to it. Rouge and Mando were mostly trained by those that trained the rest of us, but we were Troopers at the time, so it may be fair to call them the generation after us.. Leon and Mando on the other hand, lacked the activity to have any real positive or negative impact compared to the rest of us old war horses. I have seen a great many generation of recruit come and go.

I hope that GOD will smile upon SASs future, and forever shield the new wave from racking up the things I’ve seen. Sure, I’ve been in the trenches, an integral part of SAS, it’s something I committed to early on. We are always gonna need people who can do that, I just hope they do a better job then we did.

Spidey01, Warrant Officer Class One, Special Air Service 22nd Elite Virtual Regiment; 2005-2010 and beyond.

Doing better today, much more stable, but on the downside, have also felt utterly mindless half the day… like the engines running but no ones behind the wheel. Ok, so I’ve got a few cracks in the crockpot, ain’t the first time :-P.

In a rather interesting twist, normally I would play games to take a ‘break’ for programming tasks that require long periods of concentration: good choices being most things Id Tech or Unreal Engine based. Tonight, I instead found myself playing Chess to build up towards concentration, lol.

Well, as stupid as that sounds, it works :-S.