বিষয়বস্তু পাইপলাইন সরঞ্জামগুলি ইঞ্জিনে এম্বেড করা উচিত?


10

গেমস ইঞ্জিনটি কত মিনিমাম হওয়া উচিত? কন্টেন্ট পাইপলাইনটি ইঞ্জিনে এম্বেড করা উচিত?

কিছু কিছু এমন ক্ষেত্রে ব্যবহার করে যেখানে সুপার ইঞ্জিনটি কার্যকর হতে পারে:

  • ব্যবহারকারীর সামগ্রী লোড করার সময়, ব্যবহারকারীর তার টেক্সচারগুলি প্যাকেজ করতে হবে না, ইঞ্জিন লোড সময় এটি করবে।

  • একটি স্ক্রিপ্ট প্রাক-উত্পন্ন হওয়ার চেয়ে অনেক বড় আকারে একটি ফন্টের জন্য অনুরোধ করে, ইঞ্জিনটি টিটিএফ ফাইল বিজ্ঞাপনটিকে একটি নতুন টেক্সচার অ্যাটলাস তৈরি করতে পার্স করতে পারে।

  • হালো ফোর্জ

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

কিছু নির্দিষ্ট প্রশ্ন:

  • ইঞ্জিনটি কি বিভিন্ন চিত্র ফর্ম্যাট লোড করতে সক্ষম হবে? একটি টিজিএ কেবলমাত্র লোডার কোড হ্যান্ড করা বেশ সহজ।

  • অডিও ফর্ম্যাট সম্পর্কে কি? কেবলমাত্র ওয়াভ ফাইল লোডিং সমর্থন করা কি সম্ভব? প্রায়শই বিশাল আকারের অ্যাম্বিয়েন্ট ফাইলগুলির সম্পর্কে কী।

  • ইঞ্জিনটি কি গতিশীল টিটিএফ পার্সিং এবং আটলাস জেনারেশনে সক্ষম হতে হবে?

  • টেক্সচার প্যাকিং

উত্তর:


11

ব্লগের ভেতর থেকে নোয়েল লোলোপিসের গেমগুলি সম্প্রতি "রিমোট গেম সম্পাদনা" পোস্টে এটি স্পর্শ করেছে । খোলার অনুচ্ছেদ:

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

