ಮೆಗಾಪ್ಯಾಕ್: ಫ್ಯಾಕ್ಟೋರಿಯೊ 200-ಪ್ಲೇಯರ್ ಮಲ್ಟಿಪ್ಲೇಯರ್ ಸಮಸ್ಯೆಯನ್ನು ಹೇಗೆ ಪರಿಹರಿಸಿದೆ

ಮೆಗಾಪ್ಯಾಕ್: ಫ್ಯಾಕ್ಟೋರಿಯೊ 200-ಪ್ಲೇಯರ್ ಮಲ್ಟಿಪ್ಲೇಯರ್ ಸಮಸ್ಯೆಯನ್ನು ಹೇಗೆ ಪರಿಹರಿಸಿದೆ
ಈ ವರ್ಷದ ಮೇನಲ್ಲಿ ನಾನು ಆಟಗಾರನಾಗಿ ಭಾಗವಹಿಸಿದ್ದೆ MMO ಈವೆಂಟ್‌ಗಳು ಕ್ಯಾಥರೀನ್‌ಆಫ್‌ಸ್ಕಿ. ಆಟಗಾರರ ಸಂಖ್ಯೆಯು ನಿರ್ದಿಷ್ಟ ಸಂಖ್ಯೆಯನ್ನು ತಲುಪಿದಾಗ, ಪ್ರತಿ ಕೆಲವು ನಿಮಿಷಗಳಲ್ಲಿ ಕೆಲವರು "ಬೀಳುತ್ತಾರೆ" ಎಂದು ನಾನು ಗಮನಿಸಿದ್ದೇನೆ. ಅದೃಷ್ಟವಶಾತ್ ನಿಮಗಾಗಿ (ಆದರೆ ನನಗೆ ಅಲ್ಲ), ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಿದ ಆಟಗಾರರಲ್ಲಿ ನಾನೂ ಒಬ್ಬ ಪ್ರತಿ ಸಲ, ಉತ್ತಮ ಸಂಪರ್ಕದೊಂದಿಗೆ ಸಹ. ನಾನು ಇದನ್ನು ವೈಯಕ್ತಿಕ ಸವಾಲಾಗಿ ತೆಗೆದುಕೊಂಡೆ ಮತ್ತು ಸಮಸ್ಯೆಯ ಕಾರಣಗಳನ್ನು ಹುಡುಕಲಾರಂಭಿಸಿದೆ. ಮೂರು ವಾರಗಳ ಡೀಬಗ್ ಮಾಡುವಿಕೆ, ಪರೀಕ್ಷೆ ಮತ್ತು ಪರಿಹಾರಗಳ ನಂತರ, ದೋಷವನ್ನು ಅಂತಿಮವಾಗಿ ಸರಿಪಡಿಸಲಾಯಿತು, ಆದರೆ ಪ್ರಯಾಣವು ಅಷ್ಟು ಸುಲಭವಾಗಿರಲಿಲ್ಲ.

ಮಲ್ಟಿಪ್ಲೇಯರ್ ಆಟಗಳೊಂದಿಗಿನ ಸಮಸ್ಯೆಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ತುಂಬಾ ಕಷ್ಟ. ಅವು ಸಾಮಾನ್ಯವಾಗಿ ನಿರ್ದಿಷ್ಟ ನೆಟ್‌ವರ್ಕ್ ಪ್ಯಾರಾಮೀಟರ್‌ಗಳು ಮತ್ತು ನಿರ್ದಿಷ್ಟ ಆಟದ ಪರಿಸ್ಥಿತಿಗಳ ಅಡಿಯಲ್ಲಿ ಸಂಭವಿಸುತ್ತವೆ (ಈ ಸಂದರ್ಭದಲ್ಲಿ, 200 ಕ್ಕಿಂತ ಹೆಚ್ಚು ಆಟಗಾರರನ್ನು ಹೊಂದಿರುವವರು). ಮತ್ತು ಸಮಸ್ಯೆಯನ್ನು ಪುನರುತ್ಪಾದಿಸಿದಾಗಲೂ, ಅದನ್ನು ಸರಿಯಾಗಿ ಡೀಬಗ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ ಏಕೆಂದರೆ ಬ್ರೇಕ್‌ಪಾಯಿಂಟ್‌ಗಳನ್ನು ಸೇರಿಸುವುದರಿಂದ ಆಟವನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆ, ಟೈಮರ್‌ಗಳನ್ನು ಗೊಂದಲಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಸಾಮಾನ್ಯವಾಗಿ ಸಂಪರ್ಕವು ಸಮಯ ಮೀರುತ್ತದೆ. ಆದರೆ ನಿರಂತರತೆ ಮತ್ತು ಎಂಬ ಅದ್ಭುತ ಸಾಧನಕ್ಕೆ ಧನ್ಯವಾದಗಳು ಬೃಹದಾಕಾರದ ನಾನು ಏನು ನಡೆಯುತ್ತಿದೆ ಎಂದು ಕಂಡುಹಿಡಿಯಲು ನಿರ್ವಹಿಸುತ್ತಿದ್ದೆ.

