গেম প্রোগ্রামিং: সি # বা সি ++? [বন্ধ]


15

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

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

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

আমি কোনটির জন্য যাব সে সম্পর্কে আমি সত্যিই নিশ্চিত নই, আমি বিভিন্ন ওয়েবসাইটে প্রচুর থ্রেড পড়েছি এবং দেখে মনে হচ্ছে যে সি # সি ++ এর চেয়ে বেশি জনপ্রিয় হয়ে উঠছে। তবে হ্যাঁ, এটি বলেছিল, আমি উল্লেখ করেছি আমি গেম প্রোগ্রামিং করতে চাই। সুতরাং আমাকে "সি # আরও সহজ। নেট মেমরি হ্যান্ডলিংয়ের কারণে সি ++ নেই" এর চেয়ে আরও ভাল পয়েন্টগুলি জানা দরকার কারণ আমি কেবল এটি খুঁজে পাইনি।


16
আপনি গেমদেব.স্ট্যাকেক্সচেঞ্জ ডটকমকেও সহায়ক বলে মনে করতে পারেন।
অ্যাডাম লিয়ার


2
এছাড়াও এখানে দেখুন: গেমদেব.নেট
প্যাট্রিক হিউজেস

উত্তর:


21

আমি একটি গেম প্রোগ্রামিং করে সি ++ শিখি। এটি একটি খুব উপভোগ্য অভিজ্ঞতা ছিল। আমি আপনাকে একই কাজ করতে উত্সাহিত করছি!

তবে এখন আমি একজন সি # প্রোগ্রামার, আমি জানি সি যদি সেই সময়ে উপলব্ধ থাকত তবে আমি অনেক বেশি উত্পাদনশীল হতে পারতাম।

গেমের বিকাশ শেখার জন্য সি # হ'ল সঠিক পছন্দ। ফ্রেমওয়ার্ক থেকে শুরু করে বই পর্যন্ত আপনার যা করা দরকার তা এতে রয়েছে এবং ভাষাটি দুর্দান্ত।

আমি দেখেছি সি # গেম প্রোগ্রামিংয়ে বিশেষত রচিত কয়েক ডজন বই এবং মাইক্রোসফ্ট ডাইরেক্টএক্স এবং এক্সএনএ সহ তার কাঠামো উন্নত করার জন্য প্রচুর প্রচেষ্টা চালাচ্ছে ।

আপডেট : আপনার দ্বারা আগ্রহী হতে পারেন এই হিসাবে ভাল। এটি মিগুয়েল ডি ইকাজার সাম্প্রতিক একটি ব্লগ পোস্ট ।

আপডেট 2013-02-22 মাইক্রোসফ্ট এক্সএনএ সমর্থন বন্ধ করার পরিকল্পনা করছে ।


1
তাই সম্ভবত আমার এসডিএল বা সি -++ এর মতো কিছু পেতে শুরু করা উচিত এবং ভবিষ্যতে সি # তে চলে যাওয়া উচিত .. দেখে মনে হচ্ছে সি ইঞ্জিন তৈরির বাইরে সি +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ !
ক্রনিক্স

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

তা ছাড়া, স্পষ্টতই +1। আমি ব্যক্তিগতভাবে এখনও সি ++ পছন্দ করি তবে এটি কেবলমাত্র আমার প্রকল্পের বেশিরভাগ কিছু প্রকল্প-নির্দিষ্ট কারণে কিছুটা নিম্ন স্তরের অ্যাক্সেসের প্রয়োজন।
ক্লাইম

12

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

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

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

তবে হ্যাঁ আপনার প্রশ্নের উত্তর দেওয়ার জন্য, এগুলি সব কিছু সাধারণত সি ++ এ করা হয়।


1
স্লিমডিএক্স .NET- এর জন্য ডাইরেক্টএক্স র‌্যাপার সরবরাহ করে
ড্যানি ভারোড

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

8

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

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

একটি সফল এক্সএনএ গেম (চয়েসের অস্ত্র) বিকাশকারী লোকটির দ্বারা এখানে একটি ময়না রয়েছে। তিনি কীভাবে সি # / এক্সএনএ ব্যবহার করে সি -+ ব্যবহারের বিপরীতে তার বিকাশের সময় সাশ্রয় করেছেন তা বিশদ করেছেন। http://www.gamasutra.com/view/feature/3899/postmortem_mommys_best_games_.php

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


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

