Open source cloud game on WebRTC: p2p, multiplayer, zero latency

Open source cloud game on WebRTC: p2p, multiplayer, zero latency
เบŠเบญเบšเปเบงเป€เบ›เบฑเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™, เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™, เป€เบงเบ—เบตเป€เบ›เบฑเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™, เป€เบงเบ—เบตเบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เป€เบ›เบฑเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™, เบเบฒเบ™เบ›เบฐเบŠเบธเบกเบงเบดเบ”เบตเป‚เบญเป€เบ›เบฑเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™, เปเบกเปˆเบ™เบซเบเบฑเบ‡เบเปˆเบฝเบงเบเบฑเบšเป€เบเบกเป€เบกเบ„เป€เบ›เบฑเบ™เบšเปเบฅเบดเบเบฒเบ™? เป„เบ”เป‰เบกเบตเบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบซเบผเบฒเบเบ„เบฑเป‰เบ‡เปเบฅเป‰เบงเบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบเบฒเบ™เบซเบผเบดเป‰เบ™เป€เบเบกเปƒเบ™เบ„เบฅเบฒเบง (Cloud Gaming), เป€เบŠเบฑเปˆเบ™ Stadia, เบ—เบตเปˆเป€เบ›เบตเบ”เบ•เบปเบงเป‚เบ”เบ Google เป€เบกเบทเปˆเบญเบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰. Stadia เบšเปเปˆเปƒเปเปˆเบเบฑเบš WebRTC, เปเบ•เปˆเบ„เบปเบ™เบญเบทเปˆเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰ WebRTC เปƒเบ™เบ—เบฒเบ‡เบ”เบฝเบงเบเบฑเบ™เบšเป?

Thanh Nguyen เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบปเบ”เบชเบญเบšเป‚เบญเบเบฒเบ”เบ™เบตเป‰เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™ open source CloudRetro เบ‚เบญเบ‡เบฅเบฒเบง. CloudRetro เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆ Pion, เบ™เบดเบเบปเบก เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” WebRTC เบญเบตเบ‡เปƒเบชเปˆ Go (เบ‚เปเบ‚เบญเบšเปƒเบˆ เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™ เบˆเบฒเบเบ—เบตเบกเบ‡เบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ Pion เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปƒเบ™เบเบฒเบ™เบเบฐเบเบฝเบกเบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰). โ€‹เปƒเบ™โ€‹เบšเบปเบ”โ€‹เบ„เบงเบฒเบกโ€‹เบ™เบตเป‰, เบ—เปˆเบฒเบ™ Thanh โ€‹เป„เบ”เป‰โ€‹เบชเบฐโ€‹เป€เปœเบตโ€‹เบชเบฐเบžเบฒเบšโ€‹เบฅเบงเบกเบ‚เบญเบ‡โ€‹เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณโ€‹เบ‚เบญเบ‡โ€‹เป‚เบ„เบ‡เบเบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™, เบžเป‰เบญเบกโ€‹เบ—เบฑเบ‡โ€‹เบเปˆเบฒเบงโ€‹เป€เบ–เบดเบ‡โ€‹เบšเบฑเบ™เบ”เบฒโ€‹เบชเบดเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เป€เบ›เบฑเบ™โ€‹เบ›เบฐโ€‹เป‚เบซเบโ€‹เบ”เบ—เบตเปˆโ€‹เบฅเบฒเบงโ€‹เป„เบ”เป‰โ€‹เบฎเบฝเบ™โ€‹เบฎเบนเป‰ โ€‹เปเบฅเบฐ เบชเบดเปˆเบ‡โ€‹เบ—เป‰เบฒโ€‹เบ—เบฒเบโ€‹เบ—เบตเปˆโ€‹เบฅเบฒเบงโ€‹เบ›เบฐเบชเบปเบšโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบ.

เป€เบ‚เบปเป‰เบฒ

เปƒเบ™เบ›เบตเบเบฒเบเบ™เบตเป‰, เป€เบกเบทเปˆเบญ Google เบ›เบฐเบเบฒเบ” Stadia, เบกเบฑเบ™เบเปเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบ‚เป‰เบญเบเบ„เบดเบ”. เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปเบกเปˆเบ™เป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเปเบฅเบฐเบ™เบฐเบงเบฑเบ”เบ•เบฐเบเปเบฒเบซเบผเบฒเบเบ—เบตเปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบชเบปเบ‡เป„เบชเบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เปเบ™เบงเปƒเบ”เบเบฑเบšเป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบตเบ—เบตเปˆเบกเบตเบขเบนเปˆ. เบ„เบงเบฒเบกเบ›เบฒเบ–เบฐเปœเบฒเบ—เบตเปˆเบˆเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเบซเบปเบงเบ‚เปเป‰เบ™เบตเป‰เปƒเบซเป‰เบ”เบตเบ‚เบถเป‰เบ™เป„เบ”เป‰เบเบฐเบ•เบธเป‰เบ™เบ‚เป‰เบญเบเปƒเบซเป‰เบชเป‰เบฒเบ‡เป€เบงเบตเบŠเบฑเปˆเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบเป€เบญเบ‡เบ‚เบญเบ‡เป€เบเบกเบ„เบฅเบฒเบงเปเบšเบšเป€เบ›เบตเบ”. เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™ fantastic เบžเบฝเบ‡เปเบ•เปˆ. เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบขเบฒเบเปเบšเปˆเบ‡เบ›เบฑเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเบ›เบตเบ‚เบญเบ‡เบ‚เป‰เบญเบ เป‚เบ„เบ‡เบเบฒเบ™.

TLDR: เบชเบฐเบšเบฑเบšเบชเบฐเป„เบฅเป‰เบชเบฑเป‰เบ™เบ—เบตเปˆเบกเบตเบˆเบธเบ”เป€เบ”เบฑเปˆเบ™

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เป€เบเบกเบ„เบฅเบฒเบงเบˆเบถเปˆเบ‡เป€เบ›เบฑเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”

เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป€เบŠเบทเปˆเบญโ€‹เบงเปˆเบฒโ€‹เปƒเบ™โ€‹เป„เบงเป†โ€‹เบ™เบตเป‰ Cloud Gaming เบˆเบฐโ€‹เบเบฒเบโ€‹เป€เบ›เบฑเบ™โ€‹เบเบฒเบ™โ€‹เบœเบฐโ€‹เบฅเบดเบ”โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบšเปเปˆโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบเบฒเบ™โ€‹เป€เบเบกโ€‹, เปเบ•เปˆโ€‹เบเบฑเบ‡โ€‹เบ‚เบปเบ‡โ€‹เป€เบ‚เบ”โ€‹เบญเบทเปˆเบ™เป†โ€‹เบ‚เบญเบ‡โ€‹เบงเบดโ€‹เบ—เบฐโ€‹เบเบฒโ€‹เบชเบฒเบ”โ€‹เบ„เบญเบกโ€‹เบžเบดเบงโ€‹เป€เบ•เบตโ€‹. Cloud gaming เปเบกเปˆเบ™เบˆเบธเบ”เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบฎเบนเบšเปเบšเบšเบฅเบนเบเบ„เป‰เบฒ/เป€เบŠเบตเบšเป€เบงเบต. เบฎเบนเบšเปเบšเบšเบ™เบตเป‰เบŠเปˆเบงเบเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™ backend เปเบฅเบฐเบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡ frontend เป‚เบ”เบเบเบฒเบ™เป‚เบฎเบ”เป€เบซเบ”เบœเบปเบ™เป€เบเบกเบขเบนเปˆเปƒเบ™เป€เบŠเบตเบšเป€เบงเบตเบ—เบฒเบ‡เป„เบเปเบฅเบฐเบ–เปˆเบฒเบเบ—เบญเบ”เบฎเบนเบšเบžเบฒเบš/เบชเบฝเบ‡เป„เบ›เบซเบฒเบฅเบนเบเบ„เป‰เบฒ. เป€เบŠเบตเบšเป€เบงเบตเป€เบฎเบฑเบ”เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบขเปˆเบฒเบ‡เปœเบฑเบเป€เบžเบทเปˆเบญเปƒเบซเป‰เบฅเบนเบเบ„เป‰เบฒเบšเปเปˆเบกเบตเบ‚เปเป‰เบˆเบณเบเบฑเบ”เบ‚เบญเบ‡เบฎเบฒเบ”เปเบงเบญเบตเบเบ•เปเปˆเป„เบ›.

