Re: D3 Achievements
Everything else that takes time has a value. When the only value present in a system is that it can be turned off, then it is a waste of resources.
Says you. I say there is value in an AS because I like Achievements. So, why do you insist in this line of thought where you can read on this thread a lot of players saying they would like or they wouldn't mind having an AS?
Aren't you just forgetting that there are also other people playing the game and they too have a saying. Why do you insist there is no value in AS? At least, I take the stance I wouldn't mind either way; Diabo 3 with or without AS is ok with me.
Obviously timers and counters will be attached to these - but how? This isn't as simple as counting how many iterations of a while loop is run through - this is tracking an event, series of events, frequency of events, etc.
err... That's exactly what an observer class and its helper class are. They
observe changes in the system and some of these changes trigger the report of these events to other classes. There's no magic involved. And no complex code. Certainly not when it comes to an AS system. Even in Artificial Intelligence where the observer pattern can be used to support more complicated Publisher/Subscriber relationships, this is essentially pretty straightforward code. Certainly within the capabilities of someone willing to develop for a company like Blizzard.
Code:
If I have an achivement 'kill two supermonsters within 30 seconds of each other', how can we do that? Well, we don't need a timer, we just need to inform the AS of the timestamp whenever a supermonster is killed, and have it perform logic based on its last known timestamp. If we're using an observer pattern, then we need to modify this 'enemy dies' class to report to the AS.
No. We don't need to do that. The only thing needed is for the supermonster class (assuming this would be the choice for the Subject class on the observer pattern) was to include on its list of observer classes (a list that already exists for other game logic) this one more observer meant to support AS. Severing this link has no consequences in the game. So, removing the observer class and all its logic, shouldn't have no effect on the game since any programmer serious about their work, will never allow for an observer class to have an impact on the Subject.
Furthermore, the actual addition of the observer class to the Subject's observers list is not done by the subject. It's usually done at object creation by another pattern called Factory. The whole system can be (and is, or else the programmer would be in trouble) perfectly encapsulated and perfectly transparent.
A weekend assignment in a small program, sure. How much info in D3 are we going to track? If this thing runs on its own thread (with all the data it gets I am fairly sure it would), then what of the overhead involved? How do we optimize this? (for a PC game, we want the biggest hardware range possible, so sub-optimal algorithms are a high concern).
Uh? There is no way an AS will have a performance impact on a system beyond the most insignificant of digits. Only on mission critical systems one would have to evaluate the impact of an Observer class and its helper classes on the whole system. Anything that turns an observer class supporting an AS into a bootleneck has to be a bug. If you are a programmer you should know this. If you are not a programmer but closely related to the development process, you should know that code optimization is dealt only later and as a whole.
But above all, this is simply a system that increments counters and updates/ resets timers. We are talking of processor cycles in the hundreths at most. This is absolutely meaningless in today's typical window of thousands of trillions of clocks per second.
Achievements have been implemented in games back in the 80's Commodore and ZX Spectrum with no impact whatsoever. We are talking of 8 bit processors and memory spaces totaling 48k! What impact exactly do you think they will do today? Heck! And I even know how to do it. Still recently have been learning how to program for the Z80 as part of my ZX Spectrum nostalgia feeling. I love it.
Hold on, when did we finish the engine?
And what do you think an engine actually is? Don't mistake the idea of complex software structures like 3D engines, AI, or Physics engines, as the measure for any other Engine. Those are actually the exception.
A software engine is an encapsulated block of functionality. It's size or complexity is irrelevant. A software program, and a game no less, can have thousands of different engines. Any AS will have its own engine. Often no more than a handful of classes.
It doesn't interfere with the game mechanics, but the game mechanics interfere with it. Any change to the logic of the game might mean the AS has to change.
Ok. You are definitely not a programmer. Or at least not one used to handling the finer aspects of Object Oriented Programming.

It's ok. Really. But it's important for me to establish the boundaries of this conversation. Where I can go to be made understood and where I shouldn't go, or risk not being understood.
One of the chief objectives of object oriented programming (OOP) is to achieve encapsulating at the lowest (as in, best) possible level. Design Patterns, of which the Observer pattern is one example, are specially designed to guarantee this level of Code Safety.
A programmer, and a professional programmer especially, better adhere to what is known in the area as Best Practices for OOP of fail miserably at their profession. A well defined Observer Pattern will not suffer from lack of encapsulation. And thus will not force the rest of the code into the type of dependencies that could have any programmer out of their job.
This is playtesting the IMPACT of a WORKING achivement system. There is still plenty of testing in getting the achivement system working 100%.
Some. Not much. It's a rather simple system. It's hard for me to think of anything much simpler than an Achievement system.
So speculation is 100% useless because it cannot be confirmed?
No. But turning speculation into a irreparable truth is a gross abuse.
If you tell me there are chances this system would take a lot of time to develop and so you feel maybe it's a bad thing to do, I could try and argue over that type of speculation in less aggressive terms as I did some posts back.
But you went a few steps beyond that. Heck, you took the whole extra mile. You tried to turn nothing more than an hypothesis into an solid argument against the development of an AS. That is unfair.
Mostly because when you are questioned, you then go on and force on me the proof necessary to disproof your false argument, when you yourself make no effort to support it. And so, I'm force into two walls of text just to try and show you that:
1. It's not much work
2. It's not demanding in terms of game design
3. You cannot say, and never will be able to say, exactly how much an impact this would have on Blizzard's currenr Diablo 3 schedule.