WebRTC ನಲ್ಲಿ ಓಪನ್ ಸೋರ್ಸ್ ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್: p2p, ಮಲ್ಟಿಪ್ಲೇಯರ್, ಶೂನ್ಯ ಲೇಟೆನ್ಸಿ

WebRTC ನಲ್ಲಿ ಓಪನ್ ಸೋರ್ಸ್ ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್: p2p, ಮಲ್ಟಿಪ್ಲೇಯರ್, ಶೂನ್ಯ ಲೇಟೆನ್ಸಿ
ಸಾಫ್ಟ್‌ವೇರ್ ಸೇವೆಯಾಗಿ, ಮೂಲಸೌಕರ್ಯವನ್ನು ಸೇವೆಯಾಗಿ, ವೇದಿಕೆಯಾಗಿ ಸೇವೆಯಾಗಿ, ಸಂವಹನ ವೇದಿಕೆಯನ್ನು ಸೇವೆಯಾಗಿ, ವೀಡಿಯೊ ಕಾನ್ಫರೆನ್ಸಿಂಗ್ ಸೇವೆಯಾಗಿ, ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್ ಸೇವೆಯಾಗಿ ಏನು? ಗೂಗಲ್ ಇತ್ತೀಚೆಗೆ ಪ್ರಾರಂಭಿಸಿರುವ ಸ್ಟೇಡಿಯಾದಂತಹ ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್ (ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್) ರಚಿಸಲು ಈಗಾಗಲೇ ಹಲವಾರು ಪ್ರಯತ್ನಗಳು ನಡೆದಿವೆ. ಸ್ಟೇಡಿಯಾ WebRTC ಗೆ ಹೊಸದಲ್ಲ, ಆದರೆ ಇತರರು ಅದೇ ರೀತಿಯಲ್ಲಿ WebRTC ಅನ್ನು ಬಳಸಬಹುದೇ?

Thanh Nguyen ತನ್ನ ಓಪನ್ ಸೋರ್ಸ್ ಪ್ರಾಜೆಕ್ಟ್ CloudRetro ನಲ್ಲಿ ಈ ಅವಕಾಶವನ್ನು ಪರೀಕ್ಷಿಸಲು ನಿರ್ಧರಿಸಿದರು. CloudRetro Pion ಅನ್ನು ಆಧರಿಸಿದೆ, ಜನಪ್ರಿಯ Go ಆಧಾರಿತ WebRTC ಲೈಬ್ರರಿ (ಧನ್ಯವಾದಗಳು ತೋರಿಸಲಾಗಿದೆ ಈ ಲೇಖನವನ್ನು ಸಿದ್ಧಪಡಿಸುವಲ್ಲಿ ಅವರ ಸಹಾಯಕ್ಕಾಗಿ ಪಿಯಾನ್ ಅಭಿವೃದ್ಧಿ ತಂಡದಿಂದ). ಈ ಲೇಖನದಲ್ಲಿ, ಥಾನ್ಹ್ ತನ್ನ ಯೋಜನೆಯ ವಾಸ್ತುಶಿಲ್ಪದ ಒಂದು ಅವಲೋಕನವನ್ನು ಒದಗಿಸುತ್ತಾನೆ ಮತ್ತು ಅವನು ಕಲಿತ ಉಪಯುಕ್ತ ವಿಷಯಗಳ ಬಗ್ಗೆ ಮತ್ತು ಅವನ ಕೆಲಸದ ಸಮಯದಲ್ಲಿ ಅವನು ಎದುರಿಸಿದ ಸವಾಲುಗಳ ಬಗ್ಗೆ ಮಾತನಾಡುತ್ತಾನೆ.

ಪ್ರವೇಶ

ಕಳೆದ ವರ್ಷ, ಗೂಗಲ್ ಸ್ಟೇಡಿಯಾವನ್ನು ಘೋಷಿಸಿದಾಗ, ಅದು ನನ್ನ ಮನಸ್ಸನ್ನು ಸ್ಫೋಟಿಸಿತು. ಕಲ್ಪನೆಯು ತುಂಬಾ ವಿಶಿಷ್ಟವಾಗಿದೆ ಮತ್ತು ನವೀನವಾಗಿದೆ, ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ತಂತ್ರಜ್ಞಾನದಿಂದ ಇದು ಹೇಗೆ ಸಾಧ್ಯ ಎಂದು ನಾನು ನಿರಂತರವಾಗಿ ಆಶ್ಚರ್ಯ ಪಡುತ್ತೇನೆ. ಈ ವಿಷಯವನ್ನು ಚೆನ್ನಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ಬಯಕೆಯು ಓಪನ್ ಸೋರ್ಸ್ ಕ್ಲೌಡ್ ಗೇಮ್‌ನ ನನ್ನ ಸ್ವಂತ ಆವೃತ್ತಿಯನ್ನು ರಚಿಸಲು ನನ್ನನ್ನು ಪ್ರೇರೇಪಿಸಿತು. ಫಲಿತಾಂಶವು ಸರಳವಾಗಿ ಅದ್ಭುತವಾಗಿದೆ. ಕೆಳಗೆ ನಾನು ನನ್ನ ವರ್ಷದಲ್ಲಿ ಕೆಲಸ ಮಾಡುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಬಯಸುತ್ತೇನೆ ಯೋಜನೆ.

TLDR: ಮುಖ್ಯಾಂಶಗಳೊಂದಿಗೆ ಕಿರು ಸ್ಲೈಡ್ ಆವೃತ್ತಿ

ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್ ಏಕೆ ಭವಿಷ್ಯವಾಗಿದೆ

ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್ ಶೀಘ್ರದಲ್ಲೇ ಗೇಮಿಂಗ್ ಮಾತ್ರವಲ್ಲದೆ ಕಂಪ್ಯೂಟರ್ ವಿಜ್ಞಾನದ ಇತರ ಕ್ಷೇತ್ರಗಳ ಮುಂದಿನ ಪೀಳಿಗೆಯಾಗಲಿದೆ ಎಂದು ನಾನು ನಂಬುತ್ತೇನೆ. ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್ ಕ್ಲೈಂಟ್/ಸರ್ವರ್ ಮಾದರಿಯ ಪರಾಕಾಷ್ಠೆಯಾಗಿದೆ. ಈ ಮಾದರಿಯು ಬ್ಯಾಕೆಂಡ್ ನಿರ್ವಹಣೆಯನ್ನು ಗರಿಷ್ಠಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ರಿಮೋಟ್ ಸರ್ವರ್‌ನಲ್ಲಿ ಗೇಮ್ ಲಾಜಿಕ್ ಅನ್ನು ಹೋಸ್ಟ್ ಮಾಡುವ ಮೂಲಕ ಮತ್ತು ಕ್ಲೈಂಟ್‌ಗೆ ಚಿತ್ರಗಳು/ಆಡಿಯೊವನ್ನು ಸ್ಟ್ರೀಮಿಂಗ್ ಮಾಡುವ ಮೂಲಕ ಮುಂಭಾಗದ ಕೆಲಸವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ಸರ್ವರ್ ಭಾರೀ ಸಂಸ್ಕರಣೆಯನ್ನು ಮಾಡುತ್ತದೆ ಆದ್ದರಿಂದ ಕ್ಲೈಂಟ್ ಇನ್ನು ಮುಂದೆ ಹಾರ್ಡ್‌ವೇರ್ ಮಿತಿಗಳ ಕರುಣೆಯಲ್ಲಿರುವುದಿಲ್ಲ.

Google Stadia ಮೂಲಭೂತವಾಗಿ ನಿಮಗೆ ಆಡಲು ಅವಕಾಶ ನೀಡುತ್ತದೆ AAA ಆಟಗಳು YouTube ನಂತಹ ಇಂಟರ್‌ಫೇಸ್‌ನಲ್ಲಿ (ಅಂದರೆ ಹೈ-ಎಂಡ್ ಬ್ಲಾಕ್‌ಬಸ್ಟರ್ ಆಟಗಳು). ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಅಥವಾ 2D/3D ಗ್ರಾಫಿಕ್ ವಿನ್ಯಾಸ, ಇತ್ಯಾದಿಗಳಂತಹ ಇತರ ಭಾರೀ ಆಫ್‌ಲೈನ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಅದೇ ವಿಧಾನವನ್ನು ಅನ್ವಯಿಸಬಹುದು. ಆದ್ದರಿಂದ ನಾವು ಅವುಗಳನ್ನು ಬಹು ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ಗಳಾದ್ಯಂತ ಕಡಿಮೆ-ಸ್ಪೆಕ್ ಸಾಧನಗಳಲ್ಲಿ ಸ್ಥಿರವಾಗಿ ರನ್ ಮಾಡಬಹುದು.