ಸಂಕ್ಷಿಪ್ತವಾಗಿ ಹೇಳುವುದಾದರೆ, ಲೇಟೆನ್ಸಿ ಸ್ಟೇಟ್ ಸಿಮ್ಯುಲೇಶನ್‌ನ ದೋಷ ಮತ್ತು ಅಪೂರ್ಣ ಅನುಷ್ಠಾನದಿಂದಾಗಿ, ಕ್ಲೈಂಟ್ ಕೆಲವೊಮ್ಮೆ ಒಂದು ಗಡಿಯಾರದ ಚಕ್ರದಲ್ಲಿ ಸರಿಸುಮಾರು 400 ಆಟದ ಘಟಕಗಳ ಆಟಗಾರನ ಇನ್‌ಪುಟ್ ಆಯ್ಕೆಯ ಕ್ರಿಯೆಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ನೆಟ್‌ವರ್ಕ್ ಪ್ಯಾಕೆಟ್ ಅನ್ನು ಕಳುಹಿಸಬೇಕಾದ ಪರಿಸ್ಥಿತಿಯಲ್ಲಿ ಸ್ವತಃ ಕಂಡುಕೊಳ್ಳುತ್ತಾನೆ ( ನಾವು ಇದನ್ನು "ಮೆಗಾ-ಪ್ಯಾಕೆಟ್" ಎಂದು ಕರೆಯುತ್ತೇವೆ). ಸರ್ವರ್ ನಂತರ ಈ ಎಲ್ಲಾ ಇನ್‌ಪುಟ್ ಕ್ರಿಯೆಗಳನ್ನು ಸರಿಯಾಗಿ ಸ್ವೀಕರಿಸುವುದಲ್ಲದೆ, ಅವುಗಳನ್ನು ಎಲ್ಲಾ ಇತರ ಕ್ಲೈಂಟ್‌ಗಳಿಗೆ ಕಳುಹಿಸಬೇಕು. ನೀವು 200 ಗ್ರಾಹಕರನ್ನು ಹೊಂದಿದ್ದರೆ, ಇದು ಶೀಘ್ರವಾಗಿ ಸಮಸ್ಯೆಯಾಗುತ್ತದೆ. ಸರ್ವರ್‌ಗೆ ಲಿಂಕ್ ತ್ವರಿತವಾಗಿ ಮುಚ್ಚಿಹೋಗುತ್ತದೆ, ಇದು ಪ್ಯಾಕೆಟ್ ನಷ್ಟಕ್ಕೆ ಮತ್ತು ಮರು ವಿನಂತಿಸಿದ ಪ್ಯಾಕೆಟ್‌ಗಳ ಕ್ಯಾಸ್ಕೇಡ್‌ಗೆ ಕಾರಣವಾಗುತ್ತದೆ. ಇನ್‌ಪುಟ್ ಕ್ರಿಯೆಯನ್ನು ವಿಳಂಬಗೊಳಿಸುವುದರಿಂದ ಇನ್ನಷ್ಟು ಕ್ಲೈಂಟ್‌ಗಳು ಮೆಗಾಪ್ಯಾಕೆಟ್‌ಗಳನ್ನು ಕಳುಹಿಸಲು ಕಾರಣವಾಗುತ್ತದೆ, ಇದರಿಂದಾಗಿ ಹಿಮಪಾತವು ಇನ್ನಷ್ಟು ದೊಡ್ಡದಾಗುತ್ತದೆ. ಅದೃಷ್ಟದ ಗ್ರಾಹಕರು ಚೇತರಿಸಿಕೊಳ್ಳಲು ನಿರ್ವಹಿಸುತ್ತಾರೆ; ಉಳಿದವರೆಲ್ಲರೂ ಬೀಳುತ್ತಾರೆ.

