টুইট এবং সেটিংস - রানটাইম পরিবর্তনশীল পরিবর্তন এবং অধ্যবসায়


19

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

এই বাড়ির উত্পন্ন সমাধানগুলির প্রত্যেকটিরই ভ্যালিয়েবলের বর্তমান অবস্থা বাঁচাতে সক্ষম না হওয়া থেকে শুরু করে মানগুলি রাখা থেকে শুরু করে problems

কোন পরিপক্ক কনফিগারেশন / রানটাইম-ভেরিয়েবল নিয়ন্ত্রণ লাইব্রেরি / অ্যাপ্লিকেশন আছে?

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

উত্তর:


8

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

তবে আমি তার লুয়া বিরোধী মনোভাবের সাথে একমত নই। একটি রিমোট লুয়া কনসোলটি দুর্দান্ত দেখে মনে হচ্ছে।



3
কেন টেলনেট? এইচটিটিপি / এইচটিএমএল, বন্ধু! এইচটিটিপি একটি খুব সহজ প্রোটোকল এবং সহজেই কোনও গেমটিতে এম্বেড করা যায় - আমি এটি আগেও করেছি, এটি হাজার লাইনের কোডের অধীনে ছিল।
জোর্বাথুত

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

5

সম্ভবত টুইঙ্কেবল কনস্ট্যান্টগুলির ধারণাটি আপনার প্রয়োজন অনুসারে ফিট করে। এটি বাস্তবে ব্যবহারযোগ্য যে আপনি কার্যকর রান-টাইম ভেরিয়েবল নিয়ন্ত্রণের জন্য একটি জটিল সমাধানের প্রয়োজন মনে করতে পারেন তবে বাস্তবে বাস্তবায়ন প্রায় খুব সহজ। মূল আলোচনা এই কৌশলের একটি আকর্ষণীয় পঠিত।

উদাহরণ:

glClearColor( H(1.0f), H(1.0f), H(1.0f), H(1.0f) );

Hম্যাক্রো ভালো কিছু করার জন্য বিস্তৃতি HotValue(x, __FILE__, __LINE__, __COUNTER__)। এটি কিছু গ্লোবাল রেজিস্ট্রিতে মান রেজিস্টার করে। তারপরে এমন কোনও ফাংশন করুন RefreshHotValues()যা আপনি নিয়মিত বিরতিতে কল করেন। ফাংশনটি রেজিস্ট্রিতে প্রতিটি এন্ট্রি সন্ধান করে, নির্দিষ্ট উত্স ফাইলটি পার্স করে এবং গরম মানটি পুনরায় লোড করে।

আপনি আসল উত্স কোডটি পরিবর্তন করার সাথে সাথে আপনার ঠিক সেখানেই অধ্যবসায় আছে।

স্পষ্টতই এটি কাজ করবে না যেখানে H()প্রতিটি ফ্রেমকে মূল্যায়ন করা হয় না, তবে এখানে আলোচিত হিসাবে এটি সমাধানের উপায় রয়েছে ।

আপনি সম্ভবত এই ধারণাটি সকেট ভিত্তিক সমাধানে প্রসারিত করতে পারেন। HotValue()প্রতিটি ফ্রেমকে কল করার জন্য একটি তাত্পর্যপূর্ণ পারফরম্যান্স ওভারহেড হতে পারে , তবে আপনি খুব সহজেই ম্যাক্রোটিকে সম্পূর্ণরূপে স্থিররূপে প্রতিস্থাপনের জন্য এটি সঙ্কলন করতে পারেন এটি কোনও সমস্যা নয়।


2
@ কাইলোটান: আপনি পয়েন্টটি মিস করছেন। আপনি আসল উত্স কোডটি পরিবর্তন করছেন, যা রান টাইমে পার্স হয়ে যায়। অধ্যবসায় পরিবর্তিত উত্স মাধ্যমে।
ওসকার এন।

হ্যাঁ, কোনওভাবেই আমি নিবন্ধটি স্কার্মিংয়ে মিস করেছি। আমি আমার মন্তব্য মুছে ফেলব এবং পুনরায় পড়তে হবে!
কাইলোটন

3
আমি কেবল আমার হতে পারি তবে এই কৌশলটি অনুভব করে ... আইকি। আমি মনে করি এটি কারণ কারণ আমি যাদু সংখ্যাকে ঘৃণা করতে অনেক সময় ব্যয় করেছি এবং এটি কেবল যাদু সংখ্যার জন্য কাজ করবে। আমি বরং পরিষ্কার রঙটি কোনও কনফিগার বা স্ক্রিপ্ট ফাইলের অংশ হতে দেখতাম। যাদুটি হ'ল গরম লোড সংস্থানগুলির দক্ষতার সাথে আসে।
deft_code

@ ক্যাসপিন: আপনি সরল ভেরিয়েবলগুলি ব্যবহার করতে পারেন এবং পরিবর্তে H(int, myvar, 5)এবং ফাইলের পরিবর্তনগুলি আপনি মেমরিটিতে প্রতিস্থাপন করতে পারেন myvar। দেখুন মলিআরকেট.ফর্মস
এন।

1

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


0

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


যদিও এটি দুর্দান্ত শোনায়, এটি কোনও সমাধান নয়; এটি সমাধান করার জন্য একটি দরকারী সরঞ্জাম
রিচার্ড ফ্যাবিয়ান

0

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


1
এটি সেটিংস তথ্য সম্পর্কিত নয়, এটি ডিবাগিং বা গেমপ্লে উদ্দেশ্যে রানটাইম ভেরিয়েবলগুলি টুইট করার বিষয়ে।

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

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

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

-1

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

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

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

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

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


এটি অফিসের পরিবেশে মিষ্টি হবে। কোনও শিল্পীর সাথে কথা বলার জন্য হাঁটুন, এবং সংযুক্ত হয়ে পড়ুন এবং প্রতিবেশী ডিজাইনারের চলমান গেমটির সাথে ফিডলিং শুরু করতে গিয়ে তিনি কিছু এনকাউন্টার স্থাপনের চেষ্টা করছেন ...
ড্যাশ-টম-ব্যাং

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