ለጀማሪዎች በጨዋታዎች ውስጥ ስለ አውታረ መረብ ሞዴል

ለጀማሪዎች በጨዋታዎች ውስጥ ስለ አውታረ መረብ ሞዴል
ላለፉት ሁለት ሳምንታት በኦንላይን ሞተር ላይ ለጨዋታዬ እየሰራሁ ነው። ከዚህ በፊት በጨዋታዎች ውስጥ ስለ አውታረመረብ ምንም የማውቀው ነገር የለም, ስለዚህ ብዙ መጣጥፎችን አነበብኩ እና ሁሉንም ጽንሰ-ሐሳቦች ለመረዳት እና የራሴን የኔትወርክ ሞተር ለመጻፍ ብዙ ሙከራዎችን አድርጌያለሁ.

በዚህ መመሪያ ውስጥ የእራስዎን የጨዋታ ሞተር ከመጻፍዎ በፊት መማር ያለብዎትን የተለያዩ ፅንሰ-ሀሳቦችን እና እነሱን ለመማር የተሻሉ ግብዓቶችን እና መጣጥፎችን ላካፍልዎ እፈልጋለሁ።

በአጠቃላይ ሁለት ዋና ዋና የኔትወርክ አርክቴክቸር ዓይነቶች አሉ፡- አቻ-ለ-አቻ እና ደንበኛ-አገልጋይ። በአቻ-ለ-አቻ (p2p) አርክቴክቸር ውስጥ፣ ውሂብ በማናቸውም የተገናኙ ተጫዋቾች መካከል ይተላለፋል፣ በደንበኛ አገልጋይ አርክቴክቸር ውስጥ ግን መረጃው በተጫዋቾች እና በአገልጋዩ መካከል ብቻ ይተላለፋል።

ምንም እንኳን አቻ-ለ-አቻ አርክቴክቸር በአንዳንድ ጨዋታዎች ላይ አሁንም ጥቅም ላይ ቢውልም፣ ደንበኛ-አገልጋይ ደረጃው ነው፡ ለመተግበር ቀላል፣ ትንሽ የቻናል ስፋትን ይፈልጋል፣ እና ከማጭበርበር ለመከላከል ቀላል ያደርገዋል። ስለዚህ, በዚህ መማሪያ ውስጥ በደንበኛ-አገልጋይ አርክቴክቸር ላይ እናተኩራለን.

በተለይም እኛ ለስልጣን አገልጋዮች በጣም ፍላጎት አለን-በእንደዚህ ያሉ ስርዓቶች ውስጥ አገልጋዩ ሁል ጊዜ ትክክል ነው። ለምሳሌ አንድ ተጫዋች መጋጠሚያ (10፣ 5) ላይ ነኝ ብሎ ካሰበ እና አገልጋዩ በ(5፣ 3) ላይ እንዳለ ከነገረው ደንበኛው ቦታውን በአገልጋዩ በተዘገበው መተካት አለበት እንጂ ምክትል አይደለም በተቃራኒው። ስልጣን ያላቸው አገልጋዮችን መጠቀም አጭበርባሪዎችን ለመለየት ቀላል ያደርገዋል።

የአውታረ መረብ ጨዋታ ስርዓቶች ሶስት ዋና ዋና ክፍሎች አሏቸው።

  • የትራንስፖርት ፕሮቶኮል፡- በደንበኞች እና በአገልጋይ መካከል ውሂብ እንዴት እንደሚተላለፍ።
  • የመተግበሪያ ፕሮቶኮል: ከደንበኞች ወደ አገልጋዩ እና ከአገልጋዩ ወደ ደንበኞች የሚተላለፈው እና በምን አይነት ቅርጸት ነው.
  • የመተግበሪያ አመክንዮ፡ የተላለፈው መረጃ የደንበኞችን እና የአገልጋዩን ሁኔታ ለማዘመን እንዴት ጥቅም ላይ እንደሚውል።

የእያንዳንዱን ክፍል ሚና እና ከነሱ ጋር የተያያዙ ተግዳሮቶችን መረዳት በጣም አስፈላጊ ነው.

የትራንስፖርት ፕሮቶኮል

የመጀመሪያው እርምጃ መረጃን በአገልጋዩ እና በደንበኞች መካከል ለማጓጓዝ ፕሮቶኮል መምረጥ ነው። ለዚህ ሁለት የበይነመረብ ፕሮቶኮሎች አሉ- TCP и UDP. ነገር ግን በአንደኛው ላይ በመመስረት የራስዎን የትራንስፖርት ፕሮቶኮል መፍጠር ወይም እነሱን የሚጠቀም ቤተ-መጽሐፍት መጠቀም ይችላሉ።