Google Stadia เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบซเบผเบดเป‰เบ™เป„เบ”เป‰ เป€เบเบก AAA (เป€เบŠเบฑเปˆเบ™: เป€เบเบก blockbuster เบฅเบฐเบ”เบฑเบšเบชเบนเบ‡) เปƒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป€เบŠเบฑเปˆเบ™ YouTube. เบงเบดเบ—เบตเบเบฒเบ™เบ”เบฝเบงเบเบฑเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบเบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบญเบญเบšเป„เบฅเบ™เปŒเบ—เบตเปˆเบฎเบธเบ™เปเบฎเบ‡เบญเบทเปˆเบ™เป† เป€เบŠเบฑเปˆเบ™: เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™ เบซเบผเบท เบเบฒเบ™เบญเบญเบเปเบšเบšเบเบฒเบŸเบดเบ 2D/3D, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เป€เบžเบทเปˆเบญเปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เปเบฅเปˆเบ™เบžเบงเบเบกเบฑเบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบกเบตเบชเบฐเป€เบ›เบฑเบเบ•เปˆเบณเปƒเบ™เบ—เบปเปˆเบงเบซเบผเบฒเบเปเบžเบฅเบ”เบŸเบญเบก.

Open source cloud game on WebRTC: p2p, multiplayer, zero latency
เบญเบฐเบ™เบฒเบ„เบปเบ”เบ‚เบญเบ‡เป€เบ—เบเป‚เบ™เป‚เบฅเบเบตเบ™เบตเป‰: เบˆเบดเบ™เบ•เบฐเบ™เบฒเบเบฒเบ™เบงเปˆเบฒ Microsoft Windows 10 เปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš Chrome เบšเป?

เบเบฒเบ™เบซเบผเบดเป‰เบ™เป€เบเบกเปƒเบ™เบ„เบฅเบฒเบงเปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบ—เป‰เบฒเบ—เบฒเบเบ—เบฒเบ‡เบ”เป‰เบฒเบ™เป€เบ•เบฑเบเบ™เบดเบ

เบเบฒเบ™เบซเบผเบดเป‰เบ™เป€เบเบกเปเบกเปˆเบ™เปœเบถเปˆเบ‡เปƒเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบ—เบตเปˆเบซเบฒเบเบฒเบเบ—เบตเปˆเบ•เป‰เบญเบ‡เบ•เบญเบšเบชเบฐเปœเบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบขเปˆเบฒเบ‡เบ„เบปเบ‡เบ—เบตเปˆ เปเบฅเบฐเป„เบง. เบ–เป‰เบฒเบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบžเบงเบเป€เบฎเบปเบฒเบžเบปเบšเบเบฑเบšเบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒ 2 เบงเบดเบ™เบฒเบ—เบตเปƒเบ™เป€เบงเบฅเบฒเบ„เบฅเบดเบเปƒเบชเปˆเบซเบ™เป‰เบฒ, เบ™เบตเป‰เปเบกเปˆเบ™เบเบญเบกเบฎเบฑเบšเป„เบ”เป‰. เบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบงเบดเบ”เบตเป‚เบญเบชเบปเบ”เป†เบกเบตเปเบ™เบงเป‚เบ™เป‰เบกเบ—เบตเปˆเบˆเบฐเบŠเบฑเบเบŠเป‰เบฒเบชเบญเบ‡เบชเบฒเบกเบงเบดเบ™เบฒเบ—เบต, เปเบ•เปˆเบเบฑเบ‡เบ„เบปเบ‡เปƒเบซเป‰เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบ—เบตเปˆเบชเบปเบกเป€เบซเบ”เบชเบปเบกเบœเบปเบ™. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ–เป‰เบฒเป€เบเบกเบŠเป‰เบฒเบฅเบปเบ‡เป€เบฅเบทเป‰เบญเบเป†เป‚เบ”เบ 500ms, เบกเบฑเบ™เบเปเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบซเบผเบดเป‰เบ™เป„เบ”เป‰. เป€เบ›เบปเป‰เบฒเปเบฒเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบšเบฑเบ™เบฅเบธเบเบฒเบ™เบ•เบญเบšเบชเบฐเปœเบญเบ‡เบ—เบตเปˆเบ•เปเปˆเบฒเบ—เบตเปˆเบชเบธเบ”เป€เบžเบทเปˆเบญเปƒเบซเป‰เบŠเปˆเบญเบ‡เบซเบงเปˆเบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เบงเบฑเบ”เบชเบฐเบ”เบธเบ›เป‰เบญเบ™ เปเบฅเบฐเบชเบทเปˆเบกเบตเปœเป‰เบญเบเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบงเบดเบ—เบตเบเบฒเบ™เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเบ‚เบญเบ‡เบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบงเบดเบ”เบตเป‚เบญเปเบกเปˆเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰.

Open source cloud game on WebRTC: p2p, multiplayer, zero latency
เปเบกเปˆเปเบšเบšเป€เบเบก Cloud เบ—เบปเปˆเบงเป„เบ›

เป‚เบ„เบ‡เบเบฒเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ” CloudRetro

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบชเป‰เบฒเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ‚เบญเบ‡เป€เบเบกเบŸเบฑเบ‡เป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบเบฑเบšเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเป€เบ„เบฑเปˆเบ‡เบ„เบฑเบ”. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบฅเบทเบญเบ Golang เบชเปเบฒเบฅเบฑเบšเบซเบผเบฑเบเบ–เบฒเบ™เบชเบฐเปเบ”เบ‡เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบ—เบตเปˆเบ‚เป‰เบญเบเบ„เบธเป‰เบ™เป€เบ„เบตเบเบ—เบตเปˆเบชเบธเบ”เปเบฅเบฐเป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเป€เบซเบ”เบœเบปเบ™เบญเบทเปˆเบ™เป†, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ„เบปเป‰เบ™เบžเบปเบšเบ•เปเปˆเบกเบฒ. เป„เบ›เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเปเบฅเบฐเบžเบฑเบ”เบ—เบฐเบ™เบฒเบขเปˆเบฒเบ‡เป„เบงเบงเบฒ; เบŠเปˆเบญเบ‡เปƒเบ™ Go เปเบกเปˆเบ™เบ”เบตเป€เบฅเบตเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™ multithreading.

เป‚เบ„เบ‡เบเบฒเบ™ CloudRetro.io เป€เบ›เบฑเบ™เบšเปเบฅเบดเบเบฒเบ™เป€เบเบกเบŸเบฑเบ‡เบ„เบฅเบฒเบงเบ—เบตเปˆเป€เบ›เบตเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบซเบผเบดเป‰เบ™เป€เบเบก retro. เป€เบ›เบปเป‰เบฒเปเบฒเบเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบ™เบณเป€เบญเบปเบฒเบ›เบฐเบชเบปเบšเบเบฒเบ™เบเบฒเบ™เบซเบผเบดเป‰เบ™เป€เบเบกเบ—เบตเปˆเบชเบฐเบ”เบงเบเบชเบฐเบšเบฒเบเบ—เบตเปˆเบชเบธเบ”เปƒเบซเป‰เบเบฑเบšเป€เบเบก retro เปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบก เปเบฅเบฐเป€เบžเบตเปˆเบกเบœเบนเป‰เบซเบผเบดเป‰เบ™เบซเบผเบฒเบเบ„เบปเบ™.
เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฎเบฝเบ™เบฎเบนเป‰เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ™เบตเป‰: https://github.com/giongto35/cloud-game.

เบŸเบฑเบ‡เบŠเบฑเบ™ CloudRetro

