গেমের দৃশ্যের গ্রাফে কী থাকতে হবে?


10

আপনি কি আমাকে স্পষ্ট করতে সাহায্য করবেন, দয়া করে, কোন গেমের দৃশ্যের গ্রাফের মধ্যে ঠিক কী থাকা উচিত? নীচের তালিকাটি দেখুন, দয়া করে:

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

উপরোক্ত বিবেচিত বস্তুর প্রকারগুলি। এখন দৃশ্য গ্রাফের কভারেজ পর্যন্ত:

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

@ জোশ: আমার প্রশ্ন সম্পাদনা এবং সংশোধন করার জন্য ধন্যবাদ।
বুঙ্কাই.সেটেরি

উত্তর:


4

আমি মনে করি যে অন্যান্য দৃশ্যের গ্রাফ প্রযুক্তিগুলি কী করছে তা ভাল করে পড়লে আপনার পক্ষে প্রচুর উপকার হবে।

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

দৃশ্য নোড ডকুমেন্টেশন:
http://www.ogre3d.org/docs/api/1.9/class_ogre_1_1_scene_node.html

দৃশ্য পরিচালকের ডকুমেন্টেশন: http://www.ogre3d.org/docs/api/1.9/class_ogre_1_1_scene_manager.html

দেখার মতো অন্য কিছু হ'ল নিম্নলিখিত লিঙ্কটি:
http://sgl.sourceforge.net/#features

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

আপনার প্রস্তাবিত নোড
আমি এই মতামত নিয়েছি যে কোনও দৃশ্যের গ্রাফটি গেম লজিক থেকে যতটা সম্ভব দূরে রাখা উচিত যাতে আপনার কোনও নির্ভরতার সমস্যা না থাকে। আপনার প্রতিটি বুলেট পয়েন্টের জন্য আমি নিম্নলিখিতটি বলব:

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

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

সাধারণ স্ট্যাটিক গেমটি ওজবেক্টস
হ্যাঁ

খেলা ট্রিগার?
না, এটি আমার কাছে গেম নির্দিষ্ট যুক্তির মতো শোনাচ্ছে।

খেলা আলো?
হ্যাঁ

গেম ক্যামেরা?
হ্যাঁ

অস্ত্র বুলেট?
এটি সম্পর্কে পুরোপুরি নিশ্চিত নয়, তবে আমি সম্ভবত হ্যাঁ বলব, তবে আপনি সম্ভবত "বুলেট সংগ্রহ" প্যারেন্ট দৃশ্যের নোডে বাচ্চাদের হিসাবে সমস্ত গুলি চাইছিলেন, যাতে আপনি সেই অবস্থানটি ক্যাশে করতে পারেন এবং আপনাকে আর পাশ কাটাতে হবে না দৃশ্যের গ্রাফটি রেন্ডার করতে বুলেটগুলি সরাতে এবং যুক্ত করতে অনেকগুলি

খেলা বিস্ফোরণ এবং বিশেষ প্রভাব?
নিশ্চিত নয়, আমি এর উত্তর অন্য কাউকে দেব।

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

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

উপসংহার
আমার কাছে একটি দৃশ্যের গ্রাফটি গেম লুপের রেন্ডার অংশের জন্য। আপনার রেন্ডারিং এবং আপনার লজিক আপডেটগুলি খুব কাছাকাছি একসাথে করা উচিত নয়, অন্যথায় আপনি বিরক্তিকর নির্ভরশীলতার সমস্যাগুলিতে চলে যাচ্ছেন।


+1 - বিস্তারিত এবং মূল্যবান উত্তরের জন্য আপনাকে ধন্যবাদ। SceneGraphs সম্পর্কে আমার জ্ঞান কোডিং সম্পূর্ণ (থেকে একটি বই খেলা আসে amazon.com/Game-Coding-Complete-Third-McShaffry/dp/1584506806/... )। আপনার লিঙ্কগুলি সহায়ক, বিশেষত ওগ্রে সিন নোড শ্রেণি। আপনার উপসংহারে উল্লেখ করে , আপনি কি গেম সংযুক্ত বস্তুর রূপান্তরগুলি আপডেট করার দুর্দান্ত উপায় হিসাবে একটি দৃশ্য গ্রাফ দেখতে পাচ্ছেন? আপনার এবং জোশের উভয় উত্তরই দুর্দান্ত। আমি মনে করি, এটিতে এটিতে আরও তথ্য রয়েছে, তাই আমি এটির স্বীকৃত উত্তরটি চিহ্নিত করছি ।
বুঙ্কাই.সেটেরি

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

9

আমার প্রবণতাটি কোনও দৃশ্যের গ্রাফটিতে কম জিনিস রাখার পরামর্শ দেওয়া । বিশেষভাবে টম ফোর্সিথের এই নিবন্ধটি দেখুন: " দৃশ্য গ্রাফগুলি - কেবল বলুন না "।

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

তুলনামূলকভাবে পৃথিবীতে কয়েকটি বস্তু একটি দৃ parent় পিতা-সন্তানের সম্পর্ককে গাছের কাঠামোর সাথে মানানসই হিসাবে প্রদর্শন করে। কোনও টেবিলে কফির কাপের প্রচলিত উদাহরণটি সাধারণত এখানে ব্যবহৃত হয় - অবশ্যই, আপনি এটিকে টেবিলের একটি 'শিশু' হিসাবে বিবেচনা করতে পারেন ... কমপক্ষে এটি ছিটকে না যাওয়া পর্যন্ত। তাহলে কি তা এখনও টেবিলের শিশু? এর অর্থ আপনার 'গাছ' কোনওভাবেই তালিকায় বেশ অগভীর এবং ধরণের অবনতি ঘটতে পারে।

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

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

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

এটির মূল্যের জন্য, আমি অ-একাডেমিক ব্যবহারের জন্য আমি যে কোনও রেন্ডার তৈরি করেছি তার মধ্যে কখনও গাছের মতো দৃশ্যের গ্রাফ ব্যবহার করি নি (স্পষ্টত আমি গাছের মতো দৃশ্যের গ্রাফগুলি আগেও তৈরি করেছি, আমি এই সিদ্ধান্তে পৌঁছেছি যে আমি এখন আপনাকে সম্মত করার চেষ্টা করছি))

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


চমৎকার উত্তরের জন্য +1। আমি প্রস্তাবিত নিবন্ধটি পড়েছি। মূলত, আমি সংযুক্ত বস্তুর অবস্থান আপডেট করার জন্য দৃশ্য গ্রাফটি ব্যবহার করতে চাই (উদাহরণস্বরূপ: একটি জাহাজে কিছু সৈন্য রয়েছে ship জাহাজটি চলার সাথে সাথে সৈন্যরা তার সাথে চলাচল করে, এবং তাদের হাতে বন্দুকগুলিও চলাচল করে)। অতএব, আমি ইন্টারফেস ক্লাস রাখার পরিকল্পনা করেছি: সিগেমোবজেক্ট এবং সমস্ত বস্তুকে দৃশ্য গ্রাফে রাখার জন্য এটির অংশ বলে মনে করা হচ্ছে। আপনার পরামর্শের জন্য আপনাকে অনেক ধন্যবাদ।
বুঙ্কাই.সেটেরি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.