In an MMO, and I'm trying to collect data about user behaviors for the purpose of tweaking the game rules to achieve maximum user satisfaction.
Clearly one way to do it is to hand-roll specific things into an application, much like one might use
Console.WriteLine() to view the contents of a variable, or the
StopWatch() class to see how long something takes to execute. But you can use a profiler in lieu of StopWatch, and you can use a debugger in lieu of WriteLine.
How should I collect my data? Are there generalized techniques for instrumenting an application to observe user behavior, or some form of code instrumentation technique?
Also, I'm only interested in collection techniques; you can assume that I already know how to transmit, store and analyze said data.