বিদ্যমান FOSS উপাদান-ভিত্তিক কাঠামো আছে? [বন্ধ]


25

উপাদান ভিত্তিক গেম প্রোগ্রামিং দৃষ্টান্তটি আরও বেশি জনপ্রিয় হয়ে উঠছে। আমি ভাবছিলাম, এমন কোনও প্রকল্প আছে যা পুনরায় ব্যবহারযোগ্য উপাদান কাঠামো সরবরাহ করে? যে কোনও ভাষায়, আমি অনুমান করি যে আমি এটি সম্পর্কে যত্ন করি না। এটি আমার নিজের প্রকল্পের জন্য নয়, আমি কেবল কৌতূহলী।

বিশেষত আমি বলতে চাইছি এমন কোনও প্রকল্প রয়েছে যেখানে একটি বেস Entityশ্রেণি, একটি বেস Componentশ্রেণি এবং সম্ভবত কিছু মানক উপাদান রয়েছে? আপনি যদি চক্রটি পুনরায় উদ্ভাবন করতে না চান তবে গেম শুরু করা আরও সহজ হবে, বা আপনি সম্ভবত এমন একটি চান GraphicsComponentযা ডাইরেক্ট 3 ডি দিয়ে স্প্রিট করে, তবে আপনি দেখেন যে এটি ইতিমধ্যে এক ডজনবার হয়ে গেছে।

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


4
আপনার লেখার প্রথম হওয়া উচিত! :)
রিকিট

1
ভাল, আমি নিজের প্রকল্পের জন্য সি # তে একটি লিখেছি। হয়তো আমরা সবাই অবদান রাখতে পারি?
Tesserex

আমি সি # প্রকল্পে কাজ করার জন্য সম্পূর্ণভাবে প্রস্তুত হয়ে উঠব। হ্যাঁ, কোনও স্ট্যান্ডার্ডের কীভাবে কাজ করা উচিত সে সম্পর্কে বিশাল conক্যমত্য নেই, তবে সম্ভবত আমরা এক্সএনএ (আপনার নৌকাকে যা ভাসিয়ে দেয়) ফোকাস করতে পারি। দানবীয়দের একগুচ্ছ এটি করার সর্বোত্তম উপায়ে ঘোষণা না করার অর্থ এই নয় যে আমরা চেষ্টা / পরীক্ষা করতে পারি না।
মাইকেল কোলম্যান

কারণ কারণ উপাদান ভিত্তিক নকশা প্রোগ্রামারদের চেয়ে প্রকল্প পরিচালকদের বেশি আকৃষ্ট করে
এম উত্কু আল্টিনকায়ে

উত্তর:


45

যদি কোনও জনপ্রিয় না থাকে তবে কেন নয়?

কারণ এই জাতীয় কাঠামো কীভাবে পরিচালিত হবে সে বিষয়ে conক্যমত্যের অনুরূপ কিছুই নেই।

গেমদেভ.নেটের একটি থ্রেডে আমি স্থির করেছিলাম যে লোকেরা যখন উপাদানগুলি ভিত্তিক গেম সিস্টেমের বিষয়ে কথা বলে সেখানে 3 টি ভিন্ন কারণের ভিত্তিতে তারা কীভাবে তাদের প্রত্যাশা করে তার কমপক্ষে 8 টি সম্ভাব্য অনুমতি রয়েছে:

ইনবোর্ড বনাম আউটবোর্ড - উপাদানগুলি কোনও সত্তায় একত্রিত হওয়া উচিত, বা সেগুলি কোনও উপ-সিস্টেমের অংশ হওয়া উচিত এবং কেবল কোনও সত্তা আইডি দ্বারা যুক্ত হওয়া উচিত?

স্ট্যাটিক বনাম গতিশীল রচনা - সত্তাগুলিতে একটি উপাদানগুলির পরিচিত সেট (যেমন 1 পদার্থবিজ্ঞান, 1 অ্যানিমেশন, 1 এআই, ইত্যাদি) থাকা উচিত যা সুপরিচিত ইন্টারফেসের মাধ্যমে কোডে যোগাযোগ করতে পারে বা সত্তাগুলিতে সংযোজন পরিমাণে উপাদান সংযোজন করতে পারে সেগুলি (আগ্রহের অন্যান্য উপাদানগুলি সনাক্ত করার জন্য সম্পর্কিত কৌশলগুলির সাথে)

উপাদানটির উপর ডেটা বনাম সত্তার ডেটা - ডেটা মূল উপাদানটি চালিত করে এমন উপাদানটি কি রাখা উচিত? অথবা সমস্ত উপাদান দ্বারা অ্যাক্সেসযোগ্য, কোনও ভাগ করা জায়গায় সত্তায় ডেটা সংরক্ষণ করা উচিত?

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

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

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


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

1
@ অ্যাডাম: আমি সেই দারউইন বিবর্তন ম্যাচে যে পদ্ধতিটি জিতেছিলাম তার সম্পর্কে বিশদটির একটি লিঙ্ক চাই। আমি যখন বিবরণ বলি, আমি ইনবোর্ড এবং আউটবোর্ডের বিষয়ে শুনতে চাই না, আমি হ্যাশ মানচিত্র, ভেক্টর, বরাদ্দকারী, ব্যক্তিগত, পাবলিক, লুপস, কনস্ট ... কম স্তরের বিশদ সম্পর্কে শুনতে চাই।
v.oddou

@ v.oddou ইতিমধ্যে উত্তর হিসাবে উইকিটিতে একটি লিঙ্ক পোস্ট করেছেন (নীচে দেখুন) আপনি বিশদ চান? এটি উত্স কোড পূর্ণ ।
আদম

10

একটি উইকি রয়েছে যা এই সমস্তগুলির উদাহরণ সংগ্রহ করছে:

http://entity-systems.wikidot.com/

... বিভিন্ন পদ্ধতির মধ্যে পার্থক্য ব্যাখ্যা সহ।


অ্যাশ এবং আর্টেমিস (উইকিতে উভয়ই) সত্যই জনপ্রিয় প্রমাণিত হয়েছে, উভয়ই শখের গেম ডেভের পাশাপাশি বাণিজ্যিক গেম বিকাশের জন্য ব্যবহৃত হয়।
আদম

4

এই কাঠামোর সাথে সম্পর্কিতটি আমি খুঁজে পেয়েছি ...

www.burgerengine.com

PushButtonEngine

আর্থেমিস ফ্রেমওয়ার্ক - https://github.com/artemis-esf/artemis-framework/tree/master/src/com/artemis

Lookক্য আপিকে দেখে নিই। কম্পোনেন্ট ভিত্তিক আর্কিটেকচার সম্পর্কিত আপনি প্রচুর স্টাফ পেতে পারেন। (আমি আরও কিছু খুঁজে পাওয়ার সাথে সাথে তালিকাকে আপডেট করব ...)

হালনাগাদ:

      https://code.google.com/p/spartanframework/

এটি সত্তা সিস্টেমগুলি সম্পর্কে ভাল পদ্ধতিতে ব্যাখ্যা করে ... http://piemaster.net/2011/07/entity-comp घटक-primer/


2

ফ্ল্যাশের জন্য পুশ বাটন ইঞ্জিন রয়েছে: http://pushbuttonengine.com/

এবং সি ++ / পাইথনের জন্য পান্ডা 3 ডি রয়েছে: পান্ডা 3 ডি ডট কম (দুঃখিত, আমি কেবল n00b হিসাবে পোস্টে 1 টি ইউআরএল অনুমোদিত)

আমি নিশ্চিত এখানে আরও অনেক টন আছে :)

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