From Unreal Wiki, The Unreal Engine Documentation Site
Jump to navigation Jump to search

This page expresses my personal view of certain things which really annoy me. These things might be very subjective, but I just had to let it out. :)


Note to self

Kill UT2004 earlier next time to prevent the log file from growing over 1.3GB... o_O

El Muerte: I think it's better to simply write proper code

Sense and Nonsense of New Features

Quakenet implemented a new feature: channel mode +c now prevents the use of any control code, not only colors. This means you can't underline or format stuff as bold text. Sure, this has some uses, but it was better implemented as a new channel mode.

Why? There are good reasons for preventing colors while still alowing bold and underline. For example making text stand out without getting spammed by all those weird-colored auto-away messages.

Thanks Quakenet, for making IRC a less annoying place, but this one was a brainfart.

Are you the one who...?

[21:12:07] <SoH|kAnEdA> are u that guy that is making anti-fws mutator?
[21:13:08] <Wormbo> I made it, yes
[21:15:44] <SoH|kAnEdA> what's the worth of doing this m8?
[21:15:51] <SoH|kAnEdA> is someone paying u for this?
[21:16:04] <Wormbo> o_O
[21:16:49] <SoH|kAnEdA> it's for pleasure i c...
[21:17:30] <SoH|kAnEdA> well i just want to make u know that not everybody is agreeing with that mutator and...
[21:17:34] <SoH|kAnEdA> well nothing else...
[21:18:01] <Wormbo> I already know that, but I'm not the one who makes you use it
[21:18:17] <SoH|kAnEdA> yeah i know...
[21:18:38] <SoH|kAnEdA> but just wanted to know it u was being payed for this...
[21:19:15] <SoH|kAnEdA> cause i cant find a real "objetive" to do that...
[21:19:25] <SoH|kAnEdA> u will harm lot of ppl that are used to fws...
[21:19:49] <Wormbo> I'm just having fun fixing bugs and people better don't get used to bugs too much
[21:20:00] <SoH|kAnEdA> fws is not a bug...
[21:20:15] <Wormbo> we're talking about FastWeaponSwitching, right?
[21:20:19] <SoH|kAnEdA> yes
[21:21:42] <SoH|kAnEdA> fws makes ut funnier
[21:21:52] <Wormbo> not really
[21:21:53] <SoH|kAnEdA> let's spread it out instead of forbiddin it...
[21:22:19] <SoH|kAnEdA> and for example
[21:22:27] <SoH|kAnEdA> ppl u have more than 120 ping at F6
[21:22:40] <SoH|kAnEdA> it's pretty helpfully versus ppl with 30 ping...
[21:22:48] <SoH|kAnEdA> ppl *who
[21:23:15] <Wormbo> but those ping 30 people can use it as well and there goes your advantage
[21:24:32] <SoH|kAnEdA> make the mutator to aviod low pingers use it
[21:25:01] <Wormbo> so they have a disadvantage? that's not the point of the mutator
[21:25:12] <SoH|kAnEdA> well...
[21:25:21] <SoH|kAnEdA> i'm going to play WITH MY FWS
[21:25:28] <SoH|kAnEdA> nice to meet u...
[21:25:34] <SoH|kAnEdA> :-)
[21:25:47] <Wormbo> I wrote it, released it and won't change it, if you don't like it that's not myx problem
[21:26:32] <SoH|kAnEdA> * Added Wormbo!*@* to ignore list
[21:26:32] <SoH|kAnEdA> -
[21:26:32] <SoH|kAnEdA> * Added *!*@Wormbo.users.quakenet.org to ignore list
[21:26:39] <Wormbo> k

Wormbo: Fans, you simply have to love them. :D

El Muerte TDS: but you never did answer his question, where you paid for that ? ;)

Wormbo: Well, he didn't ask again and he obviously didn't want an answer anymore since he ignored me. But TBH, who the hell would come up with the idea that somebody gets paid for annoying innocent players with mutators they don't even have to use? (especially since that FWS bugfix mutator was never officially released anywhere except in a German forum)

Foxpaw: Hmm, I've never heard of this "fast weapon switching." But 30 ping! I have a cable modem and my ping to localhost is almost 100.

