Jump to content

Its a wonder this game even works.


DR_Mechano

Recommended Posts

Now some of you may or may not have been following the saga of the MM pet AI discussion on the suggestion forums. We've got one person actually working on testing things to see if they can get ranged pets to stop running into melee and...in doing so...have discovered just how terribly coded this game is. You know why it took Back Alley Brawler and crew over a year to get power customization to work? Freaking awful coding. Like take what you think about Spaghetti code and triple it.

 

Its just been revealed that there are, at some points, three different things which all do the same thing written by three different people and in many different file locations dealing with pet AI. It is honestly a wonder this game even works and the amount of hackjobs the devs did to get things to work in the later years of the game is just astounding and I mean that in a good way. Castle was right in that 'removing brawl' does literally nothing to pets, they still run in to melee range and just stand there firing off a ranged attack.

 

I mean this has to be one of the worst programmed MMOs I've seen in a long time and its frankly a miracle everything works like it does. So hats off to you Paragon Studios, wherever you may be, you kept this clunker of coding going and even enhanced it somehow.

  • Like 9
Link to comment
Share on other sites

Now you'd expect me to say World of Warcraft BUT that also features various hackjobs to get things working and remember they're running on an engine that's basically as old or possibly even older than City of Heroes but has the advantage of everything (and I do mean EVERYTHING) being documented in house and Blizzard having a specific way of doing things. Like do you know during a boss raid that spawns patches on the ground that it used to be invisible mobs that a placed during the start of the attack waiting on a trigger condition to spawn in the fire?

 

By comparison in City of Heroes virtually nothing seemed to be documented beyond the basics. The people who wrote the Pet AI and how the pet powers worked seemed to have left virtually no documentation once they left shortly after CoV was released. It also seemed like while there wasn't NO communication there wasn't ENOUGH communication between everyone.

 