ಮೆಗಾಪ್ಯಾಕ್: ಫ್ಯಾಕ್ಟೋರಿಯೊ 200-ಪ್ಲೇಯರ್ ಮಲ್ಟಿಪ್ಲೇಯರ್ ಸಮಸ್ಯೆಯನ್ನು ಹೇಗೆ ಪರಿಹರಿಸಿದೆ
ಸಮಸ್ಯೆಯು ಸಾಕಷ್ಟು ಮೂಲಭೂತವಾಗಿದೆ ಮತ್ತು ಅದನ್ನು ಸರಿಪಡಿಸಲು ನನಗೆ 2 ವಾರಗಳನ್ನು ತೆಗೆದುಕೊಂಡಿತು. ಇದು ಸಾಕಷ್ಟು ತಾಂತ್ರಿಕವಾಗಿದೆ, ಆದ್ದರಿಂದ ನಾನು ರಸಭರಿತವಾದ ತಾಂತ್ರಿಕ ವಿವರಗಳನ್ನು ಕೆಳಗೆ ವಿವರಿಸುತ್ತೇನೆ. ಆದರೆ ಮೊದಲು, ಜೂನ್ 0.17.54 ರಂದು ಬಿಡುಗಡೆಯಾದ ಆವೃತ್ತಿ 4 ರಿಂದ, ತಾತ್ಕಾಲಿಕ ಸಂಪರ್ಕ ಸಮಸ್ಯೆಗಳ ಹಿನ್ನೆಲೆಯಲ್ಲಿ, ಮಲ್ಟಿಪ್ಲೇಯರ್ ಹೆಚ್ಚು ಸ್ಥಿರವಾಗಿದೆ ಮತ್ತು ವಿಳಂಬಗಳನ್ನು ಮರೆಮಾಡುವುದು ಕಡಿಮೆ ದೋಷಯುಕ್ತವಾಗಿದೆ (ಕಡಿಮೆ ನಿಧಾನಗತಿ ಮತ್ತು ಟೆಲಿಪೋರ್ಟಿಂಗ್) ಎಂದು ನೀವು ತಿಳಿದುಕೊಳ್ಳಬೇಕು. ನಾನು ಯುದ್ಧ ಮಂದಗತಿಯನ್ನು ಮರೆಮಾಡುವ ವಿಧಾನವನ್ನು ಸಹ ಬದಲಾಯಿಸಿದ್ದೇನೆ ಮತ್ತು ಇದು ಸ್ವಲ್ಪ ಸುಗಮಗೊಳಿಸುತ್ತದೆ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ.

ಮಲ್ಟಿಪ್ಲೇಯರ್ ಮೆಗಾ ಪ್ಯಾಕ್ - ತಾಂತ್ರಿಕ ವಿವರಗಳು

ಸರಳವಾಗಿ ಹೇಳುವುದಾದರೆ, ಆಟದಲ್ಲಿನ ಮಲ್ಟಿಪ್ಲೇಯರ್ ಈ ರೀತಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ: ಎಲ್ಲಾ ಕ್ಲೈಂಟ್‌ಗಳು ಆಟದ ಸ್ಥಿತಿಯನ್ನು ಅನುಕರಿಸುತ್ತಾರೆ, ಪ್ಲೇಯರ್ ಇನ್‌ಪುಟ್ ಅನ್ನು ಮಾತ್ರ ಸ್ವೀಕರಿಸುತ್ತಾರೆ ಮತ್ತು ಕಳುಹಿಸುತ್ತಾರೆ ("ಇನ್‌ಪುಟ್ ಕ್ರಿಯೆಗಳು" ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ, ಇನ್ಪುಟ್ ಕ್ರಿಯೆಗಳು) ಸರ್ವರ್‌ನ ಮುಖ್ಯ ಕಾರ್ಯವೆಂದರೆ ವರ್ಗಾವಣೆ ಮಾಡುವುದು ಇನ್ಪುಟ್ ಕ್ರಿಯೆಗಳು ಮತ್ತು ಎಲ್ಲಾ ಕ್ಲೈಂಟ್‌ಗಳು ಒಂದೇ ಗಡಿಯಾರ ಚಕ್ರದಲ್ಲಿ ಒಂದೇ ರೀತಿಯ ಕ್ರಿಯೆಗಳನ್ನು ನಿರ್ವಹಿಸುವುದನ್ನು ನಿಯಂತ್ರಿಸಿ. ಪೋಸ್ಟ್‌ನಲ್ಲಿ ನೀವು ಇದರ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ಓದಬಹುದು ಎಫ್ಎಫ್ಎಫ್-149.

ಸರ್ವರ್ ಯಾವ ಕ್ರಿಯೆಗಳನ್ನು ನಿರ್ವಹಿಸಬೇಕೆಂಬುದರ ಬಗ್ಗೆ ನಿರ್ಧಾರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬೇಕಾಗಿರುವುದರಿಂದ, ಆಟಗಾರನ ಕ್ರಮಗಳು ಸರಿಸುಮಾರು ಈ ಹಾದಿಯಲ್ಲಿ ಚಲಿಸುತ್ತವೆ: ಆಟಗಾರನ ಕ್ರಿಯೆ -> ಆಟದ ಕ್ಲೈಂಟ್ -> ನೆಟ್‌ವರ್ಕ್ -> ಸರ್ವರ್ -> ನೆಟ್‌ವರ್ಕ್ -> ಗೇಮ್ ಕ್ಲೈಂಟ್. ಇದರರ್ಥ ಪ್ರತಿ ಆಟಗಾರನ ಕ್ರಿಯೆಯನ್ನು ನೆಟ್‌ವರ್ಕ್‌ನಾದ್ಯಂತ ರೌಂಡ್ ಟ್ರಿಪ್ ಮಾಡಿದ ನಂತರ ಮಾತ್ರ ನಿರ್ವಹಿಸಲಾಗುತ್ತದೆ. ಈ ಕಾರಣದಿಂದಾಗಿ, ಆಟವು ತುಂಬಾ ನಿಧಾನವಾಗಿದೆ ಎಂದು ತೋರುತ್ತದೆ, ಆದ್ದರಿಂದ ಆಟದಲ್ಲಿ ಮಲ್ಟಿಪ್ಲೇಯರ್ ಅನ್ನು ಪರಿಚಯಿಸಿದ ತಕ್ಷಣವೇ, ವಿಳಂಬವನ್ನು ಮರೆಮಾಡಲು ಕಾರ್ಯವಿಧಾನವನ್ನು ಪರಿಚಯಿಸಲಾಯಿತು. ವಿಳಂಬವನ್ನು ಮರೆಮಾಡುವುದು ಇತರ ಆಟಗಾರರ ಕ್ರಮಗಳು ಮತ್ತು ಸರ್ವರ್‌ನ ನಿರ್ಧಾರಗಳನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳದೆ ಆಟಗಾರರ ಇನ್‌ಪುಟ್ ಅನ್ನು ಅನುಕರಿಸುತ್ತದೆ.

