ক্রস প্ল্যাটফর্ম সি ++ / ওপেনজিএল ইএস বিকাশ (আইওএস / অ্যান্ড্রয়েড) [বন্ধ]


10

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

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

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

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



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

উত্তর:


6

আপনি এখানে অনুরূপ প্রশ্নের উত্তরটি সহায়ক হতে পারেন।

অন্যান্য সমাধানের উত্স কোডটি অনুসন্ধান করাও আপনাকে সহায়ক বলে মনে হতে পারে। Godot ইঞ্জিন উদাহরণস্বরূপ একটি ক্রস প্ল্যাটফর্ম ওপেন সোর্স খেলা ইঞ্জিন যাতে আপনি বেতন কিছু প্রয়োজন হয় না।

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

গোডোট ইঞ্জিন , উদাহরণস্বরূপ, স্ক্যানস এবং এলএলভিএম প্রকল্প ব্যবহার করে ( সিআরসি ++ / অবজেক্টিভ-সি সংকলক ক্ল্যাং দ্বারা ব্যবহৃত সংকলক কাঠামো ) সিএমকে ব্যবহার করে

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

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

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

মুল বক্তব্যটি হ্যাঁ এটি অবশ্যই সম্ভব, তবে কিছু রাস্তাগুলি আরও জটিল / সময় সাপেক্ষ এবং অন্যগুলি others

নোট: আপনি সম্ভবত একটি ম্যাক মাধ্যমে ম্যাক ওএসএক্স ব্যবহার করতে হবে VM- র , বা Hackintosh সঙ্গে উপর XCode আইওএস কম্পাইল করতে। এটি একটি ম্যাকবুক প্রোকে একটি উন্নয়ন ব্যবস্থার জন্য দুর্দান্ত প্রার্থী হিসাবে খুঁজে পাওয়ার অনেকগুলি কারণগুলির মধ্যে একটি।

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

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


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

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

এসডিএল অফ সীমা নয়, তবে আমি সেখানে না যেতে পছন্দ করব। আবারও, জ্ঞান যে এই কাঠামোগত ছাড়া করা যেতে পারে সবসময় আছে।
ক্রেগ হরউড

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

এনডিকে অস্তিত্বের মধ্যে সবচেয়ে জঘন্য জিনিসগুলির মধ্যে একটি, আপনি বিজিএফএক্স একটি রেফারেন্স github.com/bkaradzic/bgfx হিসাবে দরকারী হিসাবে খুঁজে পেতে পারেন , এটি আপনার পছন্দ মতো কম পাতলা নয়, এটির একাধিক রেন্ডারিং
ব্যাকেন্ড রয়েছে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.