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