The early days of MMOs are basically filled with stuff like this in order to get things 'kinda working well enough...ish'. I'd say it probably isn't until the later years of the MMO Genre (I consider us in the twilight years currently since the MMO fad has basically all but died and you almost never see new ones being released that aren't being ported over from South Korea which seems to produce them off an assembly line as players just move from one to the other) where games like Guild Wars 2 come in.

Edited by DR_Mechano
Link to comment
Share on other sites

My one hope is at some point the code gets the needed overhaul it deserves. This is the only game I have played where it generates the graphic issues which it does. I can run the latest game I want to and experience zero issues. CoH can be a slideshow.

Top 10 Most Fun 50s.

1. Without Mercy: Claws/ea Scrapper. 2. Outsmart: Fort 3. Sneakers: Stj/ea Stalker. 4. Emma Strange: Ill/dark Controller. 5. Project Next: Ice/stone Brute. 6. Waterpark: Water/temp Blaster. 6. Mighty Matt: Rad/bio Brute. 7. Without Hesitation: Claws/sr Scrapper. 8. Within Reach: Axe/stone Brute. 9. Without Pause: Claws/wp Brute.  10. Chasing Fireworks: Fire/time Controller. 

 

"Downtime is for mortals. Debt is temporary. Fame is forever."

Link to comment
Share on other sites

To be fair this happens more often than not in the programming world.  Coders come and go and others are left with the option to try and learn what another person did or start from scratch to code in a way they understand.  Many times they are under a time constraint and it will take less time for them to start over than to peel the onion and figure out whats what.

 

You (still) have this in STO, which is using a later version of the underlying engine.  You'll have away team BOFFS (pets) run into melee range for no apparent reason and slap a target with their assault rifle. 

  • Like 6
Link to comment
Share on other sites

Has anyone ever done a WireShark Snip of the Network Activity while CoH is running? I have often suspected that some of the issues with CoH lag may come from the fact that although it launched in 2004 (  MMOs can take 4 to 5 Years to be ready for just Alpha ) Gigabit networking was Brand New in 1998. With a game that had to be engineered to deal with a Network Protocol that people may not really be fluent in yet. People often think the equipment will compensate for issues, it doesn't always work.

 

If you connect a Gigabit Switch to a Gigabit Network Card in a PC using Cat 5E Cable you would say it should work. I have link lights and Activity. Many on the Internet ( where everything's true ) will tell you Cat 5 E will work fine for Gigabit. Wrong. When the Card sees the switch, on what would be considered an short cable run, it will ramp the card up to Gig Speeds which the cable is not designed for, and you will suddenly have so much Packet loss that it will actually SLOW down your connection as the PC has to keep re-requesting packets before it can move on. Cat 6 Cable will work better, and 6+ even better.

 

The Point being, maybe why this game has more Lag issues than any I have ever played is more related to how it's translated over the Internet/Network and that's why they were never able to fix it. The recent conversion to 64 bit should have had virtually no noticeable effects, yet it has, making Zone Transitions much Quicker. Just got me thinking maybe the issue is somewhere we are not looking, or i could be full of .............

  • Like 2

" When it's too tough for everyone else,

it's just right for me..."

( Unless it's Raining, or Cold, or Really Dirty

or there are Sappers, Man I hate those Guys...)

                                                      Marine X

Link to comment
Share on other sites

1 hour ago, Apparition said:

Out of curiosity... Is there such a thing as a well programmed MMO? 😛


Even if they start out that way - after a few years of bugfixes, patches, updates, etc...  They'll be as spaghetti as anything.  That's the real problem with refactoring MMO code, it's an ever moving target.  You simply can't freeze the code and work on it in any kind of structured way.

I still remember the horrified post by UO dev, who'd decided one day to dig into core combat loop and fix a longstanding but minor bug...  He couldn't even find some of the basic functions because they were so obfuscated by almost a decade of changes.

  • Like 3

Unofficial Homecoming Wiki - Paragon Wiki updated for Homecoming!  Your contributions are welcome!
(Not the owner/operator - just a fan who wants to spread the word.)

Link to comment
Share on other sites

2 hours ago, Apparition said:

Out of curiosity... Is there such a thing as a well programmed MMO? 😛

I am curious as to why any thinks anything is 'well programmed'.

I mean, if you knew what it takes to make a single phone call, you would realize that each one may as well be a miracle.

 

This topic really baffles me, actually.

I have never understood why anyone would think anything is 'well programmed'...

The people that build these things know it's not.

The people that maintain the code know it's not.

The people that manage and pay those people know it's not.

The general public is very familiar with the term 'bug' at this point.

While all code is not written by humans, they wrote it or they wrote the thing writting it.

 

So really, at this point, other than plain old wishful thinking, why is anyone ever suprised that all complex code bases are not easy to maintain?

Why is it ever a suprise?

  • Like 4
Link to comment
Share on other sites

53 minutes ago, jubakumbi said:

I am curious as to why any thinks anything is 'well programmed'.

I mean, if you knew what it takes to make a single phone call, you would realize that each one may as well be a miracle.

 

This topic really baffles me, actually.

I have never understood why anyone would think anything is 'well programmed'...

The people that build these things know it's not.

The people that maintain the code know it's not.

The people that manage and pay those people know it's not.

The general public is very familiar with the term 'bug' at this point.

While all code is not written by humans, they wrote it or they wrote the thing writting it.

 

So really, at this point, other than plain old wishful thinking, why is anyone ever suprised that all complex code bases are not easy to maintain?

Why is it ever a suprise?

Here's the thing. World of Warcraft is probably in a similar state to how City of Heroes is. Despite its recent graphical upgrades it is still running on an engine designed back in the early 2000s. However what Blizzard did was continually and meticulously document ANY changes they made and they had their own departments which would talk to each other. So while the code itself may be kind of a hodge-podge of various different things it's so very well documented that they know how to do things like change NPC AI without breaking the entire game or hunter pets for example. They've always documented these kind of changes right from the very beginning and thus know exactly what each hodge-podge fix does, how it operates and how to fix it should it break or be able to work around it.

 

Compare and Contrast City of Heroes which doesn't seem to have documented ANYTHING, as per the example of the people who did the Pet AI left the company shortly after CoV was launched and nobody knew properly how they worked resulting in Castles kludge fix to stop melee pets being completely useless BUT it also caused the problem we have now of ranged pets running in to use melee which he couldn't fix at all.  It's also the reason Power Customization took so long to do. Back Alley Brawler and his team had to go about decoupling FX from power animations a task which SHOULD have been simple but apparently was a complete nightmare because of the way the game was coded and the fact that the person who did it originally had long since left the company with very little documentation on it.

  • Like 3
Link to comment
Share on other sites

38 minutes ago, jubakumbi said:

So really, at this point, other than plain old wishful thinking, why is anyone ever suprised that all complex code bases are not easy to maintain?

Why is it ever a suprise?

 

Because many of us remember the days when code was tight and clean.  It had to be, and developers took pride in making software work efficiently and in as few lines as possible.  Even the most complex software was kept as simple as possible, and thoroughly documented.

 

Modern software developers working in businesses are lazy and sloppy.  Code bloat has become rampant, with everyone assuming there's no need to trim lines or remove unnecessary code.  After all, we aren't using floppies, and we aren't restricted to a few megabytes of RAM, and we aren't measuring our CPU cycles in kilohertz, so why bother?  Screw it, it'll run, good enough.  And documentation is either buried in the code as a paltry few commented lines here and there, or skipped altogether, because time spent noting what was done and what it does is time not spent selling the product.

 

We're constantly surprised because we haven't forgotten the elegance and efficiency of yesterday, and we can't understand why others don't seem to remember... or care.

  • Like 13

Get busy living... or get busy dying.  That's goddamn right.

Link to comment
Share on other sites

Trade secret:  Basically every publisher-dictated game is a mess in the coding department since deadlines are always looming, and getting it to "work well enough" is usually the modus operandi.
 
There are, however, degrees of mess.
On the one end, you have Nintendo Seal of Approval NES games.  On the other, you have Bethesda.
(little joke.  Bethesda's bad, but they're not the worst)

 

And, yeah; the simpler the game, the easier it is to avoid bloat, but good luck finding the holy grail of efficient coding when it comes to games that have been released for sale.

  • Like 1
Link to comment
Share on other sites

1 minute ago, DR_Mechano said:

Here's the thing. World of Warcraft is probably in a similar state to how City of Heroes is. Despite its recent graphical upgrades it is still running on an engine designed back in the early 2000s. However what Blizzard did was continually and meticulously document ANY changes they made and they had their own departments which would talk to each other. So while the code itself may be kind of a hodge-podge of various different things it's so very well documented that they know how to do things like change NPC AI without breaking the entire game or hunter pets for example. They've always documented these kind of changes right from the very beginning and thus know exactly what each hodge-podge fix does, how it operates and how to fix it should it break or be able to work around it.

 

Compare and Contrast City of Heroes which doesn't seem to have documented ANYTHING, as per the example of the people who did the Pet AI left the company shortly after CoV was launched and nobody knew properly how they worked resulting in Castles kludge fix to stop melee pets being completely useless BUT it also caused the problem we have now of ranged pets running in to use melee which he couldn't fix at all.  It's also the reason Power Customization took so long to do. Back Alley Brawler and his team had to go about decoupling FX from power animations a task which SHOULD have been simple but apparently was a complete nightmare because of the way the game was coded and the fact that the person who did it originally had long since left the company with very little documentation on it.

 

1 minute ago, Luminara said:

 

Because many of us remember the days when code was tight and clean.  It had to be, and developers took pride in making software work efficiently and in as few lines as possible.  Even the most complex software was kept as simple as possible, and thoroughly documented.

 

Modern software developers working in businesses are lazy and sloppy.  Code bloat has become rampant, with everyone assuming there's no need to trim lines or remove unnecessary code.  After all, we aren't using floppies, and we aren't restricted to a few megabytes of RAM, and we aren't measuring our CPU cycles in kilohertz, so why bother?  Screw it, it'll run, good enough.  And documentation is either buried in the code as a paltry few commented lines here and there, or skipped altogether, because time spent noting what was done and what it does is time not spent selling the product.

 

We're constantly surprised because we haven't forgotten the elegance and efficiency of yesterday, and we can't understand why others don't seem to remember... or care.

Been in the biz for almost 30 years.

The only clean code I have ever seen has been throw-away, use once never gain stuff.

 

Now, I agree, good coding houses are better at documenting and cross team communication.

A good wrangler can keep the thing running, no question, I help do it today.

But, it's still bad pasta...in the banks...in the government...in the military...in schools...in hospitals...in games...

 

And it is NOT new.

I know people that helped create some pretty early stuff...all complex systems are glued with string and duct-tape.

I saw plenty of terrible code when we had to limit to 4K of RAM.

The whole 'bad in the old days' is BS in all chanels, IME.

 

The blanket 'lazy and sloppy' is way over the top, thanks for insulting thousands of people...many of whom I know that work hard and well.

 

So, sure, there are more and less well maintained and documented code bases, but if it does anything useful, IME, then it is a big bowl of pasta.

Some people can even ruin pasta, so not everyone should be allowed in the kitchen, but it's still just pasta.

 

So, no, it is not new, IMO, it is just more mainstream to be allowed to know about the bugs and errors.

Most code, last I read like 85%+, is never seen by consumers.

The lawyers kept access to even knowing there were issues like that really tight for decades because they feared lawsuits over bugs.

 

  • Like 3
Link to comment
Share on other sites

Lawsuits* nothin'; in my teams it was always about keeping them under wraps for reasons of "ensuring the customer trusts us," or some other P.R. malarkey.  

One of the many reasons I'm now a professional cook instead.  

 

*

(not saying lawsuits aren't a more pressing fear in other sectors which use software solutions; I only had the game industry to base my experience on)

Link to comment
Share on other sites

2 minutes ago, jubakumbi said:

 

Been in the biz for almost 30 years.

The only clean code I have ever seen has been throw-away, use once never gain stuff.

 

Now, I agree, good coding houses are better at documenting and cross team communication.

A good wrangler can keep the thing running, no question, I help do it today.

But, it's still bad pasta...in the banks...in the government...in the military...in schools...in hospitals...in games...

 

That's my point though, it may still be bad pasta but at least most modern MMOs will actually purposefully document any changes, hell even WoW did it...but City of Heroes and a lot of early MMOs also didn't do this. As pointed out Ultima Online is THE longest running MMO and I freaking DREAD to think what the state of its code is in since it was release in 1997 and STILL going...

Link to comment
Share on other sites

3 hours ago, Megajoule said:

For years now, I've used a slightly modified quote of Scotty from Star Trek V:

 

"This game was put t'gether by monkeys."

Vicious Rikti monkeys!

 

Tim "Black Scorpion" Sweeney: Matt (Posi) used to say that players would find the shortest path to the rewards even if it was a completely terrible play experience that would push them away from the game...

╔═══════════════════════════════════════════════════════════════════════════════════╗

Clave's Sure-Fire Secrets to Enjoying City Of Heroes
Ignore those farming chores, skip your market homework, play any power sets that you want, and ignore anyone who says otherwise.
This game isn't hard work, it's easy!
Go have fun!
╚═══════════════════════════════════════════════════════════════════════════════════╝
Link to comment
Share on other sites

2 hours ago, Luminara said:

Because many of us remember the days when code was tight and clean.  It had to be, and developers took pride in making software work efficiently and in as few lines as possible.  Even the most complex software was kept as simple as possible, and thoroughly documented.

 

Modern software developers working in businesses are lazy and sloppy.  Code bloat has become rampant, with everyone assuming there's no need to trim lines or remove unnecessary code.  After all, we aren't using floppies, and we aren't restricted to a few megabytes of RAM, and we aren't measuring our CPU cycles in kilohertz, so why bother?  Screw it, it'll run, good enough. 

Coding has never been "tight and clean" despite the best efforts of many.  There are more ways than one to execute a command.  The reason you had bloated software is because people used to get paid by the line of code.  More code - more "bloat" (hence the term bloatware) - meant more money for the coder.  Of course they're not going to write something streamlined and efficient.

 

I'll also add, lazy people are not bad because in fact they tend to get things done in the simplest and most efficient way.    This is why we have this quote;

 

spacer.png

 

Edited by ShardWarrior
  • Like 4
Link to comment
Share on other sites

6 hours ago, DR_Mechano said:

Now some of you may or may not have been following the saga of the MM pet AI discussion on the suggestion forums. We've got one person actually working on testing things to see if they can get ranged pets to stop running into melee and...in doing so...have discovered just how terribly coded this game is. You know why it took Back Alley Brawler and crew over a year to get power customization to work? Freaking awful coding. Like take what you think about Spaghetti code and triple it.

 

Its just been revealed that there are, at some points, three different things which all do the same thing written by three different people and in many different file locations dealing with pet AI. It is honestly a wonder this game even works and the amount of hackjobs the devs did to get things to work in the later years of the game is just astounding and I mean that in a good way. Castle was right in that 'removing brawl' does literally nothing to pets, they still run in to melee range and just stand there firing off a ranged attack.

 

I mean this has to be one of the worst programmed MMOs I've seen in a long time and its frankly a miracle everything works like it does. So hats off to you Paragon Studios, wherever you may be, you kept this clunker of coding going and even enhanced it somehow.

In their defense, Cryptic was a brand new company and CoH was the very first game that they worked on. in a word (plus 2), they were Inexperienced.

Link to comment
Share on other sites

1 hour ago, Twisted Toon said:

In their defense, Cryptic was a brand new company and CoH was the very first game that they worked on. in a word (plus 2), they were Inexperienced.

Not to sound too cynical, but I wonder how much of the "spaghetti code" was due to them rushing and how much was due to them wanting to keep a degree of job security - the ones who programmed the code probably know how it works, but those unfamiliar, (and with the lack of commenting), have an uphill battle to fight, in order to add stuff to it...

Edited by biostem
Link to comment
Share on other sites

Could be worse.  I know a current game that most of the work was outsourced to 3-4 different 3rd world country studios and then rigged together by a smaller group of devs for the actual company.  Said group has grown (mostly by their hiring modders to be employees) but its still a mess.

Edited by Sanguinesun
Link to comment
Share on other sites

9 hours ago, DR_Mechano said:

Here's the thing. World of Warcraft is probably in a similar state to how City of Heroes is. Despite its recent graphical upgrades it is still running on an engine designed back in the early 2000s. However what Blizzard did was continually and meticulously document ANY changes they made and they had their own departments which would talk to each other. So while the code itself may be kind of a hodge-podge of various different things it's so very well documented that they know how to do things like change NPC AI without breaking the entire game or hunter pets for example. They've always documented these kind of changes right from the very beginning and thus know exactly what each hodge-podge fix does, how it operates and how to fix it should it break or be able to work around it.

 

Compare and Contrast City of Heroes which doesn't seem to have documented ANYTHING, as per the example of the people who did the Pet AI left the company shortly after CoV was launched and nobody knew properly how they worked resulting in Castles kludge fix to stop melee pets being completely useless BUT it also caused the problem we have now of ranged pets running in to use melee which he couldn't fix at all.  It's also the reason Power Customization took so long to do. Back Alley Brawler and his team had to go about decoupling FX from power animations a task which SHOULD have been simple but apparently was a complete nightmare because of the way the game was coded and the fact that the person who did it originally had long since left the company with very little documentation on it.

I recall that even in the very early days things were often said to be impossible because the code was so poorly documented (if at all) and the then devs couldn't make the changes needed. And this was back in i3/i4. I always felt that the underlying engine must have been inherited from some other developers project and that Statesman (the dev) et al didn't really understand how it worked.

Link to comment
Share on other sites

8 hours ago, biostem said:

Not to sound too cynical, but I wonder how much of the "spaghetti code" was due to them rushing and how much was due to them wanting to keep a degree of job security - the ones who programmed the code probably know how it works, but those unfamiliar, (and with the lack of commenting), have an uphill battle to fight, in order to add stuff to it...

The main reason I say they were inexperienced, and it could be because they wanted job experience, but, the main reason is the undocumented code. The very first thing they teach in programming school is to document your code. Granted, not everyone follows that teaching.

Link to comment
Share on other sites

9 hours ago, biostem said:

Not to sound too cynical, but I wonder how much of the "spaghetti code" was due to them rushing and how much was due to them wanting to keep a degree of job security - the ones who programmed the code probably know how it works, but those unfamiliar, (and with the lack of commenting), have an uphill battle to fight, in order to add stuff to it...

This is par for the course in any programming environment.  I'm working with enterprise level software platforms in my daily life.  They too are so poorly written and documented that you can clearly see that there were probably dozens of programmers working on it, each of varying skill level and had a different idea what the MVC framework is and how it works.

 

There isn't much need for heavily documented code.  I know they stress this in schools, but it isn't needed so much in the real world IMO.  Programmers can look at code and figure out what it is doing - I do it every day for stuff I personally didn't write.  IME it is more important to have the knowledge transfer of what the underlying idea was and why things were done the way they were.  I'm also not sure if there were any decent code version control software back then.  These can make a world of difference.

  • Like 3
Link to comment
Share on other sites

This is, sadly, not uncommon for a lot more than MMOs. It happens naturally unless a group is vigilant against it and tries to creep in even when they are. It's a culture thing far more than the fault of any one developer.

 

The voices from on high want features that they can push out the door and they want them produced quickly. The infrastructure work needed to make said features integrate into the larger software well and smoothly so we don't hate ourselves for this later? Well.... Infrastructure work rarely moves product, so they're not as interested in that stuff, just get something working now and we'll dedicate time to refactoring the code "later".

 

The coders are coders because they like writing code. Writing documentation is dull and tedious and there's always that next problem to solve instead. They'll get back to it "later".

 

Keep adding release after release like this, one bolted on top of the next, and spaghetti is the nice word for what you end up with.

 

I've heard the "job security" theory over and over and someone always says that they know someone who knows someone who intentionally does this, but I've never seen anything like this. It's far more likely to blow up in your face when you have to untangle your own mess than actually make you seem irreplaceable. Even if someone told me they were doing this, I'd be skeptical that they're just trying to make their bad habits sound cool.

  • Like 2
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...