গেমগুলির অটোমেটেড টেস্টিং [বন্ধ]


54

গেমগুলির স্বয়ংক্রিয় পরীক্ষার পদ্ধতি রয়েছে?

প্রকল্প সম্পর্কিত প্ল্যাটফর্ম এবং প্রকারের মতো প্রাসঙ্গিক তথ্যের সাথে নির্দিষ্ট অভিজ্ঞতাগুলির প্রশংসা করা হয় যদি তা স্পষ্টকরণে সহায়তা করে।

উত্তর:


74

এক ব্যক্তি স্বতন্ত্র খেলা। এটি ধ্বংসাত্মক ভূখণ্ড সহ একাধিক প্লেয়ার ট্যাঙ্ক খেলা ছিল এবং ধ্বংসাত্মক ভূখণ্ড এবং সংঘর্ষের কোডটি কিছুটা ফাঁকা প্রমাণিত হয়েছিল।

আমি কিছু মৌলিক বোবা এআইগুলিকে কারচুপি করে শেষ করেছি ("বোবা" দ্বারা, যার অর্থ "একেবারে মূর্খ" - এলোমেলোভাবে তারা "শত্রু ট্যাঙ্কের দিকে চালনা", "শত্রু ট্যাঙ্ক থেকে দূরে দূরে") এবং "এলোমেলো পথে চালনা" বেছে নেবে ", এলোমেলোভাবে মূল অস্ত্র গুলি চালানোর সময়) এবং কীপ্রেসগুলি রেকর্ড করার সময় সর্বাধিক ফ্রেমরেটে গেমটি খেলতে হবে। আমি প্রায় 10-15x রিয়েলটাইম পেয়েছি। কোডটি ভারীভাবে দৃserted়ভাবে বলা হয়েছিল, সুতরাং যদি কিছু ভুল হয়ে যায় তবে এটি একটি ত্রুটি প্রতিবেদন এবং প্রাথমিক এলোমেলো বীজ সহ পুরো কীপ্রেস লগকে ডিস্কে ফেলে দেয়। আমি তখন গিয়ে ঠিক ঠিক মতো ডুপ্লিকেট করতে কিপ্রেস লগটি পুনরায় খেলতে বা ত্রুটি প্রতিবেদন থেকে কেবল ডিবাগ করতে পারি।

আমি এটি আক্ষরিক কয়েক মাস ধরে অবিচ্ছিন্নভাবে চলতে রেখেছি। শুরুতে এটি দুর্ঘটনা ছাড়াই খুব কমই এক ঘন্টা পেত I আমাকে সেখানে বসে এক সপ্তাহ বাচ্চাটি করতে হয়েছিল, প্রতিদিন বেশ কিছু অস্পষ্ট বাগ মারা হয়েছিল। অবশেষে এটি এমন এক পর্যায়ে পৌঁছে গেল যেখানে এটি ব্যর্থতার মধ্যে এক সপ্তাহ ধরে চলছিল, যা ক্রাশে প্রায় 1500 প্লেয়ার ঘন্টা অনুবাদ করে।

এটি অমূল্য ছিল এবং আমি আন্তরিকভাবে এটি সুপারিশ করি।


1
সত্যিই চতুর! হ্যাঁ, কীলগটি খাঁটি জয়।
ডেভিড ম্যাকগ্রা

1
আমি বিভ্রান্ত: "কিছু মৌলিক বোবা এআইসিকে কারচুপি করা" এবং "রেকর্ডিং কিপ্রেস" - কে কী চাপছেন? আমি ভেবেছিলাম আপনি কোনও মানুষ ছাড়া আপনার এআই নিজেই খেলতে দিয়েছেন? আপনি কি আপনার এআইকে এপিআই ফাংশনগুলি কল করার চেয়ে কীপ্রেসগুলি অনুকরণ করে গেমটি খেলতে দিয়েছিলেন? এখন যে চতুর হবে!
ডেভ ও।

