একটি কাস্টম গেম ইঞ্জিনগুলির জন্য, যদি আমার মূল তথ্যটি ত্রুটিযুক্ত বা অনুপস্থিত থাকে তবে আমি কী করব?


27

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

আমার ডেটাগুলির সিংহভাগই বাহ্যিক ফাইল থেকে আসে এবং আমি কেবল সম্পদগুলিকেই উল্লেখ করি না; আমি জেএসএনের মাধ্যমে আমার সমস্ত গেমের বিষয়বস্তু সংজ্ঞায়িত করেছি। কিন্তু হায় হায় আমি মানুষ; মাঝে মাঝে আমার ডেটা ফাইলগুলি অবৈধ হয়, বা আমি ফর্ম্যাটটি পরিবর্তন করি তবে ফাইলটি আপডেট করতে ভুলে যাই, বা লোডার নিজেই ফ্ল্যাট-আউট বগি।

যদি, যে কারণেই হোক না কেন, একটি কাস্টম ইঞ্জিনে কিছু ফর্ম সম্পদ লোড করার চেষ্টা ব্যর্থ হয়, আমার কী বিকল্প আছে?

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


7
আমি আমার গেমের জন্যও একই রকম ব্যবহার করি। আমি মানব-ত্রুটি এড়াতে আমার গেমের ডেটা ফাইলগুলি তৈরি করতে আসলে একটি ছোট্ট ইউটিলিটি অ্যাপ্লিকেশন তৈরি করেছি - এইভাবে আমি নিজেই JSON এর 100,000 লাইন লিখতে না পারা পরিবর্তন করতে চাইলে ফাইলগুলি সংশোধন করতে পারি।
জেডিএসওয়েটবিট

আপনি আপনার ডেটা লোড করার আগে কোনও বৈধকারকের মাধ্যমে চালাতে পারেন।
জেডিএসওয়েটবিট

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

উত্তর:


44

একটি ত্রুটি লগ করুন এবং চূড়ান্তভাবে প্রস্থান করুন।

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


12

বাইট 56 একটি বিকল্প উল্লেখ করেছে। কমপক্ষে অন্য একজন রয়েছে:

ডিফল্ট মান ধরে এবং একটি সতর্কতা প্রদর্শন।

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


6

এটি উন্নয়ন বা প্রকাশের সময় ঘটে কিনা তার উপর নির্ভর করে।

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

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

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

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

বিকল্পভাবে, আপনি ইন্টারনেট থেকে সম্পদের একটি প্রাথমিক কপি ডাউনলোড করার বিকল্পটি সরবরাহ করতে পারেন (যদি আপনার ডাউনলোড সার্ভার থাকে)। তবে কোনও গ্রাহক সমর্থন দুঃস্বপ্ন এড়াতে, গিগা বাইট ডেটা ডাউনলোড করার আগে জিজ্ঞাসা করতে ভুলবেন না ।


[1] বাস্তবতা অন্যরকম দেখাতে পারে, এমনকি আপনি এএএ শিরোনামে নিখুঁত সম্পদগুলিও খুঁজে পেতে পারেন যার নির্মাতারা "জানা উচিত", তবে তাদের সাধারণত অবাস্তব সময়সীমা এবং বড়, পরিবর্তনশীল দলগুলিও থাকে। আদর্শভাবে আপনার পাঠানো সমস্ত কিছুই স্বয়ংক্রিয় পাইপলাইনটি পেরিয়ে গেছে এবং এটির গ্যারান্টিযুক্ত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.