আমি এই প্রশ্নটি যুক্ত করতে চাই যে সি # এর সুবিধার জন্য এক্সএনএ ( এন.ইউইকিপিডিয়া. org / উইকি / মাইক্রোসফট_এক্সএনএ ) রয়েছে। এক্সএনএ পরিচালনা না করা ডাইরেক্টএক্সের তুলনায় খুব সহজ।
পাই

1
@ ডমিনিক এমসিডোনেল: আপনি সি # এর মতো পরিচালিত রানটাইমগুলিতে কোথাও লুকিয়ে থাকা জিনিসপত্রের রেফারেন্স রেখে স্মৃতি সমস্যার সম্মুখীন হতে পারেন এবং যখন এটি আঘাত হানে তখন আপনাকে এটি শিকারে আরও বেশি সময় কাটাতে হবে কারণ আপনি রিসোর্স লাইফটাইম সম্পর্কে চিন্তা করতে অভ্যস্ত হবেন না।
জানু হুডেক

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

3

আমি গেম ডেভলপমেন্টের জন্য সি ++ কে প্রচুর প্রচার করি। বিভিন্ন সুযোগ-সুবিধার সাথে কয়েকটি অতিরিক্ত বাধা রয়েছে, এর সর্বোত্তম কারণগুলির মধ্যে একটি হ'ল বহনযোগ্যতা।

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

আপনার যে ভাষাটি আমি সবচেয়ে বেশি শিখি সেগুলি হ'ল ওপেনসিএল বা সিইউডিএ, কিছু জিপিজিপিইউ ভাষা। ব্যক্তিগতভাবে আমি ওপেনসিএলকে বেশি পছন্দ করি কারণ এটি সম্ভবত আরও ছড়িয়ে পড়ে এবং আরও বাড়তে পারে, এটি মূলত কেবল সি স্টাইল। আছে OpenTK যেগুলি হয় সি ++ বা C # জন্য একটি চমৎকার মোড়কের হয়।

আমি সবসময় ভাবতাম যে রুবি গেম প্রোগ্রামিংটি হার্ডওয়্যার ত্বরণের সাথে কেমন হবে ...


3

কাঁচা গেম প্রোগ্রামিং আপনাকে বেশ ঠান্ডা ছেড়ে চলেছে। সি # বা সি ++ উভয় ক্ষেত্রে নিম্ন-স্তরের গ্রাফিক্স কলগুলির সাথে কাজ করা একটি ছোট্ট দুঃস্বপ্ন এবং আপনি সত্যিই 2 ডি স্প্রাইটগুলি রেন্ডারিংয়ের চাকাটি পুনরায় তৈরি করতে চান না 3 ডি মডেলকে ছেড়ে দিন। যেহেতু আপনি নিজেরাই আছেন এবং প্রোগ্রামিং শিখতে চান তাই আপনার সেরা বাজি হ'ল একটি ফ্রেমওয়ার্ক যা আপনাকে সামান্য এগিয়ে নিয়ে যেতে পারে find

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


2

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

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


সি # মনোতেও ক্রস করে (ক্রস প্ল্যাটফর্ম) তবে ফ্রেমওয়ার্কের কিছু অংশ (যেমন ডাব্লুপিএফ) সমর্থিত নয়।
ড্যানি ভারোড

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

1
মনোকে একটি সামঞ্জস্যপূর্ণ ওপেনএল র‌্যাপার সরবরাহ করতে হবে, যেহেতু আপনি বলেছেন যে ডাইরেক্টএক্স মাইক্রোসফ্ট। আমার বক্তব্যটি ছিল কেবল সি # আংশিকভাবে পোর্ট করা যেতে পারে।
ড্যানি ভারোড

2
ইউনিটির মধ্যে, মনোগাম (মনোের জন্য ওপেনসোর্স এক্সএনএ) এবং ওপেনটিকে মনো-র জন্য প্রচুর ভাল গেম লাইব্রেরি রয়েছে।
স্টোনমেটাল

1

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


স্ট্যাক এক্সচেঞ্জ প্রোগ্রামারগুলিতে আপনার প্রথম প্রশ্নের উত্তর দেওয়ার জন্য ধন্যবাদ Thanks
বিকাশকারী

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