WebRTC ನಲ್ಲಿ ಓಪನ್ ಸೋರ್ಸ್ ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್: p2p, ಮಲ್ಟಿಪ್ಲೇಯರ್, ಶೂನ್ಯ ಲೇಟೆನ್ಸಿ
ಈ ತಂತ್ರಜ್ಞಾನದ ಭವಿಷ್ಯ: ಮೈಕ್ರೋಸಾಫ್ಟ್ ವಿಂಡೋಸ್ 10 ಕ್ರೋಮ್ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ರನ್ ಆಗಿದ್ದರೆ ಊಹಿಸಿ?

ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್ ತಾಂತ್ರಿಕವಾಗಿ ಸವಾಲಾಗಿದೆ

ನಿರಂತರ, ವೇಗದ ಬಳಕೆದಾರರ ಪ್ರತಿಕ್ರಿಯೆ ಅಗತ್ಯವಿರುವ ಅಪರೂಪದ ಪ್ರದೇಶಗಳಲ್ಲಿ ಗೇಮಿಂಗ್ ಒಂದಾಗಿದೆ. ಕೆಲವೊಮ್ಮೆ ನಾವು ಪುಟವನ್ನು ಕ್ಲಿಕ್ ಮಾಡುವಾಗ 2 ಸೆಕೆಂಡುಗಳ ವಿಳಂಬವನ್ನು ಎದುರಿಸಿದರೆ, ಇದು ಸ್ವೀಕಾರಾರ್ಹವಾಗಿದೆ. ಲೈವ್ ವೀಡಿಯೋ ಸ್ಟ್ರೀಮ್‌ಗಳು ಕೆಲವು ಸೆಕೆಂಡುಗಳಷ್ಟು ವಿಳಂಬವಾಗುತ್ತವೆ, ಆದರೆ ಇನ್ನೂ ಸಮಂಜಸವಾದ ಉಪಯುಕ್ತತೆಯನ್ನು ನೀಡುತ್ತವೆ. ಆದಾಗ್ಯೂ, ಆಟವು ಆಗಾಗ್ಗೆ 500ms ಗಳಷ್ಟು ವಿಳಂಬವಾಗಿದ್ದರೆ, ಅದು ಸರಳವಾಗಿ ಆಡಲಾಗುವುದಿಲ್ಲ. ಅತ್ಯಂತ ಕಡಿಮೆ ಸುಪ್ತತೆಯನ್ನು ಸಾಧಿಸುವುದು ನಮ್ಮ ಗುರಿಯಾಗಿದೆ ಆದ್ದರಿಂದ ಇನ್‌ಪುಟ್ ಮತ್ತು ಮಾಧ್ಯಮದ ನಡುವಿನ ಅಂತರವು ಸಾಧ್ಯವಾದಷ್ಟು ಚಿಕ್ಕದಾಗಿದೆ. ಆದ್ದರಿಂದ, ವೀಡಿಯೊ ಸ್ಟ್ರೀಮಿಂಗ್‌ಗೆ ಸಾಂಪ್ರದಾಯಿಕ ವಿಧಾನವು ಇಲ್ಲಿ ಅನ್ವಯಿಸುವುದಿಲ್ಲ.

WebRTC ನಲ್ಲಿ ಓಪನ್ ಸೋರ್ಸ್ ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್: p2p, ಮಲ್ಟಿಪ್ಲೇಯರ್, ಶೂನ್ಯ ಲೇಟೆನ್ಸಿ
ಸಾಮಾನ್ಯ ಮೇಘ ಆಟದ ಟೆಂಪ್ಲೇಟು

ಓಪನ್ ಸೋರ್ಸ್ ಪ್ರಾಜೆಕ್ಟ್ CloudRetro

ಅಂತಹ ಬಿಗಿಯಾದ ನೆಟ್‌ವರ್ಕ್ ನಿರ್ಬಂಧಗಳೊಂದಿಗೆ ಇದೆಲ್ಲವೂ ಸಾಧ್ಯವೇ ಎಂದು ನೋಡಲು ನಾನು ಕ್ಲೌಡ್ ಆಟದ ಪರೀಕ್ಷಾ ಮಾದರಿಯನ್ನು ರಚಿಸಲು ನಿರ್ಧರಿಸಿದೆ. ಪರಿಕಲ್ಪನೆಯ ಪುರಾವೆಗಾಗಿ ನಾನು ಗೋಲಾಂಗ್ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಿದ್ದೇನೆ ಏಕೆಂದರೆ ಅದು ನನಗೆ ಹೆಚ್ಚು ಪರಿಚಿತವಾಗಿರುವ ಭಾಷೆಯಾಗಿದೆ ಮತ್ತು ನಾನು ನಂತರ ಕಂಡುಹಿಡಿದಂತೆ ಇತರ ಹಲವು ಕಾರಣಗಳಿಗಾಗಿ ಈ ಅನುಷ್ಠಾನಕ್ಕೆ ಸೂಕ್ತವಾಗಿತ್ತು. ಗೋ ಸರಳವಾಗಿದೆ ಮತ್ತು ಬೇಗನೆ ಅಭಿವೃದ್ಧಿ ಹೊಂದುತ್ತದೆ; ಮಲ್ಟಿಥ್ರೆಡಿಂಗ್ ಅನ್ನು ನಿರ್ವಹಿಸಲು Go ನಲ್ಲಿನ ಚಾನಲ್‌ಗಳು ಉತ್ತಮವಾಗಿವೆ.

ಯೋಜನೆಯು CloudRetro.io ರೆಟ್ರೊ ಗೇಮಿಂಗ್‌ಗಾಗಿ ಓಪನ್ ಸೋರ್ಸ್ ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್ ಸೇವೆಯಾಗಿದೆ. ಸಾಂಪ್ರದಾಯಿಕ ರೆಟ್ರೊ ಆಟಗಳಿಗೆ ಅತ್ಯಂತ ಆರಾಮದಾಯಕ ಗೇಮಿಂಗ್ ಅನುಭವವನ್ನು ತರುವುದು ಮತ್ತು ಮಲ್ಟಿಪ್ಲೇಯರ್ ಅನ್ನು ಸೇರಿಸುವುದು ಯೋಜನೆಯ ಗುರಿಯಾಗಿದೆ.
ಯೋಜನೆಯ ಕುರಿತು ನೀವು ಇಲ್ಲಿ ಇನ್ನಷ್ಟು ತಿಳಿದುಕೊಳ್ಳಬಹುದು: https://github.com/giongto35/cloud-game.

