Well, yea, I was skimming. But looking back, I don't think I was that far off, though I did make some leaps from what you said...In my mind, all the interesting performance issues with games are in the area of graphics...A 64 bit object identifier wouldn't have really made a dent in processing, especially for a game like Oblivion, which has so much positional data to keep track of, so I just leapt to the (to me) interesting bit, and ignored the back end stuff which you were probably talking about.
I understand what you're saying...Hell, big number freak that I am, I've seen applications that just crawled because of the overuse of big variables...places where people used 64bit all the way through, even for stupid things...VB used to be rife with this kind of stuff, and I don't support that.
Even in cases like this one, I wonder that they really needed to store information in this manner...I mean, it seems like some of these numbers would be reclaimable. I don't know. Maybe they didn't want to have to officially keep track of the "object database" if it can be called that, retiring numbers for destroyed objects, etc. And I'm all for restricting datasets, so things can't grow, and you can use an appropriately sized number.
But in situations where you can't restrict, and the number's going to keep on growing...You can't just hope it won't top out. Err on the side of caution.
Well, IPv4 would be considered a bad example by a lot of people, because of how quickly we ran into problems with the size of the address space.
The thing with IP addresses is that they don't just keep incrementing...There is a hard limit on how many you get, even for an internal subnet, though it's unlikely anyone would ever max one out. If they did just keep incrementing, the internet would flop because the system would be re-assigning addresses to different people all the time. As a semi-relevant aside, the number in the expansion that over-flowed was the equivalent (in actual numbers) to a 192.0.0.0 subnet.
I did read it. I even responded to it before I responded to you.
Prefixing, in my mind, is the wrong word for what they did...They started numbering at FF000000 or whatever, assuming it'd never roll over. So first off, that's just dumb. You should never start an incrementing counter from anything but zero...To point at your original argument, they used way the hell more space than they needed, because, in their minds, all they were ever going to need was FFFFFF, not FFFFFFFF.
Second, it's still a size issue. Wouldn't have been a size issue if they'd started at 00000000 (4,294,967,296 possible objects), I agree, but they didn't, so they only left themselves 16^6 (16,777,216) possible objects, and they ran out at high levels. At that point they needed to look at the number, and make damn sure that they weren't ever going to need more...Just from my experience, looking at 16,777,216, I wouldn't trust it for a second. If you're still in the 10's of millions, you're probably going to have problems at some point with a number that continues to grow over the runtime of a program that runs for 100+ hours.
But the coder looked at it and said, "Whoa, any bigger, and I'll have to go to 64 bit...I guess this will be big enough." And now they have a problem. It's not that big a deal, but it's something that could have been prevented.
Useless? Maybe. But how about all that water above it, which is moving all the time?
If it really does turn out to be practical for mass power generation, the oceans would seem to be the best place...They're the closest thing this planet has to a perpetual motion machine, aside from the other ocean above it (the atmosphere).
But this isn't graphics code...This is unique object identifiers. With graphics you know how big all the numbers are going to be! You set hard limits on all your rendering, and you're done. If your code isn't set to render past a certain point, it just won't...If you're set up to only process X vectors, it doesn't matter if the system is capable of more...And moreover, nothing grows in graphics processing. You process the same level all the way through...If the system has to do more work with a series of frames, dealing with shadows, and objects and funky light effects, stuff slows down, but that frame is the exact same "size" in terms of bits as all the previous frames.
In this situation, they're just storing object information. Not visual, just existence. And their number is too small...Hell, the patch that was released just adds some zeros on the end.
This is exactly what I'm talking about...People being stingy with the numbers because they think, in their minds, that all big numbers slow things down. Sometimes, big numbers are your friends.
Wow, that's incredibly short sighted of them...I've seen crap like that before, working on databases built by amateurs. Like a lookup table that doesn't have a "flag" to tell the query which dataset the entries belong to, but instead a situation where the original designer just incremented the key by an arbitrary amount, e.g Rate codes are 1-999, product_codes are 1000-1999, etc, so when the 1000th rate code is added, it writes over the first product code, and chaos ensues.
You should never make the "size" of a variable part of it's identifying factor.
Pssh, they used some dinky variable type like "short", assuming that they'd never need more. If they'd used 32, they'd be fine right now.
Either way it's sloppy. You should never have anything in your code that just keeps growing every time you run the code, unless you're keeping time or something...Because this issue is continuing after they stop and start the game...It's saving this crap on the hard drive somewhere, and that's just damn sloppy.
So the number field they chose to represent the key for these objects was too small, so after a period of time it fills up and causes unstable behavior?
Who says programmers never learned from Y2K?
I did some Y2K work in Y1.998K, and it's stuck with me...All my auto-numbering keys are as big as I can make 'em. Any number that grows, I figure out the largest possible size that number could be, and then put it in a datatype that's capable of hold a number at least twice as big.
Sure it's a waste of space, but on a small system, the performance hit is negligible, and on a large system, the odds are higher that they'll run out of numbers! When you try and optimize variable size in situations like this, you end up with problems like this...
I used to compete in rifle while I was still in High School, and this was in South Carolina, where it's really not a good idea to leave bullets in your car during the daytime. Eventually I badgered the principal into allowing me to drop off my ammo in the school office where they would lock it up in the damn safe, of all things, but they complained if I ever brought more than one box (two boxes took up about the same amount of space as a big paperback book), and it just got to be such a hassle, that I just started swinging by Wal-Mart on the way out of town and buying ammo there.
The first time I attempted to suggest that I might want to bring a gun case onto school property I thought everyone would completely lose their minds...This is in the late 80's and early 90's, years before Colombine, and the very idea of a gun on school property, even a single-shot target rifle in a locked case with no ammo, freaked their tiny minds.
These days, I can only imagine. They'd probably expel you for even competing in the first place...Surely shooting a gun, even in competition, is a sign of a deranged and dangerous personality.
Pssh. I didn't start off this way. I'm normal about other things. I never send my food back when the order is wrong, I tip people when I pick up the food myself.
But I've been dealing with ISPs since early early dialup, and they are out to screw the consumer 100%. They provide substandard service, substandard support, and they do it because they know that 90% of their damn customer base can't tell the difference.
Well I can tell the difference, and I am long done dealing with their crap. "Waaa, waaa, I want my money back," that's the cry of the suburban dickhead who'll come crying back in a week because he doesn't know how to set up anything different that what he already had. Me? They can keep the money. They can shove that check where it gives them the most pleasure, and it is a rare rare ISP that looks at what I pay every month and says, "Well that's no loss."
I am the anti-consumer, when it comes to broadband. I will dump all service at the drop of a hat, and switch to a competitor...The whole deal. I mean, cable, phone, I don't care. I have all the equipment to switch between Direct TV and Cable, and Cable and DSL, Phone and IPtelephony (direct TV is bundled through the phone company in my area), and whichever company pisses me off, I dump 'em.
When we moved to a new place, the first thing I did was run cable to my office. Not because I want to watch TV there, but because the first time the phone company pisses me off, I dump 'em.
I think they're scared of me...Last time my service went down (morons from the phone company screwed up my settings working on a neighbors equipment), they told me three days. I told them if it wasn't done before I got home from work the next day, I was calling the cable company...It was done when I went home for lunch.
These days, if you have more than one option, make the most of it...Treat them like the bitches they are, and make them grovel for your money.
I picked my frequent shopper card up out of the parking lot in front of the grocery store, so while it is attached to a real name and address, god alone knows whose.
Eh. They're also faking up the I/O, blah, blah, blah.
I don't think this is the best way to go about it...If it were me, I'd just beef up my monitoring software, and make sure people understood that there would be a zero tolerance policy for this sort of thing. Someone else also mentioned the 14 day free trial accounts, and how useful they were to bot farmers...It'd kill their profit margin if they had to buy a new copy of the game every time they got banned.
Shadow priest? Fury warrior? Balance or Feral Druid? Enhance or Elemental Shammy? Even the Retrib Pally can be nasty, and that's fun to watch because no one ever expects the pally to be able to unleash the whoopass.
My main's a druid, and every now and again I respec back to Balance just so I can repeatedly rape rogues and other ranged types. Best spec against mages is feral...Frost nova is worthless against a druid, and blink is no better if you've got charge.
The four classes you talk about are all good pvp classes...Warriors are extremely solid in pvp if they're specced correctly, and shadow priests are pretty damn tough as well. But both of those classes are flat godlike in pve, where the other 4 are all interchangable.
I've even seen pvp spec pallies who kick ass.
But there is a certain type of person who infests the forums, and is absolutely convinced that all the people who beat them in pvp are just playing an unbeatable pvp class, and it's nothing to do with them.
Any class, with a good spec and good gear can be competitive in pvp or pve if the person running it is good. If you're a hybrid or a support class, you shouldn't expect to always rule the 1v1, because that's not your role.
Do you even play Wow? Characters are balanced over all in that there is no super amazing, best character ever, but individual characters have individual strengths.
At any rate, this has nothing to do with cheating.
I can see a reason for a.xxx tld, that makes perfect sense, because it's descriptive of the content..safe isn't descriptive of crap...You know there will be unsafe.safe sites.
When I was young and full of myself, I used to set up my security systems to "talk smack" when I foiled cracking attempts...Took me only a very little amount of time to realize that this sent the wrong message, because when you frame it in the terms of a challenge, the crackers dust off their A game to make you eat your words..safe? How about.stupid, or.unsafe?
I won't play an online game that has a lot of cheating. I just won't do it...Lot of people mentioned Diablo I, and that's a good example of a game whose online play was completely ruined by cheating.
So I approve of things like Warden that make sure the game code's not being tampered with...It's the price you pay to play a game that's not overrun with hacks. And I don't have any problem with draconian EULA's enforcing that policy.
Seems like, in this situation, it would be easier to just use the monitoring software they already have in place to shut the game down in the presence of a bot. You'll never keep ahead of the bleeding edge, but you'll keep ahead of the vast majority of users.
Unless you can point out where the DMCA says anything about bots.
Did your mother drop you on your head? This has nothing to do with bots. It has to with whether or not the people who write the bot software are allowed to manipulate the game code in memory. Blizz says no, and says that it's a copyright violation, which is at least arguable, if over-broad.
Oh whatever. A lot of people get enjoyment out of the game already...in those terms its a great success; you'll never be able to make it so exquisitely enjoyable that no one will want to cheat.
The whole idea that cheaters are a game flaw is absurd; if a game has goals, there are people who will want to take a shortcut. They'll do it for greed, they'll do it because they're lazy, and they'll do it because they want recognition that they haven't earned.
What's the solution? To have a game with no goals? It'd be like Tetris but you couldn't have a score, because then people might want to cheat for a higher score. Couldn't even have levels, because people might want to cheat to say they got to a higher level!
Honestly, I prefer it; the fewer cheaters, the better the game. The people in this case who are screaming about a "right to privacy" are mainly just people who want to try and hack the system, and I don't have much sympathy.
Well, yea, I was skimming. But looking back, I don't think I was that far off, though I did make some leaps from what you said...In my mind, all the interesting performance issues with games are in the area of graphics...A 64 bit object identifier wouldn't have really made a dent in processing, especially for a game like Oblivion, which has so much positional data to keep track of, so I just leapt to the (to me) interesting bit, and ignored the back end stuff which you were probably talking about.
I understand what you're saying...Hell, big number freak that I am, I've seen applications that just crawled because of the overuse of big variables...places where people used 64bit all the way through, even for stupid things...VB used to be rife with this kind of stuff, and I don't support that.
Even in cases like this one, I wonder that they really needed to store information in this manner...I mean, it seems like some of these numbers would be reclaimable. I don't know. Maybe they didn't want to have to officially keep track of the "object database" if it can be called that, retiring numbers for destroyed objects, etc. And I'm all for restricting datasets, so things can't grow, and you can use an appropriately sized number.
But in situations where you can't restrict, and the number's going to keep on growing...You can't just hope it won't top out. Err on the side of caution.
Well, IPv4 would be considered a bad example by a lot of people, because of how quickly we ran into problems with the size of the address space.
The thing with IP addresses is that they don't just keep incrementing...There is a hard limit on how many you get, even for an internal subnet, though it's unlikely anyone would ever max one out. If they did just keep incrementing, the internet would flop because the system would be re-assigning addresses to different people all the time. As a semi-relevant aside, the number in the expansion that over-flowed was the equivalent (in actual numbers) to a 192.0.0.0 subnet.
I did read it. I even responded to it before I responded to you.
Prefixing, in my mind, is the wrong word for what they did...They started numbering at FF000000 or whatever, assuming it'd never roll over. So first off, that's just dumb. You should never start an incrementing counter from anything but zero...To point at your original argument, they used way the hell more space than they needed, because, in their minds, all they were ever going to need was FFFFFF, not FFFFFFFF.
Second, it's still a size issue. Wouldn't have been a size issue if they'd started at 00000000 (4,294,967,296 possible objects), I agree, but they didn't, so they only left themselves 16^6 (16,777,216) possible objects, and they ran out at high levels. At that point they needed to look at the number, and make damn sure that they weren't ever going to need more...Just from my experience, looking at 16,777,216, I wouldn't trust it for a second. If you're still in the 10's of millions, you're probably going to have problems at some point with a number that continues to grow over the runtime of a program that runs for 100+ hours.
But the coder looked at it and said, "Whoa, any bigger, and I'll have to go to 64 bit...I guess this will be big enough." And now they have a problem. It's not that big a deal, but it's something that could have been prevented.
Useless? Maybe. But how about all that water above it, which is moving all the time?
If it really does turn out to be practical for mass power generation, the oceans would seem to be the best place...They're the closest thing this planet has to a perpetual motion machine, aside from the other ocean above it (the atmosphere).
But this isn't graphics code...This is unique object identifiers. With graphics you know how big all the numbers are going to be! You set hard limits on all your rendering, and you're done. If your code isn't set to render past a certain point, it just won't...If you're set up to only process X vectors, it doesn't matter if the system is capable of more...And moreover, nothing grows in graphics processing. You process the same level all the way through...If the system has to do more work with a series of frames, dealing with shadows, and objects and funky light effects, stuff slows down, but that frame is the exact same "size" in terms of bits as all the previous frames.
In this situation, they're just storing object information. Not visual, just existence. And their number is too small...Hell, the patch that was released just adds some zeros on the end.
This is exactly what I'm talking about...People being stingy with the numbers because they think, in their minds, that all big numbers slow things down. Sometimes, big numbers are your friends.
Wow, that's incredibly short sighted of them...I've seen crap like that before, working on databases built by amateurs. Like a lookup table that doesn't have a "flag" to tell the query which dataset the entries belong to, but instead a situation where the original designer just incremented the key by an arbitrary amount, e.g Rate codes are 1-999, product_codes are 1000-1999, etc, so when the 1000th rate code is added, it writes over the first product code, and chaos ensues.
You should never make the "size" of a variable part of it's identifying factor.
Pssh, they used some dinky variable type like "short", assuming that they'd never need more. If they'd used 32, they'd be fine right now.
Either way it's sloppy. You should never have anything in your code that just keeps growing every time you run the code, unless you're keeping time or something...Because this issue is continuing after they stop and start the game...It's saving this crap on the hard drive somewhere, and that's just damn sloppy.
So the number field they chose to represent the key for these objects was too small, so after a period of time it fills up and causes unstable behavior?
Who says programmers never learned from Y2K?
I did some Y2K work in Y1.998K, and it's stuck with me...All my auto-numbering keys are as big as I can make 'em. Any number that grows, I figure out the largest possible size that number could be, and then put it in a datatype that's capable of hold a number at least twice as big.
Sure it's a waste of space, but on a small system, the performance hit is negligible, and on a large system, the odds are higher that they'll run out of numbers! When you try and optimize variable size in situations like this, you end up with problems like this...
I used to compete in rifle while I was still in High School, and this was in South Carolina, where it's really not a good idea to leave bullets in your car during the daytime. Eventually I badgered the principal into allowing me to drop off my ammo in the school office where they would lock it up in the damn safe, of all things, but they complained if I ever brought more than one box (two boxes took up about the same amount of space as a big paperback book), and it just got to be such a hassle, that I just started swinging by Wal-Mart on the way out of town and buying ammo there.
The first time I attempted to suggest that I might want to bring a gun case onto school property I thought everyone would completely lose their minds...This is in the late 80's and early 90's, years before Colombine, and the very idea of a gun on school property, even a single-shot target rifle in a locked case with no ammo, freaked their tiny minds.
These days, I can only imagine. They'd probably expel you for even competing in the first place...Surely shooting a gun, even in competition, is a sign of a deranged and dangerous personality.
Is it my lawsuit asswipe? I don't have anything to walk away from.
Shrug. Usually they spend about a year trying to get me to sign back up. Sometimes I even do, if the deal is good enough.
I pay the premium for for premium broadband; if they're not going to treat me like I do, then clearly they don't want the money.
Pssh. I didn't start off this way. I'm normal about other things. I never send my food back when the order is wrong, I tip people when I pick up the food myself.
But I've been dealing with ISPs since early early dialup, and they are out to screw the consumer 100%. They provide substandard service, substandard support, and they do it because they know that 90% of their damn customer base can't tell the difference.
Well I can tell the difference, and I am long done dealing with their crap. "Waaa, waaa, I want my money back," that's the cry of the suburban dickhead who'll come crying back in a week because he doesn't know how to set up anything different that what he already had. Me? They can keep the money. They can shove that check where it gives them the most pleasure, and it is a rare rare ISP that looks at what I pay every month and says, "Well that's no loss."
I am the anti-consumer, when it comes to broadband. I will dump all service at the drop of a hat, and switch to a competitor...The whole deal. I mean, cable, phone, I don't care. I have all the equipment to switch between Direct TV and Cable, and Cable and DSL, Phone and IPtelephony (direct TV is bundled through the phone company in my area), and whichever company pisses me off, I dump 'em.
When we moved to a new place, the first thing I did was run cable to my office. Not because I want to watch TV there, but because the first time the phone company pisses me off, I dump 'em.
I think they're scared of me...Last time my service went down (morons from the phone company screwed up my settings working on a neighbors equipment), they told me three days. I told them if it wasn't done before I got home from work the next day, I was calling the cable company...It was done when I went home for lunch.
These days, if you have more than one option, make the most of it...Treat them like the bitches they are, and make them grovel for your money.
I'm just saying why they think they have a case. Pull the stick out of yer ass, I'm not their lawyer, you don't have to argue it with me.
I picked my frequent shopper card up out of the parking lot in front of the grocery store, so while it is attached to a real name and address, god alone knows whose.
Eh. They're also faking up the I/O, blah, blah, blah.
I don't think this is the best way to go about it...If it were me, I'd just beef up my monitoring software, and make sure people understood that there would be a zero tolerance policy for this sort of thing. Someone else also mentioned the 14 day free trial accounts, and how useful they were to bot farmers...It'd kill their profit margin if they had to buy a new copy of the game every time they got banned.
Shadow priest? Fury warrior? Balance or Feral Druid? Enhance or Elemental Shammy? Even the Retrib Pally can be nasty, and that's fun to watch because no one ever expects the pally to be able to unleash the whoopass.
My main's a druid, and every now and again I respec back to Balance just so I can repeatedly rape rogues and other ranged types. Best spec against mages is feral...Frost nova is worthless against a druid, and blink is no better if you've got charge.
The four classes you talk about are all good pvp classes...Warriors are extremely solid in pvp if they're specced correctly, and shadow priests are pretty damn tough as well. But both of those classes are flat godlike in pve, where the other 4 are all interchangable.
I've even seen pvp spec pallies who kick ass.
But there is a certain type of person who infests the forums, and is absolutely convinced that all the people who beat them in pvp are just playing an unbeatable pvp class, and it's nothing to do with them.
Any class, with a good spec and good gear can be competitive in pvp or pve if the person running it is good. If you're a hybrid or a support class, you shouldn't expect to always rule the 1v1, because that's not your role.
Do you even play Wow? Characters are balanced over all in that there is no super amazing, best character ever, but individual characters have individual strengths.
At any rate, this has nothing to do with cheating.
Yea. I've played games that dealt with botting that way...Where they reset you to zero on whatever you were botting.
Frankly I'm fine with that. It's not like it's costing 'em anything; time spent watching a bot level for you doesn't count.
More like wishful thinking.
.safe site."
.xxx tld, that makes perfect sense, because it's descriptive of the content. .safe isn't descriptive of crap...You know there will be unsafe .safe sites.
.safe? How about .stupid, or .unsafe?
"Must be safe, it's a
I can see a reason for a
When I was young and full of myself, I used to set up my security systems to "talk smack" when I foiled cracking attempts...Took me only a very little amount of time to realize that this sent the wrong message, because when you frame it in the terms of a challenge, the crackers dust off their A game to make you eat your words.
I won't play an online game that has a lot of cheating. I just won't do it...Lot of people mentioned Diablo I, and that's a good example of a game whose online play was completely ruined by cheating.
So I approve of things like Warden that make sure the game code's not being tampered with...It's the price you pay to play a game that's not overrun with hacks. And I don't have any problem with draconian EULA's enforcing that policy.
Seems like, in this situation, it would be easier to just use the monitoring software they already have in place to shut the game down in the presence of a bot. You'll never keep ahead of the bleeding edge, but you'll keep ahead of the vast majority of users.
Unless you can point out where the DMCA says anything about bots.
Did your mother drop you on your head? This has nothing to do with bots. It has to with whether or not the people who write the bot software are allowed to manipulate the game code in memory. Blizz says no, and says that it's a copyright violation, which is at least arguable, if over-broad.
Oh whatever. A lot of people get enjoyment out of the game already...in those terms its a great success; you'll never be able to make it so exquisitely enjoyable that no one will want to cheat.
The whole idea that cheaters are a game flaw is absurd; if a game has goals, there are people who will want to take a shortcut. They'll do it for greed, they'll do it because they're lazy, and they'll do it because they want recognition that they haven't earned.
What's the solution? To have a game with no goals? It'd be like Tetris but you couldn't have a score, because then people might want to cheat for a higher score. Couldn't even have levels, because people might want to cheat to say they got to a higher level!
Honestly, I prefer it; the fewer cheaters, the better the game. The people in this case who are screaming about a "right to privacy" are mainly just people who want to try and hack the system, and I don't have much sympathy.
This is the DMCA. The law itself is a gross abuse, and I think this falls pretty solidly under the anti-circumvention provisions.
That being the case, it's hard to see why Blizzard wouldn't use the law to do what it's designed to do.