ಮೆಗಾಪ್ಯಾಕ್: ಫ್ಯಾಕ್ಟೋರಿಯೊ 200-ಪ್ಲೇಯರ್ ಮಲ್ಟಿಪ್ಲೇಯರ್ ಸಮಸ್ಯೆಯನ್ನು ಹೇಗೆ ಪರಿಹರಿಸಿದೆ
ಫ್ಯಾಕ್ಟೋರಿಯೊ ಆಟದ ಸ್ಥಿತಿಯನ್ನು ಹೊಂದಿದೆ ಗೇಮ್ ರಾಜ್ಯ ಕಾರ್ಡ್, ಆಟಗಾರ, ಘಟಕಗಳು ಮತ್ತು ಎಲ್ಲದರ ಸಂಪೂರ್ಣ ಸ್ಥಿತಿಯಾಗಿದೆ. ಸರ್ವರ್‌ನಿಂದ ಸ್ವೀಕರಿಸಿದ ಕ್ರಿಯೆಗಳ ಆಧಾರದ ಮೇಲೆ ಎಲ್ಲಾ ಕ್ಲೈಂಟ್‌ಗಳಲ್ಲಿ ಇದನ್ನು ನಿರ್ಣಾಯಕವಾಗಿ ಅನುಕರಿಸಲಾಗುತ್ತದೆ. ಆಟದ ಸ್ಥಿತಿಯು ಪವಿತ್ರವಾಗಿದೆ ಮತ್ತು ಅದು ಸರ್ವರ್ ಅಥವಾ ಯಾವುದೇ ಇತರ ಕ್ಲೈಂಟ್‌ನಿಂದ ಭಿನ್ನವಾಗಲು ಪ್ರಾರಂಭಿಸಿದರೆ, ನಂತರ ಡಿಸಿಂಕ್ ಸಂಭವಿಸುತ್ತದೆ.

ಹೊರತುಪಡಿಸಿ ಗೇಮ್ ರಾಜ್ಯ ನಾವು ವಿಳಂಬದ ಸ್ಥಿತಿಯನ್ನು ಹೊಂದಿದ್ದೇವೆ ಸುಪ್ತ ಸ್ಥಿತಿ. ಇದು ನೆಲದ ಸ್ಥಿತಿಯ ಸಣ್ಣ ಉಪವಿಭಾಗವನ್ನು ಒಳಗೊಂಡಿದೆ. ಸುಪ್ತ ಸ್ಥಿತಿ ಪವಿತ್ರವಲ್ಲ ಮತ್ತು ಆಟಗಾರರ ಒಳಹರಿವಿನ ಆಧಾರದ ಮೇಲೆ ಆಟದ ಸ್ಥಿತಿಯು ಭವಿಷ್ಯದಲ್ಲಿ ಹೇಗಿರುತ್ತದೆ ಎಂಬುದರ ಚಿತ್ರವನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ ಇನ್ಪುಟ್ ಕ್ರಿಯೆಗಳು.

ಈ ಉದ್ದೇಶಕ್ಕಾಗಿ, ನಾವು ರಚಿಸಿದ ನಕಲನ್ನು ಸಂಗ್ರಹಿಸುತ್ತೇವೆ ಇನ್ಪುಟ್ ಕ್ರಿಯೆಗಳು ವಿಳಂಬ ಸರದಿಯಲ್ಲಿ.

