উদাহরণস্বরূপ সেরা ডিজাইন করা ওপেন সোর্স গেম ইঞ্জিনটি কী? [বন্ধ]


15

সম্ভাব্য সদৃশ: গেম কোডের ভাল (সুসংহত) উদাহরণ কোথায় পাব
?

আমি বেশ কয়েকটি সি ++ গেম কোড করেছি এবং এখন আমি নিজের গেম ইঞ্জিন এবং সম্পাদক তৈরি করছি।

নকশা সম্পর্কে আমার কিছু সন্দেহ আছে এবং আমি অনুসরণ করতে দুর্দান্ত উদাহরণগুলি খুঁজে পেতে চাই।

আপনার মতে সর্বাধিক ডিজাইন কী?

অবজেক্ট ওরিয়েন্টেড হতে হবে। প্রোগ্রামিংয়ের ভাষা কোনও বিষয় নয় তবে আমি এই ক্রমে পছন্দ করি: সি ++, সি #, জাভা বা অন্য কোনও অনুরূপ।

সম্পাদনা: আরও স্পষ্ট করতে, আমি গেম-নির্দিষ্ট কোডটিতে আগ্রহী নই। আমি সাধারণ উদ্দেশ্য গেম ইঞ্জিন চাই।

সম্পাদনা: এই নিবন্ধটি গেম ইঞ্জিন কী তা বোঝায়: উইকিপিডিয়ায় গেম ইঞ্জিন এবং এখানে জ্ঞাত গেম ইঞ্জিনগুলির একটি তালিকা রয়েছে: উইকিপিডিয়ায় গেম ইঞ্জিনগুলির তালিকা


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

2
আরও স্পষ্ট করার জন্য, আমি গেম-নির্দিষ্ট কোডে আগ্রহী নই। আমি সাধারণ উদ্দেশ্য গেম ইঞ্জিন চাই।
দানি

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

1
ডুম 3-তে একটি "এফপিএস নির্দিষ্ট ইঞ্জিন" রয়েছে তবে জেনেরিক ইঞ্জিনের যাবতীয় অংশ রয়েছে - যেমন আপনি বলছেন রিসোর্স ম্যানেজমেন্ট এবং স্ক্রিপ্টিং, থ্রিডি রেন্ডারিং, ফিজিক্স ইত্যাদি। এটি জেনেরিক ইঞ্জিন এবং আরও কিছুটা কম নয়।

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

উত্তর:


6

আমি মনে করি গেম ইঞ্জিন তৈরির সর্বোত্তম উপায় হ'ল আপনি ইতিমধ্যে যা বেশ ভাল জানেন তা দিয়ে শুরু করা এবং ক্লান্তিকর বা পুনরাবৃত্তিযুক্ত বৈশিষ্ট্যগুলি যুক্ত করা।

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

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

এই বৈশিষ্ট্যগুলির চারপাশে কোনও অবজেক্ট-ভিত্তিক মোড়ক তৈরি করা তুলনামূলকভাবে সহজ ছিল। অধ্যায় 10 এবং গেম ইঞ্জিন ডকুমেন্টেশনগুলি এখানে উপলভ্য দেখুন: http://aharrisbooks.net/pythonGame/

(এটি একটি বইয়ের অংশ হিসাবে লেখা হয়েছিল, তবে আপনি বইটি না চাইলেও গেম ইঞ্জিনে আপনাকে স্বাগতম)

দশম অধ্যায়টি বেসিক 2 ডি গেম ইঞ্জিন তৈরির জন্য অনুপ্রেরণা এবং কৌশলগুলি ব্যাখ্যা করে। আপনি নিজের তৈরি করার সময় আপনি এটি উপভোগ করতে পারেন। আসল ভাষাটি তেমন গুরুত্বপূর্ণ নয় (অবশ্যই ওওপি সমর্থন করার জন্য আপনার একটি ওওপি ভাষার প্রয়োজন।


8

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

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

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


1
যদিও আমি প্রি ডুম 3 আইডি টেক অবজেক্টকে ওরিয়েন্টেড বলব না।
টেট্রাড

3
নাহ, আপত্তি-ভিত্তিক নয়, তবে যেমনটি আমি বলেছি, এটি অধ্যয়নের যোগ্য worthy আমি বলতে চাইছি, কেবল এটির প্রক্রিয়াজাতকরণের অর্থ এই নয় যে আপনি চোখের ক্যান্সার দিবেন যদি আপনি এটি দেখেন! ;)
সর্বাধিক ই

6

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

http://www.ogre3d.org/


+1 দুর্দান্ত ইঞ্জিন। ধন্যবাদ টেট্রাড! আমি এটি ইতিমধ্যে জানি, তবে আমি এর উত্স কোডটি কখনও ব্যবহার করি নি বা দেখিনি। আপনি কী জানেন যে এটি এআই (উদাহরণস্বরূপ, পথ সন্ধান ইত্যাদি) একীভূত করেছে
দানি

3
আমি মনে করি এগুলি সবই কেবল রেন্ডারিং সম্পর্কিত।
টেট্রাড

2
ওগ্রে হ'ল গ্রাফিক্স রেন্ডারিং লাইব্রেরি। অবজেক্ট-ওরিয়েন্টেড গ্রাফিক্স রেন্ডারিং ইঞ্জিন।
জোনাথন স্টার্নবার্গ

0

গেম ইঞ্জিন সম্পর্কে কথা বলার সময়, আমি অনুমান করি যে আপনি এমন কোনও কিছু নিয়ে ভাবছেন যা রেন্ডার ইঞ্জিন, সাউন্ড ইঞ্জিন, পদার্থবিজ্ঞান ইঞ্জিন, ইনপুট ইঞ্জিন ইত্যাদি নয় about

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

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

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


0

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

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