ওপেনজিএল কি 2 ডি গেমসের জন্য উপযুক্ত?


44

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

এটি কি একটি ভাল পরিকল্পনা, বা 3D এর জন্য ওপেনজিএল বিশেষত তৈরি করা হয়েছে?



আমি মনে করি যে 2D এর জন্য ওপেনজিএল ব্যবহার করার একটি সুবিধা রয়েছে তা হ'ল আপনি শেডারগুলির সুবিধা পান। এগুলি বিশেষ প্রভাব অর্জনের জন্য কার্যকর হতে পারে। আরেকটি সুবিধা হ'ল আপনি যদি ইতিমধ্যে ওপেনজিএল জানেন তবে আপনি ইতিমধ্যে এপিআইয়ের সাথে পরিচিত হবেন।
লাইসোল

উত্তর:


44

ওপেনএল 2 ডি গেমসের জন্য বেশ উপযুক্ত। যদিও এটি সাধারণত 3 ডি-তে ব্যবহৃত হয়, একই কার্যকারিতা 2 ডি গেমসের জন্য ব্যবহার করা যেতে পারে। এর অর্থ হল, 3 ডি ওপেনজিএল-এর সাথে আপনি যা কিছু করতে পারেন তা "2 ডি" ওপেনজিএল দিয়ে প্রযোজ্য হবে।

এই স্থানে আরও কিছু তথ্য পাওয়া যাবে ।

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

একটি উদাহরণ:

আর্থো বনাম দৃষ্টিভঙ্গি

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

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


আপনাকে অনেক ধন্যবাদ! আমি কেবল নিশ্চিত হয়েছি যে এটি করা ঠিক হবে।
w4etwetewtwet

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

2
@ স্টিভেনলু এবং উল্লেখ করার দরকার নেই, একজন বাস্তব প্রোগ্রামার
23:

দুর্দান্ত পড়া! যে লিঙ্ক করার জন্য ধন্যবাদ। হ্যাঁ: আপনার 2D কে সোজা ওপেনএল দিয়ে কোডিং করা আরও বেশি খারাপ কারণ তাই আপনার এটি করা উচিত।
স্টিভেন লু

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

22

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

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

এটি কেবলমাত্র কয়েকটি সুবিধা যা আমার মাথার শীর্ষ থেকে আসে, আমি অনুমান করি আরও বেশ কয়েকটি আছে।


3
দয়া করে ওপেনজিএল ২.০ (বা আরও বেশি) সক্ষম গ্রাফিক্স কার্ডের মধ্যে নিজেকে সীমাবদ্ধ রাখুন, ওপেনজিএল ২.০ 2004 সালে প্রকাশিত হয়েছিল, এমনকি এটি বেশ পুরানো।
টুকরো টুকরো

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

16

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

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

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



5

অনেকগুলি 2 ডি গ্রাফিক লাইব্রেরি যেমন এসডিএল বা এসএফএমএল ওপেনজিএল হার্ডওয়্যার ত্বরণ ব্যবহার করে। এটি আপনাকে ওপেনএল-এর পারফরম্যান্স সুবিধা দেয়, তবে অনেক সহজ এপিআই এর পিছনে বাজে নিম্ন-স্তরের বিশদ বিবরণ দেয়।


0

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


-2

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


দারুণ, আমার প্রথম ডাউনভোট। গেমদেবেরও বিদ্বেষ রয়েছে দেখে আনন্দিত।
অ্যাপোলো সফটওয়্যার

1
আমার ধারণা অনুমান করা যায় যে বাস্তবের উদাহরণগুলির মাধ্যমে একটি পয়েন্ট বর্ণনা করা যায় upon খুবই পেশাগত.
অ্যাপোলো সফটওয়্যার

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

2
হ্যাঁ, নিশ্চিত নয় যে লোকেরা কেন নিম্নচাপে পড়েছে; "ওপেনজিএল ব্যবহার করে" বিটটি "প্ল্যাটফর্মগুলিতে ওপেনজিএল ব্যবহার করা দরকার যা" এটির সাথে স্পষ্ট করা উচিত "(এটি ডায়রেক্ট 3 ডি বা কনসোল-নির্দিষ্ট এপিআই ব্যবহার করে তবে আইওএস / অ্যানারডয়েড / ওএসএক্স / লিনাক্স ব্যবহার করে) তবে এটি সংশোধনের চেয়ে আরও স্পষ্টতা ation
শান মিডলডিচ

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