Lalao rahona loharano misokatra amin'ny WebRTC: p2p, Multiplayer, zero latency

Lalao rahona loharano misokatra amin'ny WebRTC: p2p, Multiplayer, zero latency
Rindrambaiko ho serivisy, fotodrafitrasa ho serivisy, sehatra ho serivisy, sehatra serasera ho serivisy, fihaonambe video ho serivisy, ahoana ny momba ny gaming cloud ho serivisy? Efa nisy andrana maromaro namorona lalao rahona (Cloud Gaming), toa an'i Stadia, navoakan'ny Google vao haingana. stadio tsy vaovao amin'ny WebRTC, fa afaka mampiasa WebRTC amin'ny fomba mitovy ve ny hafa?

Thanh Nguyen dia nanapa-kevitra ny hitsapa izany fahafahana izany amin'ny tetikasany loharano misokatra CloudRetro. CloudRetro dia mifototra amin'ny Pion, malaza Tranomboky WebRTC mifototra amin'ny Go (misaotra Naseho avy amin'ny ekipa fampandrosoana Pion noho ny fanampiany tamin'ny fanomanana ity lahatsoratra ity). Ao amin'ity lahatsoratra ity, i Thanh dia manome topimaso momba ny maritrano amin'ny tetikasany, ary miresaka momba ny zavatra mahasoa nianarany sy ny fanamby natrehiny nandritra ny asany.

teny

Tamin'ny taon-dasa, rehefa nanambara ny Stadia i Google, dia nanaitra ny saiko izany. Ny hevitra dia tena miavaka sy zava-baovao ka nanontany tena foana aho hoe ahoana no nahatanterahan'izany tamin'ny teknolojia efa misy. Ny faniriana hahatakatra bebe kokoa an'ity lohahevitra ity dia nanosika ahy hamorona ny dikan-ko manokana amin'ny lalao rahona open source. Nahafinaritra ny vokatra. Eto ambany aho dia te hizara ny fizotran'ny asa amin'ny taonako TETIKASA.

TLDR: dikan-tsary fohy misy misongadina

Nahoana ny lalao cloud no ho avy

Mino aho fa tsy ho ela ny Cloud Gaming dia ho lasa taranaka manaraka tsy amin'ny lalao ihany, fa amin'ny sehatra hafa amin'ny siansa informatika. Cloud gaming no faratampony amin'ny modely mpanjifa/server. Ity maodely ity dia mampitombo ny fitantanana backend ary manamaivana ny asa eo anoloana amin'ny alàlan'ny fampiantranoana lojika lalao amin'ny mpizara lavitra ary mandefa sary/peo amin'ny mpanjifa. Ny mpizara dia manao ny fanodinana mavesatra mba tsy ho azon'ny mpanjifa intsony ny fetran'ny fitaovana.

Google Stadia dia mamela anao hilalao Lalao AAA (izany hoe lalao blockbuster avo lenta) amin'ny interface toa ny YouTube. Ny fomba fiasa mitovy dia azo ampiharina amin'ny rindranasa an-tserasera mavesatra hafa toy ny rafitra fiasana na famolavolana sary 2D/3D, sns. mba hahafahantsika mampandeha azy ireo tsy tapaka amin'ny fitaovana tsy misy vidiny amin'ny sehatra maro.

Lalao rahona loharano misokatra amin'ny WebRTC: p2p, Multiplayer, zero latency
Ny hoavin'ity teknolojia ity: Alaivo sary an-tsaina raha toa ka mihazakazaka amin'ny navigateur Chrome ny Microsoft Windows 10?

Fanamby ara-teknika ny lalao cloud

Ny lalao dia iray amin'ireo faritra tsy fahita firy izay ilana valiny haingana sy haingana ataon'ny mpampiasa. Raha sendra fahatarana 2 segondra isika indraindray rehefa manindry pejy, dia azo ekena izany. Ny horonan-tsarimihetsika mivantana dia mazàna mitaredretra segondra vitsy, nefa mbola manome fahafaham-po azo ampiasaina. Na izany aza, raha 500ms matetika ny lalao dia tsy azo lalaovina fotsiny. Ny tanjonay dia ny hahatratra ny fahatarana faran'izay ambany mba ho kely araka izay azo atao ny elanelana misy eo amin'ny fidirana sy ny media. Noho izany, ny fomba nentim-paharazana amin'ny fandefasana horonan-tsary dia tsy azo ampiharina eto.

