W MMO staram się zbierać dane o zachowaniach użytkowników w celu ulepszenia zasad gry w celu osiągnięcia maksymalnej satysfakcji użytkownika.
Najwyraźniej jednym ze sposobów jest ręczne zwijanie określonych rzeczy do aplikacji, podobnie jak można użyć Console.WriteLine()
do wyświetlenia zawartości zmiennej lub StopWatch()
klasy, aby zobaczyć, ile czasu zajmuje wykonanie. Ale zamiast StopWatch możesz użyć profilera, a zamiast WriteLine możesz użyć debuggera.
Jak powinienem zbierać moje dane? Czy istnieją uogólnione techniki oprzyrządowania aplikacji w celu obserwowania zachowania użytkownika lub jakieś techniki oprzyrządowania kodu?
Poza tym interesują mnie tylko techniki zbierania; możesz założyć, że już wiem, jak przesyłać, przechowywać i analizować te dane.
„Technika” jest tutaj tak prosta, że prawie nie zasługuje na taką miano: po prostu rejestrujesz dane z systemów gier, które uważasz za istotne.
Sposób , w jaki zapisujesz te dane (do bazy danych, do plików, cokolwiek), jest zbyt szeroki, aby omawiać tutaj (a techniki i wzorce w żadnym wypadku nie są szczególnie specyficzne dla rozwoju gry, dzięki czemu lepiej nadają się do dyskusji na temat SO), podobnie jak pytanie, które systemy są istotne. Nie ma sprytnych automatycznych technik odpowiadania na te pytania; to byłby wyczyn sztucznej inteligencji.
W grze, w której znajduje się komponent serwera, musisz się upewnić, że serwer powinien rejestrować wszystko, co może. Nic, co otrzymujesz od klienta, nie jest godne zaufania, a zwłaszcza jeśli zamierzasz używać tych danych do dostosowywania zmian w grze, nie chcesz, aby gracze mogli ją modyfikować.
Klient powinien rejestrować i przesyłać tylko te statystyki, do których serwer normalnie nie miałby dostępu. Na przykład chcesz nagrywać mapy cieplne kliknięć w interfejsie użytkownika, prawdopodobnie jest to możliwe tylko na kliencie.
źródło
W MMO masz już dane o tym, dokąd zmierza użytkownik, jakie zadania bierze i jakiego sprzętu używa na serwer.
Inne dane, które mogą Cię zainteresować, to sposób, w jaki korzystają z różnych GUI, jak długo utrzymują otwarte statystyki i ekrany ekwipunku. Możesz na przykład zapisać liczbę aktywacji funkcji za pomocą myszy w porównaniu z klawiaturą.
Jednym z ważnych czynników jest umożliwienie użytkownikowi rezygnacji (lub umożliwienia gromadzenia danych) (niekrytycznego) gromadzenia danych, aby zachować zgodność z przepisami dotyczącymi prywatności. Aby serwer mógł zdecydować, jakie dane powinny być rejestrowane podczas sesji gry / następnej godziny, aby oszczędzić graczom przepustowości.
źródło