গেমগুলির স্বয়ংক্রিয় পরীক্ষার পদ্ধতি রয়েছে?
প্রকল্প সম্পর্কিত প্ল্যাটফর্ম এবং প্রকারের মতো প্রাসঙ্গিক তথ্যের সাথে নির্দিষ্ট অভিজ্ঞতাগুলির প্রশংসা করা হয় যদি তা স্পষ্টকরণে সহায়তা করে।
গেমগুলির স্বয়ংক্রিয় পরীক্ষার পদ্ধতি রয়েছে?
প্রকল্প সম্পর্কিত প্ল্যাটফর্ম এবং প্রকারের মতো প্রাসঙ্গিক তথ্যের সাথে নির্দিষ্ট অভিজ্ঞতাগুলির প্রশংসা করা হয় যদি তা স্পষ্টকরণে সহায়তা করে।
উত্তর:
এক ব্যক্তি স্বতন্ত্র খেলা। এটি ধ্বংসাত্মক ভূখণ্ড সহ একাধিক প্লেয়ার ট্যাঙ্ক খেলা ছিল এবং ধ্বংসাত্মক ভূখণ্ড এবং সংঘর্ষের কোডটি কিছুটা ফাঁকা প্রমাণিত হয়েছিল।
আমি কিছু মৌলিক বোবা এআইগুলিকে কারচুপি করে শেষ করেছি ("বোবা" দ্বারা, যার অর্থ "একেবারে মূর্খ" - এলোমেলোভাবে তারা "শত্রু ট্যাঙ্কের দিকে চালনা", "শত্রু ট্যাঙ্ক থেকে দূরে দূরে") এবং "এলোমেলো পথে চালনা" বেছে নেবে ", এলোমেলোভাবে মূল অস্ত্র গুলি চালানোর সময়) এবং কীপ্রেসগুলি রেকর্ড করার সময় সর্বাধিক ফ্রেমরেটে গেমটি খেলতে হবে। আমি প্রায় 10-15x রিয়েলটাইম পেয়েছি। কোডটি ভারীভাবে দৃserted়ভাবে বলা হয়েছিল, সুতরাং যদি কিছু ভুল হয়ে যায় তবে এটি একটি ত্রুটি প্রতিবেদন এবং প্রাথমিক এলোমেলো বীজ সহ পুরো কীপ্রেস লগকে ডিস্কে ফেলে দেয়। আমি তখন গিয়ে ঠিক ঠিক মতো ডুপ্লিকেট করতে কিপ্রেস লগটি পুনরায় খেলতে বা ত্রুটি প্রতিবেদন থেকে কেবল ডিবাগ করতে পারি।
আমি এটি আক্ষরিক কয়েক মাস ধরে অবিচ্ছিন্নভাবে চলতে রেখেছি। শুরুতে এটি দুর্ঘটনা ছাড়াই খুব কমই এক ঘন্টা পেত I আমাকে সেখানে বসে এক সপ্তাহ বাচ্চাটি করতে হয়েছিল, প্রতিদিন বেশ কিছু অস্পষ্ট বাগ মারা হয়েছিল। অবশেষে এটি এমন এক পর্যায়ে পৌঁছে গেল যেখানে এটি ব্যর্থতার মধ্যে এক সপ্তাহ ধরে চলছিল, যা ক্রাশে প্রায় 1500 প্লেয়ার ঘন্টা অনুবাদ করে।
এটি অমূল্য ছিল এবং আমি আন্তরিকভাবে এটি সুপারিশ করি।
একজন এমএমওর জন্য আমি কাজ করেছি (১০০ টি বিকাশকারী, পিসি ফোকাসড), আমরা বিভিন্ন সাফল্যের সাথে বিশাল আকারের স্বয়ংক্রিয় পরীক্ষার যোগ করার চেষ্টা করেছি। এখানে কি কাজ করেছে:
কি কাজ করে না:
3 ডি লড়াইয়ের সাথে একটি 4 এক্স কৌশল খেলায় কাজ করা (মনে করুন হোমওয়ার্ল্ড মাস্টার্স অফ ওরিওনের সাথে মিলিত হয়েছে) যা দুর্ভাগ্যক্রমে কখনই দিনের আলো দেখেনি কারণ সংস্থাটি তহবিলের বাইরে চলে গেছে ..
আমি সর্বদা নিশ্চিত করেছিলাম যে আপনি মানব খেলোয়াড় ছাড়াই গেমটি খেলতে পারেন যাতে আমরা রাতারাতি খেলাটি চালিয়ে যেতে পারি।
আমরা 3 ডি যুদ্ধ বন্ধ করতে পারি (এলোমেলো ফলাফলে সরলীকৃত) এবং আমরা এআই কৌশল ইঞ্জিনটি খেলেই চলে এসেছি। এটি অসংখ্য বাগ এবং সমস্যা খুঁজে পেয়েছে। কেবল স্টপার বাগগুলিই দেখান না তবে কৌশল বাগগুলি যেখানে (যেমন) এআই কৌশলগুলি অচল হয়ে পড়ে এবং "সঠিক জিনিস" না করে বাকী সংখ্যাগুলি ব্যয় করবে। এই ধরণের বাগগুলি কেবল "গেম খেলছে" স্পট করা কঠিন ছিল।
প্রথম ব্যক্তি শ্যুটারে আমি কাজ করেছি (বংশোদ্ভূত 3 - লিনাক্স / ম্যাক / উইন্ডোজ, 1999 সালে দলের 30 জন লোক), ডেমো রেকর্ডিং / প্লেব্যাকের ক্ষমতা অত্যন্ত দরকারী বলে প্রমাণিত হয়েছিল। আমি একটি বিকল্প তৈরি করেছি যেখানে আপনি গেমটি ফ্রেমগুলি সরবরাহ করতে পারে তত দ্রুত ডেমোটিকে প্লেব্যাক করতে পারেন এবং এটি বেশ কিছু জিনিস পরিবর্তিত হওয়ার পরে পারফরম্যান্স যাচাই করার দুর্দান্ত উপায় হয়ে দাঁড়িয়েছে।
এটি রেন্ডারিং সিস্টেমের বাইরেও প্রচুর কোড ব্যবহার করেছে, সুতরাং এটি ছিল একটি দুর্দান্ত বিবেক পরীক্ষা। একগুচ্ছ পরিবর্তন করার পরে আমি গেমপ্লে 10 মিনিটের ডেমো প্লেব্যাকটি চালাতে পারি। অনেক সময় এটি কোনও অঞ্চলে একটি বাগটি ধরবে আমি নিজে যাচাই করার জন্য ভাবিনি।
আমাদের একটি ওপেনওয়ার্ল্ড শ্যুটার ছিল (x360, পিএস 3, পিসি) যা বিল্ড সার্ভারে দ্রুত ধূমপান ব্যবহার করেছিল - এটি গেমটি লোড করে, সামনের প্রান্তটি দিয়ে এগিয়ে যায়, [অবতার] সামনে এগিয়ে যায়, স্ক্রিনশট ফেলে দেয় এবং বেরিয়ে যায়। যদি cctray সাফ প্রস্থানটি সনাক্ত করে তবে বিল্ডটি সফল হয়েছিল।
আমরা প্রকল্পের শেষ বছরের জন্য এটি চালিয়েছি, এবং একটি টিম আকারের সাথে dev 100 ডিভস।
এটি শোগোস্টপিং বাগগুলি ধরার ক্ষেত্রে কার্যকর ছিল তবে একটি বিল্ড তৈরি করা সহজ ছিল যা ধূমপায়ী হয়ে গেছে তবে বেশিরভাগ "আসল" স্তর ব্যর্থ হয়েছিল, বা মাল্টিপ্লেয়ারে কাজ করেনি, বা এআইকে নক করেছে, তাই এটি নিখুঁত ছিল না। এটা অবশ্যই মূল্যবান ছিল।
আমি শুনেছি যেহেতু আমি চলে এসেছি তারা একাধিক পিসিতে বহন করে ধূমপায়ীগুলির একটি বৃহত্তর পরিসীমা চালানো শুরু করেছে। স্পষ্টত ধূমপায়ীগুলি বজায় রাখা একটি সমস্যা, এবং কেবল একটি বিল্ড সার্ভার এবং সফ্টওয়্যার বজায় রাখার জন্য উত্সর্গীকৃত একটি ছোট দল রয়েছে, সুতরাং আমি বলতে পারি না যে এটি সফল হয়েছে কি না।
ক্রাইসিস 2 এর বিকাশের সময় অটোমেটেড টেস্টিংয়ের সাথে আমার অভিজ্ঞতা এখানে পাওয়া যায়: http://yetanothergameprogrammingblog.blogspot.com/2010/06/aaa-automated-testing.html
সারাংশ:
গেম ডেভেলপমেন্ট আসলে সেই ক্ষেত্রে একটি যেখানে ইউনিট টেস্টিং আমার কাছে কিছুটা বোধগম্য বলে মনে হয়, কারণ বিযুক্ত সিস্টেমের মধ্যে মিথস্ক্রিয়াটি এত সাধারণ। ডিজাইন-বাই-কন্ট্রাক্ট অবশ্যই এটির একটি অংশ, এবং প্রথম দিনের বিকাশের পরিকল্পিত হওয়া উচিত, তবে কেন যে পরে এটি করা হবে তা ধরে নিয়ে কেন এটি প্রয়োগ করা গেল না see
শক্ত অংশটি অবশ্যই ইন্টিগ্রেশন টেস্টিং। বেশিরভাগ গেমটি কেবল এটি ডেমো-লুপ করে পরীক্ষা করা যায় বা এটি কোনও জিনিস, তবে সেই জিনিসটি ডিবাগ করাতে যথেষ্ট সহজ - যেখানে আমি আমার সময় ব্যয় করতে আগ্রহী এমন বাগগুলি প্রকাশ করা হয় যখন কোনও খেলোয়াড় কিছু করলে, মানসিকতার সাথে যে খেলোয়াড় কখনই দেখেনি যে বাগটি প্লেয়ারের চেয়ে ততটা কম গুরুত্বপূর্ণ।
যা বেশ কঠিন, স্পষ্টতই। অন্যান্য অ্যাপ্লিকেশনগুলিতে যে কৌশলগুলি কাজ করে (ধোঁয়াশা, প্রত্যাশিত-পাস / প্রত্যাশিত-ব্যর্থ ইত্যাদি) এখানে এত ভাল কাজ করে না। স্ক্রিপ্টযোগ্য সিস্টেমে দেখে মনে হয় কোনও খেলোয়াড়কে অনুকরণ করার জন্য স্ক্রিপ্টগুলির একটি পরীক্ষা সেট তৈরি করা হ'ল উপায় (জেডজিগের উত্তর দেখুন)। তবে কোনও খেলোয়াড়ের মুখোমুখি হতে পারে এমন স্টাফের জন্য বিশেষভাবে পরীক্ষা করা আমাকে মানব ও স্বয়ংক্রিয় উভয় পরীক্ষার উদ্দেশ্যে আপনার সময়কে ফোকাস করার জন্য সেরা স্থান হিসাবে সরাসরি আঘাত করে।