এমএমওতে ব্যবহারকারীর আচরণের ডেটা কীভাবে সংগ্রহ করব?


9

একটি এমএমওতে এবং আমি সর্বাধিক ব্যবহারকারীর সন্তুষ্টি অর্জনের জন্য গেমের নিয়মগুলি টুইট করার উদ্দেশ্যে ব্যবহারকারীর আচরণ সম্পর্কিত ডেটা সংগ্রহ করার চেষ্টা করছি।

স্পষ্টতই এটি করার একটি উপায় হ'ল নির্দিষ্ট অ্যাপ্লিকেশনগুলিতে হ্যান্ড রোল করা, যেমন Console.WriteLine()কোনও ভেরিয়েবলের বিষয়বস্তু দেখতে কেউ ব্যবহার করতে পারে বা StopWatch()শ্রেণিটি পরীক্ষা করতে কতক্ষণ সময় নেয় তা দেখার জন্য। তবে আপনি স্টপওয়াচের পরিবর্তে কোনও প্রোফাইলার ব্যবহার করতে পারেন, এবং আপনি WritLine এর পরিবর্তে একটি ডিবাগার ব্যবহার করতে পারেন।

আমি কীভাবে আমার ডেটা সংগ্রহ করব? ব্যবহারকারীর আচরণ পর্যবেক্ষণ করার জন্য কোনও অ্যাপ্লিকেশনটি উপকরণের জন্য সাধারণ কৌশলগুলি রয়েছে, অথবা কোড উপকরণের কৌশলটি কোনও রূপ রয়েছে?

এছাড়াও, আমি কেবল সংগ্রহের কৌশলগুলিতেই আগ্রহী; আপনি ধরে নিতে পারেন যে আমি ইতিমধ্যে কীভাবে সঞ্চারিত তথ্য সংরক্ষণ, সঞ্চয় এবং বিশ্লেষণ করতে জানি।

উত্তর:


14

আমরা ব্যবহারকারীর ক্রিয়াকলাপ নিরীক্ষণের জন্য কমান্ড ওরিয়েন্টেড ইন্টারফেস / আর্কিটেকচার ব্যবহার করছি ।

এর অর্থ সার্ভারের কাছে অনুরোধ, সার্ভারের পক্ষে কমান্ডগুলি উপস্থাপন করে এমন শ্রেণীর উদাহরণগুলি ইনস্ট্যান্ট করে তুলুন (ব্যবহারকারী পারমাণবিক ক্রিয়াটি করতে পারেন) user

উদাহরণস্বরূপ, আসুন যাক ব্যবহারকারী আইটেম স্টোরে একটি ক্রয় করেন:

//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);

এখন আমরা লগিং / অডিটিং বৈশিষ্ট্যগুলি যুক্ত করি cmdExecuterযা সমস্ত কমান্ডের ক্ষেত্রে প্রযোজ্য। এইভাবে কোনও কোড সদৃশ হওয়ার সামান্যই নেই এবং আমরা নির্দিষ্ট কমান্ড শ্রেণীর ধ্রুবকগুলি পুনরায় কনফিগার করে এবং / অথবা সেমিডিএক্সেক্সটারকে সংশোধন করে নিরীক্ষণ বন্ধ করতে পারি।

এটি জিনিসগুলিকে সংগঠিত রাখতে সহায়তা করে। আমরা বর্তমানে প্রতিটি "গুরুত্বপূর্ণ" কমান্ডের জন্য একটি ডাটাবেস রেকর্ড তৈরি করি। এটি ট্র্যাক আচরণে সহায়তা করে যা আমাদের কাছে আকর্ষণীয়।

মার্টিন ফওলারের আরও পঠন
কমান্ড-ওরিয়েন্টেড ইন্টারফেস


ধন্যবাদ আমি যা খুঁজছিলাম তার শিরাতে in
রবার্ট হার্ভে

@ রবার্টহারভে (আপনি যদি এটি ব্যবহার করার সিদ্ধান্ত নেন) কমান্ড ক্লাসগুলি স্লিম রাখুন, সেগুলি সর্বোপরি পদ্ধতি। তাদের খুব চর্মসার হওয়ার কথা।
আতুরস্যামস

