গেম প্রোগ্রামিং: সাধারণ পদ্ধতি এবং ডিজাইনের ধরণগুলি [বন্ধ]


9

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

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

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


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

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

1
আমি দেখছি, শিরোনামে "গেম ইঞ্জিনের সাধারণ পদ্ধতিগুলি" রাখার ফলে আলোচনার দিকে ঝুঁকতে দেখা যায় ... ইঞ্জিন =) যে কোনও ক্ষেত্রে, আপনি যা খুঁজছেন তা পেতে অসুবিধা হচ্ছেন যে কারণ অনেকগুলি আছে মায়ান ক্যালেন্ডারে বছর থাকার কারণে বিভিন্ন ধরণের গেমগুলির নিজস্ব চাহিদা রয়েছে। আপনি যদি নির্দিষ্ট ধরণের গেমটি সন্ধান করেন তবে অনুসন্ধানের ইঞ্জিনগুলিকে কিছু ট্র্যাকশন দেওয়ার জন্য প্রথম ব্যক্তি শ্যুটার খুব সাধারণ বিষয় হতে পারে আপনার আরও ভাল ফলাফল হতে পারে।
প্যাট্রিক হিউজেস 23

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

3
গেম কোডিং সম্পূর্ণ, গেম ইঞ্জিন আর্কিটেকচারটি গেমিং গেম সম্পর্কিত দুটি বই, আপনি বিকাশ পাইপলাইন এবং অন্তর্নিহিত প্রযুক্তির একটি সাধারণ ধারণা পাবেন, তারা কিছুটা কিছুটা স্পর্শ করে
ড্রেটা

উত্তর:


11

আমি প্রায় 2 মাস আগে আপনার পর্যায়ে থেকে আমি একটি সঠিক উত্তর লিখব।

আমি খুব সাধারণ গেম ইঞ্জিনটি লিখতে শুরু করি যাতে আমি ওপেনএল 3.x আরও ভাল শিখতে পারি তবে যেহেতু আমার অনভিজ্ঞতা এবং 3 ডি গেমটি কীভাবে ডিজাইন করা উচিত তা সম্পর্কে আমার স্পর্শ জ্ঞান যেহেতু আমি সাধারণত এমন সমস্যায় পড়ি যেখানে আমি বুঝতে পারি যে আমার ক্লাসগুলি ডিজাইন করা উচিত ছিল ভিন্নভাবে।

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

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

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

এছাড়াও আমি এক জিনিস থেকে অন্য বস্তুতে বিভিন্ন পতাকা পাস করার জন্য গেট অ্যান্ড সেট ফাংশন করা প্রয়োজন, এটি কি খারাপ অভ্যাস?

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

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

নিবন্ধ এবং বই:

  • গেম ইঞ্জিন বিকাশ

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

http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135

http://www.amazon.com/Game-Coding-Complete-Third-Edition/dp/1584506806

  • যেমন OpenGL

http://ogldev.atspace.co.uk/index.html

http://www.arcsynthesis.org/gltut/index.html

http://www.opengl.org/sdk/docs/man3/

  • GLSL

http://www.lighthouse3d.com/tutorials/glsl-core-tutorial/glsl-core-tutorial-index/

http://www.opengl.org/sdk/docs/manglsl/

  • সংঘর্ষ সনাক্তকরণ

http://www.peroxide.dk/papers/collision/collision.pdf

(আমি এটি লিঙ্ক করছি কারণ 3 ডি সংঘর্ষ সনাক্তকরণ কীভাবে সঠিকভাবে করা যায় তার নিবন্ধগুলি খুঁজে পাওয়া আমার পক্ষে কঠিন মনে হয়েছিল))

আরও বই রয়েছে, তবে আপনি এটি (বিশেষত গেম ইঞ্জিন আর্কিটেকচার) দিয়ে শেষ করার পরে আপনি কী চান তা আরও ভালভাবে জানতে পারবেন।

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

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


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

@ ইউজার 1294203 দুর্দান্ত, শুরু করার সময় আমি হারিয়ে গিয়েছিলাম, তাই স্রেফ এটি পোস্ট করুন
ড্রেটা

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