গেম তৈরি করতে কোন কার্যকরী ভাষা সবচেয়ে উপযুক্ত? [বন্ধ]


19

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

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

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

নীচের লাইন: কার্যকরী গেম প্রোগ্রামিংয়ের জন্য কার্যকরী প্রোগ্রামিং ভাষাটি সবচেয়ে ভাল এবং কেন?

আমি বিশ্বাস করি / আশা করি এই প্রশ্নটি একটি সুস্পষ্ট সর্বোত্তম ভাষা ঘোষণা করবে তাই বিষয়গত প্রবণতা সত্ত্বেও আমি এটি সিডাব্লু চিহ্নিত করিনি।


2
"2 ডি গেমস বা 3 ডি গেমসের অর্থ কী?" "হু? আমি জানি না - আইলি "
সাইক্লপস

@ সাইক্লপস আহ, কি? আমি বুঝতে পারি না ...
রিকিট

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

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

1
আমি মনে করি না সেরা ভাষা সম্পর্কে একটি নির্দিষ্ট উত্তর আছে।
ওয়েই হু

উত্তর:


12

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

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

যেহেতু স্কালা জাভা জমিতে খেলা করে, এটি উপলব্ধ সমস্ত জাভা ইঞ্জিন / বাইন্ডিংগুলির সাথে সংহত করে, এই এসও পোস্টটি দেখুন।

আমি মনে করি এটি পছন্দ হিসাবে নেমে আসে, যখন আমি কেবল হাস্কেলের সাথে খেলেছি, আমি ভাবতে পারি যে প্রতিটি কার্যকরী ভাষার নিজস্ব আইডিসিঙ্ক্রেসি রয়েছে। এটি প্রতিটিটিতে একটি ছোট টেস্ট গেমটি বেত্রাঘাত করা এবং কোনটি আপনার কাছে ভাল বলে মনে হয় তা মূল্যবান হতে পারে।

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


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

আমি আসলে একটি এফ # প্রকল্পের XNA (কর্নফ্লাওয়ার নীল সহ একটি খালি XNA উইন্ডোতে যে চলমান পেয়েছিলাম, শুধুমাত্র কোড ছিল এফ # এবং C # এর।
RCIX

8

আমি লিস্প বলব।

এটি গেমগুলিকে স্ক্রিপ্টিং ভাষা হিসাবে ব্যবহার করা হয়েছে, দুষ্টু কুকুরের অন্ততপক্ষে (বা এটি আমার মনে হয়েছিল), এবং এটি একটি খুব পরিপক্ক ভাষা।

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


