একটি গেম ইঞ্জিন বিকাশের জন্য কোনও প্রোগ্রামারকে নির্দিষ্ট গণিত, পদার্থবিজ্ঞান, এআই এবং সাধারণ ধারণাগুলি কী কী জানতে হবে? [বন্ধ]


9

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

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

আমার উদ্দেশ্য

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

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

উত্তর:


11

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

অ্যালগরিদম : থাম্ব একই নিয়ম প্রযোজ্য। উদাহরণস্বরূপ, খাঁটি 2 ডি পরিবেশে, সংঘটন সনাক্তকরণ 3 ডি এর চেয়ে খুব আলাদাভাবে কাজ করে।

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

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

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

আগ্রহের অন্যান্য বিষয়গুলি হওয়া উচিত: সংযুক্তিবিদ্যা, পরিসংখ্যান

পদার্থবিজ্ঞান: এটি বাধ্যতামূলক নয়, যদি আপনি সাধারণ গেমস তৈরির পরিকল্পনা করে থাকেন। ক্ষতি করে না, তবে আপনি এই ক্ষেত্রে হাই স্কুল পদার্থবিজ্ঞানের সাথে জরিমানা করে পাবেন।

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

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

আপনি কোন ধরণের গেমটি বিকাশ করতে চান? সম্ভবত আমি এই তথ্যগুলির সাথে এই পয়েন্টগুলিতে আরও বিস্তারিত জানাতে পারি।


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


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

না, আমি এটি পরীক্ষা করেছিলাম না। হ্যাঁ ... সি # তে যেতে সমস্যা হয় না। তবে আমি পাইথন ধরণের
জিনিসটিতে

আপনি যদি পাইথনে আগ্রহী হন এবং গেমটি তৈরির জন্য প্রযুক্তি তৈরির পরিবর্তে আপনি গেম তৈরি করতে আগ্রহী হন তবে আপনি পান্ডা 3 ডি বা ব্লেন্ডার গেম ইঞ্জিনটি পরীক্ষা করে দেখতে পারেন।
শান মিডলডিচ

1

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

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

পদার্থবিজ্ঞানের জন্য, আপনি একটি যাত্রায় বেরিয়ে এসেছেন। পদার্থবিজ্ঞান দুটি পৃথক বিভাগে বিভক্ত হতে পারে: সংঘর্ষ সনাক্তকরণ এবং সংঘর্ষের প্রতিক্রিয়া। সংঘর্ষ সনাক্তকরণের পেছনের গণিতটি অবশ্যই আপনাকে অবশ্যই জানতে হবে, কারণ সেই অঙ্কটি আপনার গ্রাফিক্সের (বিশেষত গাছ ও মানচিত্রের জন্য যা আপনার প্রয়োজনের জন্য প্রয়োজন) তৈরি করার সাথে কম-বেশি অভিন্ন এবং আপনি সেই জিনিসটি ব্যবহার করতে যাচ্ছেন আপনার গেম যুক্তি প্রচুর।

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

আপনাকে শুরু করার জন্য আমি নীচের বইগুলির সুপারিশ করব। প্রথমটি হ'ল 3 ডি গেম প্রোগ্রামার হিসাবে আপনার যে প্রাথমিক গণিতটি জানতে হবে তা সম্পর্কিত একটি প্রাথমিক ভূমিকা বই:

http://www.amazon.com/Mathematics-Programming-Computer-Graphics-Third/dp/1435458869

দ্বিতীয়টি সংঘর্ষ সনাক্তকরণ অ্যালগরিদম (সংঘর্ষের প্রতিক্রিয়া নয়!) সনাক্তকারী একটি বই যা আপনার গ্রাফিক্স কোডিং এবং আপনার পদার্থবিজ্ঞানের কোডিং উভয়কে সহায়তা করবে:

http://www.amazon.com/Real-Time-Collision-Detection-Interactive-Technology/dp/1558607323

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