সুবিধাটি হ'ল আমরা দেখতে পাচ্ছি যে এক্সপি / সেকেন্ডে স্পাইকের সময় ব্যবহারকারীরা কীভাবে বাফ প্রয়োগ করেছিলেন এবং কী দানবেরা লড়াই করেছিলেন। কখনও কখনও আমাদের কিছু ডেটা মুছতে হয় তবে বর্তমানে খুব বেশি কার্যকলাপ নেই তাই এটি আমাদের খুব বেশি প্রভাবিত করে না।
আতুরস্যামস

7

"কৌশল" এখানে এত সহজ যে এটি প্রায় ডাকা প্রাপ্য নয়: আপনি কেবল গেম সিস্টেম থেকে ডেটা রেকর্ড করেন যা আপনার মনে হয় প্রাসঙ্গিক।

আপনি কীভাবে সেই ডেটা রেকর্ড করেছেন (কোনও ডাটাবেসে, ফাইলগুলিতে, যাই হোক না কেন) এখানে আলোচনা করার পক্ষে খুব বিস্তৃত (এবং কৌশলগুলি এবং নিদর্শনগুলি কোনও ক্ষেত্রে বিশেষত গেম-ডেভেলপমেন্ট নির্দিষ্ট নয়, এটি এসও-তে আলোচনার জন্য আরও উপযুক্ত করে তোলে) কোন সিস্টেমগুলি প্রাসঙ্গিক তা নিয়ে প্রশ্ন । এই প্রশ্নের উত্তর দেওয়ার জন্য কোনও চতুর স্বয়ংক্রিয় কৌশল নেই; এটি কৃত্রিম বুদ্ধিমত্তার বেশ কীর্তি হবে।

কোনও সার্ভারের উপাদান রয়েছে এমন কোনও গেমের সাথে আপনি যে জিনিসটি নিশ্চিত করতে চান সেটি হ'ল সার্ভারের সমস্ত লগিং করা উচিত। ক্লায়েন্টের কাছ থেকে পাওয়া কোনও কিছুর উপর নির্ভর করা যায় না, এবং বিশেষত যদি আপনি এই ডেটাটি গেমের পরিবর্তনগুলি উপস্থাপন করতে ব্যবহার করতে যাচ্ছেন তবে আপনি চান না যে খেলোয়াড়রা এটির সাথে টেম্পার করতে সক্ষম হন।

ক্লায়েন্টের কেবলমাত্র পরিসংখ্যান রেকর্ড এবং প্রেরণ করা উচিত যা সার্ভারটিতে সাধারণত অ্যাক্সেস থাকে না। উদাহরণস্বরূপ আপনি ইউআই ক্লিকের তাপের মানচিত্রগুলি রেকর্ড করতে চান, এটি সম্ভবত ক্লায়েন্টের পক্ষে কেবল সম্ভব।


2

কোনও এমএমওতে ইতিমধ্যে ব্যবহারকারী কোথায় চলেছে, কোন অনুসন্ধানগুলি নেয় এবং কোন সরঞ্জাম সে সার্ভারে প্রেরণ করে সে সম্পর্কে আপনার কাছে ইতিমধ্যে ডেটা রয়েছে।

আপনি যে ডেটাতে আগ্রহী হতে পারেন তা হ'ল তারা বিভিন্ন গুইগুলি কীভাবে ব্যবহার করে, কতক্ষণ তারা স্ট্যাট এবং ইনভেন্টরি স্ক্রিন খোলা রাখে। উদাহরণস্বরূপ আপনি মাউস বনাম কীবোর্ডের সাহায্যে কোনও বৈশিষ্ট্য সক্রিয় হওয়া সংখ্যার রেকর্ড করতে পারেন।

একটি গুরুত্বপূর্ণ বিষয় হ'ল ব্যবহারকারীকে গোপনীয়তা বিধিমালা মেনে চলার জন্য (অ-সমালোচক) ডেটা সংগ্রহের অপ্ট-আউট (বা সংগ্রহটিকে অপ্ট-ইন করা) করার অনুমতি দেওয়া। এবং আপনার খেলোয়াড়দের কিছু ব্যান্ডউইদথ বাঁচাতে গেম সেশন / পরের ঘন্টা সময় কী ডেটা রেকর্ড করা উচিত তা সার্ভারকে সিদ্ধান্ত দেওয়ার অনুমতি দেয়।


1
এবং নির্দিষ্ট অনুসন্ধানের জন্য সাফল্য এবং ব্যর্থতার হারগুলি ভুলে যাবেন না, গেমের অংশগুলি খুব শক্ত বা খুব সহজ কিনা তা জানার ভাল উপায়।
30:38
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.