আপনি যদি মনোগেম এপিআই এবং অন্তর্নিহিত গ্রাফিক্স এপিআই উভয় ব্যবহার করেন তবে কোন সমস্যা হতে পারে?


10

যদি তারা মনোগেমের সাথে কোনও গেম তৈরি করে এবং অন্তর্নিহিত গ্রাফিক্স এপিআইতে কল করা শুরু করে তবে কী ধরণের সমস্যাগুলির মধ্যে পড়তে পারে?

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

আমি নিজে গুগল এবং জিডি.এসই সাইট এর মাধ্যমে একটু গবেষণা করার চেষ্টা করেছি এবং আমি খুব বেশি কিছু খুঁজে পাইনি। হতে পারে মনোগেম সত্যিই এর বেশিরভাগ ঘাঁটিগুলি coveredেকে রেখেছে, তবে আমি যদি ম্যানুয়ালি এটির একটি অসামান্য বিষয় বা এমন কোনও বৈশিষ্ট্য যা এখনও প্রয়োগ করা হয়নি তার আশেপাশে কাজ করতে চাইতাম?

যদি তা হয় তবে কী ধরণের সমস্যা দেখা দিতে পারে এবং এই সমস্যাগুলি প্রশমিত করতে কোনও উপায় আছে?

উত্তর:


12

বেশিরভাগ ক্ষেত্রে এই সমস্যাগুলি "অপরিজ্ঞাত আচরণ" (সি ++ অর্থে নয়, বরং আরও বিস্তৃত বোঝার ক্ষেত্রে) বিভাগে আসবে।

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

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

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

  • অথবা আপনি অন্তর্নিহিত এপিআইয়ের সাথে গোলমাল করতে পারেন এবং কিছু ডিভাইস অবজেক্টের রেফারেন্স গণনা (D3D ধরে ধরে) পরিবর্তন করতে পারেন, যার অর্থ এটি অকালব্যাপী মনোগেমের অধীনে প্রকাশিত হতে পারে বা ঘটনাক্রমে মুক্তি পায় না , ফলস্বরূপ সম্ভাব্য ক্রাশ বা সংস্থান ফাঁস হতে পারে।

  • অথবা আপনি এমন কিছু করতে পারেন যা কার্যকর হয় তবে আপনি অসমর্থিত উপায়ে এবং অননুমোদিত বৈশিষ্ট্যগুলি বা অপ্রত্যাশিত অ্যাক্সেসের ধরণগুলি নিয়ে ঘৃণা করছেন, আপনি পরবর্তী প্রকাশে আপনার কোডটি ভয়াবহভাবে ভাঙ্গা দেখতে পেলেন।

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

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

যদিও আপনি পুরোপুরি এই জাতীয় জিনিস এড়াতে পারবেন।


3

আমি জোশের উত্তরটি সম্পূর্ণরূপে সম্মত তবে আমি কিছু চিন্তা যুক্ত করতে চাই।

মনোগেমের উদ্দেশ্য হ'ল এক্সএনএ এপিআই অনেকগুলি প্ল্যাটফর্মে নিয়ে আসা। আপনি যদি ওপেনটিকে সরাসরি ব্যবহার করে থাকেন তবে আপনি নিজেকে কেবল সেই প্ল্যাটফর্মগুলিতে সীমাবদ্ধ করছেন যা এটি সমর্থন করে। অতএব, আপনি বিমূর্ততা ব্যবহারের প্রধান সুবিধাগুলির একটি হ্রাস করতে পারেন।

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

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


3

এই দুটি ধারণার সংমিশ্রণে উদ্ভূত সমস্যাগুলি কীভাবে প্রশমিত করা যায় সে সম্পর্কে:

মনোগাম ওপেন সোর্স, এটি সরাসরি সংশোধন করুন এবং উভয়টি ব্যবহার করে আপনার সমস্যা নিয়ে চিন্তা করার দরকার নেই।

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


যিনি ভোট দিয়েছেন, দয়া করে আপনার কারণটি বলুন, তাই আপনি যদি মনে করেন যে আমি কিছু ভুল লিখেছি তবে আমি পরের বার শিখতে পারি।
টিমোটেই

1
কিভাবে এই প্রশ্নের উত্তর দেয়?

1
ঠিক আছে, প্রত্যক্ষভাবে মনোগাম উত্সটি (যেটি একক জায়গায়) সংশোধন করে two দুটি (মনোগাম + আন্ডারলাইনিং এপিআই) সংযুক্ত হওয়ার ফলে উত্পন্ন যে কোনও সমস্যার সমাধান করতে পারে। দয়া করে তার শেষ প্রশ্নটি নোট করুন: "যদি তাই হয় তবে কী ধরণের সমস্যা দেখা দিতে পারে এবং এই সমস্যাগুলি প্রশমিত করতে কোনও উপায় আছে?"
টিমোটেই

টিমোটেই ভাল পয়েন্ট, আমি কী উত্তর দিচ্ছি তা আরও পরিষ্কার করার জন্য আমি একটি ছোট সম্পাদনা করেছি।
মাইকেলহাউস

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