আমি কয়েক বছর আগে এমএফসি, কিউটি, ফর্মস, এসডাব্লিউইং এবং বেশ কয়েকটি ওয়েব-জিইউআই ফ্রেমওয়ার্কের মতো প্রচুর "রক্ষণাবেক্ষণ" জিইউআই সিস্টেমগুলির সাথে (অ্যাপ্লিকেশন বিকাশ নিয়ে কাজ করছি)। আমি সবসময় বেশিরভাগ জিইআইআই সিস্টেমের ধারণা অত্যধিক জটিল এবং আনাড়ি খুঁজে পেয়েছি। কলব্যাক ইভেন্টের পরিমাণ, শ্রোতা, ডেটা অনুলিপি, কিছুতে স্ট্রিংয়ের কিছু - রূপান্তর (এবং এই জাতীয়) অ্যাপ্লিকেশনটির অন্যান্য অংশের তুলনায় সর্বদা ভুল এবং মাথা ব্যথার উত্স ছিল। (এমনকি ডেটা বাইন্ডিং / মডেলগুলির "যথাযথ" ব্যবহার সহ)।
এখন আমি কম্পিউটার গেমস লিখছি :)। আমি এখনও পর্যন্ত একটি জিইউআইয়ের সাথে কাজ করেছি: মিয়াগি (সুপরিচিত নয়, তবে মূলত অন্যান্য সমস্ত সিস্টেমের মতো একই আইডিয়া))
এটা ভয়াবহ ছিল।
গেমসের মতো রিয়েল-টাইম রেন্ডারিং পরিবেশগুলির জন্য, আমি অনুভব করি যে "বজায় রাখা" জিইউআই সিস্টেমগুলি আরও বেশি অপ্রচলিত। ব্যবহারকারীর ইন্টারফেসগুলি সাধারণত ফ্লাইটে স্বয়ংক্রিয়-লে-আউট করা বা পুনরায় আকারযুক্ত উইন্ডোগুলির প্রয়োজন হয় না। পরিবর্তে, তাদের সর্বদা পরিবর্তনশীল ডেটার (বিশ্বের মডেলগুলির 3 ডি-পজিশনের) সাথে খুব দক্ষতার সাথে ইন্টারঅ্যাক্ট করতে হবে need
কয়েক বছর আগে, আমি "IMGUI" কে হোঁচট খেয়েছি যা মূলত তাৎক্ষণিক গ্রাফিক্স মোডের মতো তবে ব্যবহারকারী ইন্টারফেসের জন্য। আমি খুব বেশি মনোযোগ দিইনি, যেহেতু আমি এখনও অ্যাপ্লিকেশন বিকাশে ছিলাম এবং আইএমজিইউআই দৃশ্যটি নিজেকে প্রকৃতপক্ষে বিস্তৃত বা সাফল্যময় মনে হয়নি। তবুও তারা যে পদ্ধতি গ্রহণ করেছেন তা এটিকে পুরোপুরি সেক্সি এবং মার্জিত বলে মনে হচ্ছে, এটি ইউআইয়ের এই উপায় ব্যবহার করে পরবর্তী প্রকল্পের জন্য আমাকে কিছু লিখতে আগ্রহী করেছে (আমি কর্মে কাউকে বোঝাতে ব্যর্থ হয়েছি: (...)
"বজায় রাখা" এবং "তাত্ক্ষণিক" বলতে আমি কী বোঝাতে চাই তা সংক্ষেপে বলি:
জিইআইআই ধরে রেখেছে: একটি পৃথক আরম্ভের পর্যায়ে আপনি "জিইউআই নিয়ন্ত্রণ" যেমন লেবেল, বাটন, টেক্সটবক্স ইত্যাদি তৈরি করেন এবং এগুলি স্ক্রিনে রাখার কিছু বর্ণনামূলক (বা প্রোগ্রাম্যাটিকাল) উপায় ব্যবহার করেন - কিছুই রেন্ডার হওয়ার আগেই। নিয়ন্ত্রণগুলি X, Y অবস্থান, আকার, সীমানা, শিশু নিয়ন্ত্রণ, লেবেল পাঠ্য, চিত্রগুলি ইত্যাদির মতো মেমরিতে তাদের নিজস্ব বেশিরভাগ রাজ্য ধারণ করে। ইভেন্টের বিষয়ে অবগত হতে এবং জিইউআই নিয়ন্ত্রণে ডেটা আপডেট করতে আপনি কলব্যাক এবং শ্রোতাদের যোগ করতে পারেন।
তাত্ক্ষণিক জিইউআই: জিইউআই লাইব্রেরিতে "রেন্ডারবাটন", "রেন্ডারবেল", "রেন্ডারটেক্সটবক্স" ... ফাংশন (সম্পাদনা: রেন্ডার দ্বারা বিভ্রান্ত হবেন নাউপসর্গ। এই ফাংশনগুলি পোলিং ব্যবহারকারী ইনপুট, অক্ষর সন্নিবেশ করা, ব্যবহারকারীর একটি কী ধরে রাখলে অক্ষর পুনরাবৃত্তির গতি হ্যান্ডেল করে ... যেমন আপনি "তাত্ক্ষণিক" একটি নিয়ন্ত্রণ রেন্ডারে কল করতে পারেন (যেমন না) অবিলম্বে জিপিইউতে লিখতে হবে Usually এটি সাধারণত বর্তমান ফ্রেমের জন্য মনে থাকে এবং পরে এপ্রোপিয়েট ব্যাচে সাজানো থাকে)। গ্রন্থাগার এগুলির জন্য কোনও "রাষ্ট্র" রাখে না। আপনি যদি কোনও বোতামটি আড়াল করতে চান ... কেবল রেন্ডারবাটন ফাংশনটি কল করবেন না। সমস্ত রেন্ডারএক্সএক্সএক্সএক্স ফাংশনগুলিতে বাটন বা চেকবক্সের মতো ব্যবহারকারীর ইন্টারঅ্যাকশন রয়েছে যা রিটার্ন মানগুলি বোঝায় যে ব্যবহারকারী বাটনটিতে ক্লিক করেছেন কিনা whether সুতরাং আপনার "রেন্ডারজিইউআই" আপনার গেমের অবস্থা এবং সমস্ত ডেটা আপডেট লজিক (যখন একটি বোতাম টিপে দেওয়া হয়) প্রবাহের সাথে অন্তর্নিহিত হয়ে ফাংশনটি দেখতে বড় বা অন্য কোনও ফাংশনের মতো দেখায় যেখানে আপনি আপনার রেন্ডারএক্সএক্সএক্সএক্স এক্স ফাংশনগুলিকে কল করেন বা কল করেন না। সমস্ত ডেটা স্টোরেজ গুয়ের বাইরে "বাইরে" থাকে এবং রেন্ডার ফাংশনগুলিতে অন-ডিমান্ড পাস করে। (অবশ্যই, আপনি বড় ফাংশনগুলি কয়েকটিতে বিভক্ত করবেন বা গুইয়ের অংশীকরণের জন্য কিছু শ্রেণীর বিমূর্তি ব্যবহার করবেন 1980 আমরা 1980 এর মতো কোডটি আর লিখি না, তাই না?))
এখন আমি দেখতে পেলাম যে ইউনিটি 3 ডি আসলে তাদের বিল্ট-ইন জিইউআই সিস্টেমগুলিতে খুব একই বেসিক পদ্ধতির ব্যবহার করে। GUI এর একটি দম্পতি সম্ভবত সেখানে এই পদ্ধতির সাথে আছে?
তবুও .. চারপাশে তাকালে, মনে হয় যে জিইআইআই রক্ষণাবেক্ষণের প্রতি শক্তিশালী পক্ষপাত রয়েছে? কমপক্ষে আমি ইউনিটি 3 ডি ব্যতীত এই পদ্ধতির সন্ধান পাইনি এবং আসল আইএমজিইউআই সম্প্রদায়টি বরং .... .. শান্ত বলে মনে হচ্ছে।
সুতরাং কেউ উভয় ধারণা নিয়ে কাজ করেছেন এবং কিছু দৃ strong় মতামত আছে?
সম্পাদনা: আমি বাস্তব-বিশ্বের অভিজ্ঞতা থেকে আসা মতামত সবচেয়ে আগ্রহী। আমি মনে করি তাত্ক্ষণিক জিইউআই পদ্ধতির যে কোনও "তাত্ত্বিক দুর্বলতা" সম্পর্কে আইএমজিইউআই-ফোরামে প্রচুর উত্তপ্ত আলোচনা চলছে, তবে আমি সত্যই বিশ্বের দুর্বলতাগুলি সম্পর্কে জানার জন্য এটি সবসময় আরও আলোকিত মনে করি ।