የ TCP እና UDP ንጽጽር

ሁለቱም TCP እና UDP የተመሰረቱ ናቸው IP. አይፒ (IP) ፓኬት ከምንጩ ወደ ተቀባዩ እንዲተላለፍ ይፈቅዳል፣ ነገር ግን የተላከው ፓኬት ፈጥኖም ሆነ ዘግይቶ ለተቀባዩ እንደሚደርስ፣ ቢያንስ አንድ ጊዜ እንደሚደርሰው እና የፓኬቶች ቅደም ተከተል በትክክለኛው መንገድ እንደሚመጣ ዋስትና አይሰጥም። ማዘዝ ከዚህም በላይ አንድ ፓኬት በእሴቱ የተሰጠው የተወሰነ መጠን ያለው ውሂብ ብቻ ሊይዝ ይችላል። ኤምቲዩ.

ዩዲፒ በአይፒ ላይ ያለ ቀጭን ንብርብር ብቻ ነው። ስለዚህ, ተመሳሳይ ገደቦች አሉት. በአንጻሩ TCP ብዙ ገፅታዎች አሉት። በሁለት አንጓዎች መካከል አስተማማኝ ፣ሥርዓት ያለው ግንኙነት ከስህተት ማረጋገጫ ጋር ይሰጣል። ስለዚህ, TCP በጣም ምቹ ነው እና በብዙ ሌሎች ፕሮቶኮሎች ውስጥ ጥቅም ላይ ይውላል, ለምሳሌ. HTTP, የ FTP и SMTP. ግን እነዚህ ሁሉ ባህሪዎች በዋጋ ይመጣሉ መዘግየት.

እነዚህ ተግባራት ለምን መዘግየት ሊያስከትሉ እንደሚችሉ ለመረዳት, TCP እንዴት እንደሚሰራ መረዳት አለብን. የላኪ መስቀለኛ መንገድ ፓኬትን ወደ መቀበያ መስቀለኛ መንገድ ሲያስተላልፍ፣ እውቅና (ACK) ለመቀበል ይጠብቃል። ከተወሰነ ጊዜ በኋላ ካልተቀበለ (ፓኬቱ ወይም እውቅናው ስለጠፋ ወይም በሌላ ምክንያት) እሽጉ እንደገና ይልካል። ከዚህም በላይ TCP እሽጎች በትክክለኛው ቅደም ተከተል እንዲቀበሉ ዋስትና ይሰጣል, ስለዚህ የጠፋው እሽግ እስኪያገኝ ድረስ, ሁሉም ሌሎች ፓኬቶች በተቀባዩ አስተናጋጅ የተቀበሉ ቢሆኑም እንኳ ሊሰሩ አይችሉም.

ነገር ግን ምናልባት እርስዎ ሊገምቱት እንደሚችሉት፣ በባለብዙ-ተጫዋች ጨዋታዎች ውስጥ መዘግየት በጣም አስፈላጊ ነው፣ በተለይም በድርጊት በታሸጉ እንደ FPS። ለዚህ ነው ብዙ ጨዋታዎች ዩዲፒን በራሳቸው ፕሮቶኮል የሚጠቀሙት።

ቤተኛ UDP ላይ የተመሰረተ ፕሮቶኮል በተለያዩ ምክንያቶች ከTCP የበለጠ ቀልጣፋ ሊሆን ይችላል። ለምሳሌ፣ አንዳንድ እሽጎች የታመኑ እና ሌሎች ደግሞ የማይታመኑ እንደሆኑ ምልክት ሊያደርግ ይችላል። ስለዚህ፣ ያልታመነው ፓኬት ተቀባዩ ላይ መድረሱ ግድ የለውም። ወይም በአንድ ዥረት ውስጥ የጠፋ ፓኬት የቀሩትን ዥረቶች እንዳያዘገየው በርካታ የውሂብ ዥረቶችን ማካሄድ ይችላል። ለምሳሌ ለተጫዋች ግብአት እና ለውይይት መልእክቶች ሌላ ክር ሊኖር ይችላል። አስቸኳይ ያልሆነ የውይይት መልእክት ከጠፋ አስቸኳይ ግብአትን አያዘገይም። ወይም የባለቤትነት ፕሮቶኮል በቪዲዮ ጨዋታ አካባቢ የበለጠ ቀልጣፋ ለመሆን ከTCP በተለየ አስተማማኝነትን ሊተገበር ይችላል።

