ওপেনজিএল ছোট বিকাশকারীদের ফ্রেমওয়ার্ক / ইঞ্জিনের ওপরে কী কী সুবিধা দেয়? [বন্ধ]


16

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

বেশিরভাগ শালীন ইঞ্জিন এবং ফ্রেমওয়ার্কগুলি আপনার প্রয়োজনীয় কার্যকারিতা দেয় এবং আপনার পথে কখনও আসে না। তারা ওপেনজিএল সরাসরি ডিল করার বিকল্পটিও খুলতে পারে। কেউ কেউ ক্রস-প্ল্যাটফর্ম সংকলনের জন্য কার্যকারিতাও সরবরাহ করে!

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

ওপেনজিএল ব্যবহার করে স্ক্র্যাচ থেকে গেমস তৈরির পিছনে যুক্তি ব্যাখ্যা করতে পারেন?


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

উত্তর:


23

এটি মূলত একটি মতামত ভিত্তিক প্রশ্ন / উত্তর, সুতরাং এটি এই প্ল্যাটফর্মের জন্য আসলে প্রয়োজনীয় নয়, তবে যাইহোক:

ইন্ডি হিসাবে কোনও ফ্রেমওয়ার্ক / ইঞ্জিন কেন? আমার দুটি সেন্ট এখানে:

  • বাজেটের অভাব: এটি বেশিরভাগ ছোট / ইন্ডি বিকাশকারীদের পক্ষে সম্ভবত সবচেয়ে বড় পয়েন্ট। অনেকগুলি ফ্রেমওয়ার্ক বা ইঞ্জিনগুলি আপনাকে আরও ব্যয়বহুল সংস্করণ না কিনে (সর্বোপরি একটি সস্তা বা বিনামূল্যে সংস্করণ উপলব্ধ রয়েছে) এবং / অথবা রয়্যালটি প্রদান না করে আপনাকে আপনার পণ্য প্রকাশ করতে দেয় না, এমন কিছু যা আপনাকে সর্বদা ছোট প্রকল্পগুলির জন্য বিবেচনা করতে হবে। কখনও কখনও আপনাকে এমনকি প্রতি প্ল্যাটফর্ম একবার দিতে হবে।
  • জটিলতা: বেশিরভাগ ইঞ্জিন বা ফ্রেমওয়ার্ক দুটি বিভাগের মধ্যে একটিতে পড়ে:
    • তারা হয় একটি বিশেষ জেনার ( RPG মেকার সাধারণ উদাহরণ হিসাবে) এর জন্য খুব সীমিত ।
    • অথবা আপনি সম্ভবত যেভাবে ব্যবহার করবেন না এমন প্রচুর জিনিসগুলির সাথে খুব জেনেরিক ( ইউনিটির মতো )।
  • মালিকানাধীন কোড: বেশিরভাগ ইঞ্জিনগুলি ওপেন সোর্স নয় এবং আসল উত্স পেতে আপনাকে আরও বেশি অর্থ প্রদান করতে হবে (এমনকি উপলব্ধ থাকলেও)। আসল উত্স কোড ব্যতীত অন্য প্ল্যাটফর্মগুলিতে পোর্টিং কঠিন বা এমনকি অসম্ভব হতে পারে (আবার, আরপিজি মেকার একটি নিখুঁত উদাহরণ হতে পারে)।
  • আড়ম্বরপূর্ণতা: এটি আমার ব্যক্তিগত মতামত, তবে কমপক্ষে আমার কাছে এটি প্রায়শই প্রাক তৈরি ইঞ্জিন এবং ফ্রেমওয়ার্ক বিবেচনা করে একটি বিরাট অবসন্নতা হয়, বিশেষত যখন আপনি কেবল একটি ছোট গেমটি তৈরি করছেন। কে ছোট আকারের ব্রেক গেম খেলতে চায় যা ২০০ কেবি আকারের তবে এটি একটি 50 এমবি রানটাইম নিয়ে আসে?
  • ভাষার পছন্দ: কিছু ইঞ্জিন এবং ফ্রেমওয়ার্ক আপনার নিজস্ব কোড ব্যবহারের জন্য লাইব্রেরি সরবরাহ করে না। পরিবর্তে তারা এমন একটি ফ্রেমওয়ার্ক বা রানটাইম সরবরাহ করে যা তার নিজস্ব স্ক্রিপ্টিং ভাষা বা কিছু সেট ভাষা (যেমন জাভাস্ক্রিপ্ট বা সি #) ব্যবহার করবে। আপনি যদি নিজের কাস্টম ইঞ্জিনটি লিখছেন তবে আপনি যে কোনও ভাষা বেছে বেছে বেছে ব্যবহার করতে পারবেন।
  • আপনার কাজের সুরক্ষা: আপনি যদি একটি প্রাক ইঞ্জিন বা ফ্রেমওয়ার্ক ব্যবহার করছেন তবে আপনার কোড বা সম্পদগুলি পরিবর্তন করতে বা ডিকম্পিল করার জন্য অন্যদের কাছে আরও সহজ সময় থাকতে পারে, এমন কিছু যা আপনি এড়াতে চাইতে পারেন (এমনকি এটি কেবলমাত্র আপনার হাইস্কোর রাখার জন্য হলেও পরিষ্কার)। কাস্টম কোড এবং সম্পদ হ্যান্ডলিং গ্রহণের জন্য আরও অনেক বড় বাধা যুক্ত করে, বিশেষত দেশীয় কোডে সংকলন করার সময়।
  • ব্র্যান্ডিং: এটি অনেকের পক্ষে ছোটখাটো হতে পারে তবে কিছু ইঞ্জিন এবং ফ্রেমওয়ার্ক আপনাকে তাদের লোগো বা এমনকি বিজ্ঞাপনগুলি প্রদর্শন করতে বাধ্য করে, মূলত কাকে / কী প্রচার করতে হবে তা চয়ন করার জন্য আপনার স্বাধীনতা গ্রহণ করে। অবশ্যই এটি প্রায়শই আসল লাইসেন্স, লাইসেন্স ফি ইত্যাদির উপর নির্ভরশীল is
  • লাইসেন্সগুলির সাথে অসঙ্গতি: এটি ইঞ্জিন বাছাইয়ের সময় অনেকেই বিবেচনা করে না তবে আপনি কী করতে চান তার উপর নির্ভর করে এটি একটি বড় কারণ হতে পারে। এমনকি আপনি যদি কিছু ইঞ্জিন কিনে থাকেন তবে আপনাকে কোনও উত্স বা সম্পর্কিত উপকরণ প্রকাশ থেকে বাধা দেওয়া হতে পারে। আপনি যদি ব্যবহারকারীদের সক্ষম হতে চান তবে এর মতো কিছু পরিবর্তন করা অসম্ভবকে অসম্ভব করে তুলতে পারে। ভ্যালভের উত্স ইঞ্জিন ( হাফ-লাইফ 2 , টিম ফোর্ট্রেস 2 , ইত্যাদি) উদাহরণ হিসাবে ধরুন: তারা মোড্ডারদের তাদের নিজস্ব প্রকল্পগুলির জন্য ইঞ্জিন ব্যবহার করতে দিচ্ছে। যদি এই গেমগুলি ভিত্তি করে (উদাহরণস্বরূপ) অবাস্তব ইঞ্জিন, লাইসেন্স শর্তাবলী দ্বারা সীমাবদ্ধতার কারণে এটি সম্ভব হবে না n't

11
আরও একটি জিনিস: একবার আপনি ওপেনজিএল শিখলে, আপনি এটি জানেন। আপনাকে প্রতিটি ভাষায় এটি পুনরায় প্রকাশ করতে হবে না বা কোনও নির্দিষ্ট কাঠামো / ইঞ্জিন কীভাবে আপনি প্রতিটি নতুন ফ্রেমওয়ার্ক / ইঞ্জিনের জন্য এটি প্রয়োগ করতে চান তা শিখতে হবে না। এটি বৃহত্তর বহনযোগ্যতার দিকে পরিচালিত করে
ওয়েস্ট

খুব সাধারণ সমস্যা না হলেও এটি সম্ভবত সম্ভব যে ইঞ্জিন বা কাঠামোয় ধারণাটি তৈরি করা সম্ভব নয় বা খুব জটিল হয়ে উঠবে (যেমন: মাইনক্রাফ্ট)
আকালতার

কাকতালার: সত্য, তবে একই সময়ে আমি আশা করব যে কেউ এমন একটি ইঞ্জিন বেছে নেবে যা লক্ষ্য লক্ষ্য অনুসারে ফিট করে। যেমন 2 ডি গেমের জন্য 3 ডি ইঞ্জিন ব্যবহার করবেন না এবং তদ্বিপরীত।
মারিও

9

বেশিরভাগ শালীন ইঞ্জিন এবং ফ্রেমওয়ার্কগুলি আপনার প্রয়োজনীয় কার্যকারিতা দেয় এবং আপনার পথে কখনও আসে না।

তারা কি? এটি বরং আপনি গ্রাফিকভাবে বলতে যা করছেন তা ঠিক নির্ভর করে।

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

তবে কী যদি আপনার গেমটি গড় 2 ডি গেম হিসাবে ব্যবহৃত হত তবে আপনি কিছু দুর্দান্ত কৌশল সম্পর্কে পড়েন যেমন পর্দার তুলনায় গভীরতার উপস্থিতিযুক্ত কোনও ইমপোস্টার তৈরি করতে উচ্চতার মানচিত্র ব্যবহার করা। এবং আপনি এটি করতে চান।

এখন আপনি সাধারণ ম্যাপিং এবং এমনকি প্যারালাক্স ম্যাপিংটি নিযুক্ত করছেন। সমস্ত "স্প্রেডস রেন্ডারিং" এর একই প্রসঙ্গে, তবে অনেক বেশি খাঁটি 2 ডি ইঞ্জিন হ্যান্ডেল করতে পারে। বিশেষত, এর জন্য মাল্টিটেক্সচার্ড "স্প্রাইট ব্লিটিং" দরকার যা অনেকগুলি 2D ইঞ্জিন করতে পারে এমন কিছু নয়।

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

সুতরাং আপনাকে অবশ্যই নিম্নলিখিত একটি বেছে নিতে হবে:

  1. ধারণাটি পরিত্যাগ করুন। এর অর্থ হ'ল আপনার গেমটি আপনার ইঞ্জিন দ্বারা কার্যত সীমিত।
  2. মাল্টিস্ট্রাকচার থাকতে ইঞ্জিনটি হ্যাক করুন। ধরে নিই যে আপনার উত্স কোডটিতে অ্যাক্সেস রয়েছে, আপনি এখন অন্য কারও কোডটিতে ঝুঁকছেন yourself এর অর্থ হ'ল আপনার এটিকে বজায় রাখা এবং চারপাশের হোঁচট খেয়ে তা ভাঙার দরকার নেই ।
  3. ইঞ্জিনের সীমাবদ্ধতার মধ্যে আপনি যথাসাধ্য চেষ্টা করুন। সুতরাং আপনি সাধারণ মানচিত্রে প্যারালাক্স পেতে পারেন, তবে রঙগুলিতে নয়। আপনি যা চেয়েছিলেন ঠিক তেমনটি নাও হতে পারে তবে এটি কোনও কিছুর চেয়ে ভাল।

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

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

তদতিরিক্ত, একটি খুব ব্যবহারিক সমস্যা আছে: সমস্ত গেম ইঞ্জিন সমানভাবে বহনযোগ্য নয়।

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

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


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