XNA এবং সি # বনাম 360 এর অর্ডার প্রসেসর


14

এই ছদ্মবেশটি পড়ার পরে , আমি অনুভব করেছি যে তারা সম্ভবত ঠিক আছেন (জেনন এবং সেল বেল উভয়ই শাখাগুলি এবং ক্যাশে অজ্ঞ কোডের জন্য অত্যন্ত সংবেদনশীল ) তবে আমি শুনেছি যে লোকেরা সি # দিয়েও দুর্দান্ত গেম তৈরি করছে making

সুতরাং, এটি কি সত্য যে এক্সএনএ নিয়ে কোনও পেশাদার কাজ করা অসম্ভব , বা পোস্টারটি কী অনুপস্থিত ছিল যা এক্সএনএকে গেম বিকাশের জন্য হত্যাকারী এপিআই করে তোলে?

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

তবে, অনেকে মনে করেন যে এই বাধাগুলির মধ্যেই তারা কাজ করে যাচ্ছে, তাদের সফল গেমস তৈরি করছে তবে আপাতদৃষ্টিতে বাদ দেওয়া কোনও সমস্যা এড়ানো হচ্ছে। আমি কোনও এক্সএনএ গেমসটি ইতিমধ্যে লাইব্রেরি দ্বারা সরবরাহ করা বা শেডার দ্বারা পরিচালিত ব্যতীত জটিল কিছু করতে লক্ষ্য করেছি। আরো জটিল খেলা কারণ Teh গতিবিদ্যা এই পরিহার করা হয় C # এর সীমাবদ্ধতা , বা শুধু মানুষের উপর মনোযোগ এটি সম্পন্ন পেয়ে ?

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


সত্যিই ভাড়া। লোকটির সম্পর্কে কোনও তথ্য খুঁজে না পাওয়া এবং তারা একটি স্টার্টআপ দেখে, আমি এর ব্যাক আপ করার জন্য কোনও ধরণের স্পষ্ট তথ্য দেখতে চাই ...
জোনাথন কনেল

যে কারণে আমি পুরোপুরি বুঝতে পারি না স্টুডিওগুলি XNA ব্যবহারের বিষয়টি স্বীকার করে নি বলে মনে হয় না। তবে এখানে লিঙ্কের
ত্রিস্তান ওয়ার্নার-স্মিথ

ঠিক আছে, এটির ব্যাক আপ করার সুস্পষ্ট তথ্যটি হ'ল সিপিউটি শাখা কোডে খুব সহজাতভাবে খারাপ, যা সি #। আমি কী জানতে চাই, পেশাদার এক্সএনএ ব্যবহারকারীরা কী করছেন এর অর্থ তারা সি # দ্বারা আরোপিত নরম সীমাটিতে আঘাত করবেন না?
রিচার্ড ফ্যাবিয়ান

3
আমি ডাউন ভোট বুঝতে পারি না ...
FxIII

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

উত্তর:


21

ঠিক আছে, আপনি যে লিঙ্কটি যুক্ত করেছেন তাতে কেবল কিছু ছিদ্র po

  • "সি # একটি" জাস্ট ইন টাইম "দোভাষী" - এর উপর নির্ভর করে - এটি একটি জেআইটি সংকলক । কোনও পদ্ধতি একবারে জেআইটিড হওয়ার পরে , প্রতিটি অনুরোধের জন্য সংকলিত কোডটি পুনরায় ব্যবহার করা হবে। সংকলিত কোডটি নেটিভ, প্রাক-সংকলিত কোডের মতোই খুব কাছাকাছি।
  • "জেনন সিপিইউ হলেন" জায়গায় "প্রসেসর" - তার মানে কি "অর্ডার"? - এবং: "জেনন সিপিইউর কোনও শাখার পূর্বাভাস নেই" । তিনি এর অর্থ বোঝাতে চেয়েছিলেন যে জেআইটি সংকলন স্বাভাবিকভাবেই খারাপ কোড তৈরি করে যা অবশ্যই সিপিইউ দ্বারা পুনরায় অর্ডার করা উচিত এবং প্রচুর শাখা-প্রশাখা সৃষ্টি করে - যা পরম বোকামি । এই সিপিইউ আর্কিটেকচারে চলার জন্য একই কার্য সম্পাদনের পরামর্শ C ++ এবং C # উভয় ক্ষেত্রেই প্রযোজ্য।
  • "[জেআইটি] 360 এ ধীরে ধীরে ফ্লাশিং প্রয়োজন" - ভুল, সংকলিত কোডটি কোনও সাধারণ সংকলিত কোডের মতো ক্যাশে রাখা যেতে পারে। (যদি তার অর্থ পাইপলাইন ফ্লাশ হয় তবে উপরের বিষয়টি দেখুন))
  • "জেনেরিকস [...] কোড জেনারেশন ব্যবহার করুন" - জেনেরিকগুলি অন্য কিছুর মতো জেআইটিড হয় এবং অন্য সমস্ত কিছুর মতো, জেআইটিড কোডটি দ্রুত। জেনেরিক ব্যবহারের জন্য কোনও পারফরম্যান্স পেনাল্টি নেই।
  • "ভাষার সমস্ত সেক্সি বিটগুলির উভয়ই শাখার পূর্বাভাসের প্রয়োজন ..." - এটি সি ++ তেও কীভাবে প্রযোজ্য নয়? - "... বা [...] ইন-প্লেস কোড জেনারেশন" - তার অর্থ কী জেটিটিং? আমি কি উল্লেখ করেছি যে এটি দ্রুত? ( ডেস্কটপ সিএলআর প্রকৃত কোড জেনারেশন ব্যবহার করে এমন সমস্ত জায়গায় আমি যাব না - একটি বৈশিষ্ট্য যা এক্সবক্স ৩box০ সমর্থন করে না!)
  • "[সি # এর [সি ++] এর বিশাল গ্রন্থাগার নেই" - ব্যতীত, এক্সএনএ বলুন? এবং আরও অনেক কিছু । (তবুও এটি কিছুটা ন্যায্য বিষয়।)