ስለዚህ፣ TCP በጣም የሚጠባ ከሆነ፣ በ UDP ላይ በመመስረት የራሳችንን የትራንስፖርት ፕሮቶኮል እንፈጥራለን?

ትንሽ የበለጠ የተወሳሰበ ነው። ምንም እንኳን TCP ለጨዋታ አውታረ መረብ ስርዓቶች በጣም ጥሩ ቢሆንም፣ ለእርስዎ የተለየ ጨዋታ በጥሩ ሁኔታ ሊሠራ እና ጠቃሚ ጊዜን ሊቆጥብልዎት ይችላል። ለምሳሌ፣ መዘግየት ለተራው ጨዋታ ወይም በLAN አውታረ መረቦች ላይ ብቻ መጫወት ለሚችል ጨዋታ፣ መዘግየት እና ፓኬት መጥፋት ከኢንተርኔት በጣም ያነሰ ችግር ላይሆን ይችላል።

ብዙ የተሳካላቸው ጨዋታዎች፣የወርልድ ኦፍ ዋርክራፍት፣ሚኔክራፍት እና ቴራሪያን ጨምሮ TCP ን ይጠቀማሉ። ነገር ግን፣ አብዛኞቹ FPSዎች የራሳቸውን UDP-ተኮር ፕሮቶኮሎች ይጠቀማሉ፣ ስለዚህ ስለእነሱ ከዚህ በታች እንነጋገራለን።

TCP ለመጠቀም ከወሰኑ፣ መጥፋቱን ያረጋግጡ የናግል አልጎሪዝም, ምክንያቱም ከመላኩ በፊት ፓኬቶችን ስለሚይዝ, ይህም ማለት መዘግየትን ይጨምራል.

በUDP እና TCP መካከል ስላለው ልዩነት ከብዙ ተጫዋች ጨዋታዎች አውድ የበለጠ ለማወቅ የግሌን ፊድለርን መጣጥፍ ማንበብ ይችላሉ። UDP vs. TCP.

የራስ ፕሮቶኮል

ስለዚህ የራስዎን የትራንስፖርት ፕሮቶኮል መፍጠር ይፈልጋሉ ነገር ግን የት መጀመር እንዳለ አታውቁም? ግሌን ፊድለር ስለዚህ ጉዳይ ሁለት አስደናቂ መጣጥፎችን ስለፃፈ እድለኛ ነዎት። በውስጣቸው ብዙ ብልህ ሀሳቦችን ያገኛሉ።

የመጀመሪያው ጽሑፍ ለጨዋታ ፕሮግራመሮች አውታረ መረብ 2008 ፣ ከሁለተኛው ቀላል ፣ የጨዋታ አውታረ መረብ ፕሮቶኮል መገንባት 2016. በትልቁ እንዲጀምሩ እመክራለሁ።

ግሌን ፊድለር በ UDP ላይ የተመሠረተ ብጁ ፕሮቶኮልን ለመጠቀም ትልቅ ደጋፊ መሆኑን ልብ ይበሉ። እና ጽሑፎቹን ካነበቡ በኋላ, ምናልባት TCP በቪዲዮ ጨዋታዎች ውስጥ ከባድ ድክመቶች እንዳሉት የእሱን አስተያየት ይቀበላሉ, እና የራስዎን ፕሮቶኮል መተግበር ይፈልጋሉ.

ግን ለአውታረ መረብ አዲስ ከሆንክ ለራስህ ጥሩ ነገር አድርግ እና TCP ወይም ቤተ-መጽሐፍት ተጠቀም። የእራስዎን የመጓጓዣ ፕሮቶኮል በተሳካ ሁኔታ ለመተግበር, አስቀድመው ብዙ መማር ያስፈልግዎታል.

የአውታረ መረብ ቤተ መጻሕፍት

ከTCP የበለጠ ቀልጣፋ ነገር ከፈለጉ፣ ነገር ግን የእራስዎን ፕሮቶኮል በመተግበር እና ብዙ ዝርዝር ውስጥ ለመግባት ጣጣ ውስጥ ማለፍ ካልፈለጉ፣ የአውታረ መረብ ቤተ-መጽሐፍትን መጠቀም ይችላሉ። ብዙዎቹ አሉ፡-

ሁሉንም አልሞከርኩም፣ ግን ኢኔትን እመርጣለሁ ምክንያቱም ለመጠቀም ቀላል እና አስተማማኝ ነው። በተጨማሪም, ግልጽ ሰነዶች እና ለጀማሪዎች አጋዥ ስልጠና አለው.

