Tôi nên thu thập dữ liệu hành vi người dùng trong MMO như thế nào?


9

Trong MMO và tôi đang cố gắng thu thập dữ liệu về hành vi của người dùng với mục đích điều chỉnh các quy tắc trò chơi để đạt được sự hài lòng tối đa của người dùng.

Rõ ràng một cách để làm điều đó là cuộn các thứ cụ thể vào một ứng dụng, giống như người ta có thể sử dụng Console.WriteLine()để xem nội dung của một biến hoặc StopWatch()lớp để xem thời gian thực hiện một cái gì đó. Nhưng bạn có thể sử dụng một trình lược tả thay cho StopWatch và bạn có thể sử dụng trình gỡ lỗi thay cho WriteLine.

Tôi nên thu thập dữ liệu của mình như thế nào? Có các kỹ thuật tổng quát để thiết bị một ứng dụng để quan sát hành vi của người dùng, hoặc một số hình thức của kỹ thuật thiết bị mã?

Ngoài ra, tôi chỉ quan tâm đến các kỹ thuật thu thập; bạn có thể cho rằng tôi đã biết cách truyền, lưu trữ và phân tích dữ liệu đã nói.

Câu trả lời:


14

Chúng tôi đang sử dụng Giao diện / Kiến trúc hướng lệnh để kiểm tra hoạt động của người dùng.

Nó có nghĩa là các yêu cầu đến máy chủ, khiến phía máy chủ khởi tạo các thể hiện của các lớp đại diện cho các lệnh (hành động nguyên tử mà người dùng có thể tạo thành trước).

Chẳng hạn, giả sử người dùng thực hiện mua hàng trong cửa hàng vật phẩm:

//We could have done something like
someShop.sell(item, player); // This function deducts money from the player
                             // and stores the new item in their inventory

//Instead we do this:
$buyItemCmd = new BuyItemCommand(item); // The player is already known from the sessionId
$cmdExecuter.run($buyItemCmd);

Bây giờ chúng tôi thêm các tính năng ghi nhật ký / kiểm toán trong cmdExecuterđó áp dụng cho tất cả các lệnh. Bằng cách này, có rất ít hoặc không có sự sao chép mã và chúng ta có thể tắt kiểm toán, bằng cách cấu hình lại các hằng số lớp lệnh cụ thể và / hoặc sửa đổi cmdExecuter.

Nó giúp giữ cho mọi thứ được tổ chức. Chúng tôi hiện đang tạo một bản ghi cơ sở dữ liệu cho mỗi lệnh "quan trọng". Điều này giúp theo dõi hành vi thú vị đối với chúng tôi.

Đọc thêm
Inteface định hướng chỉ huy của Martin Fowler


Đây là trong tĩnh mạch của những gì tôi đang tìm kiếm, cảm ơn.
Robert Harvey

@RobertHarvey (Nếu bạn quyết định sử dụng cái này) Chỉ cần giữ cho các lớp lệnh mỏng, chúng là phương thức sau tất cả. Họ được cho là rất gầy.
AturSams

Ưu điểm là chúng ta có thể thấy chính xác những gì buff được áp dụng cho người dùng và những quái vật mà cô ấy đã chiến đấu khi có sự tăng đột biến trong xp / s. Đôi khi chúng ta cần xóa một số dữ liệu nhưng hiện tại không có nhiều hoạt động nên nó không ảnh hưởng nhiều đến chúng ta.
AturSams

7

"Kỹ thuật" ở đây đơn giản đến mức gần như không xứng đáng được gọi như vậy: bạn chỉ cần ghi lại dữ liệu từ các hệ thống trò chơi mà bạn nghĩ là có liên quan.

Cách bạn ghi dữ liệu đó (vào cơ sở dữ liệu, vào tệp, bất cứ điều gì) quá rộng để thảo luận ở đây (và các kỹ thuật và mẫu không đặc biệt phát triển trò chơi trong mọi trường hợp, làm cho chúng phù hợp hơn để thảo luận về SO), như là vấn đề hệ thống có liên quan. Không có kỹ thuật tự động thông minh để trả lời những câu hỏi đó; đó sẽ là khá kỳ công của trí tuệ nhân tạo.

Điều bạn muốn chắc chắn với một trò chơi có thành phần máy chủ là máy chủ phải thực hiện tất cả việc ghi nhật ký có thể. Không có gì đáng tin cậy từ khách hàng có thể được tin cậy và đặc biệt là nếu bạn sẽ sử dụng dữ liệu này để điều chỉnh các thay đổi cho trò chơi mà bạn không muốn người chơi có thể can thiệp vào nó.

Máy khách chỉ nên ghi và truyền số liệu thống kê rằng máy chủ thường sẽ không có quyền truy cập. Ví dụ: bạn muốn ghi lại bản đồ nhiệt nhấp chuột UI, điều đó có lẽ chỉ khả thi trên máy khách.


2

Trong MMO, bạn đã có dữ liệu về nơi người dùng sẽ đến, nhiệm vụ anh ta thực hiện và thiết bị anh ta sử dụng được gửi đến máy chủ.

Dữ liệu khác bạn có thể quan tâm là cách họ sử dụng các guis khác nhau, thời gian họ giữ cho màn hình stat và hàng tồn kho mở. Ví dụ, bạn có thể ghi lại số lần một tính năng được kích hoạt bằng chuột so với bàn phím.

Một yếu tố quan trọng là cho phép người dùng từ chối (hoặc thực hiện chọn tham gia thu thập) của bộ sưu tập dữ liệu (không quan trọng) để tuân thủ các quy định về quyền riêng tư. Và để cho phép máy chủ quyết định dữ liệu nào sẽ được ghi lại trong phiên trò chơi / giờ tiếp theo để cung cấp cho người chơi của bạn một số băng thông.


1
và đừng quên tỷ lệ thành công và thất bại cho các nhiệm vụ cụ thể, cách tốt để tìm hiểu xem các phần của trò chơi quá khó hay quá dễ.
jwenting
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.