4
@ ডেভ হ্যাঁ আমি স্বীকার করব যে এটি সম্ভবত বিভ্রান্তিকর। এআইগুলি তাদের সমস্ত আউটপুট সিমুলেটেড কন্ট্রোলারের মাধ্যমে সরবরাহ করার জন্য তৈরি করা হয়েছিল। তারা গেমের রাজ্যটিকে ইনপুট হিসাবে নিয়েছে, তবে কোনও ফ্যাশনে গেমের রাজ্যটি পরিবর্তন করে না। এটি সম্ভবত একটি মাউস ইউআই সহ একটি ভয়ঙ্কর ধারণা হতে পারে তবে পুরো ইন্টারফেসটি গেমপ্যাডগুলির সাহায্যে করা হয়েছিল, তাই এটি কিছুটা কুরুচিপূর্ণ তবে কার্যকরী ছিল। আমি এআই-এর ভার্চুয়াল কী-টিপসগুলি রেকর্ড করেছি এবং ততক্ষেত্রে, বন্ধুদের সাথে এটি পরীক্ষা করার সময় একই কোডটি রিয়েল কিপ্রেসগুলি রেকর্ড করে।
জোর্বাথুত

32

একজন এমএমওর জন্য আমি কাজ করেছি (১০০ টি বিকাশকারী, পিসি ফোকাসড), আমরা বিভিন্ন সাফল্যের সাথে বিশাল আকারের স্বয়ংক্রিয় পরীক্ষার যোগ করার চেষ্টা করেছি। এখানে কি কাজ করেছে:

  • আমাদের স্বয়ংক্রিয় বিল্ড প্রক্রিয়া চলাকালীন প্রাথমিক পরীক্ষাগুলি একটি বিশাল জয় ছিল। এর মধ্যে একটি চরিত্র তৈরি করা, মানচিত্র স্থানান্তর করা, কিছু স্ক্রিপ্টযোগ্য UI পরীক্ষা চালানো এবং প্রত্যাশিত আচরণ সন্ধানের মতো কাজ অন্তর্ভুক্ত রয়েছে। এটি প্রকৃতপক্ষে বাকি কোম্পানির কাছে যাওয়ার আগে এটি প্রচুর বাগ পেয়েছিল।
  • সার্ভার অবকাঠামো শেষে, আমরা বিভিন্ন স্বয়ংক্রিয় পরীক্ষার একটি গোছা বিকাশ করেছি যা সাধারণ এমএমও সার্ভার লেনদেনের অনুকরণ করে। পারফরম্যান্সের তুলনা করতে বা সুরক্ষা নিশ্চিত করতে আমরা বিভিন্ন পরিস্থিতিতে এগুলি খেলতে পারি। সময়ের সাথে সাথে এই পরীক্ষাগুলি আরও বেশি নির্ভুল হয়ে ওঠে যতক্ষণ না এটি সরাসরি রেকর্ড করা ডেটার প্লেব্যাকে পরিণত হয়
  • আমরা এমন একটি "নকল খেলোয়াড়" লিখেছিলাম যা এলোমেলোভাবে বিশ্বজুড়ে ঘোরাফেরা করবে, ঝাঁপিয়ে পড়বে, হত্যা করবে এবং আড্ডায় এলোমেলো কথা বলবে। এটি বিপুল সংখ্যক পদার্থবিজ্ঞান এবং অবকাঠামোগত সমস্যা পেয়েছে।

কি কাজ করে না:

  • আমরা অটোমেটেড বিল্ডারের সাথে কিছু খুব নির্দিষ্ট লড়াই-ভিত্তিক স্বয়ংক্রিয় পরীক্ষা যুক্ত করার চেষ্টা করেছি, তবে এটি মূলত কখনই কার্যকর হয়নি। এটি কার্যকর হওয়ার পরে প্রায় 3 দিন কাজ করবে, যতক্ষণ না ডিজাইনার বা শিল্পী কিছু পরিবর্তন করে এবং পরীক্ষা ব্যর্থ হয়, বিল্ড ব্যর্থ অ্যালার্মগুলি ছুঁড়ে ফেলে। 90% সময় এটি একটি আসল সমস্যা ছিল না। এই পরীক্ষাগুলি খুব ভঙ্গুর ছিল, এবং প্রকৃতপক্ষে নির্দিষ্ট শক্তির সাথে একটি নির্দিষ্ট মানচিত্রে নির্দিষ্ট গেমপ্লে পরীক্ষা করা অভাবনীয় হতে পারে
  • আমরা একটি অটোমেটেড পারফরম্যান্স টেস্ট বাস্তবায়নের চেষ্টা করেছি যা এক সপ্তাহ আগে রেকর্ড করা পারফরম্যান্সের সাথে ক্লায়েন্টের পারফরম্যান্স (গড় এফপিএস, ইত্যাদি) তুলনা করবে। এটি আমরা প্রায়শই ডেমোস হিসাবে ব্যবহার করেছি কারণ এটি মোটামুটি ভঙ্গুর হয়ে পড়েছিল এবং এটি পরীক্ষা করা কার্যকর ছিল যে পারফরম্যান্সে আসল ক্ষতি বা পরীক্ষা প্রক্রিয়াটির কোনও পার্শ্ব প্রতিক্রিয়ার কারণে মন্দা হয়েছিল কিনা।