এক্সবক্স 360 এ এক্সএনএ।। নেট কমপ্যাক্ট ফ্রেমওয়ার্ক সিএলআর-র পরিবর্তিত সংস্করণে চলে। আমার কোনও সন্দেহ নেই যে এটি ডেস্কটপ সংস্করণের মান অনুসারে নয়। নার্ভাসভাবে সম্ভবত নয় ভাল হিসাবে - কিন্তু আমি এটা মনে করি না খারাপ পারেন। আমি অবাক হয়েছি যে তিনি আবর্জনা সংগ্রাহকের কথা উল্লেখ করেন নি যা ডেস্কটপ সিএলআরের তুলনায় ভয়ঙ্কর

(অবশ্যই - আপনি যেভাবেই কোনও পেশাদার-বিকাশিত খেলায় আবর্জনা সংগ্রহকারীকে আঘাত করা উচিত নয় , যেমন আপনাকে অবশ্যই কোনও পেশাদার-গ্রেডের খেলায় বরাদ্দ দেওয়ার ক্ষেত্রে যত্নবান হতে হবে ))

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

তাঁর পরিভাষা সম্পর্কে তিনি যেভাবে সম্পূর্ণ অপ্রয়োজনীয়, সেটির অর্থ কী তা বোঝাও মুশকিল হয়ে পড়ে। হয় সে সর্বাধিক অভিজাত মোডে আছে, বা সে কী বলছে তা জানে না।


এখন যে আমরা পেয়েছেন পথ থেকে, এখানে কিছু বিষয় আছে যা আপনি না 360-তে XNA ব্যবহার করে, বরং দেশীয় গিয়ে ফসকান :

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

এটি কেবল উল্লেখযোগ্য যে এগুলি কেবল সিপিইউ-সাইডের বিধিনিষেধ। আপনি এখনও জিপিইউতে সম্পূর্ণ নিখরচায় অ্যাক্সেস পেয়েছেন।

আমি কার্যকরভাবে এই হিসাবে একই প্রশ্নটি কি এই উত্তরে এই বিষয়গুলি বর্ণনা করেছি । আমি যে উত্তরে উল্লেখ করেছি এক্সএনএ "পেশাদার" বিকাশের জন্য একেবারে উপযুক্ত

আপনি কেবল এড়াতে চান কারণ হ'ল আপনি সি # ট্যালেন্ট, লাইসেন্স সি # ইঞ্জিন ভাড়া নিতে পারবেন না এবং বিদ্যমান সি # কোডটিকে সি ++ জ্ঞানের বিদ্যমান বেসের সাথে একইভাবে পুনরায় ব্যবহার করতে পারবেন না। অথবা কারণ আপনি এমন একটি প্ল্যাটফর্ম লক্ষ্য করছেন যা সি # সমর্থন করে না।

অবশ্যই, আমাদের মধ্যে যারা "পেশাদার" বিকাশকারী নন, এক্সএনএ হ'ল এক্সবক্স ৩ .০ এ পৌঁছানোর একমাত্র বিকল্প, পয়েন্টটি মোটা করে।


আপনার অন্যান্য প্রশ্নের উত্তর দিতে:

সি # তে কোনও কিছুই আপনাকে তথ্য-ভিত্তিক পন্থাগুলি সি -++ তে যেভাবে ব্যবহার করতে চান ঠিক তেমনভাবে ব্যবহার করে না।

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

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


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

