প্রকল্প সম্পর্কে

গেমনেটওয়ার্কিংসকেটস একটি ক্রস-প্ল্যাটফর্ম ট্রান্সপোর্ট লেয়ার যা গেমের জন্য ডিজাইন করা হয়েছে। এটি একটি সংযোগ-ভিত্তিক API প্রদান করে যা স্ট্রিম-ভিত্তিক নয়, বরং বার্তা-ভিত্তিক। লাইব্রেরিটি নির্ভরযোগ্য এবং অনির্ভরযোগ্য বার্তা প্রকার সমর্থন করে, যার সাথে অন্তর্নিহিত MTU-এর চেয়ে বড় বার্তাগুলির জন্য স্বয়ংক্রিয় ফ্র্যাগমেন্টেশন, পুনঃসংযোজন এবং পুনঃপ্রেরণ রয়েছে। একটি নির্ভরযোগ্যতা স্তর DCCP (RFC 4340) এবং QUIC-এর অনুপ্রেরণায় একটি ack-vector মডেল ব্যবহার করে, যা প্রেরকের পক্ষে রিসিভার-রিপোর্ট করা প্যাকেট অবস্থা এবং পুনঃপ্রেরণ সিদ্ধান্ত সক্ষম করে। প্রতি-প্যাকেট এনক্রিপশন AES-256-GCM ব্যবহার করে, যার সাথে Curve25519 কী এক্সচেঞ্জ এবং সার্টিফিকেট স্বাক্ষর Google QUIC ডিজাইন নীতি অনুসরণ করে। অতিরিক্ত বৈশিষ্ট্যগুলির মধ্যে রয়েছে প্যাকেট ল্যাটেন্সি এবং ক্ষতি সিমুলেট করার সরঞ্জাম, বিস্তারিত পরিসংখ্যান পরিমাপ, এবং অগ্রাধিকার বা ওজনযুক্ত ফেয়ার কিউইংয়ের মাধ্যমে একাধিক বার্তা স্ট্রিম (লেন) জুড়ে ব্যান্ডউইথ ভাগ করে হেড-অফ-লাইন ব্লকিং নিয়ন্ত্রণ। পিয়ার-টু-পিয়ার সংযোগ Google WebRTC ICE ব্যবহার করে NAT ট্রাভার্সালের মাধ্যমে সহজতর হয়, যার সাথে প্লাগ-ইন সিগন্যালিং সমর্থন এবং একটি সিমেট্রিক কানেক্ট মোড রয়েছে। SteamNetworkingMessages নামে একটি ইন্টারফেস UDP-ভিত্তিক কোডকে P2P পরিস্থিতিতে পোর্ট করতে সাহায্য করে, যেখানে প্রতি প্রেরণে প্রাপকের ঠিকানা নির্দিষ্ট করা হয়। IPv6 সমর্থিত। লাইব্রেরিটি ক্রস-প্ল্যাটফর্ম ব্যবহারের জন্য কনসোল, মোবাইল প্ল্যাটফর্ম এবং নন-স্টিম স্টোরে শিপ হয়েছে। এতে উচ্চ-স্তরের এনটিটি সিরিয়ালাইজেশন, ডেল্টা এনকোডিং বা কম্প্রেশন অন্তর্ভুক্ত নয়। পাবলিক হেডারগুলি include/steam-এ অবস্থিত, যা ISteamNetworkingSockets ইন্টারফেসের উপর কেন্দ্রীভূত। একটি সাধারণ C ইন্টারফেস ভাষা বাইন্ডিং সক্ষম করে, যার সাথে C#, Go এবং Rust-এর জন্য তৃতীয়-পক্ষের বাইন্ডিং উপলব্ধ। 'স্টিম' নামকরণটি Steamworks SDK API-এর একটি উপসেট প্রতিফলিত করে এবং ব্যবহারের জন্য প্রয়োজনীয় নয়; কোডটি স্বাধীনভাবে ব্যবহার করা যেতে পারে। নিরাপত্তা সমস্যাগুলি প্রকাশিত নিরাপত্তা নীতির মাধ্যমে দায়িত্বের সাথে রিপোর্ট করা যেতে পারে। বিল্ড নির্দেশাবলী BUILDING.md-এ রয়েছে।