ಮೆಗಾಪ್ಯಾಕ್: ಫ್ಯಾಕ್ಟೋರಿಯೊ 200-ಪ್ಲೇಯರ್ ಮಲ್ಟಿಪ್ಲೇಯರ್ ಸಮಸ್ಯೆಯನ್ನು ಹೇಗೆ ಪರಿಹರಿಸಿದೆ
ಅಂದರೆ, ಕ್ಲೈಂಟ್ ಬದಿಯಲ್ಲಿ ಪ್ರಕ್ರಿಯೆಯ ಕೊನೆಯಲ್ಲಿ ಚಿತ್ರವು ಈ ರೀತಿ ಕಾಣುತ್ತದೆ:

  1. ನಾವು ಅರ್ಜಿ ಸಲ್ಲಿಸುತ್ತೇವೆ ಇನ್ಪುಟ್ ಕ್ರಿಯೆಗಳು ಎಲ್ಲಾ ಆಟಗಾರರಿಗೆ ಗೇಮ್ ರಾಜ್ಯ ಈ ಇನ್‌ಪುಟ್ ಕ್ರಿಯೆಗಳನ್ನು ಸರ್ವರ್‌ನಿಂದ ಸ್ವೀಕರಿಸಿದ ವಿಧಾನ.
  2. ನಾವು ವಿಳಂಬ ಸರದಿಯಿಂದ ಎಲ್ಲವನ್ನೂ ತೆಗೆದುಹಾಕುತ್ತೇವೆ ಇನ್ಪುಟ್ ಕ್ರಿಯೆಗಳು, ಇದು, ಸರ್ವರ್ ಪ್ರಕಾರ, ಈಗಾಗಲೇ ಅನ್ವಯಿಸಲಾಗಿದೆ ಗೇಮ್ ರಾಜ್ಯ.
  3. ಅಳಿಸಿ ಸುಪ್ತ ಸ್ಥಿತಿ ಮತ್ತು ಅದನ್ನು ಮರುಹೊಂದಿಸಿ ಆದ್ದರಿಂದ ಅದು ನಿಖರವಾಗಿ ಒಂದೇ ರೀತಿ ಕಾಣುತ್ತದೆ ಗೇಮ್ ರಾಜ್ಯ.
  4. ನಾವು ವಿಳಂಬ ಸರದಿಯಿಂದ ಎಲ್ಲಾ ಕ್ರಿಯೆಗಳನ್ನು ಅನ್ವಯಿಸುತ್ತೇವೆ ಸುಪ್ತ ಸ್ಥಿತಿ.
  5. ಡೇಟಾವನ್ನು ಆಧರಿಸಿ ಗೇಮ್ ರಾಜ್ಯ и ಸುಪ್ತ ಸ್ಥಿತಿ ನಾವು ಆಟವನ್ನು ಆಟಗಾರನಿಗೆ ನೀಡುತ್ತೇವೆ.

ಇದೆಲ್ಲವೂ ಪ್ರತಿ ಅಳತೆಯಲ್ಲಿ ಪುನರಾವರ್ತನೆಯಾಗುತ್ತದೆ.

ಅತಿ ಕಷ್ಟ? ವಿಶ್ರಾಂತಿ ಪಡೆಯಬೇಡಿ, ಇದೆಲ್ಲವೂ ಅಲ್ಲ. ವಿಶ್ವಾಸಾರ್ಹವಲ್ಲದ ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕಗಳನ್ನು ಸರಿದೂಗಿಸಲು, ನಾವು ಎರಡು ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ರಚಿಸಿದ್ದೇವೆ:

  • ತಪ್ಪಿದ ಉಣ್ಣಿ: ಸರ್ವರ್ ಅದನ್ನು ನಿರ್ಧರಿಸಿದಾಗ ಇನ್ಪುಟ್ ಕ್ರಿಯೆಗಳು ಆಟದ ಬೀಟ್ನಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುತ್ತದೆ, ನಂತರ ಅವರು ಸ್ವೀಕರಿಸದಿದ್ದರೆ ಇನ್ಪುಟ್ ಕ್ರಿಯೆಗಳು ಕೆಲವು ಆಟಗಾರರು (ಉದಾಹರಣೆಗೆ, ಹೆಚ್ಚಿದ ವಿಳಂಬದಿಂದಾಗಿ), ಅವರು ಕಾಯುವುದಿಲ್ಲ, ಆದರೆ ಈ ಕ್ಲೈಂಟ್ಗೆ ತಿಳಿಸುತ್ತಾರೆ “ನಾನು ನಿಮ್ಮದನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಂಡಿಲ್ಲ ಇನ್ಪುಟ್ ಕ್ರಿಯೆಗಳು, ನಾನು ಅವುಗಳನ್ನು ಮುಂದಿನ ಬಾರ್‌ನಲ್ಲಿ ಸೇರಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತೇನೆ." ಒಬ್ಬ ಆಟಗಾರನ ಸಂಪರ್ಕದ (ಅಥವಾ ಕಂಪ್ಯೂಟರ್) ಸಮಸ್ಯೆಗಳಿಂದಾಗಿ, ನಕ್ಷೆ ನವೀಕರಣವು ಎಲ್ಲರಿಗೂ ನಿಧಾನವಾಗದಂತೆ ಇದನ್ನು ಮಾಡಲಾಗುತ್ತದೆ. ಎಂಬುದು ಗಮನಿಸಬೇಕಾದ ಸಂಗತಿ ಇನ್ಪುಟ್ ಕ್ರಿಯೆಗಳು ನಿರ್ಲಕ್ಷಿಸಲಾಗಿಲ್ಲ, ಆದರೆ ಸರಳವಾಗಿ ಪಕ್ಕಕ್ಕೆ ಇರಿಸಿ.
  • ಪೂರ್ಣ ರೌಂಡ್-ಟ್ರಿಪ್ ಲೇಟೆನ್ಸಿ: ಕ್ಲೈಂಟ್ ಮತ್ತು ಸರ್ವರ್ ನಡುವಿನ ರೌಂಡ್-ಟ್ರಿಪ್ ಲೇಟೆನ್ಸಿ ಪ್ರತಿ ಕ್ಲೈಂಟ್‌ಗೆ ಏನೆಂದು ಊಹಿಸಲು ಸರ್ವರ್ ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ಪ್ರತಿ 5 ಸೆಕೆಂಡ್‌ಗಳಿಗೆ, ಇದು ಅಗತ್ಯವಿದ್ದಲ್ಲಿ ಕ್ಲೈಂಟ್‌ನೊಂದಿಗೆ ಹೊಸ ಲೇಟೆನ್ಸಿಯನ್ನು ಮಾತುಕತೆ ಮಾಡುತ್ತದೆ (ಹಿಂದೆ ಸಂಪರ್ಕವು ಹೇಗೆ ವರ್ತಿಸಿದೆ ಎಂಬುದರ ಆಧಾರದ ಮೇಲೆ), ಮತ್ತು ಅದಕ್ಕೆ ಅನುಗುಣವಾಗಿ ರೌಂಡ್-ಟ್ರಿಪ್ ಲೇಟೆನ್ಸಿಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ ಅಥವಾ ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.