18

3 ডি লড়াইয়ের সাথে একটি 4 এক্স কৌশল খেলায় কাজ করা (মনে করুন হোমওয়ার্ল্ড মাস্টার্স অফ ওরিওনের সাথে মিলিত হয়েছে) যা দুর্ভাগ্যক্রমে কখনই দিনের আলো দেখেনি কারণ সংস্থাটি তহবিলের বাইরে চলে গেছে ..

আমি সর্বদা নিশ্চিত করেছিলাম যে আপনি মানব খেলোয়াড় ছাড়াই গেমটি খেলতে পারেন যাতে আমরা রাতারাতি খেলাটি চালিয়ে যেতে পারি।

আমরা 3 ডি যুদ্ধ বন্ধ করতে পারি (এলোমেলো ফলাফলে সরলীকৃত) এবং আমরা এআই কৌশল ইঞ্জিনটি খেলেই চলে এসেছি। এটি অসংখ্য বাগ এবং সমস্যা খুঁজে পেয়েছে। কেবল স্টপার বাগগুলিই দেখান না তবে কৌশল বাগগুলি যেখানে (যেমন) এআই কৌশলগুলি অচল হয়ে পড়ে এবং "সঠিক জিনিস" না করে বাকী সংখ্যাগুলি ব্যয় করবে। এই ধরণের বাগগুলি কেবল "গেম খেলছে" স্পট করা কঠিন ছিল।


এইচএম, আমি এটিকে স্বয়ংক্রিয় পরীক্ষা হিসাবে ভাবিনি - তবে আমি অনুমান করি আপনি ঠিক বলেছেন। আমি কয়েক বছর ধরে একই জিনিসটি করে আসছি, কখনও কখনও সেভাবে ভাবিনি।
mmyers

13

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

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


8

আমাদের একটি ওপেনওয়ার্ল্ড শ্যুটার ছিল (x360, পিএস 3, পিসি) যা বিল্ড সার্ভারে দ্রুত ধূমপান ব্যবহার করেছিল - এটি গেমটি লোড করে, সামনের প্রান্তটি দিয়ে এগিয়ে যায়, [অবতার] সামনে এগিয়ে যায়, স্ক্রিনশট ফেলে দেয় এবং বেরিয়ে যায়। যদি cctray সাফ প্রস্থানটি সনাক্ত করে তবে বিল্ডটি সফল হয়েছিল।

আমরা প্রকল্পের শেষ বছরের জন্য এটি চালিয়েছি, এবং একটি টিম আকারের সাথে dev 100 ডিভস।

এটি শোগোস্টপিং বাগগুলি ধরার ক্ষেত্রে কার্যকর ছিল তবে একটি বিল্ড তৈরি করা সহজ ছিল যা ধূমপায়ী হয়ে গেছে তবে বেশিরভাগ "আসল" স্তর ব্যর্থ হয়েছিল, বা মাল্টিপ্লেয়ারে কাজ করেনি, বা এআইকে নক করেছে, তাই এটি নিখুঁত ছিল না। এটা অবশ্যই মূল্যবান ছিল।

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


6

ক্রাইসিস 2 এর বিকাশের সময় অটোমেটেড টেস্টিংয়ের সাথে আমার অভিজ্ঞতা এখানে পাওয়া যায়: http://yetanothergameprogrammingblog.blogspot.com/2010/06/aaa-automated-testing.html

সারাংশ:

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

2

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

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

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


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