የትራንስፖርት ፕሮቶኮል፡ ማጠቃለያ

ለማጠቃለል፡ ሁለት ዋና የትራንስፖርት ፕሮቶኮሎች አሉ፡ TCP እና UDP። TCP ብዙ ጠቃሚ ባህሪያት አሉት-አስተማማኝነት, የፓኬት ትዕዛዝ ጥበቃ, ስህተትን መለየት. ዩዲፒ ይህ ሁሉ የለውም፣ ነገር ግን TCP በተፈጥሮው መዘግየትን ጨምሯል፣ ይህም ለአንዳንድ ጨዋታዎች ተቀባይነት የለውም። ማለትም ዝቅተኛ መዘግየትን ለማረጋገጥ በ UDP ላይ በመመስረት የራስዎን ፕሮቶኮል መፍጠር ወይም በ UDP ላይ የትራንስፖርት ፕሮቶኮልን የሚተገበር እና ለብዙ ተጫዋች የቪዲዮ ጨዋታዎች የተስተካከለ ቤተ-መጽሐፍትን መጠቀም ይችላሉ።

በTCP, UDP እና በቤተ-መጽሐፍት መካከል ያለው ምርጫ በበርካታ ሁኔታዎች ላይ የተመሰረተ ነው. በመጀመሪያ, ከጨዋታው ፍላጎቶች: ዝቅተኛ መዘግየት ያስፈልገዋል? በሁለተኛ ደረጃ, ከመተግበሪያው ፕሮቶኮል መስፈርቶች: አስተማማኝ ፕሮቶኮል ያስፈልገዋል? በሚቀጥለው ክፍል ላይ እንደምናየው, የማይታመን ፕሮቶኮል በጣም ተስማሚ የሆነ የመተግበሪያ ፕሮቶኮል መፍጠር ይቻላል. በመጨረሻም የኔትወርክ ሞተር ገንቢውን ልምድ ግምት ውስጥ ማስገባት አለብዎት.

ሁለት ምክሮች አሉኝ፡-

  • የትራንስፖርት ፕሮቶኮሉን ከተቀረው አፕሊኬሽኑ በተቻለ መጠን አብስረው ሁሉንም ኮዶች ሳይጽፉ በቀላሉ መተካት ይችላሉ።
  • ከመጠን በላይ አታሻሽል። የኔትወርክ ኤክስፐርት ካልሆኑ እና ብጁ UDP ላይ የተመሰረተ የትራንስፖርት ፕሮቶኮል እንደሚያስፈልግዎ እርግጠኛ ካልሆኑ፣ በTCP ወይም አስተማማኝነት በሚሰጥ ቤተ-መጽሐፍት መጀመር እና ከዚያ አፈፃፀሙን መፈተሽ እና መለካት ይችላሉ። ችግሮች ከተከሰቱ እና መንስኤው የትራንስፖርት ፕሮቶኮል መሆኑን እርግጠኛ ከሆኑ የራስዎን የትራንስፖርት ፕሮቶኮል ለመፍጠር ጊዜው አሁን ሊሆን ይችላል።

በዚህ ክፍል መጨረሻ ላይ እንዲያነቡ እመክራለሁ። የባለብዙ ተጫዋች ጨዋታ ፕሮግራሚንግ መግቢያ እዚህ የተብራሩትን ብዙ ርዕሶችን በሚሸፍነው በብሪያን ሁክ።

የመተግበሪያ ፕሮቶኮል

አሁን በደንበኞች እና በአገልጋይ መካከል ውሂብ መለዋወጥ ስለምንችል ምን ውሂብ ማስተላለፍ እንዳለብን እና በምን አይነት ቅርጸት መወሰን አለብን።

ክላሲክ ዕቅድ ደንበኞች ግብዓት ወይም ድርጊቶችን ወደ አገልጋዩ ይልካሉ፣ እና አገልጋዩ አሁን ያለውን የጨዋታ ሁኔታ ለደንበኞቹ ይልካል።

አገልጋዩ የላከው ሙሉ ሁኔታ ሳይሆን የተጣራ ሁኔታ ከተጫዋቹ አጠገብ ከሚገኙ አካላት ጋር ነው። ይህንን የሚያደርገው በሦስት ምክንያቶች ነው። በመጀመሪያ, የተሟላ ሁኔታ በከፍተኛ ድግግሞሽ ሊተላለፍ የማይችል በጣም ትልቅ ሊሆን ይችላል. በሁለተኛ ደረጃ, ደንበኞች በዋነኛነት የእይታ እና የኦዲዮ መረጃን ይፈልጋሉ, ምክንያቱም አብዛኛው የጨዋታ አመክንዮ በጨዋታ አገልጋይ ላይ ነው. በሶስተኛ ደረጃ, በአንዳንድ ጨዋታዎች ተጫዋቹ የተወሰኑ መረጃዎችን ማወቅ አያስፈልገውም, ለምሳሌ, በካርታው ላይ በሌላኛው በኩል ያለው የጠላት አቀማመጥ, አለበለዚያ እሱ ፓኬቶችን ማሽተት እና እሱን ለመግደል የት እንደሚንቀሳቀስ በትክክል ማወቅ ይችላል.