ತಮ್ಮದೇ ಆದ ಮೇಲೆ, ಈ ಕಾರ್ಯವಿಧಾನಗಳು ತುಂಬಾ ಸರಳವಾಗಿದೆ, ಆದರೆ ಅವುಗಳನ್ನು ಒಟ್ಟಿಗೆ ಬಳಸಿದಾಗ (ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಸಂಪರ್ಕದ ಸಮಸ್ಯೆಗಳೊಂದಿಗೆ ಸಂಭವಿಸುತ್ತದೆ), ಕೋಡ್ನ ತರ್ಕವನ್ನು ನಿರ್ವಹಿಸಲು ಕಷ್ಟವಾಗುತ್ತದೆ ಮತ್ತು ಬಹಳಷ್ಟು ಅಂಚಿನ ಪ್ರಕರಣಗಳೊಂದಿಗೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಈ ಕಾರ್ಯವಿಧಾನಗಳು ಕಾರ್ಯರೂಪಕ್ಕೆ ಬಂದಾಗ, ಸರ್ವರ್ ಮತ್ತು ವಿಳಂಬ ಕ್ಯೂ ವಿಶೇಷವನ್ನು ಸರಿಯಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕು ಇನ್ಪುಟ್ ಕ್ರಿಯೆ ಹೆಸರಿನಲ್ಲಿ ಸ್ಟಾಪ್ ಮೂವ್ಮೆಂಟ್ ಇನ್ ದಿ ನೆಕ್ಸ್ಟ್ ಟಿಕ್. ಇದಕ್ಕೆ ಧನ್ಯವಾದಗಳು, ಸಂಪರ್ಕದಲ್ಲಿ ಸಮಸ್ಯೆಗಳಿದ್ದರೆ, ಪಾತ್ರವು ತನ್ನದೇ ಆದ ಮೇಲೆ ಓಡುವುದಿಲ್ಲ (ಉದಾಹರಣೆಗೆ, ರೈಲಿನ ಮುಂದೆ).

