Papali ea leru e bulehileng ho WebRTC: p2p, libapali tse ngata, zero latency

Papali ea leru e bulehileng ho WebRTC: p2p, libapali tse ngata, zero latency
Software e le tšebeletso, litšebeletso tsa motheo e le tšebeletso, sethala e le tšebeletso, sethala sa puisano e le tšebeletso, seboka sa video e le tšebeletso, ho thoe'ng ka papali ea maru e le tšebeletso? Ho se ho bile le liteko tse 'maloa tsa ho theha papali ea leru (Cloud Gaming), joalo ka Stadia, e sa tsoa tsebisoa ke Google. Stadia ha e ncha ho WebRTC, empa na ba bang ba ka sebelisa WebRTC ka tsela e tšoanang?

Thanh Nguyen o nkile qeto ea ho leka monyetla ona molemong oa hae oa mohloli o bulehileng oa CloudRetro. CloudRetro e thehiloe ho Pion, tummeng Laeborari ea WebRTC e thehiloeng ho Go (kea leboha Bontshitswe ho tsoa ho sehlopha sa ntlafatso sa Pion bakeng sa thuso ea bona ho lokiseng sengoloa sena). Sehloohong sena, Thanh o fana ka kakaretso ea mohaho oa morero oa hae, hape o bua ka lintho tse molemo tseo a ithutileng tsona le hore na ke mathata afe ao a ileng a kopana le 'ona nakong ea mosebetsi oa hae.

ho kena

Selemong se fetileng, ha Google e phatlalatsa Stadia, e ile ea nkhothatsa. Mohopolo ona o ikhethile ebile o na le boqapi hoo ke neng ke lula ke ipotsa hore na sena se ka khoneha joang ka theknoloji e teng. Takatso ea ho utloisisa sehlooho sena hamolemo e ile ea ntšusumelletsa ho iketsetsa mofuta oa ka oa papali ea leru e bulehileng. Phello e bile e tsotehang feela. Ka tlase ke rata ho arolelana mokhoa oa ho sebetsa selemong sa ka morero.

TLDR: mofuta o mokhuts'oane oa li-slide o nang le lintlha tsa bohlokoa

Hobaneng ha papali ea maru e le bokamoso

Ke lumela hore Cloud Gaming e tla tloha e fetoha moloko o latelang oa lipapali feela, empa le likarolo tse ling tsa saense ea k'homphieutha. Cloud gaming ke sehlohlolo sa mofuta oa moreki / seva. Moetso ona o holisa taolo ea morao-rao mme o fokotsa mosebetsi oa pele ka ho amohela lintlha tsa papali ho seva e hole le ho hasanya litšoantšo / molumo ho moreki. Seva e etsa ts'ebetso e boima kahoo moreki ha a sa le mohaung oa mefokolo ea lisebelisoa.

Google Stadia e hlile e u lumella ho bapala Lipapali tsa AAA (ke hore lipapali tsa blockbuster tsa maemo a holimo) ho sehokelo se kang YouTube. Mokhoa o ts'oanang o ka sebelisoa lits'ebetsong tse ling tse boima tse kantle ho marang-rang joalo ka sistimi e sebetsang kapa 2D/3D graphic design, joalo-joalo. e le hore re ka li tsamaisa ka mokhoa o tsitsitseng ho lisebelisoa tsa maemo a tlase ho li-platform tse ngata.

Papali ea leru e bulehileng ho WebRTC: p2p, libapali tse ngata, zero latency
Bokamoso ba theknoloji ena: Ak'u nahane haeba Microsoft Windows 10 e sebetsa ho sebatli sa Chrome?

Papali ea Cloud e phephetsa ka botekgeniki

Papali ke e 'ngoe ea libaka tse sa tloaelehang moo karabelo e sa feleng, e potlakileng ea basebelisi e hlokahalang. Haeba ka linako tse ling re thulana le tieho ea metsotsoana e 2 ha re tobetsa leqephe, sena sea amoheleha. Melaetsa ea video e phelang e atisa ho lieha metsotsoana e seng mekae, empa e ntse e fana ka ts'ebeliso e utloahalang. Leha ho le joalo, haeba papali hangata e lieha ho fihla ho 500ms, ha e bapale. Sepheo sa rona ke ho finyella latency e tlaase haholo e le hore lekhalo pakeng tsa ho kenya le mecha ea litaba e be nyenyane ka hohle kamoo ho ka khonehang. Ka hona, mokhoa oa setso oa ho phallela video ha o sebetse mona.

