পদার্থবিজ্ঞানের ইঞ্জিন ঠিক কী?


57

একটি প্রোগ্রামের ইনপুট নেওয়া উচিত, এটি প্রক্রিয়া করা এবং আউটপুট দেওয়া উচিত। সুতরাং একটি পদার্থবিজ্ঞান ইঞ্জিন ইনপুট হিসাবে গ্রহণ করে এবং আউটপুট হিসাবে সরবরাহ করে?


36
প্রচুর পরিভাষা মানুষকে প্রশ্ন করে। মৌলিক প্রশ্নগুলি কেবল মৌলিক হওয়ার কারণে তাদের নিম্নোক্ত করার দরকার নেই।
মাইকেলহাউস

16
"ইনপুট নেওয়া উচিত, এটি প্রক্রিয়া করা উচিত এবং আউটপুট দেওয়া উচিত" এমন কোনও প্রোগ্রামের বিবরণটি এটিকে অকেজো বলে মনে করার এমন একটি অযৌক্তিক সরল ও হ্রাসকারী পদ্ধতি। আপনি কীভাবে এই প্রশ্নের উত্তর দেবেন তা চিন্তা করুন "" একটি প্রোগ্রামের উচিত ইনপুট নেওয়া, এটি প্রক্রিয়া করা এবং আউটপুট দেওয়া। সুতরাং কোনও গেমটি ঠিক কী ইনপুট হিসাবে গ্রহণ করে এবং আউটপুট হিসাবে সরবরাহ করে? ", আপনি উত্তর দিতে পারেন তবে এটি কোনও চিন্তাভাবনা করার উপায় নয় গেম।
জ্যাক এইডলি

10
@ জ্যাকএডলি আমি আপনার বক্তব্যটি দেখতে পাচ্ছি, তবে সত্যই, একটি গেমটি অনেকটা এরকম: ইনপুট: কীস্ট্রোকস এবং মাউস / জয়স্টিক আন্দোলন, আউটপুট: স্ক্রিনে মজাদার চিত্র এবং স্পিকারের বিনোদনমূলক শব্দ sounds এটি সরল, হ্যাঁ, তবে এটি "গেম" গণনাগত কী তা বুঝতে সহায়তা করে এবং আমার অভিজ্ঞতাতে কোড আর্কিটেকচার, সম্পদ নকশা, প্রকল্প পরিচালনা ইত্যাদি সম্পর্কে চিন্তাভাবনা করাও অত্যন্ত কার্যকর উপায় (তবে অবশ্যই একমাত্র উপায় নয়) is
wjl

উত্তর:


58

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

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

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


6

ইনপুট এটি গতি, ভর, এবং সময়, আউটপুট নতুন গতি। কখনও কখনও ঘূর্ণন / কৌনিক গতি একটি ইনপুট এবং আউটপুটও হয়।

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

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


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

@ পেট্রিকরোবার্টস টার্মিনাল বেগটি বায়ু প্রতিরোধের কথা উল্লেখ করার সময় আমি ঠিক কী ভাবছিলাম is এটি বলার মতোই হবে পংয়ের একটি পদার্থবিজ্ঞান ইঞ্জিন রয়েছে যা গতিগত প্রভাবগুলির মডেল করে।
পিটার

12
ন্যায্য হতে ভাল, একটি শিথিল অর্থে এটি। এটি একটি ওজনহীন পরিবেশে পুরোপুরি স্থিতিস্থাপক সংঘর্ষের মডেল models আমি বুঝতে পারি যে মডেলগুলি সরল হতে পারে, তবে সে কারণেই এগুলিকে মডেল বলা হয় কারণ তারা বাস্তবে বাস্তবের অনুভূতিগুলির বাস্তবিক অনুমান।
প্যাট্রিক রবার্টস

4

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

বিশেষত একটি পদার্থবিজ্ঞানের ইঞ্জিন বৈশিষ্ট্যের একটি সেট (ভর, জয়েন্টগুলি ইত্যাদি) নিয়ে একটি মডেল নেবে এবং প্যারামিটারের একটি সেট অনুসারে এটিকে খেলায় রেন্ডার করে।