2
সি # যদি মানকে টাইপ করে দেয় তবে (কেবল অভ্যন্তরীণ নয় - আপনি নিজের মানের প্রকারগুলি তৈরি করতে পারেন) যদি বাকী থাকে object। এবং সংস্করণ 1-এ (জেনেরিকের আগে) আপনি এগুলিকে বক্সিং না করে একটি অরে অ্যারে ধারক করে রাখতে পারেন না। তবে আজকাল বাক্স-মুক্ত কোড লেখা খুব সহজ। এবং সিএলআর প্রোফাইলার আপনাকে এমন কোনও জায়গা সনাক্ত করতে দেয় যেখানে আপনি বক্সিং করতে পারেন।
অ্যান্ড্রু রাসেল

জেআইটি দোভাষী পাওয়াও কি সম্ভব? প্যারাডক্সিকাল মনে হচ্ছে।
কমিউনিস্ট হাঁস

আমি কয়েকটি থ্রেডেড কোড কৌশল দেখেছি যা আমি জেআইটি ব্যাখ্যা হিসাবে শ্রেণিবদ্ধ করব। এটি অবশ্যই প্রান্তের কেস।

1
@Roy টি দি " XNA ম্যাথ লাইব্রেরি " (DirectX অংশ) এবং " XNA ফ্রেমওয়ার্ক " দুটি সম্পূর্ণরূপে একটি খুব দুর্ভাগ্যজনক নামকরণ সংঘর্ষের সঙ্গে বিভিন্ন জিনিস। আপনার লিঙ্ক করা ডকুমেন্টেশন এক্সএনএ ফ্রেমওয়ার্কের জন্য প্রযোজ্য নয়। এক্সএনএ ফ্রেমওয়ার্ক গণিতের ধরণগুলি সিমডি / ভেক্টর ইউনিট ব্যবহার করে না
অ্যান্ড্রু রাসেল

5

আপনাকে 'পেশাদার' সংজ্ঞায়িত করতে হবে। আপনি কি অ্যাংরি বার্ডস, প্ল্যান্ট বনাম জম্বি ইত্যাদি করতে পারবেন? একেবারে। আপনি কি ক্রিসিস 2, সিওডি, হ্যালো করতে পারেন? আমি এটাকে সন্দেহ করি. সি # ব্যবহার করা কেবলমাত্র এমন গেমগুলিতে প্রভাব ফেলবে যা খুব সিপিইউ নিবিড় এবং এছাড়াও মেমরির প্রতিটি শেষ বাইট (আপনার আবর্জনা সংগ্রহের কাছে হারাতে হবে) চেপে ফেলতে হবে, তাই আপনি এখনও করতে পারেন এমন ভয়াবহ কিছু রয়েছে।

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

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


আপনি কি একটি ক্রিপী ডিউক নুকিম সিক্যুয়াল বানাতে পারেন? ;)
জোনাথন কনেল

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

@ ব্লুরাজা: এক্সবক্স

1
@ ব্লুরাজা: এটি উল্লেখ করা মূল্যবান যে নিরাপদ সমতুল্যের চেয়ে unsafeকোডটি প্রায়শই ধীর হয় কারণ এটি সিএলআর করতে পারে এমন অপটিমাইজেশনের সংখ্যা হ্রাস করে। আপনি এটি পরিমাপ করতে হবে।
অ্যান্ড্রু রাসেল

2
@ ব্লুরাজা "আপনি যখন বিবেচনা করেন যে বেশিরভাগ গেমস সিপিইউ-আবদ্ধ নয়" প্রশংসাপত্রের খুব দরকার? আমি একটি পেশাদারভাবে বিকশিত গেমের জন্য কাজ করি নি যা সমস্ত অক্ষরে আবদ্ধ নয়। যদি এটি না হয় আমরা মেশিনের part অংশে লোড স্থানান্তর করার কোনও উপায় খুঁজে পাই না!
রিচার্ড ফ্যাবিয়ান

3

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

আরও পেশাদার গেমগুলিতে ফিজিক্স মডেল এবং অ্যানিমেশন সিস্টেম রয়েছে

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


1
উচ্চ বহুভুজ গণনা এবং এইচডিআর গ্রাফিক্স-কার্ডে পড়বে, না? সুতরাং আপনার সি # এবং সি ++ তে ঠিক একই পারফরম্যান্স আশা করা উচিত।
ব্লুরাজা - ড্যানি পিফ্লুঘুফুট

@ ব্লুরাজা: তাদের জন্য একটি সিপিইউ খরচও রয়েছে, এবং
মেমোরি-

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