ተከታታይነት

የመጀመሪያው እርምጃ መላክ የምንፈልገውን መረጃ (የግቤት ወይም የጨዋታ ሁኔታ) ወደ ማስተላለፍ ተስማሚ ቅርጸት መለወጥ ነው. ይህ ሂደት ይባላል ተከታታይነት.

ወዲያው ወደ አእምሮ የሚመጣው ሀሳብ እንደ JSON ወይም XML ያሉ በሰው ሊነበብ የሚችል ቅርጸት መጠቀም ነው። ነገር ግን ይህ ሙሉ በሙሉ ውጤታማ አይሆንም እና አብዛኛውን ቻናል ያባክናል.

በምትኩ ሁለትዮሽ ፎርማትን ለመጠቀም ይመከራል, ይህም በጣም የታመቀ ነው. ማለትም፣ ፓኬጆቹ ጥቂት ባይት ብቻ ይይዛሉ። እዚህ ሊታሰብበት የሚገባ ችግር አለ ባይት ትእዛዝ, በተለያዩ ኮምፒውተሮች ላይ ሊለያይ ይችላል.

ውሂብን ተከታታይ ለማድረግ፣ ላይብረሪ መጠቀም ይችላሉ፣ ለምሳሌ፡-

ቤተ መፃህፍቱ ተንቀሳቃሽ ማህደሮችን መፍጠሩን እና ለፍቅራዊነት እንደሚያስብ ያረጋግጡ።

አማራጭ መፍትሔው እራስዎ መተግበር ነው፡ በተለይ አስቸጋሪ አይደለም፡ በተለይ ለኮድዎ ዳታ ተኮር አቀራረብን ከተጠቀሙ። በተጨማሪም, ቤተ-መጽሐፍትን ሲጠቀሙ ሁልጊዜ የማይቻሉ ማመቻቸትን እንዲያደርጉ ይፈቅድልዎታል.

ግሌን ፊድለር ስለ ተከታታይነት ሁለት ጽሑፎችን ጽፏል፡- የንባብ እና የመጻፍ ፓኬጆች и ተከታታይ ስልቶች.

ከታመቀ

በደንበኞች እና በአገልጋይ መካከል የሚተላለፈው የውሂብ መጠን በሰርጡ የመተላለፊያ ይዘት የተገደበ ነው። የውሂብ መጭመቅ በእያንዳንዱ ቅጽበታዊ ገጽ እይታ ላይ ተጨማሪ ውሂብ እንዲያስተላልፉ፣ የዝማኔውን ድግግሞሽ እንዲጨምሩ ወይም በቀላሉ የሰርጥ መስፈርቶችን እንዲቀንሱ ያስችልዎታል።

ቢት ማሸግ

የመጀመሪያው ዘዴ ትንሽ ማሸግ ነው. የሚፈለገውን ዋጋ ለመግለፅ አስፈላጊ የሆኑትን የቢቶች ብዛት በትክክል መጠቀምን ያካትታል. ለምሳሌ፣ 16 የተለያዩ እሴቶች ሊኖሩት የሚችል ኢነም ካለህ፣ ከሙሉ ባይት (8 ቢት) ይልቅ፣ 4 ቢት ብቻ መጠቀም ትችላለህ።

ግሌን ፊድለር በአንቀጹ ሁለተኛ ክፍል ውስጥ ይህንን እንዴት ተግባራዊ ማድረግ እንደሚቻል ያብራራል የንባብ እና የመጻፍ ፓኬጆች.

ቢት ማሸግ በተለይ ከናሙና ጋር በደንብ ይሰራል ይህም የሚቀጥለው ክፍል ርዕስ ይሆናል።

ናሙና

ናሙና እሴትን ለመደበቅ ሊሆኑ የሚችሉ የእሴቶችን ንዑስ ስብስብን ብቻ የሚጠቀም ኪሳራ የመጨመቅ ቴክኒክ ነው። ዲስኩርን ለመተግበር ቀላሉ መንገድ ተንሳፋፊ ነጥብ ቁጥሮችን በማጠጋጋት ነው።

