2 ডি গেম ডেভ (সি ++) দিয়ে শুরু করছেন: ডাইরেক্টএক্স বা ওপেনজিএল? [বন্ধ]


12

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

আমি আমার অনুসন্ধানগুলি সি ++ এবং 2 ডি এর দিকে নির্দেশ করেছি এবং শেষ পর্যন্ত ডাইরেক্টএক্স / ওপেনজিএল পর্যন্ত পৌঁছেছি

এখন আমি এটি বুঝতে পেরেছি, এই সমস্ত প্যাকেজগুলি আমার জন্য স্ক্রিনে স্টাফ আঁকবে। এবং এই মুহুর্তে আমি সত্যই যত্নবান। শব্দ প্রয়োজন হয় না। স্টপলিব দিয়ে সম্ভবত ইনপুট পরিচালনা করা যায়।

সুতরাং, কোনও শিক্ষানবিশকে সি ++ এ বেসিক গেম তৈরি করার চেষ্টা করার জন্য, আপনি ডাইরেক্টএক্স বা ওপেনজিএলকে সুপারিশ করবেন? কেন? দুজনের মধ্যে কিছু মূল বৈশিষ্ট্য পার্থক্য কী? কোনটি ব্যবহারযোগ্য?

উত্তর:


16

আমি 2 ডি এর জন্য এসডিএলের ( http://www.libsdl.org/ ) সুপারিশ করতাম , আমি গ্রাফিক্স স্টাফ দিয়ে প্রথম শুরু করেছি এবং এটি ব্যবহার করা বেশ সহজ ছিল, যদিও আমি তখনকার সময়ে স +++ জানতাম না।

এটি (আয়না) টিউটোরিয়ালগুলির সেট যা আমি শুরু করেছি এবং এটি খুব দরকারী বলে খুঁজে পেয়েছি (4 বছর আগে আমি যখন তাদের মাধ্যমে কাজ করেছি তখন তারা কিছুটা তারিখ পেয়েছিল, তবে আমি মনে করি না এসডিএল খুব বেশি পরিবর্তন হয়েছে এবং সেগুলি এখনও প্রাসঙ্গিক হওয়া উচিত) )।

এসডিএল ইনপুট হ্যান্ডলিংও করে এবং এসডিএল_মিক্সার বেসিক অডিও করতে পারে।

আমি 2 ডি স্টাফের জন্য ডাইরেক্টড্রে বা ওপেনজিএল এর সাথে কখনও কাজ করি নি, তাই আমি সেখানে মন্তব্য করতে পারি না, তবে আমি অবশ্যই এসডিএলের প্রস্তাব দিতে পারি।


1
আমি এসডিএলটি ভাল পেয়েছি তবে পাথগুলি পাওয়া খুব কঠিন ছিল এবং সঠিকভাবে সেটআপ অন্তর্ভুক্ত রয়েছে।
স্কিথ

1
এছাড়াও চেক আউট lazyfoo.net/SDL_tutorials কিছু শালীন টিউটোরিয়াল জন্য (বিভিন্ন IDEs জন্য সেটআপ টিউটোরিয়াল ক্ষেত্রেও প্রযোজ্য)।
বিয়ানব্যাগ

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

7

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

এজন্য আপনাকে সাধারণত কয়েকটি অন্যান্য লাইব্রেরি, বিশেষত SDL_mixer, SDL_gfx, এবং SDL_image এর সাথে মেশাতে হবে, যা গেমস তৈরির জন্য প্রত্যেকের কার্যকারিতা সরবরাহ করে।

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

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

পিএস সি / সি ++ থেকে কথোপকথনটি সরিয়ে না নেওয়ার জন্য, তবে আপনি যদি কোনও বিশেষ কারণে সেই ভাষাটি ব্যবহার না করে থাকেন এবং আরও সহজ ভাষা চান তবে সর্বদা পিগেম থাকে। পাইথনের মূলত যা এসডিএল +।


2
এসএফএমএল হ'ল সি ++, এসডিএল হ'ল সি। এটি যদি আপনি আসলে সি ++ শিখতে চান তবে এটি একটি পার্থক্য করে।
jsimmons

5

http://www.gamedev.net/community/forums/mod/journal/journal.asp?jn=263140&reply_id=3598844

আমি এই মন্তব্যগুলির সাথে একমত এবং মনে করি এটি ওপেনগোলের চেয়ে কেন ডাইরেক্টএক্স ভাল is

ওয়ালফায়ারে ডেভিডের প্রতিক্রিয়া হিসাবে সেই জার্নালটি।

আমি আশা করি এটি কিছুটা সামঞ্জস্য বজায় রাখে। ;)

তবে সাধারণভাবে, যদি আপনি ক্রস-প্ল্যাটফর্ম ব্যবহার করেন তবে ক্রস-এপিআই ফ্রেমওয়ার্ক:

উইন্ডোজে ডাইরেক্টএক্স এবং * নিক্সে ওপেনলএল ব্যবহার করুন।


মহান পঠিত =) কী এক মাইনফিল্ড এই বিষয় হচ্ছে ...
পেরেকনির্মাতা

6
404, পৃষ্ঠা পাওয়া যায় নি
axel22


আর্কাইভ.gamedev.net / ... লিঙ্কে আমি একটি 404 পেয়েছি।
এক্সিলিথ

4

http://blog.wolfire.com/2010/01/Why-you-should-use-OpenGL-and-not-DirectX

আমি এই মন্তব্যগুলির সাথে একমত এবং মনে করি এটি ওপেনজিএল কেন ডাইরেক্টএক্সের চেয়ে ভাল।

যাইহোক, এই প্রশ্নটি একেবারে মতামতের বিষয়, এবং ডাইরেক্টএক্সের একেবারে ওপেনজিএল এর বিশেষত 10 এবং 11 এবং বিশেষত গেম বিকাশের প্রসঙ্গে এর সুবিধা রয়েছে।

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


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

আমরা ইউনিক্স এবং উইন্ডো উভয়ের জন্য ব্যবসায়িক ভিত্তিক ভিজ্যুয়ালাইজেশন সফটওয়্যার তৈরি করি এবং আমি নিশ্চিত করতে পারি যে আমরা উইন্ডোজে দেখি বেশিরভাগ সমস্যা ওপেনজিএল ড্রাইভার সম্পর্কিত।
drxzcl

1

আপনি যদি শুরু করে থাকেন তবে বিদ্যমান 2 ডি ইঞ্জিন বা এসএফএমএলের মতো কাঠামো ব্যবহার করা আরও ভাল ।


1

আমি ডাইরেক্ট এক্স পছন্দ করি এবং বেশ কয়েকটি প্রকল্পে এটি বেশ কয়েক বছর ধরে ব্যবহার করে আসছি তবে যদি আপনার শিখনটি সংস্করণ সমস্যার জন্য নজর রাখে।

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

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


1

হাফের গেম ইঞ্জিন

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

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

http://hge.relishgames.com/


0

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

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

আপনি সরাসরি ওপেনগিলের পথে যেতে পারেন তবে আমার কাছে এটি কেবল ওভারকিলের মতো বলে মনে হচ্ছে।

আপনি সম্ভবত সেখানে বিদ্যমান বিভিন্ন পদার্থবিজ্ঞানের লাইব্রেরিগুলিও দেখতে চান - আরও তথ্যের জন্য গুগল চিপমুনক এবং বক্স 2 ডি।

চিয়ার্স!


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