আপনি কোন সি ++ জিইউআই লাইব্রেরি প্রস্তাব করতে পারেন? [বন্ধ]


26

আমি আমার গেম ইঞ্জিনটি সি ++ এ তৈরি করছি এবং আমি বর্তমানে কোন ইউজার ইন্টারফেসটি ব্যবহার করব সে বিষয়ে সিদ্ধান্ত নিচ্ছি।

আমার কি লাইব্রেরি ব্যবহার করা উচিত? আমার নিজের করা উচিত?


3
আপনি কী বলতে চাইছেন তা পরিষ্কার নয়: গেমের জিইউআই? বা সরঞ্জামের জন্য জিইউআই? প্রতিটি এক খুব আলাদা প্রয়োজন ..
জ্যাকোমে

1
আপনার যখন ইঞ্জিন (মহাকাব্য সংগীত)
রিকিট

1
আপনার যদি কেবলমাত্র মডেল ডায়লগগুলির দরকার হয় তবে সোর্সফোরেজে ছোট ফাইল ডায়লগগুলি আপনার প্রকল্পে যুক্ত করার জন্য একটি সি সি ++ ক্রস প্ল্যাটফর্ম ফাইল। কোনও init নেই, কোনও প্রধান লুপ নেই
tinyfiledialogs

উত্তর:


11

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

আপনি যদি আগ্রহী হন তবে এই লিঙ্কগুলি মিস করবেন না : উইজেটগুলি তৃতীয় মাত্রায় প্রবেশ করে: ওলফেনকিউটি এবং ওপেনগিএল দ্বারা আপনার উইজেটগুলি ত্বরান্বিত করবে


9

আপনার নিজের লেখা উচিত বলে আমি মনে করি না, গেম ইঞ্জিন তৈরির কাজটি নিজে থেকেই এত বিশাল,

একটি গেম ইঞ্জিনের জন্য আমি একটি তাত্ক্ষণিক মোড জিইউআইতে যাব। এখানে আরও তথ্য: http://www.mollyrocket.com/forums/viewtopic.php?t=134

মূল ধারণাটি হ'ল উপাদানটি আঁকতে এবং একই সাথে মিথস্ক্রিয়াটি নিয়ন্ত্রণ করতে:

if (button(id, position, size)) 
{
    button_was_pressed();
}

এক হিসাবে, Unক্য একই ধারণা ব্যবহার করে।

আপনি এনভিআইডিআইএ দ্বারা একটি বাস্তবায়ন পেতে পারেন, যা তাদের ডেমোতে ব্যবহৃত: http://code.google.com/p/nvidia-widgets/


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

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

7

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

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

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


আমি বর্তমানে এটি ব্যবহার করছি। যদিও এটির অনেক বেশি নির্ভরতা রয়েছে ency এবং এটি আমার প্রকল্পের সাথে যুক্ত করতে আমার সমস্যা হয়েছিল (আইআইআরসি, লাইসেন্স বলেছে যে আমি কেবল লাইব্রেরিতে লিঙ্ক করতে পারি)
মিঃ ভালদেজ

6
এটির একটি হাস্যকর পরিমাণ নির্ভরতা রয়েছে। এটি আমার ক্ষুদ্র ডেমো গেমটি 50 এমবিতে সজ্জিত করেছে!
নাইট 666

কি? আমি মনে করি আপনি এটি ভুল করছেন :) আমার গেমের সিইজিইউআই ডিএলএলগুলির ওজন 3 এমবি এর চেয়ে কম। মিঃ ওয়ালাদেজের কাছে: সিইজিইউআই বিএসডি লাইসেন্সের আওতায় ..
জ্যাকোমে

এমআইটি লাইসেন্স - দুঃখিত। সিইজিইউআই এমআইটি লাইসেন্সের অধীনে। :)
জ্যাকোমে

5

বেশিরভাগ জিইউআই লাইব্রেরিগুলির সমস্যা (কিউটি সম্ভবত সর্বাধিক জনপ্রিয় সি ++ এক যা কেবল উইন্ডোজ-কেবল নয়) এটি হ'ল বেশিরভাগ কোনও ইঞ্জিনের মধ্যে ভালভাবে সংহত হয় না। Gতিহ্যগতভাবে একটি জিইউআই অ্যাপ্লিকেশনে, জিইউআই লাইব্রেরি মূল লুপটি নিয়ন্ত্রণ করে এবং আপনি কেবল ইভেন্টগুলিতে কলব্যাকগুলি সজ্জিত করেন। গেম ইঞ্জিনে আপনি সাধারণত লুপটি নিয়ন্ত্রণ করতে চান, তাই এটি সর্বোত্তম কৌশলযুক্ত হতে পারে। সম্ভবত আপনি এমন কোনও সন্ধান করছেন যা কেবল অঙ্কন নিয়ন্ত্রণ এবং ডায়লগগুলি পরিচালনা করবে এবং এমন কোনও 3D প্রসঙ্গে যা আপনি এটি পাস করবেন? এগুলি খুঁজে পাওয়া অনেক কঠিন হতে পারে: - /



3
আমি বলেছিলাম "সর্বাধিক জনপ্রিয়", "কেবল" নয় :- পি ডাব্লুএক্স এর সর্বশেষে আমি দেখেছি 3D প্রসঙ্গের সাথে কাজ করার জন্য আরও কম সমর্থন রয়েছে।
কোডরেঞ্জার