ግሌን ፊድለር (እንደገና!) ናሙናን እንዴት በተግባር ላይ ማዋል እንደሚቻል በአንቀጹ ውስጥ ያሳያል ቅጽበተ-ፎቶ መጭመቅ.

የማመቅ ስልተ ቀመሮች

የሚቀጥለው ቴክኒክ ኪሳራ የሌለው የማመቅ ስልተ ቀመሮች ይሆናል።

እዚህ ፣ በእኔ አስተያየት ፣ ማወቅ ያለብዎት ሶስት በጣም አስደሳች ስልተ ቀመሮች አሉ ።

  • ሃፍማን ኮድ ማድረግ እጅግ በጣም ፈጣን እና ጥሩ ውጤት ሊያስገኝ በሚችል ቅድመ-የተሰላ ኮድ። በ Quake3 አውታረመረብ ሞተር ውስጥ ፓኬቶችን ለመጭመቅ ያገለግል ነበር።
  • zlib አጠቃላይ-ዓላማ መጭመቂያ ስልተ-ቀመር ሲሆን ይህም የመረጃውን መጠን በጭራሽ አይጨምርም። እንዴት ማየት ይቻላል እዚህ, በተለያዩ አፕሊኬሽኖች ውስጥ ጥቅም ላይ ውሏል. ግዛቶችን ለማዘመን ተደጋጋሚ ሊሆን ይችላል። ነገር ግን ንብረቶችን፣ ረጅም ፅሁፎችን ወይም የመሬት አቀማመጥን ከአገልጋዩ ለደንበኞች መላክ ከፈለጉ ጠቃሚ ሊሆን ይችላል።
  • የሩጫ ርዝመቶችን መቅዳት - ይህ ምናልባት ቀላሉ የማመቅ ስልተ-ቀመር ነው, ነገር ግን ለተወሰኑ የውሂብ ዓይነቶች በጣም ውጤታማ ነው, እና ከዝሊብ በፊት እንደ ቅድመ-ሂደት ደረጃ ሊያገለግል ይችላል. በተለይም ብዙ አጎራባች ንጥረ ነገሮች የሚደጋገሙበት ከሰድር ወይም ቮክስልስ ያቀፈ መሬት ለመጨመቅ ተስማሚ ነው።

ዴልታ መጨናነቅ

የመጨረሻው የመጨመቂያ ዘዴ የዴልታ መጨናነቅ ነው. እሱ አሁን ባለው የጨዋታ ሁኔታ እና በደንበኛው የተቀበለው የመጨረሻው ሁኔታ መካከል ያለው ልዩነት ብቻ መተላለፉን ያካትታል።

በመጀመሪያ በ Quake3 ኔትወርክ ሞተር ውስጥ ጥቅም ላይ ውሏል. እንዴት እንደሚጠቀሙበት የሚገልጹ ሁለት ጽሑፎች እዚህ አሉ።

ግሌን ፊድለር በአንቀጹ ሁለተኛ ክፍል ላይም ተጠቅሞበታል። ቅጽበተ-ፎቶ መጭመቅ.

ምስጠራ

በተጨማሪም በደንበኞች እና በአገልጋዩ መካከል የመረጃ ልውውጥን ማመስጠር ሊያስፈልግዎ ይችላል. ለዚህ በርካታ ምክንያቶች አሉ.

  • ግላዊነት/ምስጢራዊነት፡ መልእክቶች የሚነበቡት በተቀባዩ ብቻ ነው፣ እና ማንም ሌላ ኔትወርኩን የሚያሸልብ ሰው ሊያነብባቸው አይችልም።
  • ማረጋገጫ፡ የተጫዋች ሚና መጫወት የሚፈልግ ሰው ቁልፉን ማወቅ አለበት።
  • ማጭበርበርን መከላከል፡ ለተንኮል አዘል ተጫዋቾች የራሳቸውን የማጭበርበሪያ ፓኬጆችን መፍጠር በጣም ከባድ ይሆንባቸዋል፣ የኢንክሪፕሽን መርሃ ግብሩን እንደገና ማባዛት እና ቁልፉን ማግኘት አለባቸው (በእያንዳንዱ ግንኙነት ይለወጣል)።