Wormbo: It's a bug exploit where you throw your weapon while running forwards to skip the putdown animation when switching weapons. You immediately pick up the weapon again and since players using this have turned off auto-switching they switch weapons a lot faster than normal. This works better in UT than in UT2003 since weaponswitching is already quite fast in UT2003. The mutator I coded simply prevents picking up an item that moves away from the player.

I want to have the original source code

Here's one email I got today: :rolleyes:

To: Wormbo

Subject: I want to have the original source code

please send to (email address removed)

No hint which source code or even which version, just the Original Source Code™.
Of course I could try guessing, but can't people tell precisely what they really want? o_O


El Muerte TDS: he, at least you have an idea what they want, I once got an email with just the following: "I have a problem with your program", ofcourse I always try to be helpfull and replied: "I bet you do"

Daid303: Still better then getting 20 emails (within the houre) if you can please come online o_O

Wormbo: Well, my reply was a little bit longer than yours, El Muerte. ;) Basically it was a "which mod?", though. Daid: Reply to each of the mails seperately that you won't come online. Or maybe reply to the first mail that you'll come online if no more emails are sent regarding that. :D

Solid Snake: I have all sorts of email telling me that my maps don't load. They fixed the problem by actually downloading my maps.

The Joys Of Feedback

(or lack thereof)

You probably know how this works: You release a beta version of your mod, map or some other kind or custom content for a game and ask people to give you some feedback. You can be lucky and "only" receive useless "wow this rocks" or "bah this sucks" responses or you can be even more lucky and really receive useful feedback, but usually it's either silence or useless responses.

"Ok", you think, "maybe it's not that bad after all, I'll just release it." – Be prepared for the flames and whinings, because now the real "feedback" will get back to you.

  • "Gah, this piece of crap lags terribly!"
  • "This thing makes my server crash every time now!"
  • "Hey, it kicks everyone off my server! HEEEELLLPPPPPP!!!!!!!1111one"

You can't make your stuff completely idiot-proof, there'll always be an even greater idiot than you expected. Usually it's just a misconfiguration of their server, in the best case they just have a typo in the neccessary ServerPackages line. The worst case-scenario however, is the ignorant server admin newbie who doesn't really know how to configure a server and who doesn't even know about the log file which contains very useful information about any kind of problems occuring while the server is up. This includes important script warnings of the mods running and large amounts of standard log warnings causing the server to lag.

This was reason enough for me to let Anti TCC take care of all the neccessary configuration work if the server admin forgets it. Its default configuration has all checks enabled and it even makes sure its ServerPackages entry is there. Now let's hope I find some more people for beta-testing it...


RegularX: I hear ya. I've learned to scope out the very few people I know will give honest, complete feedback and hound them when I beta stuff. Nobody in the Unreal scene really seems to want to help test things, or new ideas, but they sure like to complain when you *do* release it about any problems or shortcomings. My favorite responses include "where are teh custom models" and "this will be great whenever you're done".

Unfortunately, with the small size of people willing to test things - you really have to take things with a grain of salt and use your own judgement. By about the second round of testing, at least one person had felt that each of the three teams in Riftwar was "handicapped" or "too weak" compared to the others.

Wormbo: Did I mention "THIS SUCKS" feedback already?

<email address removed>
I HAVE A 14GIG GAME FILE! BOOTING ME FOR A STOCK SKIN IS REDICULES...........................................................................

The Online Language

did U evr thingk abuot tha way U rIt in forums, IRC, and sO on? did it evr okur to U that sum Ppl mIt not undrstand U? aktuali ther mIt B mor than Onli a fU of thM...
a lot of Ppl R anoid bI this kInd of langwitsh and for sum Ppl its EvN worth a ban from an IRC chanL.


Wormbo: You get the idea. I hope I didn't make any spelling/capitalization mistakes in the few sentences above, it was hard enough to get them in a reasonable English version of that language. :)
/me shudders after reading it again. Did I really just write this crap? o_O

El Muerte TDS: I think it's "buot" and "chan", but what do I know about whatever this language would be