Lalao rahona loharano misokatra amin'ny WebRTC: p2p, Multiplayer, zero latency
General Cloud Lalao Template

Tetik'asa loharano misokatra CloudRetro

Nanapa-kevitra ny hamorona santionany fitsapana amin'ny lalao rahona aho hijerena raha azo atao izany rehetra izany miaraka amin'ny fameperana tambajotra henjana toy izany. Golang no nofidiko ho porofon'ny foto-kevitra satria io no fiteny nahazatra ahy indrindra ary mety tsara amin'ity fampiharana ity noho ny antony maro hafa, araka ny hitako taty aoriana. Ny Go dia tsotra ary mivoatra haingana; Ny fantsona ao amin'ny Go dia tsara amin'ny fitantanana multithreading.

Ny tetikasa CloudRetro.io dia serivisy lalao rahona loharano misokatra ho an'ny lalao retro. Ny tanjon'ny tetikasa dia ny hitondra traikefa filalaovana mampiadana indrindra amin'ny lalao retro nentim-paharazana ary manampy Multiplayer.
Afaka mianatra bebe kokoa momba ny tetikasa ianao eto: https://github.com/giongto35/cloud-game.

Fampiasa CloudRetro

CloudRetro dia mampiasa lalao retro hanehoana ny herin'ny filalaovana rahona. Izay ahafahanao mahazo traikefa filalaovana miavaka maro.

  • Portability ny lalao
    • Playback eo noho eo rehefa manokatra ny pejy; tsy mila fampidinana na fametrahana
    • Miasa amin'ny navigateur finday, noho izany dia tsy ilaina ny rindrambaiko hampandehanana azy

  • Azo zaraina amin'ny fitaovana maro ny fotoam-pilalaovana ary tehirizina ao anaty rahona amin'ny fotoana hidiranao manaraka
  • Ny lalao dia azo alefa, na azon'ny mpampiasa maromaro milalao indray mandeha:
    • Crowdplay toa an'i TwitchPlayPokemon, tsy misy afa-tsy sehatra miampita bebe kokoa ary amin'ny fotoana tena izy
    • Lalao Offline an-tserasera. Mpampiasa maro no afaka milalao nefa tsy mametraka tambajotra. Samurai Shodown dia azon'ny mpilalao 2 milalao amin'ny tambajotra CloudRetro

    Lalao rahona loharano misokatra amin'ny WebRTC: p2p, Multiplayer, zero latency
    Dika demo amin'ny lalao Multiplayer an-tserasera amin'ny fitaovana samihafa

    foto-drafitr'asa

    Ny fitakiana sy ny teknolojia stack

    Ity ambany ity ny lisitry ny fepetra napetrako alohan'ny hanombohana ny tetikasa.

    1. Mpilalao iray
    Ity fepetra ity dia mety ho toa tsy dia zava-dehibe loatra na miharihary eto, fa iray amin'ireo zava-dehibe amiko, mamela ny filalaovana rahona hijanona lavitra amin'ny serivisy streaming mahazatra araka izay azo atao. Raha mifantoka amin'ny lalao mpilalao tokana isika dia afaka manala ny server centralisé na CDN satria tsy mila mikoriana amin'ny vahoaka. Raha tokony hampiakatra streams amin'ny lohamilina mandrotsaka na mandefa fonosana amin'ny mpizara WebSocket afovoany, dia alefa mivantana amin'ny mpampiasa amin'ny alàlan'ny fifandraisana WebRTC ny serivisy serivisy.

    2. Fampitaovana fampielezam-peo ambany
    Rehefa mamaky momba ny Stadia aho dia mahita WebRTC voalaza ao amin'ny lahatsoratra sasany. Tsapako fa ny WebRTC dia teknolojia miavaka ary tonga lafatra amin'ny fampiasana amin'ny lalao rahona. WebRTC dia tetikasa manome navigateur web sy fampiharana finday miaraka amin'ny fifandraisana amin'ny fotoana tena izy amin'ny alàlan'ny API tsotra. Izy io dia manome fampifandraisana peer-to-peer, natao ho an'ny haino aman-jery, ary manana codec mahazatra naorina toy ny VP8 sy H264.

    Nataoko laharam-pahamehana ny fiantohana ny traikefan'ny mpampiasa tsara indrindra noho ny fitazonana ny sary avo lenta. Ny fatiantoka sasany dia azo ekena amin'ny algorithm. Google Stadia dia manana dingana fanampiny amin'ny fampihenana ny haben'ny sary eo amin'ny lohamilina, ary ny frame dia ampitomboina amin'ny kalitao avo kokoa alohan'ny handefasana azy amin'ny mitovy aminy.

    3. Fotodrafitrasa zaraina miaraka amin'ny lalana ara-jeografika
    Na manao ahoana na manao ahoana ny fanatsarana ny algorithm sy ny kaody famatrarana, dia ny tambajotra ihany no tena manapa-kevitra izay mitondra betsaka indrindra amin'ny fahatarana. Ny rafitra dia tsy maintsy manana mekanika hampiarahana ny mpizara akaiky indrindra amin'ny mpampiasa mba hampihenana ny fotoana fihodinana (RTT). Ny maritrano dia tsy maintsy manana mpandrindra 1 ary mpizara streaming maromaro nozaraina eran'izao tontolo izao: US Andrefana, Etazonia Atsinanana, Eoropa, Singapore, Shina. Tsy maintsy mitoka-monina tanteraka ny mpizara streaming rehetra. Ny rafitra dia afaka manitsy ny fizarana azy rehefa misy mpizara iray miditra na miala amin'ny tambajotra. Noho izany, miaraka amin'ny fifamoivoizana be dia be, ny fampidirana server fanampiny dia mamela ny fanamafisam-peo marindrano.

    4. Mifanaraka amin'ny navigateur
    Ny filalaovana rahona no tsara indrindra rehefa mitaky kely indrindra amin'ny mpampiasa. Midika izany fa azo atao ny mihazakazaka amin'ny navigateur. Ny navigateur dia manampy amin'ny fanaovana ny traikefa amin'ny lalao ho mahazo aina araka izay azo atao ho an'ny mpampiasa, mamonjy azy ireo amin'ny fametrahana rindrambaiko sy fitaovana. Ny navigateur koa dia manampy amin'ny fampandehanana sehatra miampita eo amin'ny dikan-teny finday sy desktop. Soa ihany fa ny WebRTC dia tohana tsara amin'ny navigateur isan-karazany.

    5. Fanasarahana mazava ny lalao interface tsara sy ny fanompoana
    Heveriko ho sehatra iray ny serivisy gaming cloud. Tokony ho afaka mampifandray na inona na inona amin'ny sehatra ny tsirairay. Efa nampidiriko izao LibRetro miaraka amin'ny serivisy gaming rahona satria LibRetro dia manolotra interface tsara emulator lalao ho an'ny lalao retro toa ny SNES, GBA, PS.

    6. Efitrano ho an'ny Multiplayer, lalaon'ny vahoaka ary fifandraisana ivelany (rohy lalina) miaraka amin'ny lalao
    CloudRetro dia manohana lalao vaovao maro toy ny CrowdPlay sy Online MultiPlayer ho an'ny lalao retro. Raha misy mpampiasa maromaro manokatra rohy lalina mitovy amin'ny solosaina samihafa, dia hahita lalao mihazakazaka mitovy ary ho afaka hiditra amin'izany mihitsy aza.

    Ankoatr'izay, ny fanjakana lalao dia voatahiry ao anaty fitahirizana rahona. Izany dia ahafahan'ny mpampiasa manohy milalao amin'ny fotoana rehetra amin'ny fitaovana hafa.

    7. Fanamafisana mitsivalana
    Tahaka ny SAAS rehetra amin'izao fotoana izao, ny lalao rahona dia tsy maintsy natao ho azo scalable. Ny fandrafetana mpandrindra-mpiasa dia ahafahanao manampy mpiasa bebe kokoa hanompoana fifamoivoizana bebe kokoa.

    8. Tsy misy fifandraisana amin'ny rahona iray
    Ny fotodrafitrasa CloudRetro dia atolotra amin'ny mpamatsy rahona samihafa (Oseana Digital, Alibaba, mpamatsy manokana) ho an'ny faritra samihafa. Mamela ny mihazakazaka ao anaty container Docker ho an'ny fotodrafitrasa aho ary manitsy ny fikandrana tambajotra amin'ny alàlan'ny script bash mba tsy hidirana ao anaty mpanome rahona tokana. Amin'ny fampifangaroana izany amin'ny NAT Traversal ao amin'ny WebRTC, dia afaka manana fahafaha-manatsara ny fametrahana CloudRetro amin'ny sehatra rahona rehetra ary eny fa na amin'ny masinin'ny mpampiasa rehetra aza.

    Famolavolana maritrano

    mpiasa: (na ny mpizara streaming voalaza etsy ambony) dia mampitombo ny lalao, mampandeha ny fantsona encoding, ary mampita ny haino aman-jery voakodia amin'ny mpampiasa. Miparitaka eran'izao tontolo izao ny trangan'ny mpiasa, ary ny mpiasa tsirairay dia afaka mitantana fotoam-piasan'ny mpampiasa maro miaraka.

    Mpandrindra: dia tompon'andraikitra amin'ny fampiarahana ny mpampiasa vaovao amin'ny mpiasa mety indrindra amin'ny streaming. Mifandray amin'ny mpiasa amin'ny alàlan'ny WebSocket ny mpandrindra.

    Fitehirizana lalao fanjakana: fitahirizana lavitra afovoany ho an'ny fanjakana lalao rehetra. Ity fitahirizana ity dia manome fiasa manan-danja toy ny fitehirizana / entana lavitra.

    Lalao rahona loharano misokatra amin'ny WebRTC: p2p, Multiplayer, zero latency
    Ny maritrano ambony indrindra amin'ny CloudRetro

    Custom Script

    Rehefa manokatra CloudRetro ny mpampiasa vaovao amin'ny dingana 1 sy 2 aseho amin'ny sary etsy ambany, dia angatahana amin'ny pejy voalohany ny mpandrindra miaraka amin'ny lisitry ny mpiasa misy. Aorian'izany, amin'ny dingana 3 ny mpanjifa dia manisa ny fahatarana ho an'ny kandidà rehetra amin'ny fampiasana fangatahana ping HTTP. Ity lisitry ny fahatarana ity dia alefa any amin'ny mpandrindra mba hahafahany mamaritra ny mpiasa mety indrindra hanompo ny mpampiasa. Ny dingana 4 etsy ambany dia mamorona ny lalao. Ny fifandraisana mivantana amin'ny WebRTC dia napetraka eo amin'ny mpampiasa sy ny mpiasa voatendry.
    Lalao rahona loharano misokatra amin'ny WebRTC: p2p, Multiplayer, zero latency
    Ny script mpampiasa taorian'ny nahazoany fidirana

    Inona no ao anatin'ny mpiasa

    Ny fantsona lalao sy streaming dia voatahiry ao anatin'ny mpiasa mitokana ary mifanakalo vaovao ao amin'ny interface. Amin'izao fotoana izao, io fifandraisana io dia tanterahina amin'ny alalan'ny famindrana angona ao amin'ny fahatsiarovana amin'ny alalan'ny Golang channels amin'ny dingana mitovy. Ny tanjona manaraka dia ny fisarahana, izany hoe. tsy miankina fanombohana ny lalao amin'ny dingana hafa.

    Lalao rahona loharano misokatra amin'ny WebRTC: p2p, Multiplayer, zero latency
    Fifandraisana amin'ny singa mpiasa

    singa fototra:

    • WebRTC: singa mpanjifa izay manaiky ny fampidiran'ny mpampiasa sy mamoaka haino aman-jery voakodia avy amin'ny mpizara.
    • Lalao emulator: singa lalao. Noho ny tranomboky Libretro, ny rafitra dia afaka mampandeha ny lalao ao anatin'ny dingana mitovy ary manakana ny haino aman-jery sy ny fidirana anatiny.
    • Ny sary ao anaty lalao dia alaina ary alefa any amin'ny encoder.
    • Encoder sary/peo: fantsona famandrihana izay maka sary ho an'ny haino aman-jery, manodina azy any ambadika, ary mamoaka sary/peo voakodia.

    fanatanterahana

    CloudRetro dia miankina amin'ny WebRTC ho toy ny teknolojian'ny hazondamosiny, ka alohan'ny hidirana amin'ny antsipiriany momba ny fampiharana Golang dia nanapa-kevitra ny hiresaka momba ny WebRTC mihitsy aho. Ity dia teknolojia mahagaga izay nanampy ahy be dia be tamin'ny fanatontosana ny fahatarana faharoa ho an'ny fandefasana data.

    WebRTC

    WebRTC dia natao hanomezana fifandraisana avo lenta amin'ny peer-to-peer amin'ny fampiharana finday teratany sy navigateur mampiasa API tsotra.

    NAT Traversal

    WebRTC dia fantatra amin'ny fampiasany NAT Traversal. WebRTC dia natao ho an'ny fifandraisana amin'ny namana. Ny tanjony dia ny hahita ny lalana mivantana mety indrindra, manalavitra ny vavahadin'ny NAT sy ny firewall ho an'ny fifandraisana amin'ny namana amin'ny alàlan'ny dingana iray antsoina hoe ICE. Ao anatin'ity dingana ity, ny WebRTC API dia mahita ny adiresy IP-bahoakanao amin'ny alàlan'ny mpizara STUN ary mandefa izany any amin'ny mpizara fampitana (kosa) rehefa tsy azo aorina ny fifandraisana mivantana.

    Na izany aza, CloudRetro dia tsy manararaotra tanteraka an'io endri-javatra io. Tsy misy eo amin'ny mpampiasa ny fifandraisany amin'ny mpiara-mianatra aminy, fa eo amin'ny mpampiasa sy ny mpizara rahona. Ny lafiny mpizara amin'ny maodely dia manana famerana fifandraisana mivantana kokoa noho ny fitaovana mpampiasa mahazatra. Izany dia ahafahanao manokatra mialoha ny seranana miditra na mampiasa mivantana ny adiresy IP ho an'ny daholobe, satria tsy ao ambadiky ny NAT ny mpizara.

    Teo aloha, te hamadika ny tetikasa ho sehatra fizarana lalao ho an'ny Cloud Gaming. Ny hevitra dia ny hamela ny mpamorona lalao hanome lalao sy loharanon-karena. Ary ny mpampiasa dia hifanerasera mivantana amin'ny mpamatsy. Amin'ity fomba fitsinjaram-pahefana ity, CloudRetro dia rafitra iray fotsiny amin'ny fampifandraisana ireo loharanon-tseraseran'ny ankolafy fahatelo amin'ny mpampiasa, ka mahatonga azy ho azo ekena kokoa rehefa tsy nampiantrano azy intsony. Ny anjara asan'ny WebRTC NAT Traversal eto dia tena zava-dehibe amin'ny fanamorana ny fanombohana ny fifandraisana amin'ny mpiara-mianatra amin'ny loharanon-tseraseran'ny antoko fahatelo, manamora ny fifandraisan'ny mpamorona amin'ny tambajotra.

    Video compression

    Ny famatrarana horonan-tsary dia ampahany tena ilaina amin'ny fantsona ary manampy betsaka amin'ny fikorianan'ny rivotra. Na dia tsy ilaina aza ny mahafantatra ny pitsopitsony rehetra momba ny famandrihana horonan-tsary VP8/H264, ny fahatakarana ireo foto-kevitra dia afaka manampy anao hahatakatra ny safidy hafainganan'ny horonan-tsarimihetsika, debug ny fihetsika tsy ampoizina, ary manitsy ny fahatarana.

    Sarotra ny fanerena horonan-tsary ho an'ny serivisy streaming satria ny algorithm dia tsy maintsy miantoka fa ny totalin'ny fotoana fandrakofana + ny fotoana fandefasana tambajotra + ny fotoana decoding dia ambany araka izay azo atao. Ankoatra izany, ny fizotran'ny coding dia tsy maintsy mifanaraka sy mitohy. Tsy mihatra ny fanodinkodinana sasany—ohatra, tsy azontsika atao ny mankasitraka ny fotoana fanakonana lava kokoa noho ny haben'ny rakitra kely kokoa sy ny fe-potoana fanodinkodinana, na mampiasa fanerena tsy mifanaraka.

    Ny hevitra ao ambadiky ny famandrihan-dahatsary dia ny manafoana ireo sombin-tantara tsy ilaina nefa mitazona ny haavon'ny fahamendrehana azo ekena ho an'ny mpampiasa. Ho fanampin'ny fandrafetana ny sarin'ny sary static tsirairay, ny algorithm dia mampiditra ny frame ankehitriny avy amin'ny teo aloha sy ny manaraka, ka ny tsy fitovian'izy ireo ihany no alefa. Araka ny hita amin'ny ohatra miaraka amin'i Pacman, teboka differential ihany no ampitaina.

    Lalao rahona loharano misokatra amin'ny WebRTC: p2p, Multiplayer, zero latency
    Fampitahana ny frame video mampiasa Pacman ho ohatra

    Audio compression

    Toy izany koa, ny algorithm compression audio dia manala ny angon-drakitra izay tsy azon'ny olombelona tsikaritra. Opus no codec audio tsara indrindra amin'izao fotoana izao. Izy io dia natao handefasana onjam-peo amin'ny protocol datagrama voalamina toy ny RTP (Real Time Transport Protocol). Ny fahataranany dia ambany noho ny mp3 sy aac, ary avo kokoa ny kalitao. Ny latency dia matetika manodidina ny 5 ~ 66,5ms.

    Pion, WebRTC ao Golang

    kilalaon'ny dia tetikasa loharano misokatra izay mitondra ny WebRTC ho any Golang. Raha tokony ho famonosana mahazatra ny tranomboky C++ WebRTC, Pion dia fampiharana Golang teratany amin'ny WebRTC miaraka amin'ny fampisehoana tsara kokoa, fampidirana Go ary fanaraha-maso ny dikan-teny amin'ny protocols WebRTC.

    Ny trano famakiam-boky koa dia ahafahan'ny streaming miaraka amin'ny rindran-damina be dia be miaraka amin'ny latency sub-segondra. Manana ny fampiharana azy manokana ny STUN, DTLS, SCTP, sns. ary andrana sasany miaraka amin'ny QUIC sy WebAssembly. Ity tranomboky loharano misokatra ity dia loharano fianarana tena tsara miaraka amin'ny antontan-taratasy tsara, fampiharana protocole amin'ny tambajotra ary ohatra mahafinaritra.

    Ny vondrom-piarahamonina Pion, tarihin'ny mpamorona tena mafana fo, dia tena mavitrika, miaraka amin'ny fifanakalozan-kevitra tsara momba ny WebRTC. Raha liana amin'ity teknolojia ity ianao dia midira http://pion.ly/slack – hianatra zava-baovao maro ianao.

    Manoratra CloudRetro amin'ny Golang

    Lalao rahona loharano misokatra amin'ny WebRTC: p2p, Multiplayer, zero latency
    Fampiharana mpiasa ao amin'ny Go

    Mandehana Channels in Action

    Noho ny famolavolana fantsona mahafinaritra an'i Go, ny olana amin'ny fandehanana hetsika sy ny fifanandrifian-javatra dia notsotsotra be. Tahaka ny ao amin'ny kisary, ny GoRoutine samihafa dia manana singa maromaro mandeha mifanila. Ny singa tsirairay dia mitantana ny fanjakany ary mifandray amin'ny alàlan'ny fantsona. Ny fanambarana voafantina nataon'i Golang dia manery hetsika atomika iray hokarakaraina isaky ny lalao (lalao tick). Midika izany fa tsy ilaina ny hidy ho an'ity famolavolana ity. Ohatra, rehefa mitahiry ny mpampiasa iray dia ilaina ny sary feno momba ny toetry ny lalao. Tokony hitohy hatrany io fanjakana io, midira mandra-pahavitan'ny fitehirizana. Isaky ny tsipiky ny lalao, ny backend dia tsy afaka mitantana afa-tsy hetsika mitahiry na fampidirana, izay mahatonga ny fizotry ny kofehy ho azo antoka.

    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/Fan-out

    Ity môdely Golang ity dia mifanaraka tsara amin'ny raharahako CrowdPlay sy Multiple Player. Manaraka an'io lamina io, ny fampidiran'ny mpampiasa rehetra ao amin'ny efitrano iray dia aorina ao amin'ny fantsona fidirana afovoany. Ny haino aman-jery lalao dia apetraka amin'ny mpampiasa rehetra ao amin'ny efitrano iray ihany. Amin'izany fomba izany, tratrantsika ny fizarazarana ny toetry ny lalao eo amin'ny fotoam-pivoriana lalao maro an'ny mpampiasa samihafa.

    Lalao rahona loharano misokatra amin'ny WebRTC: p2p, Multiplayer, zero latency
    Fandrindrana eo amin'ny fotoam-pivoriana samihafa

    Ny tsy fahampian'ny Golang

    Tsy tonga lafatra i Golang. Miadana ny fantsona. Raha ampitahaina amin'ny fanakanana, ny fantsona Go dia fomba mora kokoa hifehezana ny hetsika miaraka sy mifamatotra, saingy tsy manome ny fampisehoana tsara indrindra ny fantsona. Misy lojika fanakanana sarotra ao ambanin'ny fantsona. Noho izany dia nanao fanitsiana vitsivitsy tamin'ny fampiharana aho, namerina ny hidin-trano sy ny soatoavina atomika rehefa manolo fantsona mba hanatsarana ny fampisehoana.

    Fanampin'izany, tsy voafehy ny mpanangom-pako ao Golang, izay miteraka fiatoana lava mampiahiahy indraindray. Tena manelingelina ny fampiharana mivantana mivantana izany.

    Làlam-by tohan

    Ny tetikasa dia mampiasa ny loharano misokatra efa misy Golang VP8 / H264 tranomboky ho an'ny famatrarana media sy Libretro ho an'ny emulators lalao. Ireo trano famakiam-boky rehetra ireo dia fonosin'ny tranomboky C ao amin'ny Go mampiasa Làlam-by tohan. Ny sasany amin'ireo fatiantoka dia voatanisa ao ity lahatsoratra ity nataon'i Dave Cheney. Olana sendra ahy:

    • tsy fahafahana misambotra fianjerana ao amin'ny CGO, na dia miaraka amin'ny Golang RecoveryCrash aza;
    • ny tsy fahampian'ny famantarana ny bottleneck amin'ny fampisehoana rehefa tsy afaka mahita olana amin'ny antsipiriany ao amin'ny CGO izahay.

    famaranana

    Nahatratra ny tanjoko aho dia ny hahatakatra ny serivisy lalao rahona sy hamorona sehatra iray izay manampy ahy hilalao lalao retro nostalgia miaraka amin'ireo namako an-tserasera. Tsy ho tanteraka ity tetikasa ity raha tsy nisy ny tranomboky Pion sy ny fanohanan'ny vondrom-piarahamonina Pion. Tena feno fankasitrahana aho noho ny fivoarany mafonja. Ny API tsotra nomen'ny WebRTC sy Pion dia niantoka ny fampidirana tsy misy olana. Navoaka tamin'io herinandro io ihany ny porofon'ny foto-kevitrako voalohany, na dia tsy nanana fahalalana teo aloha momba ny fifandraisana amin'ny namana (P2P) aza aho.

    Na dia eo aza ny fanamorana ny fampidirana, ny streaming P2P dia sehatra tena sarotra amin'ny siansa informatika. Tsy maintsy miatrika ny fahasarotan'ny rafitra tambajotra efa ela toy ny IP sy NAT izy mba hamoronana fivoriana miaraka amin'ny namana. Nandritra ny niasako tamin'ity tetikasa ity dia nahazo fahalalana sarobidy maro momba ny tambajotra sy ny fanatsarana ny fampisehoana aho, koa mamporisika ny rehetra aho hanandrana hanangana vokatra P2P amin'ny fampiasana WebRTC.

    CloudRetro dia mikarakara ireo tranga fampiasa rehetra nantenaiko tamin'ny fomba fijeriko ho mpilalao retro. Na izany aza, heveriko fa misy sehatra maro ao amin'ny tetikasa azoko hatsaraina, toy ny fanaovana ny tambajotra azo itokisana sy mahomby kokoa, fanomezana sary tsara kokoa amin'ny lalao, na ny fahafahana mizara lalao eo amin'ny mpampiasa. Miasa mafy amin'izany aho. Araho azafady TETIKASA ary tohano raha tianao.

Source: www.habr.com

Add a comment