ಅಸ್ತಿತ್ವದ ಆಯ್ಕೆಯು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ನಾವು ಈಗ ನಿಮಗೆ ವಿವರಿಸಬೇಕಾಗಿದೆ. ಹರಡುವ ವಿಧಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ ಇನ್ಪುಟ್ ಕ್ರಿಯೆ ಘಟಕದ ಆಯ್ಕೆಯ ಸ್ಥಿತಿಯಲ್ಲಿ ಬದಲಾವಣೆಯಾಗಿದೆ. ಆಟಗಾರನು ಯಾವ ಘಟಕದ ಮೇಲೆ ಸುಳಿದಾಡುತ್ತಿದ್ದಾನೆ ಎಂಬುದನ್ನು ಇದು ಎಲ್ಲರಿಗೂ ಹೇಳುತ್ತದೆ. ನೀವು ಊಹಿಸುವಂತೆ, ಇದು ಕ್ಲೈಂಟ್‌ಗಳು ಕಳುಹಿಸುವ ಸಾಮಾನ್ಯ ಇನ್‌ಪುಟ್ ಕ್ರಿಯೆಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ, ಆದ್ದರಿಂದ ಬ್ಯಾಂಡ್‌ವಿಡ್ತ್ ಅನ್ನು ಉಳಿಸಲು, ಸಾಧ್ಯವಾದಷ್ಟು ಕಡಿಮೆ ಜಾಗವನ್ನು ತೆಗೆದುಕೊಳ್ಳಲು ನಾವು ಅದನ್ನು ಆಪ್ಟಿಮೈಸ್ ಮಾಡಿದ್ದೇವೆ. ಇದು ಕಾರ್ಯನಿರ್ವಹಿಸುವ ವಿಧಾನವೆಂದರೆ, ಪ್ರತಿ ಘಟಕವನ್ನು ಆಯ್ಕೆ ಮಾಡಿದಂತೆ, ಸಂಪೂರ್ಣ, ಹೆಚ್ಚಿನ-ನಿಖರ ನಕ್ಷೆಯ ನಿರ್ದೇಶಾಂಕಗಳನ್ನು ಸಂಗ್ರಹಿಸುವ ಬದಲು, ಹಿಂದಿನ ಆಯ್ಕೆಯಿಂದ ಕಡಿಮೆ-ನಿಖರವಾದ ಸಂಬಂಧಿತ ಆಫ್‌ಸೆಟ್ ಅನ್ನು ಆಟವು ಸಂಗ್ರಹಿಸುತ್ತದೆ. ಇದು ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಏಕೆಂದರೆ ಮೌಸ್ ಆಯ್ಕೆಗಳು ಹಿಂದಿನ ಆಯ್ಕೆಗೆ ಬಹಳ ಹತ್ತಿರದಲ್ಲಿವೆ. ಇದು ಎರಡು ಪ್ರಮುಖ ಅವಶ್ಯಕತೆಗಳನ್ನು ಹುಟ್ಟುಹಾಕುತ್ತದೆ: ಇನ್ಪುಟ್ ಕ್ರಿಯೆಗಳು ಅವುಗಳನ್ನು ಎಂದಿಗೂ ಬಿಟ್ಟುಬಿಡಬಾರದು ಮತ್ತು ಸರಿಯಾದ ಕ್ರಮದಲ್ಲಿ ಪೂರ್ಣಗೊಳಿಸಬೇಕು. ಈ ಅವಶ್ಯಕತೆಗಳನ್ನು ಪೂರೈಸಲಾಗಿದೆ ಗೇಮ್ ರಾಜ್ಯ. ಆದರೆ ಕಾರ್ಯದಿಂದ ಸುಪ್ತ ಸ್ಥಿತಿ ಆಟಗಾರನಿಗೆ "ಸಾಕಷ್ಟು ಚೆನ್ನಾಗಿ ಕಾಣುತ್ತಿದೆ", ಅವರು ವಿಳಂಬ ಸ್ಥಿತಿಯಲ್ಲಿ ತೃಪ್ತರಾಗುವುದಿಲ್ಲ. ಸುಪ್ತ ಸ್ಥಿತಿ ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳುವುದಿಲ್ಲ ಅನೇಕ ಅಂಚಿನ ಪ್ರಕರಣಗಳು, ಗಡಿಯಾರದ ಚಕ್ರಗಳನ್ನು ಬಿಟ್ಟುಬಿಡುವುದು ಮತ್ತು ರೌಂಡ್-ಟ್ರಿಪ್ ಟ್ರಾನ್ಸ್ಮಿಷನ್ ವಿಳಂಬಗಳನ್ನು ಬದಲಾಯಿಸುವುದರೊಂದಿಗೆ ಸಂಬಂಧಿಸಿದೆ.