MythOpus: Well I just found this now, I think I'm really late but oh well...

I don't think many people use the language to that extent and those who do make it at least understandable. No one I know spells language like langwitsh. That is just bad english,,,

People who do stuff like that only use words like some > sum whats up> sup Leet > 1137 etc..

GRAF1K: Myth Man (yes, you coined that phrase and it will haunt you for all eternity), all 1337 speech is just bad english, plain and simple. Only it's so bad you don't have to be an english professor to scream at the sight of it. I find it odd you would be commenting on this particular subject; does this ring a bell? "MythOpus: can u delete the page [whatever it was] but not my nu 1 [whatever]." o_O

Tgusagalpa:I was talking to friend, and he always types like that. I sent him to this page, and he REPLIES:"i dnt c wat he meens"

It is so annoying! o_O

UT 2003 Code - Old Ideas, New Stuff And Missing Features

You thought it couldn't get worse, but then you get to see the UT 2003 UnrealScript source code. You want a proof? Here you are:

The HUD mutators are dead, same with the message mutators. Damage mutators are still kind of alive, but seriously injured. The GameRules's NetDamage (why NetDamage?) function only allows to change the amount of damage, the HitLocation and Momentum can't be changed anymore. :/

The UDamage itself doesn't really exist as an object anymore, instead it's spread across several classes like UDamageCharger (the pickup base), UDamagePack (the actual pickup) and UDamageTimer (an Info subclass that stops the UDamage effect after some time). Wait... no Inventory class? Nope, the UDamage's real magic now resides in the xPawn class. All features (the special weapon texture, the firing sound and even the doubled damage) are hardcoded in either Pawn or xPawn. My opinion about that is best expressed with a quote from the Pawn class's TakeDamage code:


   if ( (InstigatedBy != None) && InstigatedBy.HasUDamage() ) // FIXME THIS SUCKS
       Damage *= 2;


Ok, so the UDamage code sucks, but what's up with the other thing that powers up the damage someone does → the berserk combo? Well, it's also hardcoded, but in the Weapon and WeaponFire classes. No Pawn or xPawn code involved. You should think they'd create those two effects by using a common method to change the weapon's damage, but obviously you can't have everything... o_O

But maybe you can – if you do it yourself. There's a DamageAtten property in the WeaponFire class which is used as a damage multiplier for hit-scan and projectile weapons. It's set to 1.0 and doesn't seem to get changed, but the damage is always multiplied by it.

The UDamage now being completely handled by pawn code caused another feature to be removed: No more weapon affectors. In UT the TournamentWeapon class's Affector property could point to a TournamentPickup which got a FireEffect call every time the weapon was fired. That's how the UDamage and Relic of Strength knew when to play their additional firing sounds. With my EnhancedItems package it was even possible to create a whole list of affectors for a weapon, at least as long as only PickupPlus items tried to add themselves to that list. With an EnhancedWeapon as affected weapon the PickupPlus affectors even had the opportunity to draw an effect during the weapon's RenderOverlays. I used this in Rockets UT to draw the UDamage, shield belt, rapid fire and cloak effects and they look pretty good. :) In UT 2003 it's now possible to use an overlay material for any kind of actor. That's how the cool UDamage effect in is done there.

Another good thing in UT 2003 are the damage types. Yes, that old idea from Unreal was picked up again, this time it even worked. :o But guess what: That's another feature I hacked into UT for the use with Rockets UT and other mods.

WildcardBase – it randomly spawns one of up to eight TournamentPickup classes. MultiPickupPlus anyone? The MPP for UT was way more powerful. It allowed up to 20 Inventory classes which are not limited to powerups, also weapons, ammo and armor items could be spawned. Another advantage of the MPP was its ability to select items from the list based on a RejectChance, i.e. spawning certain items was more likely than spawning others.


Tahngarth: I thought the Beserk combo increased your weapons' fire rates, not their damage...

