ক্রস প্ল্যাটফর্ম স্বাধীন উন্নয়ন


34

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

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

সুতরাং আপনি যদি সত্যিই ক্রস-প্ল্যাটফর্মের পোর্টেবল গেম, বা এমনকি ইঞ্জিন এবং লজিক কোডের একটি উল্লেখযোগ্য অংশ চান তবে আপনি কী করতে পারেন?

প্ল্যাটফর্মগুলি মৌলিকভাবে ডাইভার্ট হয়ে যাওয়ার কারণে এটি কোনও সমস্যা নয় - কোনও আইফোন এবং এক্সবক্স 360 উভয়কেই ভাগ করে নেওয়া কোড দিয়ে লক্ষ্য করার চেষ্টা করা ঠিক সমান নয় কারণ এই জাতীয় খেলাটি খারাপ হবে? (আমি এটি খুব অসম্ভব বলে মনে করি I আমি খুব সহজেই একটি উইন্ডোজ মোবাইল ফোন এবং একটি অ্যান্ড্রয়েড, বা একটি এক্সবক্স ৩ 360০ এবং একটি আইপ্যাডের মধ্যে একটি গেম ভাগ করতে চেয়ে দেখি)) ইন্টারফেসগুলি কি এখন এত উচ্চ স্তরের যে পোর্টিংয়ের সময় নগণ্য? (আমি ব্যবসায়ের অ্যাপ্লিকেশনগুলির জন্য এটি বিশ্বাস করতে পারি, তবে কঠোর পারফরম্যান্স প্রয়োজনীয়তার সাথে গেমসের জন্য নয়))

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

tl; dr - একটি সমস্যা বানাচ্ছে, এটি কি ভবিষ্যতে আরও বড় সমস্যা হতে চলেছে, এবং তা হলে আমরা কীভাবে এটি সমাধান করব?


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

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

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

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

মানে, আপনি এইচটিএমএল 5 উল্লেখ করেছিলেন ... ওয়েব গেমের জন্য এই জাতীয় উদ্দেশ্য?
ক্রিসই

উত্তর:


14

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


12

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

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

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

যদি তৃতীয় পক্ষের ক্রস-প্ল্যাটফর্ম প্রযুক্তি / সরঞ্জামগুলি (যেমন Unক্য) আপনার প্রকল্পের জন্য একটি বিকল্প হয়, তবে এটি অবশ্যই বিবেচনা করার মতো।

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


হ্যাঁ, ইউনিটি 3 ডি শিলা। www.une3D.com
বার্গগ্রিনডিকে

আমি @ ব্লুস্ক্রন এর সাথে একমত - প্রায় কিছুই সম্পর্কে প্রায় কিছুই না জানার চেয়ে সবকিছু সম্পর্কে প্রায় কিছুই না জানার চেয়ে ভালো: সমস্ত বৈশিষ্ট্যের জ্যাক, কোনও কিছুই নয়।
রডরিগো-সিলভিরা

3

আপনি ক্রস প্ল্যাটফর্ম বলে স্বাধীন উন্নয়ন বলে। তারপরে সবচেয়ে বড় প্রতিবন্ধকতা হ'ল সংস্থানসমূহ এবং এর অর্থ বেশিরভাগ সময় অভাব, তবে কীভাবে এবং সম্ভাব্য অর্থের অভাব (লাইসেন্স ফি, ডিভাইস কেনা ইত্যাদি) lack

ইন্ডি বা না, সবচেয়ে বড় বাধা আসলে নকশা। আপনি যেমনটি বলেছেন, এক্সবক্স ৩60০ এবং আইপ্যাডে চলে এমন একটি গেম কাজ করতে পারে তবে ডিজাইনের ক্ষেত্রে সেগুলিও মৌলিকভাবে আলাদা হওয়া দরকার। 360 এর একটি নিয়ামক, আইপ্যাড একটি টাচ স্ক্রিন রয়েছে। এছাড়াও, 360 এর জন্য বিকাশ সি # ভাষার হিসাবে উইন্ডোজে করা হয়, আইপ্যাড কেবল ম্যাক ওএস কম্পিউটারগুলিতে এবং সি, সি ++ বা উদ্দেশ্য-সি ব্যবহার করে লক্ষ্য করা যায়। বা জাভাস্ক্রিপ্ট, আপনি যদি পছন্দ করেন। কিছু কিছু কেবল আপনি যা কিছু করেন তা ভাল করে না।

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

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


প্রকৃতপক্ষে, আমি বলব যে বন্দরের সময় সময় হ'ল একটি বড় প্রকাশক চালিত স্টুডিওর চেয়ে একটি স্বাধীন বিকাশকারী / গোষ্ঠী হওয়ার সম্ভাবনা বেশি।

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

3

একটি সহজ, পোর্টেবল এবং ওপেন ইন্টারফেস কাঠামো সত্যিই প্রয়োজন, আমি মনে করি। কিছু সংগীত:

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

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

ফ্রেমওয়ার্কটি প্ল্যাটফর্ম এবং গেম কোডের মধ্যে আইও মধ্যস্থতার জন্য দায়বদ্ধ, যেমন কিউটি এবং জিটিকে ফাংশনের মতো ক্রস-প্ল্যাটফর্ম জিইউআই ফ্রেমওয়ার্কগুলি to

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

ঠিক আছে, এখন যে আমি এটি সমস্ত লিখেছি: কেউ কি জানেন যে এর মতো কাঠামো ইতিমধ্যে বিদ্যমান আছে?


3

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

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


বোকা আপেল, যারা প্রোগ্রামিং ভাষাগুলি বাধা দেয়! হু?!?!
ফ্রেশজয়েস

2

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

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


2

আমি সবেমাত্র হ্যাক্স এবং এনএমই আবিষ্কার করেছি । এটি একটি ক্রস-প্ল্যাটফর্ম অ্যাপ্লিকেশন হিসাবে দাবি করে যা একটি কোড-বেস থেকে সমস্ত বড় ডেস্কটপ এবং মোবাইল ডিভাইস এবং ফ্ল্যাশ সমর্থন করে । এক নজর মূল্যবান।


1

ক্রস-প্ল্যাটফর্ম ডেভলপমেন্ট টুল যা এত নতুন যে আমি এটি অবশ্যই সুপারিশ করি না এটি http://www.monkeycoder.co.nz/

এটি আপনার উল্লিখিত প্রতিটি প্ল্যাটফর্মকে হিট করে।

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


0

আমি এয়ারপ্লে এসডিকে দিয়ে ভাগ্য পেয়েছি - কমপক্ষে x86 এ এবং স্পষ্টতই আইফোনটিকে ভালভাবে লক্ষ্যবস্তু করেছি (যদিও এখনও আমি এখনও একটি আইফোনে একটি অ্যাপ্লিকেশন রাখতে পারি না)।

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