Papali ea leru e bulehileng ho WebRTC: p2p, libapali tse ngata, zero latency
Kakaretso Cloud Game Template

Open source project CloudRetro

Ke entse qeto ea ho etsa mohlala oa teko ea papali ea leru ho bona hore na sena sohle se ka khoneha ka lithibelo tse thata joalo tsa marang-rang. Ke ile ka khetha Golang bakeng sa bopaki ba khopolo hobane e ne e le puo eo ke neng ke e tseba haholo 'me e ne e loketse hantle bakeng sa ts'ebetsong ena ka mabaka a mang a mangata, joalokaha ke ile ka fumana hamorao. Go bonolo ebile e ntshetsa pele ka potlako haholo; Liteishene ho Go li ntle bakeng sa ho laola multithreading.

Morero CloudRetro.io ke ts'ebeletso e bulehileng ea papali ea leru bakeng sa papali ea retro. Sepheo sa morero ke ho tlisa boiphihlelo bo monate ka ho fetisisa lipapaling tsa setso tsa retro le ho eketsa libapali tse ngata.
U ka ithuta haholoanyane ka morero mona: https://github.com/giongto35/cloud-game.

Ts'ebetso ea CloudRetro

CloudRetro e sebelisa lipapali tsa retro ho bonts'a matla a papali ea leru. E leng se u lumellang hore u fumane liphihlelo tse ngata tse ikhethang tsa papali.

  • Ho nkeha ha papali
    • Ho bapala hang hang ha u bula leqephe; ha ho download kapa ho instola tse hlokahalang
    • E sebetsa ho sebatli sa mehala, kahoo ha ho na software e hlokahalang ho e tsamaisa

  • Linako tsa lipapali li ka arolelanoa lisebelisoa tse ngata 'me tsa bolokoa marung bakeng sa nako e tlang ha u kena
  • Papali e ka bapaloa, kapa e ka bapaloa ke basebelisi ba 'maloa ka nako e le ngoe:
    • Crowdplay joalo ka TwitchPlayPokemon, ke sethala se fetang feela le nako ea nnete
    • Lipapali tse kantle ho Marang-rang. Basebelisi ba bangata ba ka bapala ntle le ho theha marang-rang. Samurai Shodown joale e ka bapaloa ke libapali tse 2 marang-rang a CloudRetro

    Papali ea leru e bulehileng ho WebRTC: p2p, libapali tse ngata, zero latency
    Mofuta oa demo oa papali ea libapali tse ngata tsa inthanete lisebelisoa tse fapaneng

    Lisebelisuoa

    Litlhoko le theknoloji stack

    Ka tlase ke lethathamo la litlhoko tseo ke li behileng pele ke qala morero.

    1. Sebapadi se le seng
    Tlhokahalo ena e kanna ea bonahala e se ea bohlokoa haholo kapa e hlakile mona, empa ke e 'ngoe ea lintho tseo ke li nkang, e lumella papali ea leru hore e lule hole le lits'ebeletso tsa setso tsa ho hasanya ka hohle kamoo ho ka khonehang. Haeba re tsepamisa maikutlo papaling ea sebapali se le seng, re ka tlosa seva se bohareng kapa CDN hobane ha rea ​​​​tlameha ho phallela ho bongata. Sebakeng sa ho kenya melapo ho seva sa teba kapa ho fetisa lipakete ho seva sa WebSocket se bohareng, melapo ea lits'ebeletso e fanoa ka kotloloho ho mosebelisi ka khokahano ea lithaka tsa WebRTC.

    2. Low latency mecha ea litaba molapo
    Ha ke bala ka Stadia, hangata ke bona WebRTC e boletsoeng lingoloeng tse ling. Ke ile ka hlokomela hore WebRTC ke theknoloji e ikhethang 'me e loketse ho sebelisoa lipapaling tsa maru. WebRTC ke projeke e fanang ka libatli le lits'ebetso tsa mehala ka puisano ea nako ea nnete ka API e bonolo. E fana ka khokahanyo ea lithaka, e ntlafalitsoe bakeng sa mecha ea litaba, 'me e na le li-codec tse tloaelehileng tse hahiloeng tse kang VP8 le H264.

    Ke etelletse pele ho netefatsa boiphihlelo bo nepahetseng ka ho fetesisa ba mosebelisi ho feta ho boloka lits'oants'o tsa boleng bo holimo. Litahlehelo tse ling lia amoheleha ho algorithm. Google Stadia e na le mohato o mong oa ho fokotsa boholo ba setšoantšo ho seva, 'me liforeimi li phahamisetsoa boleng bo holimo pele li fetisetsoa ho lithaka.

    3. Mehaho ea motheo e ajoang e nang le litsela tsa libaka
    Ho sa tsotelehe hore na algorithm ea compression le khoutu li ntlafalitsoe hakae, marang-rang e ntse e le eona ntho e etsang qeto e tlatsetsang haholo ho latency. Mehaho e tlameha ho ba le mokhoa oa ho kopanya seva e haufi le mosebelisi ho fokotsa nako ea ho ea le ho khutla (RTT). Meaho e tlameha ho ba le mohokahanyi a le mong le li-server tse 'maloa tse phallelang lefatšeng ka bophara: US West, US East, Europe, Singapore, China. Li-server tsohle tsa marang-rang li tlameha ho arohanngoa ka botlalo. Sistimi e ka fetola kabo ea eona ha seva se ikopanya kapa se tlohela marang-rang. Kahoo, ka sephethephethe se seholo, ho eketsa li-server tse eketsehileng ho lumella hore ho be le sekhahla se otlolohileng.

    4. Khokahano ea sebatli
    Papali ea Cloud e molemo ka ho fetisisa ha e hloka bonyane ho tsoa ho basebelisi. Sena se bolela hore hoa khoneha ho sebetsa ka har'a sebatli. Libatli li thusa ho etsa hore boiphihlelo ba papali bo be bonolo kamoo ho ka khonehang bakeng sa basebelisi, ho ba pholosa ho kenya software le hardware. Libatli li boetse li thusa ho fana ka ts'ebetso ea sethala lipakeng tsa mefuta ea mobile le desktop. Ka lehlohonolo, WebRTC e ts'ehetsoa hantle ho libatli tse fapaneng.

    5. Karohano e hlakileng ea sebopeho sa papali le tšebeletso
    Ke talima tšebeletso ea papali ea leru e le sethala. E mong le e mong o lokela ho khona ho hokahanya ntho leha e le efe sethaleng. Joale ke kopantse LibRetro ka ts'ebeletso ea papali ea leru hobane LibRetro e fana ka sebopeho se setle sa emulator bakeng sa lipapali tsa retro tse kang SNES, GBA, PS.

    6. Likamore tsa libapali tse ngata, papali ea bongata le khokahanyo ea kantle (sehokelo se tebileng) le papali
    CloudRetro e ts'ehetsa lipapali tse ngata tse ncha tse kang CrowdPlay le Online MultiPlayer bakeng sa lipapali tsa retro. Haeba basebelisi ba 'maloa ba bula sehokelo se ts'oanang se tebileng likhomphuthang tse fapaneng, ba tla bona papali e ts'oanang mme ba tla khona ho e kopanya.

    Ho feta moo, linaha tsa lipapali li bolokiloe polokelong ea leru. Sena se lumella basebelisi ho tsoela pele ho bapala ka nako efe kapa efe sesebelisoa se seng.

    7. Ho theola sekala
    Joalo ka SAAS efe kapa efe matsatsing ana, papali ea leru e tlameha ho raloa hore e senyehe ka mokhoa o otlolohileng. Moralo oa mohokahanyi-mosebeletsi o u lumella ho eketsa basebetsi ho sebeletsa sephethephethe se eketsehileng.

    8. Ha ho khokahano lerung le le leng
    Lisebelisoa tsa CloudRetro li tsamaisoa ke bafani ba maru ba fapaneng (Digital Ocean, Alibaba, mofani oa moetlo) bakeng sa libaka tse fapaneng. Ke nolofalletsa ho sebetsa ka har'a sets'oants'o sa Docker bakeng sa lits'ebetso le ho hlophisa litlhophiso tsa marang-rang ke sebelisa bash script ho qoba ho notleloa ho mofani oa leru a le mong. Ka ho kopanya sena le NAT Traversal ho WebRTC, re ka ba le monyetla oa ho sebelisa CloudRetro sethaleng sefe kapa sefe sa maru esita le mochining ofe kapa ofe oa basebelisi.

    Moralo oa meralo

    Mosebetsi: (kapa seva ea ho phallela e boletsoeng ka holimo) e atisa lipapali, e tsamaisa lipeipi tsa khouto, 'me e fetisetsa mecha ea litaba ho basebelisi. Maemo a basebetsi a ajoa lefatšeng ka bophara, 'me mosebeletsi e mong le e mong a ka sebetsana le linako tse ngata tsa basebelisi ka nako e le ngoe.

    Mohokahanyi: e na le boikarabelo ba ho hokahanya mosebedisi e mocha le mosebeletsi ea loketseng ka ho fetisisa bakeng sa ho phallela. Mohokahanyi o sebelisana le basebetsi ka WebSocket.

    Sebaka sa polokelo ea papali: polokelo e hole e bohareng bakeng sa linaha tsohle tsa papali. Polokelo ena e fana ka mesebetsi ea bohlokoa joalo ka "remoutu save/load".

    Papali ea leru e bulehileng ho WebRTC: p2p, libapali tse ngata, zero latency
    Mehaho ea maemo a holimo ea CloudRetro

    Mongolo o Tloaelehileng

    Ha mosebelisi e mocha a bula CloudRetro ka mehato ea 1 le ea 2 e bontšitsoeng setšoantšong se ka tlase, mohokahanyi hammoho le lenane la basebetsi ba teng o kōptjoa leqepheng la pele. Kamora sena, mohatong oa 3 moreki o bala tieho ea bakhethoa bohle ba sebelisang kopo ea HTTP ping. Joale lethathamo lena la tieho le khutlisetsoa ho mohokahanyi e le hore a tsebe ho tseba hore na ke mosebetsi ofe ea loketseng ho sebeletsa mosebelisi. Mohato oa 4 ka tlase o theha papali. Khokahano ea ho phallela ea WebRTC e thehiloe lipakeng tsa mosebelisi le mosebeletsi ea filoeng.
    Papali ea leru e bulehileng ho WebRTC: p2p, libapali tse ngata, zero latency
    Script ea mosebelisi ka mor'a ho fumana phihlello

    Se ka hare ho mosebetsi

    Liphaephe tsa lipapali le tsa ho phallela li bolokiloe ka hare ho mosebeletsi ka thōko le ho fapanyetsana tlhahisoleseding moo ka sebopeho. Hajoale, puisano ena e etsoa ka ho fetisetsa data mohopolong ka Likanale tsa Golang ka mokhoa o ts'oanang. Sepheo se latelang ke ho arohana, i.e. qalo e ikemetseng ea papali ka mokhoa o mong.

    Papali ea leru e bulehileng ho WebRTC: p2p, libapali tse ngata, zero latency
    Tšebelisano ea likarolo tsa basebetsi

    Main dikarolo:

    • WebRTC: karolo ea moreki e amohelang kenyeletso ea mosebelisi le liphetho tsa mecha ea litaba e khoute ho tsoa ho seva.
    • Emulator ea papali: karolo ea papali. Ka lebaka la laeborari ea Libretro, sisteme e khona ho tsamaisa papali ka har'a ts'ebetso e ts'oanang le ka hare ho thibela mecha ea litaba le phallo ea ho kenya.
    • Liforeimi tsa papaling lia nkuoa ebe li romelloa ho sekhoudara.
    • Sehatisi sa Litšoantšo/Molumo: phaephe ea khouto e nkang liforeimi tsa media, e li khoute ka morao, 'me e ntša litšoantšo/malumo a khouto.

    Ts'ebetsong

    CloudRetro e itšetlehile ka WebRTC e le theknoloji ea mokokotlo oa eona, kahoo pele ke kenella ka lintlha tse qaqileng tsa ts'ebetsong ea Golang, ke ile ka etsa qeto ea ho bua ka WebRTC ka boeona. Ena ke thekenoloji e tsotehang e nthusitseng haholo ho finyella latency ea bobeli bakeng sa ho phallela data.

    WebRTC

    WebRTC e etselitsoe ho fana ka likhokahano tsa boleng bo holimo tsa lithaka le lithaka lits'ebetsong tsa selefouno le libatli tse sebelisang li-API tse bonolo.

    Phatlalatso ea NAT

    WebRTC e tsejoa ka ts'ebetso ea eona ea NAT Traversal. WebRTC e etselitsoe puisano ea lithaka le lithaka. Sepheo sa eona ke ho fumana tsela e tobileng ka ho fetisisa, ho qoba liheke tsa NAT le li-firewall bakeng sa puisano ea lithaka ka mokhoa o bitsoang. Ice. E le karolo ea ts'ebetso ena, WebRTC APIs e fumana aterese ea hau ea IP ea sechaba e sebelisa li-server tsa STUN ebe e e fetisetsa ho seva sa relay (FETOLA) ha khokahano e tobileng e ke ke ea thehoa.

    Leha ho le joalo, CloudRetro ha e sebelise tšobotsi ena ka botlalo. Likamano tsa eona tsa lithaka-lithaka ha li teng pakeng tsa basebelisi, empa pakeng tsa basebelisi le li-server tsa leru. Lehlakore la seva la mohlala le na le lithibelo tse fokolang tsa puisano tse tobileng ho feta sesebelisoa se tloaelehileng sa mosebedisi. Sena se o nolofalletsa ho bula likou tse kenang pele kapa ho sebelisa liaterese tsa IP tsa sechaba ka kotloloho, kaha seva ha se ka morao ho NAT.

    Pejana, ke ne ke batla ho fetola projeke hore e be sethala sa kabo ea lipapali bakeng sa Cloud Gaming. Sepheo e ne e le ho lumella baetsi ba lipapali ho fana ka lipapali le lisebelisoa tsa ho phallela. Mme basebelisi ba ne ba tla sebelisana le bafani ka kotloloho. Ka mokhoa ona o hlophisitsoeng, CloudRetro ke moralo feela oa ho hokahanya lisebelisoa tsa batho ba boraro ho basebelisi, ho etsa hore e be kotsi le ho feta ha e se e sa amoheloa. Karolo ea WebRTC NAT Traversal mona e bohlokoa haholo ho thusa ho qala ho hokahanya ha lithaka le lithaka ho lisebelisoa tsa batho ba boraro, ho nolofalletsa moetsi ho hokahanya marang-rang.

    Khatello ea video

    Khatello ea video ke karolo ea bohlokoahali ea liphaephe 'me e thusa haholo ho phalla hantle. Leha ho sa hlokahale ho tseba lintlha tsohle tsa khouto ea video ea VP8/H264, ho utloisisa mehopolo ho ka u thusa ho utloisisa likhetho tsa lebelo la video, ho lokisa boitšoaro bo sa lebelloang, le ho lokisa latency.

    Ho hatella video bakeng sa ts'ebeletso ea ho phallela ho thata hobane algorithm e tlameha ho netefatsa hore nako eohle ea encoding + nako ea phetisetso ea marang-rang + nako ea decoding e tlase kamoo ho ka khonehang. Ho feta moo, ts'ebetso ea likhoutu e tlameha ho ba e tsitsitseng le e tsoelang pele. Li-tradeoffs tse ling tsa khouto ha li sebetse — ka mohlala, re ke ke ra thabela linako tse telele tsa khouto ho feta boholo ba lifaele tse nyane le linako tsa ho li ngola, kapa ra sebelisa khatello e sa tsitsang.

    Sepheo sa compression ea video ke ho tlosa lintlha tse sa hlokahaleng tsa boitsebiso ha u ntse u boloka boemo bo amohelehang ba ho nepahala bakeng sa basebelisi. Ntle le ho kenyelletsa liforeimi tsa litšoantšo tse sa fetoheng, algorithm e kenyelletsa foreimi ea hajoale ho tsoa ho tse fetileng le tse latelang, kahoo ho romelloa phapang ea bona feela. Joalokaha ho ka bonoa mohlaleng le Pacman, ho fetisoa lintlha tse fapaneng feela.

    Papali ea leru e bulehileng ho WebRTC: p2p, libapali tse ngata, zero latency
    Papiso ea liforeimi tsa video ho sebelisa Pacman joalo ka mohlala

    Khatello ea molumo

    Ka mokhoa o ts'oanang, algorithm ea compression ea molumo e siea data e ke keng ea bonoa ke batho. Hajoale Opus ke eona codec ea molumo e sebetsang hantle ka ho fetisisa. E etselitsoe ho fetisa leqhubu la molumo holim'a protocol e laetsoeng ea datagram e kang RTP (Real Time Transport Protocol). Latency ea eona e tlase ho mp3 le aac, 'me boleng bo holimo. Hangata latency e haufi le 5 ~ 66,5ms.

    Pion, WebRTC e Golang

    Pawn ke projeke ea mohloli o bulehileng o tlisang WebRTC ho Golang. Sebakeng sa ho phutheloa ho tloaelehileng ha lilaebrari tsa C++ WebRTC, Pion ke ts'ebetsong ea tlhaho ea Golang ea WebRTC e nang le ts'ebetso e ntlafetseng, Go kopanngoa, le taolo ea phetolelo ho liprothokholo tsa WebRTC.

    Laeborari e boetse e thusa ho phallela ka lintho tse ngata tse hahelletsoeng ka sub-second latency. E na le ts'ebetsong ea eona ea STUN, DTLS, SCTP, joalo-joalo. le liteko tse ling ka QUIC le WebAssembly. Laeborari ena ea mohloli o bulehileng ka boeona ke sesebelisoa se setle sa ho ithuta se nang le litokomane tse ntle haholo, ts'ebetsong ea protocol ea marang-rang, le mehlala e metle.

    Sechaba sa Pion, se etelletsoeng pele ke moetsi ea chesehang haholo, se monate, 'me ho na le lipuisano tse ngata tsa boleng tse ntseng li tsoela pele ka WebRTC. Haeba u thahasella theknoloji ena, ikopanye http://pion.ly/slack - o tla ithuta lintho tse ngata tse ncha.

    Ho ngola CloudRetro ho Golang

    Papali ea leru e bulehileng ho WebRTC: p2p, libapali tse ngata, zero latency
    Phethahatso ea mosebeletsi ho Go

    Tsamaea ka Liteishene ka Ts'ebetso

    Ka lebaka la moralo o motle oa kanale oa Go, mathata a ho hasanya liketsahalo le concurrency a nolofalitsoe haholo. Joalo ka setšoantšong, GoRoutines e fapaneng e na le likarolo tse ngata tse tsamaeang ka ho bapa. Karolo ka 'ngoe e laola boemo ba eona mme e buisana ka likanale. Polelo e khethehileng ea Golang e qobella ketsahalo e le 'ngoe ea athomo ho sebetsoa nako le nako papaling (letshwao la papali). Sena se bolela hore ha ho hlokahale ho notlela moralo ona. Mohlala, ha mosebelisi a boloka, ho hlokahala setšoantšo se felletseng sa boemo ba papali. Boemo bona bo lokela ho lula bo tsoela pele, ho kena ho fihlela poloko e felile. Nakong ea letšoao le leng le le leng la papali, mokokotlo o ka khona ho sebetsana le ts'ebetso ea ho boloka kapa ea ho kenya feela, ho etsa hore khoele ea ts'ebetso e bolokehe.

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

    Fan-in/ Ka ntle

    Template ena ea Golang e lumellana hantle le nyeoe ea ka ea tšebeliso ea CrowdPlay le Multiple Player. Ho latela mokhoa ona, lisebelisoa tsohle tsa basebelisi ka phapusing e le 'ngoe li hahiloe ka har'a mocha o bohareng oa monyako. Ka mor'a moo, mecha ea litaba ea lipapali e romelloa ho basebelisi bohle ba kamoreng e le 'ngoe. Ka tsela ena, re finyella karohano ea boemo ba papali pakeng tsa likarolo tse 'maloa tsa lipapali tsa basebelisi ba fapaneng.

    Papali ea leru e bulehileng ho WebRTC: p2p, libapali tse ngata, zero latency
    Kamahanyo lipakeng tsa mananeo a fapaneng

    Mathata a Golang

    Golang ha e a phethahala. Channel e tsamaea butle. Ha ho bapisoa le ho thibela, Go channel ke mokhoa o bonolo oa ho sebetsana le liketsahalo tse etsahalang ka nako e le 'ngoe, empa mocha ha o fane ka ts'ebetso e ntle ka ho fetisisa. Ho na le mokhoa o rarahaneng oa ho thibela ka tlas'a mocha. Kahoo ke ile ka etsa liphetoho tse ling ts'ebetsong, ho sebelisa linotlolo le litekanyetso tsa athomo ha ke fetola liteishene ho ntlafatsa ts'ebetso.

    Ho feta moo, 'molai oa lithōle oa Golang ha o laoloe, 'me ka linako tse ling o etsa khefu e telele ka mokhoa o belaetsang. Sena se kena-kenana haholo le ts'ebeliso ea nako ea nnete ea ho phallela.

    COG

    Morero o sebelisa laebrari e teng e bulehileng ea Golang VP8/H264 bakeng sa compression ea media le Libretro bakeng sa li-emulators tsa papali. Lilaebrari tsena kaofela ke li-wrappers tsa laebrari ea C ho Go sebelisa COG. Tse ling tsa bofokoli li thathamisitsoe ho poso ena ke Dave Cheney. Mathata ao ke kopaneng le ona:

    • ho se khone ho tšoara kotsi ho CGO, esita le ka Golang RecoveryCrash;
    • ho hloleha ho tseba mathata a ts'ebetso ha re sa khone ho bona mathata a felletseng ho CGO.

    fihlela qeto e

    Ke fihletse sepheo sa ka sa ho utloisisa lits'ebeletso tsa papali ea leru le ho theha sethala se nthusang ho bapala lipapali tsa nostalgic retro le metsoalle ea ka inthaneteng. Morero ona o ne o ke ke oa khoneha ntle le laebrari ea Pion le tšehetso ea sechaba sa Pion. Ke leboha haholo ka tsoelo-pele ea eona e matla. Li-API tse bonolo tse fanoeng ke WebRTC le Pion li netefalitse ho kopanngoa ha seamless. Bopaki ba ka ba pele ba maikutlo bo ile ba lokolloa bekeng eona eo, le hoja ke ne ke se na tsebo ea pele ea puisano ea lithaka (P2P).

    Leha ho le bonolo ho kopanya, phallo ea P2P ehlile ke sebaka se rarahaneng haholo ho mahlale a khomphutha. O tlameha ho sebetsana le ho rarahana ha meralo ea khale ea marang-rang e kang IP le NAT ho theha seboka sa lithaka. Ha ke ntse ke sebetsa morerong ona, ke ile ka fumana tsebo e ngata ea bohlokoa mabapi le marang-rang le ts'ebetso ea ts'ebetso, kahoo ke khothalletsa bohle ho leka ho haha ​​​​lihlahisoa tsa P2P ho sebelisa WebRTC.

    CloudRetro e sebetsana le maemo ohle a ts'ebeliso eo ke neng ke e lebelletse ho latela pono ea ka joalo ka sebapali sa retro. Leha ho le joalo, ke nahana hore ho na le libaka tse ngata tsa morero tseo nka li ntlafatsang, tse kang ho etsa marang-rang ho tšepahala le ho sebetsa hantle, ho fana ka litšoantšo tsa papali ea boleng bo phahameng, kapa bokhoni ba ho arolelana lipapali pakeng tsa basebelisi. Ke sebetsa ka thata tabeng ena. Ka kopo latela morero 'me u e tšehetse haeba u e rata.

Source: www.habr.com

Eketsa ka tlhaloso