ಇದು ಎಲ್ಲಿಗೆ ಹೋಗುತ್ತಿದೆ ಎಂದು ನೀವು ಈಗಾಗಲೇ ಊಹಿಸಬಹುದು. ನಾವು ಅಂತಿಮವಾಗಿ ಮೆಗಾಬಂಡಲ್ ಸಮಸ್ಯೆಯ ಕಾರಣಗಳನ್ನು ನೋಡಲು ಪ್ರಾರಂಭಿಸುತ್ತಿದ್ದೇವೆ. ಸಮಸ್ಯೆಯ ಮೂಲವೆಂದರೆ ಘಟಕದ ಆಯ್ಕೆಯ ತರ್ಕವು ಅವಲಂಬಿಸಿದೆ ಸುಪ್ತ ಸ್ಥಿತಿ, ಮತ್ತು ಈ ರಾಜ್ಯವು ಯಾವಾಗಲೂ ಸರಿಯಾದ ಮಾಹಿತಿಯನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ. ಆದ್ದರಿಂದ, ಮೆಗಾಪ್ಯಾಕೆಟ್ ಅನ್ನು ಈ ರೀತಿಯಾಗಿ ಉತ್ಪಾದಿಸಲಾಗುತ್ತದೆ:

  1. ಪ್ಲೇಯರ್ ಸಂಪರ್ಕ ಸಮಸ್ಯೆಗಳನ್ನು ಹೊಂದಿದೆ.
  2. ಗಡಿಯಾರದ ಚಕ್ರಗಳನ್ನು ಬಿಟ್ಟುಬಿಡುವ ಮತ್ತು ರೌಂಡ್-ಟ್ರಿಪ್ ಪ್ರಸರಣದ ವಿಳಂಬವನ್ನು ನಿಯಂತ್ರಿಸುವ ಕಾರ್ಯವಿಧಾನಗಳು ಕಾರ್ಯರೂಪಕ್ಕೆ ಬರುತ್ತವೆ.
  3. ವಿಳಂಬ ಸ್ಥಿತಿಯ ಸರತಿಯು ಈ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಗಣನೆಗೆ ತೆಗೆದುಕೊಳ್ಳುವುದಿಲ್ಲ. ಇದು ಕೆಲವು ಕ್ರಿಯೆಗಳನ್ನು ಅಕಾಲಿಕವಾಗಿ ತೆಗೆದುಹಾಕಲು ಅಥವಾ ತಪ್ಪಾದ ಕ್ರಮದಲ್ಲಿ ನಿರ್ವಹಿಸಲು ಕಾರಣವಾಗುತ್ತದೆ, ಇದು ತಪ್ಪಾಗಿದೆ ಸುಪ್ತ ಸ್ಥಿತಿ.
  4. ಆಟಗಾರನು ಸಂಪರ್ಕ ಸಮಸ್ಯೆಯನ್ನು ಹೊಂದಿದ್ದಾನೆ ಮತ್ತು ಸರ್ವರ್‌ನೊಂದಿಗೆ ಹಿಡಿಯಲು, 400 ಚಕ್ರಗಳನ್ನು ಅನುಕರಿಸುತ್ತದೆ.
  5. ಪ್ರತಿ ಟಿಕ್‌ನಲ್ಲಿ, ಘಟಕದ ಆಯ್ಕೆಯನ್ನು ಬದಲಾಯಿಸುವ ಹೊಸ ಕ್ರಿಯೆಯನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಸರ್ವರ್‌ಗೆ ಕಳುಹಿಸಲು ಸಿದ್ಧಪಡಿಸಲಾಗುತ್ತದೆ.
  6. ಕ್ಲೈಂಟ್ ಸರ್ವರ್‌ಗೆ 400+ ಘಟಕದ ಆಯ್ಕೆ ಬದಲಾವಣೆಗಳ ಮೆಗಾ-ಬ್ಯಾಚ್ ಅನ್ನು ಕಳುಹಿಸುತ್ತದೆ (ಮತ್ತು ಇತರ ಕ್ರಿಯೆಗಳೊಂದಿಗೆ: ಶೂಟಿಂಗ್ ಸ್ಟೇಟ್ಸ್, ವಾಕಿಂಗ್ ಸ್ಟೇಟ್ಸ್, ಇತ್ಯಾದಿ. ಈ ಸಮಸ್ಯೆಯಿಂದ ಬಳಲುತ್ತಿದೆ).
  7. ಸರ್ವರ್ 400 ಇನ್‌ಪುಟ್ ಕ್ರಿಯೆಗಳನ್ನು ಪಡೆಯುತ್ತದೆ. ಯಾವುದೇ ಇನ್‌ಪುಟ್ ಕ್ರಿಯೆಗಳನ್ನು ಸ್ಕಿಪ್ ಮಾಡಲು ಅನುಮತಿಸದ ಕಾರಣ, ಅದು ಎಲ್ಲಾ ಕ್ಲೈಂಟ್‌ಗಳಿಗೆ ಆ ಕ್ರಿಯೆಗಳನ್ನು ಮಾಡಲು ಆದೇಶಿಸುತ್ತದೆ ಮತ್ತು ಅವುಗಳನ್ನು ನೆಟ್‌ವರ್ಕ್‌ನಾದ್ಯಂತ ಕಳುಹಿಸುತ್ತದೆ.

ವಿಪರ್ಯಾಸವೆಂದರೆ ಬ್ಯಾಂಡ್‌ವಿಡ್ತ್ ಅನ್ನು ಉಳಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಕಾರ್ಯವಿಧಾನವು ಬೃಹತ್ ನೆಟ್‌ವರ್ಕ್ ಪ್ಯಾಕೆಟ್‌ಗಳನ್ನು ರಚಿಸುವಲ್ಲಿ ಕೊನೆಗೊಂಡಿತು.

ನವೀಕರಣ ಮತ್ತು ಬ್ಯಾಕ್‌ಲಾಗ್ ಕ್ಯೂ ಬೆಂಬಲದ ಎಲ್ಲಾ ಅಂಚಿನ ಪ್ರಕರಣಗಳನ್ನು ಸರಿಪಡಿಸುವ ಮೂಲಕ ನಾವು ಈ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಿದ್ದೇವೆ. ಇದು ಸ್ವಲ್ಪ ಸಮಯ ತೆಗೆದುಕೊಂಡರೂ, ಕೊನೆಯಲ್ಲಿ ತ್ವರಿತ ಹ್ಯಾಕ್‌ಗಳನ್ನು ಅವಲಂಬಿಸುವ ಬದಲು ಅದನ್ನು ಸರಿಯಾಗಿ ಪಡೆಯುವುದು ಯೋಗ್ಯವಾಗಿದೆ.

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