ለዚህ ቤተ-መጽሐፍት እንድትጠቀም አጥብቄ እመክራለሁ። እንዲጠቀሙ እመክራለሁ ሊብሶዲየም, ምክንያቱም በተለይ ቀላል እና በጣም ጥሩ መማሪያዎች አሉት. በተለይ ትኩረት የሚስብ ትምህርት በ ላይ ነው። ቁልፍ ልውውጥ, ይህም በእያንዳንዱ አዲስ ግንኙነት አዲስ ቁልፎችን እንዲያመነጩ ያስችልዎታል.

የመተግበሪያ ፕሮቶኮል፡ ማጠቃለያ

ይህ የእኛን መተግበሪያ ፕሮቶኮል ያጠናቅቃል። መጭመቅ ሙሉ በሙሉ አማራጭ ነው ብዬ አምናለሁ እና እሱን ለመጠቀም መወሰን የሚወሰነው በጨዋታው እና በሚፈለገው የመተላለፊያ ይዘት ላይ ብቻ ነው። ማመስጠር, በእኔ አስተያየት, ግዴታ ነው, ነገር ግን በመጀመሪያው ፕሮቶታይፕ ውስጥ ያለሱ ማድረግ ይችላሉ.

የመተግበሪያ አመክንዮ

አሁን በደንበኛው ውስጥ ሁኔታን ማዘመን ችለናል፣ ነገር ግን ወደ መዘግየት ችግሮች ሊያጋጥሙ ይችላሉ። ተጫዋቹ፣ ግብአቱን ከጨረሰ በኋላ፣ በዓለም ላይ ምን አይነት ተጽእኖ እንዳሳደረ ለማየት የጨዋታው ሁኔታ ከአገልጋዩ እስኪዘመን ድረስ መጠበቅ አለበት።

ከዚህም በላይ፣ በሁለት የግዛት ዝመናዎች መካከል፣ ዓለም ሙሉ በሙሉ የቆመ ነው። የስቴት ማሻሻያ መጠን ዝቅተኛ ከሆነ, እንቅስቃሴዎቹ በጣም ይሽከረከራሉ.

የዚህን ችግር ተፅእኖ ለመቀነስ ብዙ ዘዴዎች አሉ, እና በሚቀጥለው ክፍል እሸፍናቸዋለሁ.

የዘገየ ማለስለስ ቴክኒኮች

በዚህ ክፍል ውስጥ የተገለጹት ሁሉም ዘዴዎች በተከታታይ ውስጥ በዝርዝር ተብራርተዋል ፈጣን ባለብዙ ተጫዋች ገብርኤል ጋምቤታ። ይህን ምርጥ ተከታታይ መጣጥፎች እንዲያነቡ አጥብቄ እመክራለሁ። በተጨማሪም እነዚህ ቴክኒኮች በተግባር እንዴት እንደሚሠሩ ለማየት የሚያስችል በይነተገናኝ ማሳያን ያካትታል።

የመጀመሪያው ቴክኒክ ከአገልጋዩ ምላሽ ሳይጠብቅ የግብአት ውጤቱን በቀጥታ መተግበር ነው። ይባላል የደንበኛ-ጎን ትንበያ. ነገር ግን፣ ደንበኛው ከአገልጋዩ ማሻሻያ ሲደርሰው፣ ትንበያው ትክክል መሆኑን ማረጋገጥ አለበት። ጉዳዩ ይህ ካልሆነ ከአገልጋዩ በተቀበለው መሰረት ግዛቱን መቀየር ብቻ ነው የሚያስፈልገው ምክንያቱም አገልጋዩ ባለስልጣን ነው። ይህ ዘዴ ለመጀመሪያ ጊዜ በ Quake ውስጥ ጥቅም ላይ ውሏል. በጽሁፉ ውስጥ ስለ እሱ የበለጠ ማንበብ ይችላሉ መንቀጥቀጥ ሞተር ኮድ ግምገማ Fabien Sanglars [ትርጉም Habré ላይ]።

ሁለተኛው የቴክኒኮች ስብስብ በሁለት የግዛት ዝመናዎች መካከል የሌሎች አካላትን እንቅስቃሴ ለማቃለል ይጠቅማል። ይህንን ችግር ለመፍታት ሁለት መንገዶች አሉ-ኢንተርፖሌሽን እና ኤክስትራፖሌሽን. በ interpolation ውስጥ, የመጨረሻዎቹ ሁለት ግዛቶች ተወስደዋል እና ከአንዱ ወደ ሌላኛው ሽግግር ይታያል. የእሱ ጉዳቱ ትንሽ መዘግየትን ያስከትላል ምክንያቱም ደንበኛው ሁልጊዜ ያለፈውን ጊዜ ስለሚመለከት ነው. Extrapolation ደንበኛው በተቀበለበት የመጨረሻ ሁኔታ ላይ በመመስረት አካላት አሁን የት መሆን እንዳለባቸው መተንበይ ነው። የእሱ ጉዳቱ አካል የእንቅስቃሴውን አቅጣጫ ሙሉ በሙሉ ከቀየረ, ትንበያው እና በትክክለኛው አቀማመጥ መካከል ትልቅ ስህተት ይኖራል.