টিবিএইচ আমি এর বিরুদ্ধে সুপারিশ করব d স্ক্রিপ্টিং ভাষাগুলি কেবল বিকাশকারীদের ব্যবহারের জন্য নয়; modders খেলা mod করতে চান, এবং কিছুই যে তাদের যতো তাড়াতাড়ি (() ()))) () ((()) প্লাস, এমনকি যতদূর কার্মিক ভাষায় যত যাবে, পাতার মর্মর গূঢ় হয় বন্ধ ভীতি
RCIX

7
যদি মোড্ডারদের ভীতি প্রদর্শন করা আপনার উদ্বেগজনক কিছু হয় তবে কার্যকরী ভাষার পক্ষে যাওয়া সম্ভবত সঠিক পদক্ষেপ নয়।
পল উইকস

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

1
@ আরসিআইএক্স এবং জো সত্যই। পাতার মর্মর & প্রকল্প হয় বিশ্ববিদ্যালয় অনেকটা এ পরিচায়ক ভাষায়।
ওবরহামসি

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

8

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

কারণ:

  • উত্পাদনশীলতা - ক্লোজার একটি গতিশীল ভাষা। ইন্টারেক্টিভ REPL- শৈলীর বিকাশের জন্য এতে দুর্দান্ত বৈশিষ্ট্য রয়েছে, উদাহরণস্বরূপ আপনি কোনও চলমান গেম অ্যাপ্লিকেশন উদাহরণের মধ্যে ক্যোয়ারী বা অবস্থার পরিবর্তন করতে REPL ব্যবহার করতে পারেন। ক্লোজুরে কোডও প্রায়শই হাস্যকরভাবে সংক্ষিপ্ত হয়। আমার ধারণা আমি জাভা বা সি # এর চেয়ে ক্লোজুরে 3-5 গুণ বেশি উত্পাদনশীল।
  • অশুদ্ধ - যদিও আমি হাস্কেলের মতো খাঁটি কার্যকরী ভাষার সৌন্দর্য এবং কমনীয়তার প্রশংসা করি, গেম প্রোগ্রামিং হ'ল এক অদ্ভুত অনুসরণ যেখানে বাস্তববাদ জেতা। আমার যখন প্রয়োজন হয় তখন আমি আমার ফাংশনগুলিতে পার্শ্ব প্রতিক্রিয়া রাখতে সক্ষম হতে চাই এবং ক্লোজুরে এটির অনুমতি দেয়। এই কথাটি বলে, মুশকিল ক্লোজার স্টাইলটি বেশিরভাগ সময় খাঁটিভাবে কার্যকর হয় ।
  • রূপান্তরকরণ - হোমজিওনিক ভাষা হিসাবে ক্লোজারের লিসপ heritage তিহ্য এটিকে রূপক / কোড উত্পন্নকরণের জন্য দুর্দান্ত করে তোলে। আপনার নিজস্ব ডিএসএল তৈরি করতে বা বায়োলেপ্লেট নির্মূল করতে "ভাষা প্রসারিত করা" সহজ। ক্লোজারকে এটি নিজের গেমের স্ক্রিপ্টিং ভাষা হিসাবে সহজেই ব্যবহার করতে পারত এবং গতিশীল কোড সংকলনের অর্থ আপনার স্ক্রিপ্টগুলি আপনার মূল গেম ইঞ্জিনের মতোই দ্রুত চলবে।
  • জাভা লাইব্রেরি অ্যাক্সেস । আপনি জাভা থেকে সমস্ত সাউন্ড / গ্রাফিক্স / এআই / নেটওয়ার্কিং লাইব্রেরি ব্যবহার করতে পারেন যা বেশ কয়েকটি অন্যান্য কার্যকরী ভাষাগুলির তুলনায় একটি বিশাল সুবিধা (যেখানে আপনাকে এগুলি স্ক্র্যাচ থেকে লিখতে হবে বা প্রচুর ট্র্যাফিক ইন্টারফেসিং কোড বিকাশ করতে হবে)। এটি জীবনরক্ষক হতে পারে।
  • ক্রস প্ল্যাটফর্ম - এটি JVM এ চালানো থেকে নিখরচায় আসে, তবে এটি একটি দুর্দান্ত বোনাস।
  • পারফরম্যান্স - একটি গতিশীল কার্যকরী ভাষার জন্য, ক্লোজার আপনার পক্ষে যত দ্রুত গতি পেতে পারে is এটি সর্বদা জেআইটি সংকলিত হয়, কখনও ব্যাখ্যা হয় না। বুদ্ধিমান অপ্টিমাইজেশানের সাথে আপনি ক্লোজুরে খাঁটি, নিম্ন-স্তরের জাভা কোডের গতির সাথে মেলে ধরতে পারেন। উদাহরণস্বরূপ, আপনি জাভা আদিম অ্যারেগুলি ব্যবহার করতে পারেন, বা সংস্থাপকটি পারফরম্যান্স-সমালোচনামূলক কোডে স্ট্যাটিকভাবে টাইপড ফাংশন কল উত্পাদন করে তা নিশ্চিত করতে টাইপ ইঙ্গিত সরবরাহ করতে পারেন।
  • কনক্যুরঞ্জি - ক্লোজারের সমকালীন অবস্থা পরিচালনার জন্য একটি দুর্দান্ত মডেল রয়েছে, এটি একটি চিত্তাকর্ষক সফ্টওয়্যার লেনদেনের মেমরি সিস্টেম দ্বারা সমর্থিত। এটি কীভাবে কাজ করে তার আরও অন্তর্দৃষ্টিগুলির জন্য এই ভিডিওটি দেখার পক্ষে মূল্যবান।

আমি যখন ক্লাস্টারকে বিবেচনা করব না কেবল তখনই যদি আমি একটি অত্যাধুনিক গ্রাফিকালি নিবিড় গেম লিখতাম যেখানে আপনার প্রান্ত পারফরম্যান্সের প্রয়োজন হয় (যেখানে এখনও আমি মনে করি আপনাকে সি / সি ++ প্রয়োজন)।

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