Wormbo: Berserk increases both firing rate and damage by 33%. The actual values are hardcoded in every single WeaponFire class like here for the MinigunFire class:<uscript> function StartBerserk() {

   DamageMin = default.DamageMin * 1.33;
   DamageMax = default.DamageMax * 1.33;


function StopBerserk() {

   DamageMin = default.DamageMin;
   DamageMax = default.DamageMax;

} </uscript>

Mysterial: Only the Assault Rifle and Minigun get damage increases, and it's instead of giving those two weapons a faster firing rate, not in addition to it. I suspect this is because of lockdown.

Githianki: Do you think these issues are a result of design sloppiness or somehow tied to anticheating measures? Just curious. Is it truly haphazard or is there some logic there? Knowing the path this game took to completion (suddenly developed, first for one platform then another, etc.) I would hazard the former.

Wormbo: I have no idea. Like I stated above, this page is just a place for me to complain about stuff. :)

MadNad: Funny, cuz I could swear firerates were faster, but I never saw anything but the damage being multiplied by bezerk. I wish I could see how this is done. I tried having a configurable max hold time for a rocket launcher, but the firerates by the client would not use the value by the servers configurable variable, but would use whatever they were configured to. So the fire anims were out of sync. The actual rates worked just fine, just not the animation. I would love to hear any thoughts you have on making this happen, but with the firerates role set to none, I kinda gave up on it.

Bob_The_Beheader: Hmmm...in the middle of a firefight, it is a wee bit difficult to tell if the damage has been increased by 33%. Not as hard as it would be if this were Counter-strike, but still, 33% won't look nearly the same as UDamage's 2x boost.

Crappy Hacks

Sometimes game developers have the bad habit of creating hacks to make features compatible to previous versions of a game or mod. Usually these hacks tend to show ugly side-effects later.

The most popular and most annoying example are the Relic mutators in UT Bonuspack 1. The Mutator class in UT v400 didn't have the NextHUDMutator property, so the developers decided to create the HUDMutator class instead of telling the people that the Relics need a newer version of UT. Now the NextHUDMutator property has been added to the Mutator class, but the HUDMutators don't use it. This is everything else but compatibility. Recently I wrote a Relics Patch which subclasses the RelicHUDMutator to stop it from breaking the HUD mutator list – works great, but unfortunately it doesn't stop people from doing bad things:

Chaos UT – a great mod. It was good enough to be bundled with UT's Game Of The Year Edition. Chaotic Dreams found a way to make their mod compatible with the Relic mutators: They created two versions if their HUD mutator, one subclassed from Mutator using the NextHUDMutator property and one subclassed from RelicHUDMutator which uses the HUDMutator's NextRHUDMutator property. The user can switch between the two mutators by enabling or disabling a checkbox in the mod's config window. Unfortunately, none of the original coders still works on the mod and so the new coders had to dig through the code trying to understand, what it does and why it was coded that way. They didn't see why the relic-incompatible HUD mutator had to be in there and simply removed the "Using Relics" option. Everything worked fine for them, there aren't so many HUD mutators out there. I talked to the Chaos UT team about the HUD mutator thing and Jb promised to re-enable that option. I also told him about the Relic HUD Patch I wrote and it will be in the next Chaos UT version. (Hey! :) ) But now Chaos UT might have to face a new problem:

Not long ago a new mod team released a "Bonus Pack" for UT. The "technoloG Bonus Pack" is a simple collection of mutators and menu enhancements from a team which "represents professional-quality work coupled with innovations and enhancements to the gameplay experience." (quoted from the technoloG website)

I have to admit the new Relics and the SpellUNREAL mutator are fun, but both use the HUDMutator class. The new relics use the original relic's HUD mutator, so it might be possible that the Relics Patch is able to make the new relics compatible to other HUD mutators, but the SpellUNREAL mutator uses its own subclass of HUDMutator – the patch won't be able to fix that.

Maybe technoloG should concider updating their bonus pack. The UMOD installer doesn't work with the GOTY edition of UT because it requires Bonuspack 1 to be installed. UT GOTYE includes BP1, the Inoxx Map Pack and the Digital Extremes Pack – no need to reinstall them or mess around with Manifest.ini just for installing the technoloG bonus pack. Maybe they would also be willing to include the Relic HUD Patch, make their new relics use the patched relic HUD and get that HUDMutator out of SpellUNREAL. Maybe.