(নিবন্ধটি হ'ল নোলেলের বেশিরভাগ স্টাফের মতো আপনি যদি 100% সম্মত হন বা না হন তবে এটি অত্যন্ত প্রস্তাবিত পাঠযোগ্য is

আমি বিশ্বাস করি যে এখানে চাবিকাঠিটি ইঞ্জিনের বাইরে জটিলতা রাখা। আপনার এখনও নমনীয়তা থাকতে পারে তবে এটি সামগ্রীর পাইপলাইনে নমনীয়তা রয়েছে। এবং আপনি ডেটা রূপান্তর করে এবং স্থানান্তরিত না করে সময় ব্যয় না করে আরও ভাল পারফরম্যান্স পান।

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

" ইউনিক্স দর্শন " এর কয়েকটি উপকরণ গ্রহণ করা আপনাকে আপনার সরঞ্জামচেনকে নমনীয় রাখতে সহায়তা করবে: একটি ছোট মডুলার পাইপলাইন।

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

আমাদের সংস্থায় আমাদের বেশিরভাগ শিল্পী / ডিজাইনার-মুখী সরঞ্জামগুলি ইউআই ইস্যুতে ফোকাস করে: একক সম্পদ বা এর ব্যাচগুলির কারসাজি করা সহজ করে ইত্যাদি etc. এই সরঞ্জামগুলি একটি মধ্যবর্তী বিন্যাসে রফতানি করে (প্রায়শই এক্সএমএল যা উত্স বাইনারি ডেটার উল্লেখ করে তবে সর্বদা নয়)। মধ্যবর্তী ফর্ম্যাটটি একটি ব্যাকএন্ড "ডেটা মেক" সরঞ্জাম দ্বারা বাছাই করা হয়েছে, যা এটিকে লক্ষ্য প্ল্যাটফর্মের জন্য দরকারী এবং দ্রুত-লোডিং কিছুতে পরিণত করে।

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

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

সরঞ্জামগুলি - বিশেষত ব্যাকএন্ড ডেটা সরঞ্জামগুলি তৈরি করে - প্রায়শই ইঞ্জিন কোডের চেয়ে opালু এবং বাগিগিয়ার হয়। এটি ঠিক আছে, কারণ এগুলি রিফেক্টর / পুনর্লিখন, প্রসারিত এবং পরীক্ষা করা সহজ; আপনার আচরণের জন্য আপনার কাছে চশমা রয়েছে এবং কিছু ইঞ্জিন কোডের তুলনায় তাদের পরীক্ষা করা মোটামুটি সহজ।

আপনার প্রশ্ন সম্পর্কে আমার মতামত:

ইঞ্জিনটি কি বিভিন্ন চিত্র ফর্ম্যাট লোড করতে সক্ষম হবে? একটি টিজিএ কেবলমাত্র লোডার কোড হ্যান্ড করা বেশ সহজ।

(একদিকে: আপনি ইঞ্জিনে টিজিএ ডিকোডার ব্যবহার করলেও এটি হ্যান্ডকোড দেবেন না You're আপনি কেবল সমস্যার জন্যই জিজ্ঞাসা করছেন - বেশিরভাগ চিত্রের ফর্ম্যাটগুলির সাথে প্রচুর সূক্ষ্মতা এবং অনেকগুলি সরঞ্জাম যা মেনে চলে না are হুবহু সম্ভাব্য-সংজ্ঞায়িত বিন্যাসে image চিত্র প্রক্রিয়াকরণের জন্য বিদ্যমান ভাল-পরীক্ষিত লাইব্রেরি কোডটি সন্ধান করা আপনি সেরা best

আমার কাছে এখানে সরঞ্জামটি টিজিএ থেকে আপনার অভ্যন্তরীণ টেক্সচার বিন্যাস যাই হোক না কেন, মেটাডেটাতে রূপান্তর করতে হবে।

অডিও ফর্ম্যাট সম্পর্কে কি? কেবলমাত্র ওয়াভ ফাইল লোডিং সমর্থন করা কি সম্ভব? প্রায়শই বিশাল আকারের অ্যাম্বিয়েন্ট ফাইলগুলির সম্পর্কে কী।

আমরা এখানে তিনটি ফর্ম্যাট ব্যবহার করি: ট্র্যাকড মিউজিক (.xm), ADPCM (.wav), এবং Speex (.spx)। এটি বেশিরভাগ কারণ হ'ল হ্যান্ডহেল্ডগুলিতে, এবং এই ফর্ম্যাটগুলি ডিকোড করার জন্য খুব লাইটওয়েট।

ইঞ্জিনটি কি গতিশীল টিটিএফ পার্সিং এবং আটলাস জেনারেশনে সক্ষম হতে হবে? টেক্সচার প্যাকিং

অ্যাটলাসিং একটি কঠিন সমস্যা: আপনার সাম্প্রতিক প্রশ্নের উত্তর দেখুন। এটি অফলাইনে প্রায় সবসময় মূল্যবান।

এছাড়াও আপনি প্রতি-চরিত্রের মেটাডেটা একটি কাছের-শূন্য-লোড-কোড বেকড স্ট্রাক্টে তৈরি করতে পারেন।

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


আপডেট হিসাবে, আপনি টেক্সচারের জন্য কেটিএক্স ফাইল ফর্ম্যাটটি ব্যবহার করে বিবেচনা করতে পারেন । বেশিরভাগ structজিএল ইউজকেসের জন্য "বেশিরভাগই" পড়ুন এবং যান " হওয়ার সুবিধা রয়েছে (এবং আপনার মন্তব্যগুলি থেকে মনে হয় আপনি জিএলকে লক্ষ্য করে নিচ্ছেন) তখনও নমনীয় এবং ভালভাবে সংজ্ঞায়িত হয়ে রয়েছেন।

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


দুর্দান্ত জিনিস ধন্যবাদ। আমি কখনও নিজের ইমেজ ফর্ম্যাটটি লোড করা সহজ হিসাবে বিবেচনা করা হয়নি। একটি ইতিমধ্যে নির্মিত সর্বনিম্ন টেক্সচার লোড লাইব্রেরি আছে? তারপরে আবার এটি মূলত প্রস্থ, উচ্চতা এবং এনকোডিং সহ (যেমন GL_RGB555) বাইটের একটি ধারা।
ডিফ্ট_ কোড

1
ডাইরেক্টএক্স, জিএল বা আপনি যেটি যা ব্যবহার করছেন তা হুবহু বিন্যাসে চিত্রটি আনতে আপনার নিজের ইমেজ ফর্ম্যাটটি এতটা তৈরি করবেন না। =) গ্রন্থাগারগুলি যতদূর যায়: সেখানে একটি টন আছে। সরঞ্জামগুলির জন্য, আমি কেবল ইমেজম্যাগিক ( ইমেজমাগিক.আর.সি.সি.পি / ইন্ডেক্স.এফপি ) লাইব্রেরি স্টাফ বা এমনকি প্রোগ্রামগুলি ব্যবহার করতে চাই ... ইমেজম্যাগিক কোডটি পুরানো স্কুল এবং কিছুটা কুৎসিত, তবে বেশ দ্রুত, নমনীয় এবং রাস্তা -tested। আমি নিশ্চিত অন্যদের কাছে প্রচুর অন্যান্য পরামর্শ থাকবে; আপনি যদি নিজের টুলচেনের জন্য সি সি # ব্যবহার করেন তবে এই প্রচুর পরিমাণে ইতিমধ্যে নেট
নেটগুলিতে

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

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

3

আপনার প্রশ্নগুলি খুব সাবজেক্টিভ মনে হচ্ছে এবং আপনার টার্গেট শ্রোতা কে।

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

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

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

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