এর প্রাথমিক উদাহরণ হ'ল র‌্যাগডল ইঞ্জিন (উদাহরণস্বরূপ অবাস্তব) যা এমনভাবে মডেল করেছিল যে লম্পট দেহগুলি নীচে নেমে আসে ইত্যাদি ইত্যাদি mode

বর্তমান প্রযুক্তিতে পদার্থবিজ্ঞানের ইঞ্জিনগুলি প্রায়শই এআই, ইন-গেম ইউআই, কটসিন জেনারেশন ইত্যাদির সাথে সামগ্রিক গেম ডেইন প্যাকেজটিতে ঘনিষ্ঠভাবে সংহত করা হবে

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

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


4

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

তত্ত্ব অনুসারে, একটি "খাঁটি" পদার্থবিজ্ঞানের ইঞ্জিনে তিনটি ইনপুট লাগবে:

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

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

অনুশীলনে, পদার্থবিজ্ঞানের ইঞ্জিনগুলি অগত্যা "খাঁটি" নয় । অবজেক্টগুলি তৈরি এবং ধ্বংস করা প্রয়োজন এবং কখনও কখনও পদার্থবিজ্ঞানের ইঞ্জিনের আইনগুলি এটির অনুমতি দেয় না এমন উপায়ে এগুলি ঘুরিয়ে নেওয়া প্রয়োজন। এটি কখনও কখনও ইঞ্জিনের বাইরেও করা যেতে পারে তবে কখনও কখনও এটি ভিতরে করা হয় এবং এটি করার জন্য ইঞ্জিনটির আরও ইনপুট প্রয়োজন। তবে উপরে উল্লিখিত তিনটি ইনপুট বেসিকগুলি আবরণ করে।

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

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

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


1

একটি পদার্থবিজ্ঞান ইঞ্জিন মূলত পদার্থবিদ্যার বডিগুলির একটি সিমুলেটর।

ইনপুট

এটি আপনাকে ভর, আকার, ঘনত্ব ইত্যাদির মতো পদার্থবিজ্ঞানের বৈশিষ্ট্যগুলি নির্দিষ্ট করে একটি দেহ (বা একাধিক ব্যক্তি) তৈরি করতে দেয় ...

এটি আপনাকে পদার্থবিজ্ঞানের জগতের বৈশিষ্ট্যগুলি সংজ্ঞায়িত করতে দেয় যেখানে সিমুলেশন ঘটে (যেমন মাধ্যাকর্ষণ)।

শেষ পর্যন্ত এটি আপনাকে বাহিনী প্রয়োগ করতে বা দেহের মধ্যে জয়েন্টগুলি তৈরি করতে দেয় to

আউটপুট

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

আপনি স্প্রিটদের স্ক্রিনে চলতে দেখছেন কারণ প্রতিটি ফ্রেমে গেম ইঞ্জিন পদার্থবিজ্ঞান ইঞ্জিনকে জিজ্ঞাসা করে

এই দেহটি এখন কোথায়?

এবং গেম ইঞ্জিন সেই অনুযায়ী গ্রাফিক্সের উপস্থাপনা আপডেট করে।

বিবেচ্য বিষয়

আমি সাধারণত পদার্থবিজ্ঞান ইঞ্জিনকে একটি ঘোষণামূলক উপায়ে পদার্থবিজ্ঞানের আইন প্রয়োগ করার একটি সরঞ্জামের মতো দেখতে দেখতে চাই ।

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


আপনার 'বিবেচনাগুলি' বিভাগটি (আমার কাছে) আসলেই পরিষ্কার নয়। যদি আপনি এটি আরও পরিস্কার এবং কংক্রিট / ব্যবহারিক হতে উন্নত করেন (উদাহরণস্বরূপ, আপনি অবলম্বন করেছেন, তৈরি করেছেন এমন প্রকৃত সিস্টেমের উদাহরণ সরবরাহ করুন), তবে আমি আপনাকে একটি +1 দেব give
কোড_ড্রেড

@ রে: আপনার পরামর্শের জন্য আপনাকে ধন্যবাদ। আমি যে ASAP ঠিক করব!
লুকা অ্যাঞ্জলেটটি

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