በ FPS ውስጥ ብቻ የሚጠቅመው የቅርብ ጊዜው፣ በጣም የላቀ ቴክኒክ ነው። መዘግየት ካሳ. የላግ ማካካሻን ሲጠቀሙ አገልጋዩ ዒላማው ላይ ሲተኮስ የደንበኛውን መዘግየቶች ግምት ውስጥ ያስገባል። ለምሳሌ አንድ ተጫዋች በስክሪናቸው ላይ የጭንቅላት ሾት ቢያደርግ፣ነገር ግን በእውነቱ ኢላማቸው በመዘግየቱ ምክንያት በተለየ ቦታ ላይ ከሆነ፣ተጫዋቹን በመዘግየቱ ምክንያት የመግደል መብት መከልከል ፍትሃዊ አይሆንም። ስለዚህ አገልጋዩ ተጫዋቹ ወደተኮሰበት ቅጽበት ተጫዋቹ በስክሪናቸው ላይ የተመለከተውን ለመምሰል እና በተተኮሱበት እና በዒላማው መካከል ያለውን ግጭት ለመፈተሽ ሰዓቱን ወደ ኋላ ይመለሳል።

ግሌን ፊድለር (እንደ ሁልጊዜው!) በ 2004 አንድ ጽሑፍ ጽፏል የአውታረ መረብ ፊዚክስ (2004), በአገልጋዩ እና በደንበኛው መካከል የፊዚክስ ማስመሰሎችን ለማመሳሰል መሰረት ጥሏል. በ 2014 አዲስ ተከታታይ መጣጥፎችን ጻፈ የአውታረ መረብ ፊዚክስየፊዚክስ ማስመሰያዎችን የማመሳሰል ሌሎች ዘዴዎችን የገለፀው።

በቫልቭ ዊኪ ላይ ሁለት መጣጥፎችም አሉ፣ ምንጭ ባለብዙ ተጫዋች አውታረ መረብ и በደንበኛ/በአገልጋይ የውስጠ-ጨዋታ ፕሮቶኮል ዲዛይን እና ማመቻቸት ውስጥ የቆይታ ጊዜ የማካካሻ ዘዴዎች ለመዘግየቶች ማካካሻን ግምት ውስጥ ያስገቡ.

ማጭበርበርን መከላከል

ማጭበርበርን ለመከላከል ሁለት ዋና ዘዴዎች አሉ.

አንደኛ፡- አጭበርባሪዎችን ተንኮል-አዘል ፓኬጆችን ለመላክ የበለጠ አስቸጋሪ ያደርገዋል። ከላይ እንደተጠቀሰው, ይህንን ተግባራዊ ለማድረግ ጥሩው መንገድ ምስጠራ ነው.

ሁለተኛ፡- ስልጣን ያለው አገልጋይ ትዕዛዞችን/ግቤት/ድርጊቶችን ብቻ መቀበል አለበት። ደንበኛው ግብዓት በመላክ ካልሆነ በቀር በአገልጋዩ ላይ ያለውን ሁኔታ መለወጥ መቻል የለበትም። ከዚያም አገልጋዩ ግብአት በተቀበለ ቁጥር ከመጠቀምዎ በፊት ትክክለኛ መሆኑን ማረጋገጥ አለበት።

የትግበራ አመክንዮ፡ መደምደሚያ

ደንበኛው እና አገልጋዩ በተመሳሳይ ኮምፒዩተር ላይ በሚሰሩበት ጊዜ እንኳን የጨዋታዎን ባህሪ በደካማ ሁኔታ መሞከር እንዲችሉ ከፍተኛ መዘግየትን እና ዝቅተኛ የማደስ ዋጋን የማስመሰል ዘዴን እንዲተገብሩ እመክራለሁ። ይህ የመዘግየት ማለስለስ ዘዴዎችን መተግበርን በእጅጉ ያቃልላል.

ሌሎች ጠቃሚ ሀብቶች

በአውታረ መረብ ሞዴሎች ላይ ሌሎች ግብዓቶችን ማሰስ ከፈለጉ፣ እዚህ ሊያገኟቸው ይችላሉ።

ምንጭ: hab.com

አስተያየት ያክሉ