CloudRetro เปƒเบŠเป‰เป€เบเบก retro เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡เบžเบฐเบฅเบฑเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบซเบผเบดเป‰เบ™เป€เบเบกเปƒเบ™เบ„เบฅเบฒเบง. เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบ›เบฐเบชเบปเบšเบเบฒเบ™เบเบฒเบ™เบซเบผเบดเป‰เบ™เป€เบเบกเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเบซเบผเบฒเบเบขเปˆเบฒเบ‡.

  • Portability เบ‚เบญเบ‡เป€เบเบก
    • เบเบฒเบ™เบซเบผเบดเป‰เบ™เบ—เบฑเบ™เบ—เบตเป€เบกเบทเปˆเบญเป€เบ›เบตเบ”เปœเป‰เบฒ; เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ”เบฒเบงเป‚เบซเบฅเบ”เบซเบผเบทเบ•เบดเบ”เบ•เบฑเป‰เบ‡
    • เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเบ‚เบญเบ‡เบกเบทเบ–เบท, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบŠเบญเบšเปเบงเบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™

  • เป€เบŠเบ”เบŠเบฑเบ™เป€เบเบกเบชเบฒเบกเบฒเบ”เบ–เบทเบเปเบšเปˆเบ‡เบ›เบฑเบ™เบœเปˆเบฒเบ™เบซเบผเบฒเบเบญเบธเบ›เบฐเบเบญเบ™ เปเบฅเบฐเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบ„เบฅเบฒเบงเบชเบณเบฅเบฑเบšเบ„เบฑเป‰เบ‡เบ•เปเปˆเป„เบ›เบ—เบตเปˆเบ—เปˆเบฒเบ™เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบš
  • เป€เบเบกเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ–เปˆเบฒเบเบ—เบญเบ”เป„เบ”เป‰, เบซเบผเบทเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบซเบผเบดเป‰เบ™เป„เบ”เป‰เป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰เบซเบผเบฒเบเบ„เบปเบ™เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™:
    • Crowdplay เป€เบŠเบฑเปˆเบ™ TwitchPlayPokemon, เบžเบฝเบ‡เปเบ•เปˆเบ‚เป‰เบฒเบกเป€เบงเบ—เบตเปเบฅเบฐเป€เบงเบฅเบฒเบˆเบดเบ‡เบซเบผเบฒเบเบ‚เบถเป‰เบ™
    • เป€เบเบกเบญเบญเบŸเป„เบฅเบญเบญเบ™เป„เบฅเบ™เปŒ. เบœเบนเป‰เปƒเบŠเป‰เบซเบผเบฒเบเบ„เบปเบ™เบชเบฒเบกเบฒเบ”เบซเบผเบดเป‰เบ™เป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เบ•เบฑเป‰เบ‡เป€เบ„เบทเบญเบ‚เปˆเบฒเบ. เบ”เบฝเบงเบ™เบตเป‰ Samurai Shodown เบชเบฒเบกเบฒเบ”เบซเบผเบดเป‰เบ™เป„เบ”เป‰เป‚เบ”เบ 2 เบœเบนเป‰เบซเบผเบดเป‰เบ™เบœเปˆเบฒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ CloudRetro

    Open source cloud game on WebRTC: p2p, multiplayer, zero latency
    เป€เบงเบตเบŠเบฑเบ™เบชเบฒเบ—เบดเบ”เบ‚เบญเบ‡เป€เบเบกเบซเบผเบดเป‰เบ™เบซเบผเบฒเบเบ„เบปเบ™เบญเบญเบ™เป„เบฅเบ™เปŒเบขเบนเปˆเปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เบ•เปˆเบฒเบ‡เป†

    เบžเบทเป‰เบ™เบ–เบฒเบ™เป‚เบ„เบ‡เบฅเปˆเบฒเบ‡

    เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบฅเบฐเป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบŠเบต stack

    เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เปเบกเปˆเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ„เบ‡เบเบฒเบ™.

    1. เบœเบนเป‰เบ™ XNUMX
    เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบšเปเปˆเบชเปเบฒเบ„เบฑเบ™เป€เบเบตเบ™เป„เบ›เบซเบผเบทเป€เบซเบฑเบ™เป„เบ”เป‰เบŠเบฑเบ”เป€เบˆเบ™เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰, เปเบ•เปˆเบกเบฑเบ™เปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบกเบฑเบ™เบŠเปˆเบงเบเปƒเบซเป‰เบเบฒเบ™เบซเบผเบดเป‰เบ™เป€เบเบกเปƒเบ™เบ„เบฅเบฒเบงเบขเบนเปˆเบซเปˆเบฒเบ‡เป„เบเบˆเบฒเบเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบชเบฐเบ•เบตเบกเปเบšเบšเบ”เบฑเป‰เบ‡เป€เบ”เบตเบกเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบชเบธเบกเปƒเบชเปˆเป€เบเบกเบ—เบตเปˆเบœเบนเป‰เบ™เบ”เบฝเบง, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบเปเบฒเบˆเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบชเบนเบ™เบเบฒเบ‡เบซเบผเบท CDN เป€เบžเบฒเบฐเบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ–เปˆเบฒเบเบ—เบญเบ”เป„เบ›เบชเบนเปˆเบกเบฐเบซเบฒเบŠเบปเบ™. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบญเบฑเบšเป‚เบซเบฅเบ”เบชเบฐเบ•เบฃเบตเบกเป„เบ›เบซเบฒเป€เบŠเบตเบšเป€เบงเบต sink เบซเบผเบทเบชเบปเปˆเบ‡เปเบžเบฑเบเป€เบเบฑเบ”เป„เบ›เบเบฑเบ‡เป€เบŠเบตเบšเป€เบงเบต WebSocket เบ—เบตเปˆเป€เบ›เบฑเบ™เบชเบนเบ™เบเบฒเบ‡, เบเบฐเปเบชเบšเปเบฅเบดเบเบฒเบ™เบ–เบทเบเบชเบปเปˆเบ‡เป‚เบ”เบเบเบปเบ‡เปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบœเปˆเบฒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบšเบš peer-to-peer WebRTC.

    2. เบเบฐเปเบชเบกเบตเป€เบ”เบเบ—เบตเปˆเบกเบตเป€เบงเบฅเบฒเบ•เบญเบšเบชเบฐเปœเบญเบ‡เบ•เปเปˆเบฒ
    เบเบฒเบ™เบญเปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบš Stadia, เบ‚เป‰เบญเบเบกเบฑเบเบˆเบฐเป€เบซเบฑเบ™ WebRTC เบ—เบตเปˆเบเปˆเบฒเบงเป€เบ–เบดเบ‡เปƒเบ™เบšเบฒเบ‡เบšเบปเบ”เบ„เบงเบฒเบก. เบ‚เป‰เบญเบเบฎเบนเป‰เบงเปˆเบฒ WebRTC เป€เบ›เบฑเบ™เป€เบ—เบฑเบเป‚เบ™เป‚เบฅเบเบตเบ—เบตเปˆเป‚เบ”เบ”เป€เบ”เบฑเปˆเบ™ เปเบฅเบฐเบ”เบตเป€เบฅเบตเบ”เบชเบณเบฅเบฑเบšเปƒเบŠเป‰เปƒเบ™เป€เบเบกเบŸเบฑเบ‡. WebRTC เปเบกเปˆเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเปƒเบซเป‰เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเปเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบกเบทเบ–เบทเบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เปเบšเบšเบชเบปเบ”เป†เบœเปˆเบฒเบ™ API เบ‡เปˆเบฒเบเป†. เบกเบฑเบ™เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ peer-to-peer, เบ–เบทเบเบ›เบฑเบšเปเบ•เปˆเบ‡เบชเปเบฒเบฅเบฑเบšเบชเบทเปˆ, เปเบฅเบฐเบกเบตเบ•เบปเบงเปเบ›เบ‡เบชเบฑเบ™เบเบฒเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เป€เบŠเบฑเปˆเบ™ VP8 เปเบฅเบฐ H264.

    เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบšเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เปƒเบ™เบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ›เบฐเบชเบปเบšเบเบฒเบ™เบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบซเบผเบฒเบเบเบงเปˆเบฒเบเบฒเบ™เบฎเบฑเบเบชเบฒเบฎเบนเบšเบžเบฒเบšเบ—เบตเปˆเบกเบตเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบชเบนเบ‡. เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบšเบฒเบ‡เบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบเบญเบกเบฎเบฑเบšเป„เบ”เป‰เปƒเบ™ algorithm. Google Stadia เบกเบตเบ‚เบฑเป‰เบ™เบ•เบญเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ‚เบญเบ‡เบเบฒเบ™เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบฎเบนเบšเบžเบฒเบšเปƒเบ™เป€เบŠเบตเบŸเป€เบงเบต, เปเบฅเบฐเป€เบŸเบฃเบกเบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเป‰เบกเบตเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบชเบนเบ‡เบเบงเปˆเบฒเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเป€เบžเบทเปˆเบญเบ™เบกเบดเบ”.

    3. เบเบฒเบ™เปเบˆเบเบขเบฒเบเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆเบกเบตเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบžเบนเบกเบชเบฒเบ”
    เบšเปเปˆเบงเปˆเบฒเบงเบดเบ—เบตเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเป‰เบ”เบตเป€เบ—เบปเปˆเบฒเปƒเบ”, เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบเบฑเบ‡เบ„เบปเบ‡เป€เบ›เบฑเบ™เบ›เบฑเบ”เปƒเบˆเบ•เบฑเบ”เบชเบดเบ™เบ—เบตเปˆเบ›เบฐเบเบญเบšเบชเปˆเบงเบ™เบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”เบ•เปเปˆเบเบฒเบ™ latency. เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ•เป‰เบญเบ‡เบกเบตเบเบปเบ™เป„เบเบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเปƒเบเป‰เบŠเบดเบ”เบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบชเบธเบ”เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เป€เบงเบฅเบฒเป„เบ›เบเบฑเบš (RTT). เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ•เป‰เบญเบ‡เบกเบต 1 เบœเบนเป‰เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ streaming เบซเบผเบฒเบเปเบˆเบเบขเบฒเบเบ—เบปเปˆเบงเป‚เบฅเบ: เบชเบฐเบซเบฐเบฅเบฑเบ”เบ•เบฒเป€เบงเบฑเบ™เบ•เบปเบ, เบชเบฐเบซเบฐเบฅเบฑเบ”เบ•เบฒเป€เบงเบฑเบ™เบญเบญเบ, เป€เบญเบตเบฃเบปเบš, เบชเบดเบ‡เบเบฐเป‚เบ›, เบˆเบตเบ™. เป€เบŠเบตเบšเป€เบงเบตเบชเบฐเบ•เบฃเบตเบกเบกเบดเบ‡เบ—เบฑเบ‡เปเบปเบ”เบ•เป‰เบญเบ‡เบขเบนเปˆเป‚เบ”เบ”เบ”เปˆเบฝเบงเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™. เบฅเบฐเบšเบปเบšเบชเบฒเบกเบฒเบ”เบ›เบฑเบšเบเบฒเบ™เปเบˆเบเบขเบฒเบเบ‚เบญเบ‡เบกเบฑเบ™เป€เบกเบทเปˆเบญเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบซเบผเบทเบญเบญเบเบˆเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ”เป‰เบงเบเบเบฒเบ™เบˆเบฒเบฅเบฐเบˆเบญเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ, เบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ›เบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ•เบฒเบกเปเบ™เบงเบ™เบญเบ™.

    4. เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบ‚เบญเบ‡เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš
    เบเบฒเบ™เบซเบผเบดเป‰เบ™เป€เบเบกเปƒเบ™เบ„เบฅเบฒเบงเปเบกเปˆเบ™เบ”เบตเบ—เบตเปˆเบชเบธเบ”เป€เบกเบทเปˆเบญเบกเบฑเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปœเป‰เบญเบเบ—เบตเปˆเบชเบธเบ”เบˆเบฒเบเบœเบนเป‰เปƒเบŠเป‰. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš. เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเบŠเปˆเบงเบเป€เบฎเบฑเบ”เปƒเบซเป‰เบ›เบฐเบชเบปเบšเบเบฒเบ™เบเบฒเบ™เบซเบผเบดเป‰เบ™เป€เบเบกเบชเบฐเบ”เบงเบเบชเบฐเบšเบฒเบเป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰, เบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบˆเบฒเบเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบŠเบญเบšเปเบงเปเบฅเบฐเบฎเบฒเบ”เปเบง. เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเบเบฑเบ‡เบŠเปˆเบงเบเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เป‰เบฒเบกเป€เบงเบ—เบตเบฅเบฐเบซเบงเปˆเบฒเบ‡เบชเบฐเบšเบฑเบšเบกเบทเบ–เบทเปเบฅเบฐ desktop. เป‚เบŠเบเบ”เบต, WebRTC เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ—เบตเปˆเบ”เบตเปƒเบ™เบ—เบปเปˆเบงเบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเบ•เปˆเบฒเบ‡เป†.

    5. เบเบฒเบ™โ€‹เปเบเบโ€‹เบญเบญเบโ€‹เบขเปˆเบฒเบ‡โ€‹เบˆเบฐโ€‹เปเบˆเป‰เบ‡โ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เป‚เบ•เป‰โ€‹เบ•เบญเบšโ€‹เบ‚เบญเบ‡โ€‹เป€เบเบกโ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบšเปโ€‹เบฅเบดโ€‹เบเบฒเบ™โ€‹
    เบ‚เป‰เบญเบเป€เบšเบดเปˆเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป€เบเบกเบŸเบฑเบ‡เป€เบ›เบฑเบ™เป€เบงเบ—เบต. เบ—เบธเบเบ„เบปเบ™เบ„เบงเบ™เบˆเบฐเบชเบฒเบกเบฒเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเบดเปˆเบ‡เปƒเบ”เบเบฑเบšเป€เบงเบ—เบต. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™ LibRetro เบเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป€เบเบกเบŸเบฑเบ‡เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒ LibRetro เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป€เบเบก emulator เบ—เบตเปˆเบชเบงเบเบ‡เบฒเบกเบชเปเบฒเบฅเบฑเบšเป€เบเบก retro เป€เบŠเบฑเปˆเบ™ SNES, GBA, PS.

    6. เบซเป‰เบญเบ‡เบชเปเบฒเบฅเบฑเบš multiplayer, เบเบฒเบ™เบซเบผเบดเป‰เบ™เบเบนเบ‡เบŠเบปเบ™เปเบฅเบฐเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบžเบฒเบเบ™เบญเบ (deep-link) เบเบฑเบšเป€เบเบก
    CloudRetro เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบซเบผเบดเป‰เบ™เป€เบเบกเปƒเปเปˆเบซเบผเบฒเบเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™ CrowdPlay เปเบฅเบฐ Online MultiPlayer เบชเปเบฒเบฅเบฑเบšเป€เบเบก retro. เบ–เป‰เบฒเบœเบนเป‰เปƒเบŠเป‰เบซเบผเบฒเบเบ„เบปเบ™เป€เบ›เบตเบ”เบฅเบดเป‰เบ‡เป€เบฅเบดเบเบ”เบฝเบงเบเบฑเบ™เบขเบนเปˆเปƒเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบžเบงเบเป€เบ‚เบปเบฒเบˆเบฐเป€เบซเบฑเบ™เป€เบเบกเปเบฅเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เปเบฅเบฐเบเบฑเบ‡เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบกเบกเบฑเบ™เป„เบ”เป‰.

    เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบฅเบฑเบ”เป€เบเบกเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบŸเบฑเบ‡. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เบชเบทเบšเบ•เปเปˆเบซเบผเบดเป‰เบ™เป„เบ”เป‰เบ—เบธเบเป€เบงเบฅเบฒเปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เบญเบทเปˆเบ™.

    7. เบเบฒเบ™เบ›เบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ•เบฒเบกเปเบ™เบงเบ™เบญเบ™
    เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบš SAAS เบ—เบธเบเบกเบทเป‰เบ™เบตเป‰, เบเบฒเบ™เบซเบผเบดเป‰เบ™เป€เบเบกเบ„เบฅเบฒเบงเบ•เป‰เบญเบ‡เบ–เบทเบเบญเบญเบเปเบšเบšเป€เบžเบทเปˆเบญเปƒเบซเป‰เบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเป„เบ”เป‰เบ•เบฒเบกเบฅเบงเบ‡เบ™เบญเบ™. เบเบฒเบ™เบญเบญเบเปเบšเบšเบœเบนเป‰เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™ - เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเบ„เบปเบ™เบ‡เบฒเบ™เบซเบผเบฒเบเบ‚เบถเป‰เบ™เป€เบžเบทเปˆเบญเบฎเบฑเบšเปƒเบŠเป‰เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบซเบผเบฒเบ.

    8. เบšเปเปˆเบกเบตเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเป€เบกเบ„เบ”เบฝเบง
    เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡ CloudRetro เปเบกเปˆเบ™เป‚เบฎเบ”เบขเบนเปˆเปƒเบ™เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบ„เบฅเบฒเบงเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™ (Digital Ocean, Alibaba, custom provider) เบชเปเบฒเบฅเบฑเบšเบžเบฒเบเบžเบทเป‰เบ™เบ•เปˆเบฒเบ‡เป†. เบ‚เป‰เบญเบเป€เบ›เบตเบ”เปƒเบŠเป‰เบ‡เบฒเบ™เปƒเบ™ Docker container เบชเปเบฒเบฅเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเบฐเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ„เบทเบญเบ‚เปˆเบฒเบเป‚เบ”เบเปƒเบŠเป‰ bash script เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ–เบทเบเบฅเบฑเบญเบเบขเบนเปˆเปƒเบ™เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบŸเบฑเบ‡เบ”เบฝเบง. เป‚เบ”เบเบเบฒเบ™เบชเบปเบกเบ—เบปเบšเบญเบฑเบ™เบ™เบตเป‰เบเบฑเบš NAT Traversal เปƒเบ™ WebRTC, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เปƒเบ™เบเบฒเบ™เบ™เบณเปƒเบŠเป‰ CloudRetro เปƒเบ™เบ—เบธเบเป€เบงเบ—เบตเบ„เบฅเบฒเบง เปเบฅเบฐเปเบกเป‰เปเบ•เปˆเบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เปƒเบ”เป†เบเปเบ•เบฒเบก.

    เบเบฒเบ™เบญเบญเบเปเบšเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ

    เบ„เบปเบ™เบ‡เบฒเบ™: (เบซเบผเบทเป€เบŠเบตเบšเป€เบงเบตเบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡) เบ—เบฐเบงเบตเบ„เบนเบ™เป€เบเบก, เปเบฅเปˆเบ™เบ—เปเปˆเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”, เปเบฅเบฐเบ–เปˆเบฒเบเบ—เบญเบ”เบชเบทเปˆเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เปƒเบซเป‰เบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰. เบ•เบปเบง เบขเปˆเบฒเบ‡ เบ‚เบญเบ‡ เบ„เบปเบ™ เป€เบฎเบฑเบ” เบงเบฝเบ เปเบกเปˆเบ™ เป„เบ”เป‰ เบ–เบทเบ เปเบˆเบ เบขเบฒเบ เปƒเบ™ เบ—เบปเปˆเบง เป‚เบฅเบ, เปเบฅเบฐ เบžเบฐ เบ™เบฑเบ เบ‡เบฒเบ™ เปเบ•เปˆ เบฅเบฐ เบ„เบปเบ™ เบชเบฒ เบกเบฒเบ” เบˆเบฑเบ” เบเบฒเบ™ เบเบญเบ‡ เบ›เบฐ เบŠเบธเบก เบœเบนเป‰ เปƒเบŠเป‰ เบซเบผเบฒเบ เบ„เบปเบ™ เบžเป‰เบญเบกเป† เบเบฑเบ™.

    เบœเบนเป‰เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™: เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบœเบนเป‰เปƒเบŠเป‰เปƒเบซเบกเปˆเบเบฑเบšเบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”. เบœเบนเป‰เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™เบžเบปเบงเบžเบฑเบ™เบเบฑเบšเบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบœเปˆเบฒเบ™ WebSocket.

    เบžเบทเป‰เบ™เบ—เบตเปˆเป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เป€เบเบก: เบžเบทเป‰เบ™เบ—เบตเปˆเบˆเบฑเบ”เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบฒเบ‡เป„เบเบชเบนเบ™เบเบฒเบ‡เบชเบณเบฅเบฑเบšเบ—เบธเบเบชเบฐเบ–เบฒเบ™เบฐเป€เบเบก. เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ™เบตเป‰เบชเบฐเบซเบ™เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เป€เบŠเบฑเปˆเบ™เบเบฒเบ™เบ›เบฐเบซเบเบฑเบ” / เบเบฒเบ™เป‚เบซเบผเบ”เบˆเบฒเบเป„เบฅเบเบฐเป„เบ.

    Open source cloud game on WebRTC: p2p, multiplayer, zero latency
    เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบฅเบฐเบ”เบฑเบšเบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡ CloudRetro

    Custom Script

    เป€เบกเบทเปˆเบญเบœเบนเป‰เปƒเบŠเป‰เปƒเบซเบกเปˆเป€เบ›เบตเบ” CloudRetro เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™ 1 เปเบฅเบฐ 2 เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบฎเบนเบšเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰, เบœเบนเป‰เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™เบžเป‰เบญเบกเบเบฑเบšเบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบกเปˆเบ™เบฎเป‰เบญเบ‡เบ‚เปเปƒเบซเป‰เบซเบ™เป‰เบฒเบ—เปเบฒเบญเบดเบ”. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบตเป‰, เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบต 3 เบฅเบนเบเบ„เป‰เบฒเบ„เบดเบ”เป„เบฅเปˆเบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบชเบฐเบซเบกเบฑเบเบ—เบฑเบ‡เบซเบกเบปเบ”เป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป HTTP ping. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบเบฒเบ™เบŠเบฑเบเบŠเป‰เบฒเบ™เบตเป‰เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบœเบนเป‰เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เบฅเบฒเบงเบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ—เบตเปˆเบชเบธเบ”เป€เบžเบทเปˆเบญเบฎเบฑเบšเปƒเบŠเป‰เบœเบนเป‰เปƒเบŠเป‰. เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบ—เบต 4 เบ‚เป‰เบฒเบ‡โ€‹เบฅเบธเปˆเบกโ€‹เบ™เบตเป‰โ€‹เบชเป‰เบฒเบ‡โ€‹เป€เบเบกโ€‹. เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบชเบฐโ€‹เบ•โ€‹เบฃเบตเบก WebRTC เบ–เบทเบโ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบถเป‰เบ™โ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบœเบนเป‰โ€‹เปƒเบŠเป‰โ€‹เปเบฅเบฐโ€‹เบžเบฐโ€‹เบ™เบฑเบโ€‹เบ‡เบฒเบ™โ€‹เบ—เบตเปˆโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบกเบญเบšโ€‹เบซเบกเบฒเบ.
    Open source cloud game on WebRTC: p2p, multiplayer, zero latency
    script เบœเบนเป‰เปƒเบŠเป‰เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡

    เปเบกเปˆเบ™เบซเบเบฑเบ‡เบขเบนเปˆเบžเบฒเบเปƒเบ™เบ„เบปเบ™เบ‡เบฒเบ™

    เป€เบเบก เปเบฅเบฐเบ—เปเปˆเบ–เปˆเบฒเบเบ—เบญเบ”เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เบžเบฒเบเปƒเบ™เบ„เบปเบ™เบ‡เบฒเบ™เปƒเบ™เบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบง เปเบฅเบฐเปเบฅเบเบ›เปˆเบฝเบ™เบ‚เปเป‰เบกเบนเบ™เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบš. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบเบฒเบ™เป‚เบญเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบœเปˆเบฒเบ™ เบŠเปˆเบญเบ‡ Golang เปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ”เบฝเบงเบเบฑเบ™. เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ•เปเปˆเป„เบ›เปเบกเปˆเบ™เบเบฒเบ™เปเบšเปˆเบ‡เปเบเบ, i.e. เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเป€เบญเบเบฐเบฅเบฒเบ”เบ‚เบญเบ‡เป€เบเบกเปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบญเบทเปˆเบ™.

    Open source cloud game on WebRTC: p2p, multiplayer, zero latency
    เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ‚เบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™

    เบญเบปเบ‡โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบ•เบปเป‰เบ™โ€‹เบ•เปโ€‹:

    • WebRTC: เบญเบปเบ‡เบ›เบฐเบเบญเบšเบฅเบนเบเบ‚เปˆเบฒเบเบ—เบตเปˆเบเบญเบกเบฎเบฑเบšเบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰ เปเบฅเบฐเบญเบญเบเบชเบทเปˆเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบˆเบฒเบเป€เบŠเบตเบšเป€เบงเบต.
    • เบ•เบปเบงเบˆเบณเบฅเบญเบ‡เป€เบเบก: เบญเบปเบ‡เบ›เบฐเบเบญเบšเป€เบเบก. เบ‚เปเบ‚เบญเบšเปƒเบˆเบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” Libretro, เบฅเบฐเบšเบปเบšเบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป€เบเบกเบžเบฒเบเปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ”เบฝเบงเบเบฑเบ™เปเบฅเบฐเบžเบฒเบเปƒเบ™ intercept media เปเบฅเบฐ input stream.
    • เป€เบŸเบฃเบกเปƒเบ™เป€เบเบกเบ–เบทเบเบˆเบฑเบš เปเบฅเบฐเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบ•เบปเบงเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”.
    • เบ•เบปเบงเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบฎเบนเบšเบžเบฒเบš/เบชเบฝเบ‡: เบ—เปเปˆเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเป€เบญเบปเบฒเบเบญเบšเบชเบทเปˆ, เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบžเบงเบเบกเบฑเบ™เปƒเบ™เบžเบทเป‰เบ™เบซเบผเบฑเบ‡, เปเบฅเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เบญเบญเบเบกเบฒเบˆเบฒเบเบฎเบนเบšเบžเบฒเบš/เบชเบฝเบ‡เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”.

    ะ ะตะฐะปะธะทะฐั†ะธั

    CloudRetro เบญเบตเบ‡เปƒเบชเปˆ WebRTC เป€เบ›เบฑเบ™เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบตเบเบฐเบ”เบนเบเบชเบฑเบ™เบซเบผเบฑเบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” Golang, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบš WebRTC เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ—เบฑเบเป‚เบ™เป‚เบฅเบเบตเบ—เบตเปˆเปœเป‰เบฒเบ•เบทเปˆเบ™เบ•เบฒเบ•เบทเปˆเบ™เปƒเบˆเบ—เบตเปˆเป„เบ”เป‰เบŠเปˆเบงเบเบ‚เป‰เบญเบเบขเปˆเบฒเบ‡เปƒเบซเบเปˆเบซเบผเบงเบ‡เปƒเบ™เบเบฒเบ™เบšเบฑเบ™เบฅเบธเป€เบงเบฅเบฒ latency เบ—เบตเบชเบญเบ‡เบชเบณเบฅเบฑเบšเบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบ‚เปเป‰เบกเบนเบ™.

    WebRTC

    WebRTC เบ–เบทเบเบญเบญเบเปเบšเบšเบกเบฒเป€เบžเบทเปˆเบญเบชเบฐเปœเบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ peer-to-peer เบ—เบตเปˆเบกเบตเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบชเบนเบ‡เปƒเบ™เปเบญเบฑเบšเบฏเบกเบทเบ–เบท เปเบฅเบฐเบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เป‚เบ”เบเปƒเบŠเป‰ APIs เบ‡เปˆเบฒเบเป†.

    เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบœเปˆเบฒเบ™ NAT

    WebRTC เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบฎเบนเป‰เบˆเบฑเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบ NAT Traversal เบ‚เบญเบ‡เบกเบฑเบ™. WebRTC เบ–เบทเบเบญเบญเบเปเบšเบšเบกเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เปเบšเบš peer-to-peer. เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ‚เบญเบ‡เบกเบฑเบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบเบปเบ‡เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ—เบตเปˆเบชเบธเบ”, เบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™ NAT gateways เปเบฅเบฐ firewalls เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™ peer-to-peer เบœเปˆเบฒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ ICE. เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ™เบตเป‰, WebRTC APIs เบŠเบญเบเบซเบฒเบ—เบตเปˆเบขเบนเปˆ IP เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เป‚เบ”เบเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ STUN เปเบฅเบฐเบชเบปเปˆเบ‡เบ•เปเปˆเป„เบ›เบซเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ relay (เบซเบฑเบ™) เป€เบกเบทเปˆเบญเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป‚เบ”เบเบเบปเบ‡เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบ‚เบถเป‰เบ™.

    เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, CloudRetro เบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™. เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ peer-to-peer เบ‚เบญเบ‡เบกเบฑเบ™เบšเปเปˆเบกเบตเบฅเบฐเบซเบงเปˆเบฒเบ‡เบœเบนเป‰เปƒเบŠเป‰, เปเบ•เปˆเบฅเบฐเบซเบงเปˆเบฒเบ‡เบœเบนเป‰เปƒเบŠเป‰เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบŸเบฑเบ‡. เบ”เป‰เบฒเบ™เป€เบŠเบตเบšเป€เบงเบตเบ‚เบญเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบกเบตเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เป‚เบ”เบเบเบปเบ‡เบซเบ™เป‰เบญเบเบเบงเปˆเบฒเบญเบธเบ›เบฐเบเบญเบ™เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบ—เบปเปˆเบงเป„เบ›. เบ™เบตเป‰เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบ›เบตเบ”เบžเบญเบ”เบ‚เบฒเป€เบ‚เบปเป‰เบฒเบฅเปˆเบงเบ‡เบซเบ™เป‰เบฒเบซเบผเบทเปƒเบŠเป‰เบ—เบตเปˆเบขเบนเปˆ IP เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเป‚เบ”เบเบเบปเบ‡, เป€เบžเบฒเบฐเบงเปˆเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบšเปเปˆเบขเบนเปˆเบซเบฅเบฑเบ‡ NAT.

    เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เป‚เบ„เบ‡เบเบฒเบ™เป€เบ›เบฑเบ™เป€เบงเบ—เบตเบเบฒเบ™เปเบˆเบเบขเบฒเบเป€เบเบกเบชเปเบฒเบฅเบฑเบš Cloud Gaming. เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบœเบนเป‰เบชเป‰เบฒเบ‡เป€เบเบกเบชเบฐเบซเบ™เบญเบ‡เป€เบเบกเปเบฅเบฐเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”. เปเบฅเบฐเบœเบนเป‰เปƒเบŠเป‰เบˆเบฐเบžเบปเบงเบžเบฑเบ™เบเบฑเบšเบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เป‚เบ”เบเบเบปเบ‡. เปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบเบฒเบ™เปเบšเปˆเบ‡เบ‚เบฑเป‰เบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบ™เบตเป‰, CloudRetro เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบเบญเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ™เป‰เปเบฒเบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบกเบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰, เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเป„เบ”เป‰เบซเบผเบฒเบเป€เบกเบทเปˆเบญเบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเป‚เบฎเบ”เบญเบตเบเบ•เปเปˆเป„เบ›. เบšเบปเบ”เบšเบฒเบ”เบ‚เบญเบ‡ WebRTC NAT Traversal เปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบเป€เบžเบทเปˆเบญเบญเปเบฒเบ™เบงเบเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ peer-to-peer เปƒเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบเปˆเบฝเบงเบเบฑเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ™เป‰เปเบฒเบ‚เบญเบ‡เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบก, เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบชเป‰เบฒเบ‡เป€เบžเบทเปˆเบญเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบ.

    เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบงเบดเบ”เบตเป‚เบญ

    เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบงเบดเบ”เบตเป‚เบญเปเบกเปˆเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบ‚เบฒเบ”เบšเปเปˆเป„เบ”เป‰เบ‚เบญเบ‡เบ—เปเปˆเปเบฅเบฐเบ›เบฐเบเบญเบšเบชเปˆเบงเบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเบ•เปเปˆเบเบฒเบ™เป„เบซเบผเบ—เบตเปˆเบฅเบฝเบšเบ‡เปˆเบฒเบ. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบกเบฑเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบˆเบฐเบฎเบนเป‰เบ—เบธเบเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบงเบดเบ”เบตเป‚เบญ VP8/H264, เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบชเบฒเบกเบฒเบ”เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆเบ•เบปเบงเป€เบฅเบทเบญเบเบ„เบงเบฒเบกเป„เบงเปƒเบ™เบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบงเบดเบ”เบตเป‚เบญ, เปเบเป‰เบšเบฑเบ™เบซเบฒเบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบšเปเปˆเบ„เบฒเบ”เบ„เบดเบ”, เปเบฅเบฐเบ›เบฑเบšเป€เบงเบฅเบฒ latency.

    เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบงเบดเบ”เบตเป‚เบญเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบชเบฐเบ•เบตเบกเปเบกเปˆเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เป‰เบฒเบ—เบฒเบเป€เบžเบฒเบฐเบงเปˆเบฒเบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ•เป‰เบญเบ‡เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเป€เบงเบฅเบฒเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ” + เป€เบงเบฅเบฒเบชเบปเปˆเบ‡เบœเปˆเบฒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบ + เป€เบงเบฅเบฒเบเบฒเบ™เบ–เบญเบ”เบฅเบฐเบซเบฑเบ”เปเบกเปˆเบ™เบ•เปเปˆเบฒเบ—เบตเปˆเบชเบธเบ”เป€เบ—เบปเปˆเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ•เป‰เบญเบ‡เบชเบญเบ”เบ„เปˆเบญเบ‡เปเบฅเบฐเบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡. เบเบฒเบ™เปเบฅเบเบ›เปˆเบฝเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบšเปเปˆเบ–เบทเบเบ™เบณเปƒเบŠเป‰โ€”เบ•เบปเบงเบขเปˆเบฒเบ‡: เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เบฎเบญเบ‡เบฎเบฑเบšเป€เบงเบฅเบฒเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบเบฒเบงเบ™เบฒเบ™เบ•เปเปˆเบเบฑเบšเบ‚เบฐเปœเบฒเบ”เป„เบŸเบฅเปŒเบ—เบตเปˆเบ™เป‰เบญเบเบเบงเปˆเบฒ เปเบฅเบฐเป€เบงเบฅเบฒเบเบฒเบ™เบ–เบญเบ”เบฅเบฐเบซเบฑเบ”, เบซเบผเบทเปƒเบŠเป‰เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบ—เบตเปˆเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบ™.

    เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเบขเบนเปˆเป€เบšเบทเป‰เบญเบ‡เบซเบฅเบฑเบ‡เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบงเบดเบ”เบตเป‚เบญเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบฅเบปเบšเบฅเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบฎเบฑเบเบชเบฒเบฅเบฐเบ”เบฑเบšเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบ—เบตเปˆเบเบญเบกเบฎเบฑเบšเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰. เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เป€เบŸเบฃเบกเบฎเบนเบšเบžเบฒเบšเบ„เบปเบ‡เบ—เบตเปˆเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบšเบธเบเบ„เบปเบ™, เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆ infers เบเบญเบšเบ›เบฐเบˆเบธเบšเบฑเบ™เบˆเบฒเบเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเปเบฅเบฐเบ•เปเปˆเป„เบ›, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบฝเบ‡เปเบ•เปˆเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเบกเบฑเบ™เบ–เบทเบเบชเบปเปˆเบ‡. เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เบˆเบฒเบเบ•เบปเบงเบขเปˆเบฒเบ‡เบเบฑเบš Pacman, เบžเบฝเบ‡เปเบ•เปˆเบˆเบธเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ–เบทเบเบชเบปเปˆเบ‡เบ•เปเปˆ.

    Open source cloud game on WebRTC: p2p, multiplayer, zero latency
    เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบเบญเบšเบงเบดเบ”เบตเป‚เบญเบ—เบตเปˆเปƒเบŠเป‰ Pacman เป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡

    เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบชเบฝเบ‡

    เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™, เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบชเบฝเบ‡เบˆเบฐเบเบปเบเป€เบฅเบตเบเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบฐเบ™เบธเบ”เบšเปเปˆเบชเบฒเบกเบฒเบ”เบฎเบฑเบšเบฎเบนเป‰เป„เบ”เป‰. Opus เบ›เบฐเบˆเบธเบšเบฑเบ™เปเบกเปˆเบ™เบ•เบปเบงเปเบ›เบ‡เบชเบฑเบ™เบเบฒเบ™เบชเบฝเบ‡เบ—เบตเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ•เบดเบžเบฒเบšเบ”เบตเบ—เบตเปˆเบชเบธเบ”. เบกเบฑเบ™เบ–เบทเบเบญเบญเบเปเบšเบšเบกเบฒเป€เบžเบทเปˆเบญเบชเบปเปˆเบ‡เบ„เบทเป‰เบ™เบชเบฝเบ‡เบœเปˆเบฒเบ™เป‚เบ›เบฃเป‚เบ•เบ„เบญเบ™ datagram เบ—เบตเปˆเบชเบฑเปˆเบ‡เป€เบŠเบฑเปˆเบ™ RTP (Real Time Transport Protocol). latency เบ‚เบญเบ‡เบกเบฑเบ™เบ•เปเปˆเบฒเบเบงเปˆเบฒ mp3 เปเบฅเบฐ aac, เปเบฅเบฐเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบชเบนเบ‡เบเบงเปˆเบฒ. latency เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเปเบกเปˆเบ™เบ›เบฐเบกเบฒเบ™ 5 ~ 66,5ms.

    Pion, WebRTC เปƒเบ™ Golang

    เบ›เป‰เบฒ เป€เบ›เบฑเบ™เป‚เบ„เบ‡เบเบฒเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”เบ—เบตเปˆเบ™เปเบฒเป€เบญเบปเบฒ WebRTC เป„เบ›เบซเบฒ Golang. เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบซเปเปˆเบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” C++ WebRTC เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡, Pion เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” Golang เบžเบทเป‰เบ™เป€เบกเบทเบญเบ‡เบ‚เบญเบ‡ WebRTC เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ”เบตเบเบงเปˆเบฒ, เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡ Go, เปเบฅเบฐเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเป€เบงเบตเบŠเบฑเบ™เปƒเบ™เป‚เบ›เป‚เบ•เบ„เบญเบ™ WebRTC.

    เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบเบฑเบ‡เป€เบ›เบตเบ”เบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เบ”เป‰เบงเบเบ•เบปเบงเป€เบ„เบทเปˆเบญเบ‡เบ—เบตเปˆเบ”เบตเบซเบผเบฒเบเบญเบฑเบ™ เบ”เป‰เบงเบเบเบฒเบ™เบ•เบญเบšเบชเบฐเปœเบญเบ‡เบ•เปเปˆเบงเบดเบ™เบฒเบ—เบต. เบกเบฑเบ™เบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบ‚เบญเบ‡ STUN, DTLS, SCTP, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เปเบฅเบฐเบšเบฒเบ‡เบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบเบฑเบš QUIC เปเบฅเบฐ WebAssembly. เบซเปเบชเบฐเปเบธเบ”เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”เบ™เบตเป‰เป€เบญเบ‡เป€เบ›เบฑเบ™เปเบซเบผเปˆเบ‡เบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰เบ—เบตเปˆเบ”เบตเบซเบผเบฒเบเบžเป‰เบญเบกเบ”เป‰เบงเบเป€เบญเบเบฐเบชเบฒเบ™เบ—เบตเปˆเบ”เบตเป€เบฅเบตเบ”, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ›เบฃเป‚เบ•เบ„เปเป€เบ„เบทเบญเบ‚เปˆเบฒเบ, เปเบฅเบฐเบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบ”เบตเป€เบฅเบตเบ”.

    เบŠเบธเบกเบŠเบปเบ™ Pion, เบ™เปเบฒเบžเบฒเป‚เบ”เบเบœเบนเป‰เบชเป‰เบฒเบ‡เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบฐเบ•เบทเบฅเบทเบฅเบปเป‰เบ™เบซเบผเบฒเบ, เปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบกเบตเบŠเบตเบงเบดเบ”เบŠเบตเบงเบฒ, เบกเบตเบเบฒเบ™เบชเบปเบ™เบ—เบฐเบ™เบฒเบ—เบตเปˆเบกเบตเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบซเบผเบฒเบเบขเปˆเบฒเบ‡เบเปˆเบฝเบงเบเบฑเบš WebRTC. เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ—เปˆเบฒเบ™เบกเบตเบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเปƒเบ™เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบŠเบตเบ™เบตเป‰, เป€เบ‚เบปเป‰เบฒเบฎเปˆเบงเบก http://pion.ly/slack - เป€เบˆเบปเป‰เบฒโ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฝเบ™โ€‹เบฎเบนเป‰โ€‹เบซเบผเบฒเบโ€‹เบชเบดเปˆเบ‡โ€‹เปƒเบซเบกเปˆโ€‹.

    เบเบฒเบ™เบ‚เบฝเบ™ CloudRetro เปƒเบ™ Golang

    Open source cloud game on WebRTC: p2p, multiplayer, zero latency
    เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เปƒเบ™ Go

    Go Channels เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

    เบ‚เปเบ‚เบญเบšเปƒเบˆเบเบฑเบšเบเบฒเบ™เบญเบญเบเปเบšเบšเบŠเปˆเบญเบ‡เบ—เบตเปˆเบชเบงเบเบ‡เบฒเบกเบ‚เบญเบ‡ Go, เบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เป€เบซเบ”เบเบฒเบ™ เปเบฅเบฐเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบ. เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบšเบขเบนเปˆเปƒเบ™เปเบœเบ™เบงเบฒเบ”, GoRoutines เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบกเบตเบซเบผเบฒเบเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบฐเบซเบ™เบฒเบ™. เปเบ•เปˆเบฅเบฐเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ„เบธเป‰เบกเบ„เบญเบ‡เบฅเบฑเบ”เบ‚เบญเบ‡เบ•เบปเบ™เปเบฅเบฐเบ•เบดเบ”เบ•เปเปˆเบชเบทเปˆเบชเบฒเบ™เบœเปˆเบฒเบ™เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบ•เปˆเบฒเบ‡เป†. เบเบฒเบ™เบขเบทเบ™เบขเบฑเบ™เบเบฒเบ™เป€เบฅเบทเบญเบเบ‚เบญเบ‡ Golang เบšเบฑเบ‡เบ„เบฑเบšเปƒเบซเป‰เป€เบซเบ”เบเบฒเบ™เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบญเบฑเบ™เปœเบถเปˆเบ‡เบ–เบทเบเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡เปƒเบ™เป€เบเบก (เปเบฒเบเบ•เบดเบเป€เบเบก). เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบเบฒเบ™เบฅเบฑเบญเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเบญเบเปเบšเบšเบ™เบตเป‰. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบกเบทเปˆเบญเบœเบนเป‰เปƒเบŠเป‰เบšเบฑเบ™เบ—เบถเบ, เบฎเบนเบšเบžเบฒเบšเป€เบ•เบฑเบกเบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ™เบฐเป€เบเบกเปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™. เบชเบฐเบ–เบฒเบ™เบฐเบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเบชเบทเบšเบ•เปเปˆเบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡, เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบšเบˆเบปเบ™เบเปˆเบงเบฒเบšเบฑเบ™เบ—เบถเบเบชเปเบฒเป€เบฅเบฑเบ”. เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เปเบ•เปˆเบฅเบฐเปเบฒเบเบ•เบดเบเป€เบเบก, backend เบžเบฝเบ‡เปเบ•เปˆเบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบ เบซเบผเบทเบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™, เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฐเบ—เบนเป‰เบ‚เบญเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ›เบญเบ”เป„เบž.

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

    เบžเบฑเบ”เบฅเบปเบกเป€เบ‚เบปเป‰เบฒ/เบžเบฑเบ”เบฅเบปเบกเบญเบญเบ

    เปเบกเปˆเปเบšเบš Golang เบ™เบตเป‰เป€เบซเบกเบฒเบฐเบเบฑเบšเบเปเบฅเบฐเบ™เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ CrowdPlay เปเบฅเบฐ Multiple Player เบ‚เบญเบ‡เบ‚เป‰เบญเบเบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™เปเบšเบš. เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบฎเบนเบšเปเบšเบšเบ™เบตเป‰, เบงเบฑเบ”เบชเบฐเบ”เบธเบ›เป‰เบญเบ™เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”เบขเบนเปˆเปƒเบ™เบซเป‰เบญเบ‡เบ”เบฝเบงเปเบกเปˆเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เป€เบ‚เบปเป‰เบฒเบเบฒเบ‡. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบกเบตเป€เบ”เบเป€เบเบกเบ–เบทเบเบ™เบณเปƒเบŠเป‰เปƒเบซเป‰เบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบ—เบฑเบ‡เปเบปเบ”เบขเบนเปˆเปƒเบ™เบซเป‰เบญเบ‡เบ”เบฝเบงเบเบฑเบ™. เบ”เป‰เบงเบเบงเบดเบ—เบตเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบšเบฑเบ™เบฅเบธเบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบฅเบฑเบ”เป€เบเบกเบฅเบฐเบซเบงเปˆเบฒเบ‡เป€เบเบกเบซเบผเบฒเบเป†เบ„เบฑเป‰เบ‡เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™.

    Open source cloud game on WebRTC: p2p, multiplayer, zero latency
    synchronization เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบญเบ‡เบ›เบฐเบŠเบธเบกเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™

    เบ‚เปเป‰เป€เบชเบเบ‚เบญเบ‡ Golang

    Golang เบšเปเปˆเบชเบปเบกเบšเบนเบ™เปเบšเบš. เบŠเปˆเบญเบ‡เปเบกเปˆเบ™เบŠเป‰เบฒ. เป€เบกเบทเปˆเบญเบ›เบฝเบšเบ—เบฝเบšเบเบฑเบšเบเบฒเบ™เบ›เบดเบ”เบเบฑเป‰เบ™, เบŠเปˆเบญเบ‡เบ—เบฒเบ‡ Go เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบงเบดเบ—เบตเบ—เบตเปˆเบ‡เปˆเบฒเบเบเบงเปˆเบฒเบ—เบตเปˆเบˆเบฐเบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเป€เบซเบ”เบเบฒเบ™เบ—เบตเปˆเบเบปเบ‡เบเบฑเบ™เปเบฅเบฐเป€เบ›เบฑเบ™เบเบฐเบ—เบนเป‰, เปเบ•เปˆเบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบšเปเปˆเป„เบ”เป‰เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”. เบกเบตเป€เบซเบ”เบœเบปเบ™เบ—เบฒเบ‡เบ•เบฑเบ™เบ—เบตเปˆเบŠเบฑเบšเบŠเป‰เบญเบ™เบขเบนเปˆเปƒเบ•เป‰เบŠเปˆเบญเบ‡. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบฎเบฑเบ”เบเบฒเบ™เบ›เบฑเบšเบ•เบปเบงเบšเบฒเบ‡เบขเปˆเบฒเบ‡เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เบ™เปเบฒเปƒเบŠเป‰เปƒเบซเบกเปˆ locks เปเบฅเบฐเบ„เปˆเบฒเบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ›เปˆเบฝเบ™เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.

    เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบœเบนเป‰เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเปƒเบ™ Golang เปเบกเปˆเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบˆเบฑเบ”เบเบฒเบ™เป„เบ”เป‰, เป€เบŠเบดเปˆเบ‡เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบเปเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบเบฒเบ™เบขเบธเบ”เบŠเบปเปˆเบงเบ„เบฒเบงเบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ‡เป„เบช. เบญเบฑเบ™เบ™เบตเป‰เปเบŠเบเปเบŠเบ‡เบขเปˆเบฒเบ‡เปƒเบซเบเปˆเบซเบผเบงเบ‡เบเบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบเบฒเบ™เบ–เปˆเบฒเบเบ—เบญเบ”เปเบšเบšเบชเบปเบ”เป†.

    COG

    เป‚เบ„เบ‡เบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปƒเบŠเป‰เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ” Golang VP8/H264 เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเบชเบณเบฅเบฑเบšเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”เบชเบทเปˆ เปเบฅเบฐ Libretro เบชเบณเบฅเบฑเบšเบ•เบปเบงเบˆเบณเบฅเบญเบ‡เป€เบเบก. เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบซเปเปˆเบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” C เปƒเบ™ Go เป‚เบ”เบเปƒเบŠเป‰ COG. เบšเบฒเบ‡เบ‚เปเป‰เป€เบชเบเปเบกเปˆเบ™เป„เบ”เป‰เบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™ เบ•เบญเบšเบ™เบตเป‰เป‚เบ”เบ Dave Cheney. เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบ‚เป‰เบญเบเบžเบปเบš:

    • เบ„เบงเบฒเบกเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ—เบตเปˆเบˆเบฐเบˆเบฑเบšเบญเบธเบ›เบฐเบ•เบดเป€เบซเบ”เปƒเบ™ CGO, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบต Golang RecoveryCrash;
    • เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบ—เบตเปˆเบˆเบฐเบเปเบฒเบ™เบปเบ”เบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เบ”เป‰เบฒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เบเบงเบ”เบžเบปเบšเบšเบฑเบ™เบซเบฒเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เปƒเบ™ CGO.

    เบชเบฐเบซเบฅเบธเบš

    เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบšเบฑเบ™เบฅเบธเป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ‚เบญเบ‡เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเปƒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป€เบเบกเบŸเบฑเบ‡เปเบฅเบฐเบชเป‰เบฒเบ‡เป€เบงเบ—เบตเบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบซเบผเบดเป‰เบ™เป€เบเบก retro nostalgic เบเบฑเบšเบซเบกเบนเปˆเป€เบžเบทเปˆเบญเบ™เบ‚เบญเบ‡เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบญเบญเบ™เป„เบฅเบ™เปŒ. เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ™เบตเป‰โ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹เป„เบ›โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ–เป‰เบฒโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบซเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบธเบ” Pion เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™โ€‹เบ‚เบญเบ‡โ€‹เบŠเบธเบกโ€‹เบŠเบปเบ™ Pionโ€‹. เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบกเบตโ€‹เบ„เบงเบฒเบกโ€‹เบเบฐโ€‹เบ•เบฑเบ™โ€‹เบเบนโ€‹เบ—เบตเปˆโ€‹เบชเบธเบ”โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบžเบฑเบ”โ€‹เบ—เบฐโ€‹เบ™เบฒโ€‹เบขเปˆเบฒเบ‡โ€‹เป€เบ‚เบฑเป‰เบกโ€‹เปเบ‚เบ‡โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹. APIs เบ‡เปˆเบฒเบเป†เบ—เบตเปˆเบชเบฐเปœเบญเบ‡เปƒเบซเป‰เป‚เบ”เบ WebRTC เปเบฅเบฐ Pion เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เปเบšเบšเบšเปเปˆเบ•เบดเบ”เบ‚เบฑเบ”. เบซเบผเบฑเบเบ–เบฒเบ™เบชเบฐเปเบ”เบ‡เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบ‚เป‰เบญเบเป„เบ”เป‰เบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒเปƒเบ™เบญเบฒเบ—เบดเบ”เบ”เบฝเบงเบเบฑเบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ‚เป‰เบญเบเบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เปเบšเบš peer-to-peer (P2P).

    เป€เบ–เบดเบ‡เบงเปˆเบฒเบˆเบฐเบกเบตเบ„เบงเบฒเบกเบ‡เปˆเบฒเบเบ”เบฒเบเบ‚เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡, P2P streaming เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡เปเบกเปˆเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบชเบฐเบฅเบฑเบšเบชเบฑเบšเบŠเป‰เบญเบ™เบซเบผเบฒเบเปƒเบ™เบงเบดเบ—เบฐเบเบฒเบชเบฒเบ”เบ„เบญเบกเบžเบดเบงเป€เบ•เบต. เบ™เบฒเบ‡เบ•เป‰เบญเบ‡เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเบเบฒเบงเบ™เบฒเบ™เป€เบŠเบฑเปˆเบ™ IP เปเบฅเบฐ NAT เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบเบญเบ‡เบ›เบฐเบŠเบธเบก peer-to-peer. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ™เบตเป‰, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบฎเบฑเบšเบ„เบงเบฒเบกเบฎเบนเป‰เบ—เบตเปˆเบกเบตเบ„เบธเบ™เบ„เปˆเบฒเบซเบผเบฒเบเบเปˆเบฝเบงเบเบฑเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบเปเบฅเบฐเบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบŠเบธเบเบเบนเป‰เปƒเบซเป‰เบ—เบธเบเบ„เบปเบ™เบžเบฐเบเบฒเบเบฒเบกเบชเป‰เบฒเบ‡เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™ P2P เป‚เบ”เบเปƒเบŠเป‰ WebRTC.

    CloudRetro เบ•เบญเบšเบชเบฐเปœเบญเบ‡เป„เบ”เป‰เบ—เบธเบเบเปเบฅเบฐเบ™เบตเบเบฒเบ™เบ™เบณเปƒเบŠเป‰เบ—เบตเปˆเบ‚เป‰เบญเบเบ„เบฒเบ”เป„เบงเป‰เบˆเบฒเบเบ—เบฑเบ”เบชเบฐเบ™เบฐเบ‚เบญเบ‡เบ‚เป‰เบญเบเปƒเบ™เบ–เบฒเบ™เบฐเบ™เบฑเบเบซเบผเบดเป‰เบ™เป€เบเบกเบเบธเบเบเบธเบ. เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบ„เบดเบ”เบงเปˆเบฒเบกเบตเบซเบผเบฒเบเบ‚เบปเบ‡เป€เบ‚เบ”เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบ‚เป‰เบญเบเบชเบฒเบกเบฒเบ”เบ›เบฑเบšเบ›เบธเบ‡เป„เบ”เป‰, เป€เบŠเบฑเปˆเบ™เบงเปˆเบฒเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบกเบตเบ„เบงเบฒเบกเปœเป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบท เปเบฅเบฐ เบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบฒเบเบ‚เบถเป‰เบ™, เบชเบฐเปœเบญเบ‡เบเบฒเบŸเบดเบเป€เบเบกเบ—เบตเปˆเบกเบตเบ„เบธเบ™เบ™เบฐเบžเบฒเบšเบชเบนเบ‡เบ‚เบถเป‰เบ™ เบซเบผเบท เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เป€เบเบกเบฅเบฐเบซเบงเปˆเบฒเบ‡เบœเบนเป‰เปƒเบŠเป‰. เบ‚เป‰เบญเบเบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบซเบ™เบฑเบเปƒเบ™เป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰. เบเบฐเบฅเบธเบ™เบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบก เป‚เบ„เบ‡เบเบฒเบ™ เปเบฅเบฐเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบกเบฑเบ™เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบฑเบเบกเบฑเบ™.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™