CloudRetro ಕಾರ್ಯನಿರ್ವಹಣೆ

ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್‌ನ ಶಕ್ತಿಯನ್ನು ಪ್ರದರ್ಶಿಸಲು CloudRetro ರೆಟ್ರೊ ಆಟಗಳನ್ನು ಬಳಸುತ್ತದೆ. ಇದು ನಿಮಗೆ ಅನೇಕ ಅನನ್ಯ ಗೇಮಿಂಗ್ ಅನುಭವಗಳನ್ನು ಪಡೆಯಲು ಅನುಮತಿಸುತ್ತದೆ.

  • ಆಟದ ಪೋರ್ಟಬಿಲಿಟಿ
    • ಪುಟವನ್ನು ತೆರೆಯುವಾಗ ತ್ವರಿತ ಪ್ಲೇಬ್ಯಾಕ್; ಯಾವುದೇ ಡೌನ್ಲೋಡ್ ಅಥವಾ ಅನುಸ್ಥಾಪನೆಯ ಅಗತ್ಯವಿಲ್ಲ
    • ಮೊಬೈಲ್ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಅದನ್ನು ಚಲಾಯಿಸಲು ಯಾವುದೇ ಸಾಫ್ಟ್‌ವೇರ್ ಅಗತ್ಯವಿಲ್ಲ

  • ಆಟದ ಸೆಷನ್‌ಗಳನ್ನು ಬಹು ಸಾಧನಗಳಲ್ಲಿ ಹಂಚಿಕೊಳ್ಳಬಹುದು ಮತ್ತು ನೀವು ಮುಂದಿನ ಬಾರಿ ಲಾಗ್ ಇನ್ ಮಾಡಲು ಕ್ಲೌಡ್‌ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಬಹುದು
  • ಆಟವನ್ನು ಸ್ಟ್ರೀಮ್ ಮಾಡಬಹುದು ಅಥವಾ ಹಲವಾರು ಬಳಕೆದಾರರು ಏಕಕಾಲದಲ್ಲಿ ಆಡಬಹುದು:
    • TwitchPlayPokemon ನಂತಹ ಕ್ರೌಡ್‌ಪ್ಲೇ, ಹೆಚ್ಚು ಅಡ್ಡ-ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಮತ್ತು ಹೆಚ್ಚು ನೈಜ-ಸಮಯ
    • ಆಫ್‌ಲೈನ್ ಆಟಗಳು ಆನ್‌ಲೈನ್. ಅನೇಕ ಬಳಕೆದಾರರು ನೆಟ್ವರ್ಕ್ ಅನ್ನು ಹೊಂದಿಸದೆಯೇ ಪ್ಲೇ ಮಾಡಬಹುದು. ಸಮುರಾಯ್ ಶೋಡೌನ್ ಅನ್ನು ಈಗ 2 ಆಟಗಾರರು ಕ್ಲೌಡ್‌ರೆಟ್ರೋ ನೆಟ್‌ವರ್ಕ್ ಮೂಲಕ ಆಡಬಹುದು

    WebRTC ನಲ್ಲಿ ಓಪನ್ ಸೋರ್ಸ್ ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್: p2p, ಮಲ್ಟಿಪ್ಲೇಯರ್, ಶೂನ್ಯ ಲೇಟೆನ್ಸಿ
    ವಿವಿಧ ಸಾಧನಗಳಲ್ಲಿ ಆನ್‌ಲೈನ್ ಮಲ್ಟಿಪ್ಲೇಯರ್ ಆಟದ ಡೆಮೊ ಆವೃತ್ತಿ

    ಮೂಲಸೌಕರ್ಯ

    ಅವಶ್ಯಕತೆಗಳು ಮತ್ತು ತಂತ್ರಜ್ಞಾನದ ಸ್ಟಾಕ್

    ಯೋಜನೆಯನ್ನು ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು ನಾನು ಹೊಂದಿಸಿರುವ ಅವಶ್ಯಕತೆಗಳ ಪಟ್ಟಿಯನ್ನು ಕೆಳಗೆ ನೀಡಲಾಗಿದೆ.

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

    2. ಕಡಿಮೆ ಸುಪ್ತ ಮಾಧ್ಯಮ ಸ್ಟ್ರೀಮ್
    Stadia ಕುರಿತು ಓದುವಾಗ, ಕೆಲವು ಲೇಖನಗಳಲ್ಲಿ WebRTC ಉಲ್ಲೇಖಿಸಿರುವುದನ್ನು ನಾನು ಆಗಾಗ್ಗೆ ನೋಡುತ್ತೇನೆ. WebRTC ಅತ್ಯುತ್ತಮ ತಂತ್ರಜ್ಞಾನವಾಗಿದೆ ಮತ್ತು ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್‌ನಲ್ಲಿ ಬಳಸಲು ಪರಿಪೂರ್ಣವಾಗಿದೆ ಎಂದು ನಾನು ಅರಿತುಕೊಂಡೆ. WebRTC ಸರಳ API ಮೂಲಕ ನೈಜ-ಸಮಯದ ಸಂವಹನದೊಂದಿಗೆ ವೆಬ್ ಬ್ರೌಸರ್‌ಗಳು ಮತ್ತು ಮೊಬೈಲ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಒದಗಿಸುವ ಯೋಜನೆಯಾಗಿದೆ. ಇದು ಪೀರ್-ಟು-ಪೀರ್ ಸಂಪರ್ಕವನ್ನು ಒದಗಿಸುತ್ತದೆ, ಮಾಧ್ಯಮಕ್ಕಾಗಿ ಆಪ್ಟಿಮೈಸ್ ಮಾಡಲಾಗಿದೆ ಮತ್ತು VP8 ಮತ್ತು H264 ನಂತಹ ಪ್ರಮಾಣಿತ ಕೊಡೆಕ್‌ಗಳನ್ನು ಅಂತರ್ನಿರ್ಮಿತವಾಗಿದೆ.

    ಉತ್ತಮ ಗುಣಮಟ್ಟದ ಗ್ರಾಫಿಕ್ಸ್ ಅನ್ನು ನಿರ್ವಹಿಸುವುದಕ್ಕಿಂತ ಉತ್ತಮವಾದ ಬಳಕೆದಾರ ಅನುಭವವನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ನಾನು ಆದ್ಯತೆ ನೀಡಿದ್ದೇನೆ. ಅಲ್ಗಾರಿದಮ್ನಲ್ಲಿ ಕೆಲವು ನಷ್ಟಗಳು ಸ್ವೀಕಾರಾರ್ಹವಾಗಿವೆ. Google Stadia ಸರ್ವರ್‌ನಲ್ಲಿ ಚಿತ್ರದ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡುವ ಹೆಚ್ಚುವರಿ ಹಂತವನ್ನು ಹೊಂದಿದೆ ಮತ್ತು ಗೆಳೆಯರಿಗೆ ರವಾನೆಯಾಗುವ ಮೊದಲು ಫ್ರೇಮ್‌ಗಳನ್ನು ಉನ್ನತ ಗುಣಮಟ್ಟಕ್ಕೆ ಹೆಚ್ಚಿಸಲಾಗುತ್ತದೆ.

    3. ಭೌಗೋಳಿಕ ರೂಟಿಂಗ್‌ನೊಂದಿಗೆ ವಿತರಿಸಲಾದ ಮೂಲಸೌಕರ್ಯ
    ಸಂಕೋಚನ ಅಲ್ಗಾರಿದಮ್ ಮತ್ತು ಕೋಡ್ ಎಷ್ಟು ಆಪ್ಟಿಮೈಸ್ ಮಾಡಿದ್ದರೂ, ನೆಟ್‌ವರ್ಕ್ ಇನ್ನೂ ನಿರ್ಧರಿಸುವ ಅಂಶವಾಗಿದೆ, ಅದು ಸುಪ್ತತೆಗೆ ಹೆಚ್ಚಿನ ಕೊಡುಗೆ ನೀಡುತ್ತದೆ. ರೌಂಡ್-ಟ್ರಿಪ್ ಸಮಯವನ್ನು (RTT) ಕಡಿಮೆ ಮಾಡಲು ಬಳಕೆದಾರರಿಗೆ ಹತ್ತಿರವಿರುವ ಸರ್ವರ್ ಅನ್ನು ಜೋಡಿಸಲು ವಾಸ್ತುಶಿಲ್ಪವು ಯಾಂತ್ರಿಕ ವ್ಯವಸ್ಥೆಯನ್ನು ಹೊಂದಿರಬೇಕು. ವಾಸ್ತುಶಿಲ್ಪವು 1 ಸಂಯೋಜಕವನ್ನು ಹೊಂದಿರಬೇಕು ಮತ್ತು ಪ್ರಪಂಚದಾದ್ಯಂತ ವಿತರಿಸಲಾದ ಹಲವಾರು ಸ್ಟ್ರೀಮಿಂಗ್ ಸರ್ವರ್‌ಗಳನ್ನು ಹೊಂದಿರಬೇಕು: US ವೆಸ್ಟ್, US ಪೂರ್ವ, ಯುರೋಪ್, ಸಿಂಗಾಪುರ್, ಚೀನಾ. ಎಲ್ಲಾ ಸ್ಟ್ರೀಮಿಂಗ್ ಸರ್ವರ್‌ಗಳನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಪ್ರತ್ಯೇಕಿಸಬೇಕು. ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸರ್ವರ್ ಸೇರಿದಾಗ ಅಥವಾ ತೊರೆದಾಗ ಸಿಸ್ಟಮ್ ತನ್ನ ವಿತರಣೆಯನ್ನು ಸರಿಹೊಂದಿಸಬಹುದು. ಹೀಗಾಗಿ, ಹೆಚ್ಚಿನ ದಟ್ಟಣೆಯೊಂದಿಗೆ, ಹೆಚ್ಚುವರಿ ಸರ್ವರ್‌ಗಳನ್ನು ಸೇರಿಸುವುದರಿಂದ ಸಮತಲ ಸ್ಕೇಲಿಂಗ್ ಅನ್ನು ಅನುಮತಿಸುತ್ತದೆ.

    4. ಬ್ರೌಸರ್ ಹೊಂದಾಣಿಕೆ
    ಬಳಕೆದಾರರಿಂದ ಕನಿಷ್ಠ ಅಗತ್ಯವಿರುವಾಗ ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್ ಅತ್ಯುತ್ತಮವಾಗಿರುತ್ತದೆ. ಇದರರ್ಥ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಚಲಾಯಿಸಲು ಸಾಧ್ಯವಿದೆ. ಗೇಮಿಂಗ್ ಅನುಭವವನ್ನು ಬಳಕೆದಾರರಿಗೆ ಸಾಧ್ಯವಾದಷ್ಟು ಆರಾಮದಾಯಕವಾಗಿಸಲು ಬ್ರೌಸರ್‌ಗಳು ಸಹಾಯ ಮಾಡುತ್ತವೆ, ಸಾಫ್ಟ್‌ವೇರ್ ಮತ್ತು ಹಾರ್ಡ್‌ವೇರ್ ಅನ್ನು ಸ್ಥಾಪಿಸುವುದರಿಂದ ಅವರನ್ನು ಉಳಿಸುತ್ತದೆ. ಮೊಬೈಲ್ ಮತ್ತು ಡೆಸ್ಕ್‌ಟಾಪ್ ಆವೃತ್ತಿಗಳ ನಡುವೆ ಕ್ರಾಸ್-ಪ್ಲಾಟ್‌ಫಾರ್ಮ್ ಕಾರ್ಯವನ್ನು ಒದಗಿಸಲು ಬ್ರೌಸರ್‌ಗಳು ಸಹಾಯ ಮಾಡುತ್ತವೆ. ಅದೃಷ್ಟವಶಾತ್, WebRTC ವಿವಿಧ ಬ್ರೌಸರ್‌ಗಳಲ್ಲಿ ಉತ್ತಮವಾಗಿ ಬೆಂಬಲಿತವಾಗಿದೆ.

    5. ಆಟದ ಇಂಟರ್ಫೇಸ್ ಮತ್ತು ಸೇವೆಯ ಸ್ಪಷ್ಟ ಪ್ರತ್ಯೇಕತೆ
    ನಾನು ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್ ಸೇವೆಯನ್ನು ವೇದಿಕೆಯಾಗಿ ವೀಕ್ಷಿಸುತ್ತೇನೆ. ಪ್ರತಿಯೊಬ್ಬರೂ ವೇದಿಕೆಗೆ ಏನನ್ನಾದರೂ ಸಂಪರ್ಕಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. ಈಗ ನಾನು ಸಂಯೋಜಿಸಿದ್ದೇನೆ ಲಿಬ್ರೆರೊ ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್ ಸೇವೆಯೊಂದಿಗೆ ಏಕೆಂದರೆ LibRetro SNES, GBA, PS ನಂತಹ ರೆಟ್ರೊ ಆಟಗಳಿಗೆ ಸುಂದರವಾದ ಆಟದ ಎಮ್ಯುಲೇಟರ್ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ನೀಡುತ್ತದೆ.

    6. ಮಲ್ಟಿಪ್ಲೇಯರ್, ಕ್ರೌಡ್ ಪ್ಲೇ ಮತ್ತು ಆಟದೊಂದಿಗೆ ಬಾಹ್ಯ ಲಿಂಕ್ (ಡೀಪ್-ಲಿಂಕ್) ಗಾಗಿ ಕೊಠಡಿಗಳು
    CloudRetro ರೆಟ್ರೊ ಆಟಗಳಿಗಾಗಿ ಕ್ರೌಡ್‌ಪ್ಲೇ ಮತ್ತು ಆನ್‌ಲೈನ್ ಮಲ್ಟಿಪ್ಲೇಯರ್‌ನಂತಹ ಅನೇಕ ಹೊಸ ಗೇಮ್‌ಪ್ಲೇಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ಹಲವಾರು ಬಳಕೆದಾರರು ವಿಭಿನ್ನ ಕಂಪ್ಯೂಟರ್‌ಗಳಲ್ಲಿ ಒಂದೇ ಡೀಪ್-ಲಿಂಕ್ ಅನ್ನು ತೆರೆದರೆ, ಅವರು ಅದೇ ಚಾಲನೆಯಲ್ಲಿರುವ ಆಟವನ್ನು ನೋಡುತ್ತಾರೆ ಮತ್ತು ಅದನ್ನು ಸೇರಲು ಸಹ ಸಾಧ್ಯವಾಗುತ್ತದೆ.

    ಇದಲ್ಲದೆ, ಆಟದ ಸ್ಥಿತಿಗಳನ್ನು ಕ್ಲೌಡ್ ಸಂಗ್ರಹಣೆಯಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ. ಇದು ಯಾವುದೇ ಇತರ ಸಾಧನದಲ್ಲಿ ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಪ್ಲೇ ಮಾಡುವುದನ್ನು ಮುಂದುವರಿಸಲು ಬಳಕೆದಾರರನ್ನು ಅನುಮತಿಸುತ್ತದೆ.

    7. ಸಮತಲ ಸ್ಕೇಲಿಂಗ್
    ಇಂದಿನ ದಿನಗಳಲ್ಲಿ ಯಾವುದೇ SAAS ನಂತೆ, ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್ ಅನ್ನು ಅಡ್ಡಲಾಗಿ ಸ್ಕೇಲೆಬಲ್ ಆಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಬೇಕು. ಸಂಯೋಜಕ-ಕಾರ್ಮಿಕ ವಿನ್ಯಾಸವು ಹೆಚ್ಚಿನ ದಟ್ಟಣೆಯನ್ನು ಪೂರೈಸಲು ಹೆಚ್ಚಿನ ಕಾರ್ಮಿಕರನ್ನು ಸೇರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.

    8. ಒಂದು ಮೋಡಕ್ಕೆ ಯಾವುದೇ ಸಂಪರ್ಕವಿಲ್ಲ
    CloudRetro ನ ಮೂಲಸೌಕರ್ಯವನ್ನು ವಿವಿಧ ಪ್ರದೇಶಗಳಿಗೆ ವಿವಿಧ ಕ್ಲೌಡ್ ಪೂರೈಕೆದಾರರು (ಡಿಜಿಟಲ್ ಓಷನ್, ಅಲಿಬಾಬಾ, ಕಸ್ಟಮ್ ಪೂರೈಕೆದಾರರು) ಹೋಸ್ಟ್ ಮಾಡಲಾಗಿದೆ. ನಾನು ಮೂಲಸೌಕರ್ಯಕ್ಕಾಗಿ ಡಾಕರ್ ಕಂಟೇನರ್‌ನಲ್ಲಿ ರನ್ ಆಗುವುದನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತೇನೆ ಮತ್ತು ಒಂದೇ ಕ್ಲೌಡ್ ಪ್ರೊವೈಡರ್‌ಗೆ ಲಾಕ್ ಆಗುವುದನ್ನು ತಪ್ಪಿಸಲು ಬ್ಯಾಷ್ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ನೆಟ್‌ವರ್ಕ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತೇನೆ. WebRTC ಯಲ್ಲಿ NAT ಟ್ರಾವರ್ಸಲ್ ಜೊತೆಗೆ ಇದನ್ನು ಸಂಯೋಜಿಸುವ ಮೂಲಕ, ಯಾವುದೇ ಕ್ಲೌಡ್ ಪ್ಲಾಟ್‌ಫಾರ್ಮ್‌ನಲ್ಲಿ ಮತ್ತು ಯಾವುದೇ ಬಳಕೆದಾರರ ಯಂತ್ರಗಳಲ್ಲಿಯೂ ಸಹ CloudRetro ಅನ್ನು ನಿಯೋಜಿಸಲು ನಾವು ನಮ್ಯತೆಯನ್ನು ಹೊಂದಬಹುದು.

    ವಾಸ್ತುಶಿಲ್ಪೀಯ ವಿನ್ಯಾಸ

    ಕೆಲಸಗಾರ: (ಅಥವಾ ಮೇಲೆ ತಿಳಿಸಲಾದ ಸ್ಟ್ರೀಮಿಂಗ್ ಸರ್ವರ್) ಆಟಗಳನ್ನು ಗುಣಿಸುತ್ತದೆ, ಎನ್‌ಕೋಡಿಂಗ್ ಪೈಪ್‌ಲೈನ್ ಅನ್ನು ರನ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಎನ್‌ಕೋಡ್ ಮಾಡಲಾದ ಮಾಧ್ಯಮವನ್ನು ಬಳಕೆದಾರರಿಗೆ ಸ್ಟ್ರೀಮ್ ಮಾಡುತ್ತದೆ. ವರ್ಕರ್ ನಿದರ್ಶನಗಳನ್ನು ಪ್ರಪಂಚದಾದ್ಯಂತ ವಿತರಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಪ್ರತಿ ಕೆಲಸಗಾರನು ಏಕಕಾಲದಲ್ಲಿ ಬಹು ಬಳಕೆದಾರ ಅವಧಿಗಳನ್ನು ನಿಭಾಯಿಸಬಹುದು.

    ಸಂಯೋಜಕರು: ಸ್ಟ್ರೀಮಿಂಗ್‌ಗೆ ಹೆಚ್ಚು ಸೂಕ್ತವಾದ ಕೆಲಸಗಾರರೊಂದಿಗೆ ಹೊಸ ಬಳಕೆದಾರರನ್ನು ಜೋಡಿಸುವ ಜವಾಬ್ದಾರಿಯನ್ನು ಹೊಂದಿದೆ. ಸಂಯೋಜಕರು ವೆಬ್‌ಸಾಕೆಟ್ ಮೂಲಕ ಕಾರ್ಮಿಕರೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುತ್ತಾರೆ.

    ಆಟದ ಸ್ಥಿತಿ ಸಂಗ್ರಹಣೆ: ಎಲ್ಲಾ ಆಟದ ರಾಜ್ಯಗಳಿಗೆ ಕೇಂದ್ರ ದೂರಸ್ಥ ಸಂಗ್ರಹಣೆ. ಈ ಸಂಗ್ರಹಣೆಯು ರಿಮೋಟ್ ಸೇವ್/ಲೋಡ್‌ನಂತಹ ಪ್ರಮುಖ ಕಾರ್ಯಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ.

    WebRTC ನಲ್ಲಿ ಓಪನ್ ಸೋರ್ಸ್ ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್: p2p, ಮಲ್ಟಿಪ್ಲೇಯರ್, ಶೂನ್ಯ ಲೇಟೆನ್ಸಿ
    CloudRetro ನ ಉನ್ನತ ಮಟ್ಟದ ಆರ್ಕಿಟೆಕ್ಚರ್

    ಕಸ್ಟಮ್ ಸ್ಕ್ರಿಪ್ಟ್

    ಕೆಳಗಿನ ಚಿತ್ರದಲ್ಲಿ ತೋರಿಸಿರುವ 1 ಮತ್ತು 2 ಹಂತಗಳಲ್ಲಿ ಹೊಸ ಬಳಕೆದಾರರು CloudRetro ಅನ್ನು ತೆರೆದಾಗ, ಲಭ್ಯವಿರುವ ಕೆಲಸಗಾರರ ಪಟ್ಟಿಯೊಂದಿಗೆ ಸಂಯೋಜಕರನ್ನು ಮೊದಲ ಪುಟಕ್ಕೆ ವಿನಂತಿಸಲಾಗುತ್ತದೆ. ಇದರ ನಂತರ, ಹಂತ 3 ರಲ್ಲಿ ಕ್ಲೈಂಟ್ HTTP ಪಿಂಗ್ ವಿನಂತಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಎಲ್ಲಾ ಅಭ್ಯರ್ಥಿಗಳಿಗೆ ವಿಳಂಬವನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡುತ್ತದೆ. ಈ ವಿಳಂಬಗಳ ಪಟ್ಟಿಯನ್ನು ನಂತರ ಸಂಯೋಜಕರಿಗೆ ಹಿಂತಿರುಗಿಸಲಾಗುತ್ತದೆ ಇದರಿಂದ ಅವರು ಬಳಕೆದಾರರಿಗೆ ಸೇವೆ ಸಲ್ಲಿಸಲು ಹೆಚ್ಚು ಸೂಕ್ತವಾದ ಕೆಲಸಗಾರರನ್ನು ನಿರ್ಧರಿಸಬಹುದು. ಕೆಳಗಿನ ಹಂತ 4 ಆಟವನ್ನು ರಚಿಸುತ್ತದೆ. ಬಳಕೆದಾರರು ಮತ್ತು ನಿಯೋಜಿಸಲಾದ ಕೆಲಸಗಾರರ ನಡುವೆ WebRTC ಸ್ಟ್ರೀಮಿಂಗ್ ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸಲಾಗಿದೆ.
    WebRTC ನಲ್ಲಿ ಓಪನ್ ಸೋರ್ಸ್ ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್: p2p, ಮಲ್ಟಿಪ್ಲೇಯರ್, ಶೂನ್ಯ ಲೇಟೆನ್ಸಿ
    ಪ್ರವೇಶವನ್ನು ಪಡೆದ ನಂತರ ಬಳಕೆದಾರ ಸ್ಕ್ರಿಪ್ಟ್

    ಕೆಲಸಗಾರನೊಳಗೆ ಏನಿದೆ

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

    WebRTC ನಲ್ಲಿ ಓಪನ್ ಸೋರ್ಸ್ ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್: p2p, ಮಲ್ಟಿಪ್ಲೇಯರ್, ಶೂನ್ಯ ಲೇಟೆನ್ಸಿ
    ಕಾರ್ಮಿಕರ ಘಟಕಗಳ ಪರಸ್ಪರ ಕ್ರಿಯೆ

    ಮುಖ್ಯ ಘಟಕಗಳು:

    • WebRTC: ಬಳಕೆದಾರರ ಇನ್‌ಪುಟ್ ಅನ್ನು ಸ್ವೀಕರಿಸುವ ಮತ್ತು ಸರ್ವರ್‌ನಿಂದ ಎನ್‌ಕೋಡ್ ಮಾಡಲಾದ ಮಾಧ್ಯಮವನ್ನು ಔಟ್‌ಪುಟ್ ಮಾಡುವ ಕ್ಲೈಂಟ್ ಘಟಕ.
    • ಆಟದ ಎಮ್ಯುಲೇಟರ್: ಆಟದ ಘಟಕ. ಲಿಬ್ರೆಟ್ರೊ ಲೈಬ್ರರಿಗೆ ಧನ್ಯವಾದಗಳು, ಸಿಸ್ಟಮ್ ಅದೇ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಆಟವನ್ನು ಚಲಾಯಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ ಮತ್ತು ಮಾಧ್ಯಮ ಮತ್ತು ಇನ್‌ಪುಟ್ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಆಂತರಿಕವಾಗಿ ಪ್ರತಿಬಂಧಿಸುತ್ತದೆ.
    • ಇನ್-ಗೇಮ್ ಫ್ರೇಮ್‌ಗಳನ್ನು ಸೆರೆಹಿಡಿಯಲಾಗುತ್ತದೆ ಮತ್ತು ಎನ್‌ಕೋಡರ್‌ಗೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ.
    • ಚಿತ್ರ/ಆಡಿಯೋ ಎನ್‌ಕೋಡರ್: ಮಾಧ್ಯಮ ಚೌಕಟ್ಟುಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುವ ಎನ್‌ಕೋಡಿಂಗ್ ಪೈಪ್‌ಲೈನ್, ಹಿನ್ನೆಲೆಯಲ್ಲಿ ಅವುಗಳನ್ನು ಎನ್‌ಕೋಡ್ ಮಾಡುತ್ತದೆ ಮತ್ತು ಎನ್‌ಕೋಡ್ ಮಾಡಿದ ಚಿತ್ರಗಳು/ಆಡಿಯೊವನ್ನು ಔಟ್‌ಪುಟ್ ಮಾಡುತ್ತದೆ.

    Реализация

    CloudRetro ಅದರ ಬೆನ್ನೆಲುಬು ತಂತ್ರಜ್ಞಾನವಾಗಿ WebRTC ಅನ್ನು ಅವಲಂಬಿಸಿದೆ, ಆದ್ದರಿಂದ ಗೋಲಾಂಗ್ ಅನುಷ್ಠಾನದ ವಿವರಗಳಿಗೆ ಧುಮುಕುವ ಮೊದಲು, ನಾನು WebRTC ಬಗ್ಗೆ ಮಾತನಾಡಲು ನಿರ್ಧರಿಸಿದೆ. ಇದು ಅದ್ಭುತ ತಂತ್ರಜ್ಞಾನವಾಗಿದ್ದು, ಸ್ಟ್ರೀಮಿಂಗ್ ಡೇಟಾಗಾಗಿ ಉಪ-ಸೆಕೆಂಡ್ ಲೇಟೆನ್ಸಿಯನ್ನು ಸಾಧಿಸುವಲ್ಲಿ ನನಗೆ ಹೆಚ್ಚು ಸಹಾಯ ಮಾಡಿದೆ.

    WebRTC

    ಸರಳ API ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸ್ಥಳೀಯ ಮೊಬೈಲ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಮತ್ತು ಬ್ರೌಸರ್‌ಗಳಲ್ಲಿ ಉತ್ತಮ-ಗುಣಮಟ್ಟದ ಪೀರ್-ಟು-ಪೀರ್ ಸಂಪರ್ಕಗಳನ್ನು ಒದಗಿಸಲು WebRTC ಅನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ.

    NAT ಟ್ರಾವರ್ಸಲ್

    WebRTC ಅದರ NAT ಟ್ರಾವರ್ಸಲ್ ಕಾರ್ಯಚಟುವಟಿಕೆಗೆ ಹೆಸರುವಾಸಿಯಾಗಿದೆ. WebRTC ಅನ್ನು ಪೀರ್-ಟು-ಪೀರ್ ಸಂವಹನಕ್ಕಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಎಂಬ ಪ್ರಕ್ರಿಯೆಯ ಮೂಲಕ ಪೀರ್-ಟು-ಪೀರ್ ಸಂವಹನಕ್ಕಾಗಿ NAT ಗೇಟ್‌ವೇಗಳು ಮತ್ತು ಫೈರ್‌ವಾಲ್‌ಗಳನ್ನು ತಪ್ಪಿಸುವ ಅತ್ಯಂತ ಸೂಕ್ತವಾದ ನೇರ ಮಾರ್ಗವನ್ನು ಕಂಡುಹಿಡಿಯುವುದು ಇದರ ಗುರಿಯಾಗಿದೆ. ICE. ಈ ಪ್ರಕ್ರಿಯೆಯ ಭಾಗವಾಗಿ, WebRTC APIಗಳು STUN ಸರ್ವರ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ನಿಮ್ಮ ಸಾರ್ವಜನಿಕ IP ವಿಳಾಸವನ್ನು ಕಂಡುಕೊಳ್ಳುತ್ತವೆ ಮತ್ತು ಅದನ್ನು ರಿಲೇ ಸರ್ವರ್‌ಗೆ ಫಾರ್ವರ್ಡ್ ಮಾಡುತ್ತವೆ (ಟರ್ನ್ ಮಾಡಿ) ನೇರ ಸಂಪರ್ಕವನ್ನು ಸ್ಥಾಪಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದಾಗ.

    ಆದಾಗ್ಯೂ, CloudRetro ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಬಳಸಿಕೊಳ್ಳುವುದಿಲ್ಲ. ಇದರ ಪೀರ್-ಟು-ಪೀರ್ ಸಂಪರ್ಕಗಳು ಬಳಕೆದಾರರ ನಡುವೆ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ, ಆದರೆ ಬಳಕೆದಾರರು ಮತ್ತು ಕ್ಲೌಡ್ ಸರ್ವರ್‌ಗಳ ನಡುವೆ. ಮಾದರಿಯ ಸರ್ವರ್ ಭಾಗವು ಸಾಮಾನ್ಯ ಬಳಕೆದಾರ ಸಾಧನಕ್ಕಿಂತ ಕಡಿಮೆ ನೇರ ಸಂವಹನ ನಿರ್ಬಂಧಗಳನ್ನು ಹೊಂದಿದೆ. ಇದು ಒಳಬರುವ ಪೋರ್ಟ್‌ಗಳನ್ನು ಪೂರ್ವ-ತೆರೆಯಲು ಅಥವಾ ಸಾರ್ವಜನಿಕ IP ವಿಳಾಸಗಳನ್ನು ನೇರವಾಗಿ ಬಳಸಲು ಅನುಮತಿಸುತ್ತದೆ, ಏಕೆಂದರೆ ಸರ್ವರ್ NAT ಹಿಂದೆ ಇಲ್ಲ.

    ಹಿಂದೆ, ನಾನು ಯೋಜನೆಯನ್ನು ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್‌ಗಾಗಿ ಆಟದ ವಿತರಣಾ ವೇದಿಕೆಯಾಗಿ ಪರಿವರ್ತಿಸಲು ಬಯಸಿದ್ದೆ. ಆಟದ ರಚನೆಕಾರರಿಗೆ ಆಟಗಳು ಮತ್ತು ಸ್ಟ್ರೀಮಿಂಗ್ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಒದಗಿಸಲು ಅವಕಾಶ ನೀಡುವುದು ಇದರ ಉದ್ದೇಶವಾಗಿತ್ತು. ಮತ್ತು ಬಳಕೆದಾರರು ನೇರವಾಗಿ ಪೂರೈಕೆದಾರರೊಂದಿಗೆ ಸಂವಹನ ನಡೆಸುತ್ತಾರೆ. ಈ ವಿಕೇಂದ್ರೀಕೃತ ವಿಧಾನದಲ್ಲಿ, ಕ್ಲೌಡ್‌ರೆಟ್ರೋ ಬಳಕೆದಾರರಿಗೆ ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಸ್ಟ್ರೀಮಿಂಗ್ ಸಂಪನ್ಮೂಲಗಳನ್ನು ಸಂಪರ್ಕಿಸುವ ಚೌಕಟ್ಟಾಗಿದೆ, ಇದು ಇನ್ನು ಮುಂದೆ ಹೋಸ್ಟ್ ಮಾಡದಿದ್ದಾಗ ಅದನ್ನು ಹೆಚ್ಚು ಸ್ಕೇಲೆಬಲ್ ಮಾಡುತ್ತದೆ. ಥರ್ಡ್-ಪಾರ್ಟಿ ಸ್ಟ್ರೀಮಿಂಗ್ ಸಂಪನ್ಮೂಲಗಳಲ್ಲಿ ಪೀರ್-ಟು-ಪೀರ್ ಸಂಪರ್ಕವನ್ನು ಆರಂಭಿಸಲು ಅನುಕೂಲವಾಗುವಂತೆ ಇಲ್ಲಿ WebRTC NAT ಟ್ರಾವರ್ಸಲ್ ಪಾತ್ರವು ಬಹಳ ಮುಖ್ಯವಾಗಿದೆ, ಇದರಿಂದಾಗಿ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸಂಪರ್ಕಿಸಲು ರಚನೆಕಾರರಿಗೆ ಸುಲಭವಾಗುತ್ತದೆ.

    ವೀಡಿಯೊ ಸಂಕೋಚನ

    ವೀಡಿಯೊ ಸಂಕೋಚನವು ಪೈಪ್‌ಲೈನ್‌ನ ಅನಿವಾರ್ಯ ಭಾಗವಾಗಿದೆ ಮತ್ತು ಸುಗಮ ಹರಿವಿಗೆ ಹೆಚ್ಚು ಕೊಡುಗೆ ನೀಡುತ್ತದೆ. VP8/H264 ವೀಡಿಯೊ ಎನ್‌ಕೋಡಿಂಗ್‌ನ ಪ್ರತಿಯೊಂದು ವಿವರವನ್ನು ತಿಳಿದುಕೊಳ್ಳುವುದು ಅನಿವಾರ್ಯವಲ್ಲವಾದರೂ, ಪರಿಕಲ್ಪನೆಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಸ್ಟ್ರೀಮಿಂಗ್ ವೀಡಿಯೊ ವೇಗದ ಆಯ್ಕೆಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು, ಅನಿರೀಕ್ಷಿತ ನಡವಳಿಕೆಯನ್ನು ಡೀಬಗ್ ಮಾಡಲು ಮತ್ತು ಸುಪ್ತತೆಯನ್ನು ಸರಿಹೊಂದಿಸಲು ನಿಮಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ.

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

    ಬಳಕೆದಾರರಿಗೆ ಸ್ವೀಕಾರಾರ್ಹ ಮಟ್ಟದ ನಿಖರತೆಯನ್ನು ಕಾಪಾಡಿಕೊಳ್ಳುವಾಗ ಅನಗತ್ಯ ಮಾಹಿತಿಯ ಬಿಟ್‌ಗಳನ್ನು ತೆಗೆದುಹಾಕುವುದು ವೀಡಿಯೊ ಸಂಕುಚನದ ಹಿಂದಿನ ಕಲ್ಪನೆಯಾಗಿದೆ. ಪ್ರತ್ಯೇಕ ಸ್ಥಿರ ಚಿತ್ರ ಚೌಕಟ್ಟುಗಳನ್ನು ಎನ್ಕೋಡಿಂಗ್ ಮಾಡುವುದರ ಜೊತೆಗೆ, ಅಲ್ಗಾರಿದಮ್ ಹಿಂದಿನ ಮತ್ತು ಮುಂದಿನದರಿಂದ ಪ್ರಸ್ತುತ ಫ್ರೇಮ್ ಅನ್ನು ಊಹಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಅವುಗಳ ವ್ಯತ್ಯಾಸವನ್ನು ಮಾತ್ರ ಕಳುಹಿಸಲಾಗುತ್ತದೆ. ಪ್ಯಾಕ್‌ಮ್ಯಾನ್‌ನೊಂದಿಗೆ ಉದಾಹರಣೆಯಿಂದ ನೋಡಬಹುದಾದಂತೆ, ಡಿಫರೆನ್ಷಿಯಲ್ ಪಾಯಿಂಟ್‌ಗಳನ್ನು ಮಾತ್ರ ರವಾನಿಸಲಾಗುತ್ತದೆ.

    WebRTC ನಲ್ಲಿ ಓಪನ್ ಸೋರ್ಸ್ ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್: p2p, ಮಲ್ಟಿಪ್ಲೇಯರ್, ಶೂನ್ಯ ಲೇಟೆನ್ಸಿ
    ಪ್ಯಾಕ್‌ಮ್ಯಾನ್ ಅನ್ನು ಉದಾಹರಣೆಯಾಗಿ ಬಳಸಿಕೊಂಡು ವೀಡಿಯೊ ಫ್ರೇಮ್‌ಗಳ ಹೋಲಿಕೆ

    ಆಡಿಯೋ ಕಂಪ್ರೆಷನ್

    ಅಂತೆಯೇ, ಆಡಿಯೊ ಕಂಪ್ರೆಷನ್ ಅಲ್ಗಾರಿದಮ್ ಮಾನವರಿಂದ ಗ್ರಹಿಸಲಾಗದ ಡೇಟಾವನ್ನು ಬಿಟ್ಟುಬಿಡುತ್ತದೆ. ಓಪಸ್ ಪ್ರಸ್ತುತ ಉತ್ತಮ ಪ್ರದರ್ಶನ ನೀಡುವ ಆಡಿಯೊ ಕೊಡೆಕ್ ಆಗಿದೆ. ಆರ್‌ಟಿಪಿ (ರಿಯಲ್ ಟೈಮ್ ಟ್ರಾನ್ಸ್‌ಪೋರ್ಟ್ ಪ್ರೋಟೋಕಾಲ್) ನಂತಹ ಆರ್ಡರ್ ಮಾಡಿದ ಡಾಟಾಗ್ರಾಮ್ ಪ್ರೋಟೋಕಾಲ್ ಮೂಲಕ ಆಡಿಯೊ ತರಂಗವನ್ನು ರವಾನಿಸಲು ಇದನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಇದರ ಲೇಟೆನ್ಸಿ mp3 ಮತ್ತು aac ಗಿಂತ ಕಡಿಮೆಯಾಗಿದೆ ಮತ್ತು ಗುಣಮಟ್ಟವು ಹೆಚ್ಚಾಗಿರುತ್ತದೆ. ಸುಪ್ತತೆ ಸಾಮಾನ್ಯವಾಗಿ ಸುಮಾರು 5~66,5ms.

    ಪಿಯಾನ್, ಗೋಲಾಂಗ್‌ನಲ್ಲಿ ವೆಬ್‌ಆರ್‌ಟಿಸಿ

    ಪ್ಯಾದೆಯುಳ್ಳ ವೆಬ್‌ಆರ್‌ಟಿಸಿಯನ್ನು ಗೋಲಾಂಗ್‌ಗೆ ತರುವ ಮುಕ್ತ ಮೂಲ ಯೋಜನೆಯಾಗಿದೆ. ಸ್ಥಳೀಯ C++ WebRTC ಲೈಬ್ರರಿಗಳ ಸಾಮಾನ್ಯ ಸುತ್ತುವಿಕೆಯ ಬದಲಿಗೆ, Pion ಉತ್ತಮ ಕಾರ್ಯಕ್ಷಮತೆ, Go ಏಕೀಕರಣ ಮತ್ತು WebRTC ಪ್ರೋಟೋಕಾಲ್‌ಗಳಲ್ಲಿ ಆವೃತ್ತಿ ನಿಯಂತ್ರಣದೊಂದಿಗೆ WebRTC ಯ ಸ್ಥಳೀಯ ಗೋಲಾಂಗ್ ಅನುಷ್ಠಾನವಾಗಿದೆ.

    ಲೈಬ್ರರಿಯು ಉಪ-ಸೆಕೆಂಡ್ ಲೇಟೆನ್ಸಿಯೊಂದಿಗೆ ಸಾಕಷ್ಟು ಉತ್ತಮ ಅಂತರ್ನಿರ್ಮಿತಗಳೊಂದಿಗೆ ಸ್ಟ್ರೀಮಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ. ಇದು STUN, DTLS, SCTP, ಇತ್ಯಾದಿಗಳ ತನ್ನದೇ ಆದ ಅನುಷ್ಠಾನವನ್ನು ಹೊಂದಿದೆ. ಮತ್ತು QUIC ಮತ್ತು WebAssembly ನೊಂದಿಗೆ ಕೆಲವು ಪ್ರಯೋಗಗಳು. ಈ ಓಪನ್ ಸೋರ್ಸ್ ಲೈಬ್ರರಿಯು ಅತ್ಯುತ್ತಮವಾದ ದಾಖಲಾತಿಗಳು, ನೆಟ್‌ವರ್ಕ್ ಪ್ರೋಟೋಕಾಲ್ ಅನುಷ್ಠಾನಗಳು ಮತ್ತು ತಂಪಾದ ಉದಾಹರಣೆಗಳೊಂದಿಗೆ ನಿಜವಾಗಿಯೂ ಉತ್ತಮ ಕಲಿಕೆಯ ಸಂಪನ್ಮೂಲವಾಗಿದೆ.

    ಅತ್ಯಂತ ಭಾವೋದ್ರಿಕ್ತ ರಚನೆಕಾರರ ನೇತೃತ್ವದ Pion ಸಮುದಾಯವು ಸಾಕಷ್ಟು ಉತ್ಸಾಹಭರಿತವಾಗಿದೆ, WebRTC ಕುರಿತು ಸಾಕಷ್ಟು ಗುಣಮಟ್ಟದ ಚರ್ಚೆಗಳು ನಡೆಯುತ್ತಿವೆ. ನೀವು ಈ ತಂತ್ರಜ್ಞಾನದಲ್ಲಿ ಆಸಕ್ತಿ ಹೊಂದಿದ್ದರೆ, ಸೇರಿಕೊಳ್ಳಿ http://pion.ly/slack - ನೀವು ಬಹಳಷ್ಟು ಹೊಸ ವಿಷಯಗಳನ್ನು ಕಲಿಯುವಿರಿ.

    ಗೋಲಾಂಗ್‌ನಲ್ಲಿ ಕ್ಲೌಡ್‌ರೆಟ್ರೊ ಬರೆಯುವುದು

    WebRTC ನಲ್ಲಿ ಓಪನ್ ಸೋರ್ಸ್ ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್: p2p, ಮಲ್ಟಿಪ್ಲೇಯರ್, ಶೂನ್ಯ ಲೇಟೆನ್ಸಿ
    ಗೋದಲ್ಲಿ ಕೆಲಸಗಾರನ ಅನುಷ್ಠಾನ

    ಚಾನೆಲ್‌ಗಳು ಆಕ್ಷನ್‌ನಲ್ಲಿ ಹೋಗು

    Go ನ ಸುಂದರವಾದ ಚಾನಲ್ ವಿನ್ಯಾಸಕ್ಕೆ ಧನ್ಯವಾದಗಳು, ಈವೆಂಟ್ ಸ್ಟ್ರೀಮಿಂಗ್ ಮತ್ತು ಏಕಕಾಲಿಕತೆಯ ಸಮಸ್ಯೆಗಳನ್ನು ಹೆಚ್ಚು ಸರಳಗೊಳಿಸಲಾಗಿದೆ. ರೇಖಾಚಿತ್ರದಲ್ಲಿರುವಂತೆ, ವಿಭಿನ್ನ GoRoutine ಗಳು ಸಮಾನಾಂತರವಾಗಿ ಚಾಲನೆಯಲ್ಲಿರುವ ಬಹು ಘಟಕಗಳನ್ನು ಹೊಂದಿವೆ. ಪ್ರತಿಯೊಂದು ಘಟಕವು ಅದರ ಸ್ಥಿತಿಯನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಚಾನಲ್‌ಗಳ ಮೂಲಕ ಸಂವಹನ ನಡೆಸುತ್ತದೆ. ಗೊಲಾಂಗ್‌ನ ಆಯ್ದ ಸಮರ್ಥನೆಯು ಆಟದಲ್ಲಿ ಪ್ರತಿ ಬಾರಿಯೂ ಒಂದು ಪರಮಾಣು ಘಟನೆಯನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಒತ್ತಾಯಿಸುತ್ತದೆ (ಗೇಮ್ ಟಿಕ್). ಇದರರ್ಥ ಈ ವಿನ್ಯಾಸಕ್ಕೆ ಯಾವುದೇ ಲಾಕಿಂಗ್ ಅಗತ್ಯವಿಲ್ಲ. ಉದಾಹರಣೆಗೆ, ಬಳಕೆದಾರರು ಉಳಿಸಿದಾಗ, ಆಟದ ಸ್ಥಿತಿಯ ಪೂರ್ಣ ಸ್ನ್ಯಾಪ್‌ಶಾಟ್ ಅಗತ್ಯವಿದೆ. ಈ ಸ್ಥಿತಿಯು ನಿರಂತರವಾಗಿ ಉಳಿಯಬೇಕು, ಉಳಿಸುವಿಕೆಯು ಪೂರ್ಣಗೊಳ್ಳುವವರೆಗೆ ಲಾಗ್ ಇನ್ ಆಗುತ್ತಿರಬೇಕು. ಪ್ರತಿ ಆಟದ ಟಿಕ್ ಸಮಯದಲ್ಲಿ, ಬ್ಯಾಕೆಂಡ್ ಸೇವ್ ಅಥವಾ ಇನ್‌ಪುಟ್ ಕಾರ್ಯಾಚರಣೆಯನ್ನು ಮಾತ್ರ ನಿಭಾಯಿಸುತ್ತದೆ, ಇದು ಪ್ರಕ್ರಿಯೆಯ ಥ್ರೆಡ್ ಅನ್ನು ಸುರಕ್ಷಿತವಾಗಿಸುತ್ತದೆ.

    func (e *gameEmulator) gameUpdate() {
    for {
    	select {
    		case <-e.saveOperation:
    			e.saveGameState()
    		case key := <-e.input:
    			e.updateGameState(key)
    		case <-e.done:
    			e.close()
    			return
    	}
        }
    }

    ಫ್ಯಾನ್-ಇನ್/ಫ್ಯಾನ್-ಔಟ್

    ಈ ಗೋಲಾಂಗ್ ಟೆಂಪ್ಲೇಟ್ ನನ್ನ ಕ್ರೌಡ್‌ಪ್ಲೇ ಮತ್ತು ಮಲ್ಟಿಪಲ್ ಪ್ಲೇಯರ್ ಬಳಕೆಯ ಪ್ರಕರಣಕ್ಕೆ ಸಂಪೂರ್ಣವಾಗಿ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ. ಈ ಮಾದರಿಯನ್ನು ಅನುಸರಿಸಿ, ಒಂದು ಕೋಣೆಯಲ್ಲಿನ ಎಲ್ಲಾ ಬಳಕೆದಾರರ ಒಳಹರಿವುಗಳನ್ನು ಕೇಂದ್ರ ಪ್ರವೇಶ ಚಾನಲ್‌ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾಗಿದೆ. ಆಟದ ಮಾಧ್ಯಮವನ್ನು ನಂತರ ಒಂದೇ ಕೋಣೆಯಲ್ಲಿ ಎಲ್ಲಾ ಬಳಕೆದಾರರಿಗೆ ನಿಯೋಜಿಸಲಾಗುತ್ತದೆ. ಈ ರೀತಿಯಾಗಿ, ವಿವಿಧ ಬಳಕೆದಾರರ ಹಲವಾರು ಆಟದ ಅವಧಿಗಳ ನಡುವೆ ನಾವು ಆಟದ ಸ್ಥಿತಿಯ ವಿಭಜನೆಯನ್ನು ಸಾಧಿಸುತ್ತೇವೆ.

    WebRTC ನಲ್ಲಿ ಓಪನ್ ಸೋರ್ಸ್ ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್: p2p, ಮಲ್ಟಿಪ್ಲೇಯರ್, ಶೂನ್ಯ ಲೇಟೆನ್ಸಿ
    ವಿವಿಧ ಅವಧಿಗಳ ನಡುವೆ ಸಿಂಕ್ರೊನೈಸೇಶನ್

    ಗೋಲಾಂಗ್ನ ಅನಾನುಕೂಲಗಳು

    ಗೋಲಾಂಗ್ ಪರಿಪೂರ್ಣವಲ್ಲ. ಚಾನಲ್ ನಿಧಾನವಾಗಿದೆ. ನಿರ್ಬಂಧಿಸುವುದಕ್ಕೆ ಹೋಲಿಸಿದರೆ, ಗೋ ಚಾನಲ್ ಸರಳವಾಗಿ ಏಕಕಾಲೀನ ಮತ್ತು ಥ್ರೆಡ್ ಈವೆಂಟ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಸುಲಭವಾದ ಮಾರ್ಗವಾಗಿದೆ, ಆದರೆ ಚಾನಲ್ ಉತ್ತಮ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಒದಗಿಸುವುದಿಲ್ಲ. ಚಾನಲ್‌ನ ಕೆಳಗೆ ಸಂಕೀರ್ಣವಾದ ತಡೆಯುವ ತರ್ಕವಿದೆ. ಆದ್ದರಿಂದ ನಾನು ಅನುಷ್ಠಾನಕ್ಕೆ ಕೆಲವು ಹೊಂದಾಣಿಕೆಗಳನ್ನು ಮಾಡಿದ್ದೇನೆ, ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಅತ್ಯುತ್ತಮವಾಗಿಸಲು ಚಾನಲ್‌ಗಳನ್ನು ಬದಲಾಯಿಸುವಾಗ ಲಾಕ್‌ಗಳು ಮತ್ತು ಪರಮಾಣು ಮೌಲ್ಯಗಳನ್ನು ಪುನಃ ಅನ್ವಯಿಸುತ್ತೇನೆ.

    ಇದರ ಜೊತೆಗೆ, ಗೋಲಾಂಗ್‌ನಲ್ಲಿನ ಕಸ ಸಂಗ್ರಾಹಕವು ನಿರ್ವಹಣೆಯಿಲ್ಲ, ಇದು ಕೆಲವೊಮ್ಮೆ ಅನುಮಾನಾಸ್ಪದವಾಗಿ ದೀರ್ಘ ವಿರಾಮಗಳನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ. ಇದು ನೈಜ-ಸಮಯದ ಸ್ಟ್ರೀಮಿಂಗ್ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಹೆಚ್ಚು ಅಡ್ಡಿಪಡಿಸುತ್ತದೆ.

    ಸಿಜಿಒ

    ಯೋಜನೆಯು ಮೀಡಿಯಾ ಕಂಪ್ರೆಷನ್‌ಗಾಗಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಓಪನ್ ಸೋರ್ಸ್ ಗೋಲಾಂಗ್ VP8/H264 ಲೈಬ್ರರಿಯನ್ನು ಮತ್ತು ಗೇಮ್ ಎಮ್ಯುಲೇಟರ್‌ಗಳಿಗಾಗಿ ಲಿಬ್ರೆಟ್ರೋವನ್ನು ಬಳಸುತ್ತದೆ. ಈ ಎಲ್ಲಾ ಲೈಬ್ರರಿಗಳು ಗೋ ಬಳಸಿ ಸಿ ಲೈಬ್ರರಿಯ ಸರಳವಾಗಿ ಹೊದಿಕೆಗಳಾಗಿವೆ ಸಿಜಿಒ. ಕೆಲವು ಅನಾನುಕೂಲಗಳನ್ನು ಪಟ್ಟಿಮಾಡಲಾಗಿದೆ ಡೇವ್ ಚೆನಿ ಅವರ ಈ ಪೋಸ್ಟ್. ನಾನು ಎದುರಿಸಿದ ಸಮಸ್ಯೆಗಳು:

    • Golang RecoveryCrash ಸಹ CGO ನಲ್ಲಿ ಕ್ರ್ಯಾಶ್ ಅನ್ನು ಹಿಡಿಯಲು ಅಸಮರ್ಥತೆ;
    • CGO ನಲ್ಲಿ ವಿವರವಾದ ಸಮಸ್ಯೆಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ನಮಗೆ ಸಾಧ್ಯವಾಗದಿದ್ದಾಗ ಕಾರ್ಯಕ್ಷಮತೆಯ ಅಡಚಣೆಗಳನ್ನು ಗುರುತಿಸಲು ವಿಫಲವಾಗಿದೆ.

    ತೀರ್ಮಾನಕ್ಕೆ

    ಕ್ಲೌಡ್ ಗೇಮಿಂಗ್ ಸೇವೆಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ಮತ್ತು ನನ್ನ ಸ್ನೇಹಿತರೊಂದಿಗೆ ಆನ್‌ಲೈನ್‌ನಲ್ಲಿ ನಾಸ್ಟಾಲ್ಜಿಕ್ ರೆಟ್ರೊ ಆಟಗಳನ್ನು ಆಡಲು ಸಹಾಯ ಮಾಡುವ ವೇದಿಕೆಯನ್ನು ರಚಿಸುವ ನನ್ನ ಗುರಿಯನ್ನು ನಾನು ಸಾಧಿಸಿದ್ದೇನೆ. ಪಿಯೋನ್ ಲೈಬ್ರರಿ ಮತ್ತು ಪಿಯೋನ್ ಸಮುದಾಯದ ಬೆಂಬಲವಿಲ್ಲದೆ ಈ ಯೋಜನೆಯು ಸಾಧ್ಯವಾಗುತ್ತಿರಲಿಲ್ಲ. ಅದರ ತೀವ್ರ ಅಭಿವೃದ್ಧಿಗಾಗಿ ನಾನು ತುಂಬಾ ಕೃತಜ್ಞನಾಗಿದ್ದೇನೆ. WebRTC ಮತ್ತು Pion ಒದಗಿಸಿದ ಸರಳ API ಗಳು ತಡೆರಹಿತ ಏಕೀಕರಣವನ್ನು ಖಾತ್ರಿಪಡಿಸಿದೆ. ಪೀರ್-ಟು-ಪೀರ್ (P2P) ಸಂವಹನದ ಬಗ್ಗೆ ನನಗೆ ಯಾವುದೇ ಪೂರ್ವ ಜ್ಞಾನವಿಲ್ಲದಿದ್ದರೂ, ಪರಿಕಲ್ಪನೆಯ ನನ್ನ ಮೊದಲ ಪುರಾವೆಯನ್ನು ಅದೇ ವಾರ ಬಿಡುಗಡೆ ಮಾಡಲಾಯಿತು.

    ಏಕೀಕರಣದ ಸುಲಭತೆಯ ಹೊರತಾಗಿಯೂ, P2P ಸ್ಟ್ರೀಮಿಂಗ್ ನಿಜವಾಗಿಯೂ ಕಂಪ್ಯೂಟರ್ ವಿಜ್ಞಾನದಲ್ಲಿ ಬಹಳ ಸಂಕೀರ್ಣವಾದ ಪ್ರದೇಶವಾಗಿದೆ. ಪೀರ್-ಟು-ಪೀರ್ ಅಧಿವೇಶನವನ್ನು ರಚಿಸಲು IP ಮತ್ತು NAT ನಂತಹ ದೀರ್ಘಕಾಲದ ನೆಟ್‌ವರ್ಕ್ ಆರ್ಕಿಟೆಕ್ಚರ್‌ಗಳ ಸಂಕೀರ್ಣತೆಯನ್ನು ಅವಳು ಎದುರಿಸಬೇಕಾಗುತ್ತದೆ. ಈ ಯೋಜನೆಯಲ್ಲಿ ಕೆಲಸ ಮಾಡುವಾಗ, ನಾನು ನೆಟ್‌ವರ್ಕಿಂಗ್ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆ ಆಪ್ಟಿಮೈಸೇಶನ್ ಕುರಿತು ಸಾಕಷ್ಟು ಮೌಲ್ಯಯುತವಾದ ಜ್ಞಾನವನ್ನು ಪಡೆದುಕೊಂಡಿದ್ದೇನೆ, ಆದ್ದರಿಂದ WebRTC ಬಳಸಿಕೊಂಡು P2P ಉತ್ಪನ್ನಗಳನ್ನು ನಿರ್ಮಿಸಲು ಪ್ರಯತ್ನಿಸಲು ನಾನು ಪ್ರತಿಯೊಬ್ಬರನ್ನು ಪ್ರೋತ್ಸಾಹಿಸುತ್ತೇನೆ.

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

ಮೂಲ: www.habr.com

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