4

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


এমন পরিস্থিতি রয়েছে যেখানে "নিজের নিজের লিখুন" এমন জায়গার বাইরে নেই যতটা ভাবতে পারে। এমন একটি খেলা যেখানে ইউআইআই গুরুত্বপূর্ণ, যেমন ম্যানেজমেন্ট গেমস, বা জটিল আইটেম পরিচালনার সাথে আরপিজি; ইউআই অভিজ্ঞতার একটি বিশাল অংশ হবে। joelonsoftware.com/articles/fog0000000007.html এটি যদি একটি মূল ব্যবসায়িক ফাংশন হয় - এটি নিজেই করুন, যাই হোক না কেন
v.oddou

3

অনুসন্ধানের উপযুক্ত হতে পারে এমন একটি বিকল্প হ'ল আপনার ব্যবহারকারী ইন্টারফেসগুলি রেন্ডার করতে ওয়েবকিট ব্যবহার করা এবং সিএসএস / এইচটিএমএল / জাভাস্ক্রিপ্ট সহ আপনার সমস্ত ইউআই করা।

এখানে একটি মুক্ত উত্স বাস্তবায়ন (বার্কেলিয়াম) , এবং এখানে একটি বদ্ধ উত্স, বাণিজ্যিক বাস্তবায়ন (অ্যাভোসোমিয়াম)


5
ওয়েবকিট এবং এর আত্মীয় স্বতঃস্ফূর্তভাবে একবারে বা একবারে দু'বার রিফ্রেশ হারের দিকে এগিয়ে যায়, কোনও ক্রিয়া-ভিত্তিক গেমের জন্য এইচডির কাজটি করা জটিল হতে পারে। মেনু বা ধীর বিট জন্য দুর্দান্ত হবে।
কোডরেঞ্জার

1
@ কোডেঞ্জার: আপনি জাভাস্ক্রিপ্ট / এইচটিএমএল 5 এ পুরো গেম লিখতে পারেন। আমি ক্রোম ওয়েব স্টোরের জন্য একটি বাণিজ্যিক অ্যাকশন গেম প্রকাশ করেছি যা ওয়েবকিট / ক্রোমে ঠিক 60 টি এফপিএসে চলে।
শান মিডলডিচ

3

আমি আইইউপি - পোর্টেবল ইউজার ইন্টারফেসের পরামর্শ দেব: http://www.tecgraf.puc-rio.br/iup/

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


বেশ মজার তো. আমি যত তাড়াতাড়ি সম্ভব এটি পরীক্ষা করে নেব।
মিঃভালদেজ

3

আমি আমার গেম প্রকল্পে ব্যক্তিগতভাবে সিইজিইউআই ব্যবহার করছি এবং এটি একটি দুর্দান্ত দৃ solution় সমাধান। সমস্যাটি হ'ল, কখনও কখনও এটি আপনার ক্ষতিকারক ফাইলগুলিকে ছোট্ট করে ফেলার মতো মনে হয়।

আমি এটি ব্যবহার করি নি, তবে লাইব্রোকট পুরোপুরি ফ্রি হয়ে গেছে, সমস্ত লাইসেন্সের ফিগুলি সরিয়েছে এবং কী নয়। এই lib সম্পর্কে দুর্দান্ত অংশটি হ'ল আপনি এটিকে এইচটিএমএল / সিএসএস সিন্টেক্সে লিখেছেন। http://librocket.com


2

কেবল একটি আকর্ষণীয় পরামর্শ উত্থাপন করুন, যদি উইন্ডোজের জন্য গেমটি বিকাশ করা হয় তবে উইন 32 এপিআই ব্যবহার করুন। কেবলমাত্র সাধারণ উইন্ডো নিয়ন্ত্রণগুলি ব্যবহার করুন (আমি এটিএল / ডাব্লুটিএল লাইব্রেরিগুলি ব্যবহার করার পরামর্শ দিই) তবে তাদের মালিককে আঁকতে সক্ষম করুন।

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

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

ত্রুটিগুলি হ'ল আপনাকে এখনও উইন্ডোগুলি নিয়ন্ত্রণের জন্য মালিকানা আঁকতে সাবক্লাস করার জন্য কিছু কোড লিখতে হবে যাতে আপনি তাদের নিজের গ্রাফিক্স এবং এফেক্টগুলি প্রয়োগ করতে পারেন।

এটি একটি ধারণা হিসাবে ফেলে দিচ্ছি।


1
আমি বিশ্বাস করি উইন 32 / সিওএম ভিস্তা এবং উইন 7 তে অনুকরণ করা হয়েছে উচ্চ পারফরম্যান্সের জন্য প্রস্তাবিত নয় ...
স্টিফেন ফুর্লানি

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

@ স্টেফেনফুর্লানি উইন 32 / সিওএম ভিস্তা এবং উইন্ডোজ on তে অনুকরণ করা হয়নি, এটি স্থানীয় এবং পুরো গতি। তদুপরি এটিএল / ডাব্লুটিএল COM এর উপর নির্ভর করে না, তবে ডাইরেক্টএক্স করে।
ডেমিন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.