Kung mayroon kang Raspberry Pi na nauubusan ng alikabok sa iyong drawer at isang Android phone na puno ng mga multiplayer na laro, isang hakbang ka na lang bago makagawa ng sarili mo. Imprastraktura ng bahay para sa paglalaro online kasama ang iyong mga kaibiganMalayo sa pangangailangan ng isang supercomputer o paggastos ng malaking halaga sa isang dedicated server, ang isang mahusay na na-configure na Pi ay maaaring maging sentro ng iyong maliit na mundo ng paglalaro, maging sa isang lokal na network o sa pamamagitan ng Internet.
Sa artikulong ito, pag-isahin natin ang dalawang mundo: sa isang banda, lahat ng ipinahihiwatig nito Pag-set up at pamamahala ng game server sa Raspberry PiSa isang banda, matututunan mo ang mga pangunahing kaalaman kung paano ikonekta ang mga manlalaro (mula sa Android o iba pang mga device) gamit ang mga konsepto tulad ng mga dedicated server, peer-to-peer network, Hamachi-type virtual network, at port forwarding. Ang layunin ay, kahit na ito ang iyong unang pagkakataon na makipag-ugnayan sa mga network at server, mauunawaan mo ang aktwal na proseso sa likod ng isang online game at malalaman mo kung saan eksaktong magsisimula.
Ano nga ba ang isang game server, at paano nababagay ang Android sa lahat ng ito?
Bago ka magsimulang mag-install ng mga bagay na tulad ng Crazy, mahalagang maunawaan ang papel na ginagampanan ng isang game server. Sa maraming modernong multiplayer na titulo, lalo na ang mga competitive o persistent, mayroong sentralisadong server na nagko-coordinate ng lahat ng nangyayari sa laroAng server na iyon ang nagpapanatili ng mga istatistika, namamahala sa mga database ng manlalaro, kumokontrol sa mundo ng laro, at tinitiyak na ang lahat ng mga aksyon ng mga gumagamit ay naka-synchronize nang walang pandaraya.
Kapag naglaro ka mula sa iyong Android mobile, ang game app ay wala nang iba kundi isang kliyente na kumokonekta sa isang malayong serverKaraniwan itong pinamamahalaan mismo ng kumpanya ng laro (tulad ng sa mga laro tulad ng World of Warcraft o mga katulad na serbisyo sa mobile). Ngunit sa maraming pagkakataon, lalo na sa mga indie, open-source, o LAN-based na laro, posibleng mag-set up ng pribadong server na maaaring ikonekta ng iyong mga kaibigan mula sa kanilang mga device, kabilang ang mga Android phone, kung ang laro at network ay maayos na na-configure.
Dedicated server vs peer-to-peer: aling opsyon ang tama para sa iyo?
Kapag nagsimula kang magdisenyo o mag-deploy ng isang online game, madalas na lumalabas ang tanong kung talagang kailangan mo ba ng isang... dedicated server na laging naka-on o kung maaari kang gumamit ng peer-to-peer (P2P) na arkitektura. Ang pag-unawa sa pagkakaibang ito ay susi sa pagpapasya kung paano mo isasama ang iyong Raspberry Pi at kung paano sasali ang iyong mga kaibigan sa laro.
Sa isang modelo ng dedicated server, mayroong isang partikular na makina (sa kasong ito, ang iyong Raspberry Pi, o kahit isang bayad na remote server) na gumaganap bilang gitnang punto kung saan konektado ang lahat ng manlalaroKinakalkula ng server ang pangunahing lohika ng laro, sinusuri ang halatang pandaraya, iniimbak ang progreso, at ipinamamahagi ang impormasyon sa lahat ng kliyente, maging sila ay mga desktop computer, laptop, o mga Android device na konektado sa pamamagitan ng Wi-Fi o mobile data.
Sa isang peer-to-peer na modelo, medyo nagbabago ang mga bagay-bagay dahil Walang iisang server na nag-uutosAng bawat manlalaro ay sabay na gumaganap bilang isang client at isang partial server, at ang data ay direktang ibinabahagi sa pagitan ng mga kalahok. Makakatipid ito sa iyo mula sa pag-set up ng isang dedicated server, ngunit may posibilidad din itong maging kumplikado ang synchronization, magbubukas ng pinto sa mas maraming pandaraya, at lubos na umaasa sa koneksyon ng bawat device.
Karaniwan na, pagkatapos ng ilang pananaliksik, maraming baguhang developer ang nakakatuklas sa konsepto ng peer-to-peer at nagpapasyang tumungo sa direksyong iyon, lalo na kapag ayaw nilang magbayad para sa isang dedicated server O kaya naman ay hindi sila komportable na pamahalaan ito. Sa anumang kaso, kahit na sa huli ay pipiliin mo ang P2P, ang pag-unawa kung paano mag-set up ng isang klasikong server sa isang Raspberry Pi ay magbibigay sa iyo ng napakalinaw na ideya kung paano gumagana ang online gaming sa likod ng mga eksena.
May bayad ba ang isang dedicated server, at ano ang mga alternatibo?
Ang malaking tanong ay karaniwang kung ang isang dedicated server ay kinakailangang magpahiwatig pagbabayad buwan-buwan para sa isang makinang naka-host sa isang data centerAng maikling sagot ay hindi: maaari kang magkaroon ng dedicated server nang hindi gumagastos ng anumang dagdag sa pamamagitan ng paggamit ng iyong sariling hardware, tulad ng isang lumang PC o isang Raspberry Pi, hangga't tinatanggap mo ang mga limitasyon nito.
Kapag pinag-uusapan natin ang isang bayad na dedicated server, kadalasan ang ibig nating sabihin ay mga makinang kinontrata sa cloud o mula sa mga hosting providerKung saan kontrolado mo ang operating system at mga serbisyo, ngunit sila ang nagbibigay ng hardware at propesyonal na koneksyon. Nag-aalok ito ng napakalaking katatagan at nagbibigay-daan para sa maraming manlalaro, ngunit malinaw na may kasamang paulit-ulit na gastos.
Sa kabilang banda, kung magpasya kang gamitin ang iyong Raspberry Pi bilang isang dedicated server sa bahay, ang gastos sa hardware ay napakababa (humigit-kumulang 30 euros para sa isang simpleng cooktop na mayroon ka na sa bahayAng natitira ay depende sa iyong koneksyon sa internet at router. Bilang kapalit, kakailanganin mong tanggapin ang ilang limitasyon sa power at bandwidth, kaya ang iyong server ay magiging perpekto para sa mga pribadong laro, ngunit hindi para sa pagho-host ng daan-daang tao.
Ano ang magagawa ng Raspberry Pi bilang isang game server
Ang Raspberry Pi ay karaniwang isang mababang-lakas na mini-computer na kayang gumana nang 24/7Gamit ang napakasimpleng hardware, ngunit sapat na para sa maraming gawain sa home server. Bukod sa paglalaro, malamang narinig mo na rin na nagsisilbi itong personal cloud, media center, download client, o kahit isang retro console, lahat ay may kaunting konsumo ng kuryente.
Sa larangan ng paglalaro, hindi kayang makipagkumpitensya ng Pi sa isang propesyonal na server, ngunit para sa magaan na paglalaro o katamtamang mga setup, kaya nitong... madaling pangasiwaan ang isang maliit na LAN o ilang malalayong koneksyonTandaan na limitado ang processor at RAM nito, kaya huwag umasa na magkakaroon ng dose-dosenang mga manlalaro na sabay-sabay na naglalaro nang hindi nakakaranas ng lag o pag-crash.
Ang susi ay ang pumili ng mga larong nagbibigay-daan para sa mga pribadong dedicated server at hindi nangangailangan ng malaking halaga ng resources. Mga laro tulad ng Minecraft, ang 3D block sandbox at Terraria Perpekto silang akma sa profile na ito, at marami sa kanila ang mayroon nang mga partikular na gabay para sa pag-install ng kanilang server sa Raspberry Pi na may mga nasubukang configuration.
Mga halimbawa ng mga larong maaari mong patakbuhin sa Raspberry Pi
Sa loob ng katalogo ng mga larong tugma sa mga pribadong server, mayroong dalawa na nakakaakit ng maraming atensyon: Minecraft, ang 3D block sandbox, at ang Terraria, ang 2D na karibal nito.Kasama sa parehong mga pamagat ang kakayahang mag-deploy ng isang partikular na server kung saan kumokonekta ang mga kliyente, na nagbibigay-daan sa iyong lumikha ng mga pribadong laro nang hindi umaasa sa mga pampublikong server.
Gamit ang iyong Raspberry Pi bilang server para sa mga larong ito, magagawa mo lumikha ng mga patuloy na mundo para makapaglaro kasama ang iyong mga kaibiganMaaari itong gawin sa pamamagitan ng lokal na network (halimbawa, lahat ay nakakonekta sa iisang Wi-Fi) o sa pamamagitan ng Internet. Ang pangkalahatang ideya ay ang pag-install ng bersyon ng server na inangkop para sa ARM, i-configure ang mga pangunahing parameter (maximum na bilang ng mga manlalaro, kahirapan, world seeds, atbp.), at buksan o i-forward ang kaukulang port.
Kung mahilig ka sa mga first-person games, mayroon ding ilang klasikong opsyon na maaari mong gamitin sa Pi. Mga titulo tulad ng QuakeWorld, AssaultCube o ang maalamat na Doom Mayroon silang mga bersyon ng server na mahusay na tumatakbo sa ganitong uri ng hardware. Mas magaan ang mga larong ito kaysa sa mga modernong shooter at, kapag maayos na na-configure, kayang humawak ng maraming manlalaro nang may medyo maayos na karanasan.
Ang bentahe ng paggamit ng sarili mong server sa mga FPS game na ito ay ang laro ay ginaganap sa sarili mong server. nakasentro sa isang makinang kontrolado moBinabawasan nito ang panganib na may isang taong nagsasamantala sa latency o gumagamit ng mga tipikal na trick sa pampublikong server. Bukod pa rito, maaari mong isaayos ang mga parameter tulad ng respawn time, weapon damage, o map rotation nang hindi umaasa sa mga third party.
Bukod sa mga larong sandbox at shooter, mahusay din ang Raspberry Pi sa... Mga larong pang-estratehiya at kaswal na mga titulo na may suporta sa dedikadong serverKabilang sa mga kawili-wiling halimbawa ang FreeCiv (isang libreng clone ng Civilization), Windward (mga kooperatibang pakikipagsapalaran ng pirata), The Battle for Wesnoth (isang turn-based strategy game na inspirasyon ng mga klasikong laro tulad ng Age of Empires), Crossfire (arcade-strategy na may stealth) at OpenTTD, na muling binibigyang-kahulugan ang pamamahala ng transportasyon sa paraang katulad ng pinaghalong RollerCoaster Tycoon at Monopoly.

Maglaro ng mga lokal na laro sa network at internet gamit ang iyong server sa Pi
Kapag na-install mo na ang paborito mong game server sa Raspberry Pi, may dalawang pangunahing paraan para makakonekta ang iba: sa pamamagitan ng iyong lokal na network (LAN) o mula sa labas ng iyong tahanan sa pamamagitan ng InternetAng LAN mode ay karaniwang ang pinakasimple, dahil ang lahat ng device ay nasa likod ng iisang router at hindi mo kailangang ilantad ang anumang bagay sa labas.
Para sa mga larong LAN, sapat na ang mga Android phone o iba pang kliyente ay nakakonekta sa parehong Wi-Fi network at ang mga sumusunod ay gagamitin: Ang lokal na IP address ng Raspberry Pi bilang address ng serverMaraming laro ang awtomatikong nakakakita ng mga server sa lokal na network sa pamamagitan ng broadcast, ngunit kung hindi, manu-manong ilagay lamang ang IP address na iyon sa client.
Kung gusto mong makasama ang mga kaibigang wala sa bahay mo, papasok ka sa larangan ng... mga malayuang koneksyonkung saan mayroon kang pangunahing dalawang landas: Buksan ang mga port sa iyong router (port forwarding) o gayahin ang isang lokal na network gamit ang isang VPN tulad ng iniaalok ng Hamachi. Ang bawat pamamaraan ay may kanya-kanyang kasalimuotan, ngunit pareho itong perpektong magagamit.
Pag-forward ng port at paggamit ng domain para sa iyong home server
Ang klasikong opsyon para sa paglalantad ng isang home server sa Internet ay ang pag-configure ng sikat pagpapasa ng port sa routerKabilang dito ang pagsasabi sa router na i-redirect ang lahat ng trapikong dumarating sa isang partikular na port (halimbawa, 25565 sa kaso ng Minecraft) patungo sa lokal na IP address ng Raspberry Pi. Sa ganitong paraan, kapag may kumonekta mula sa labas sa iyong pampublikong IP address sa port na iyon, ang kahilingan ay mapupunta sa server ng iyong laro.
Ang port forwarding ay may bentaha ng pagiging napaka-epektibo at hindi umaasa sa mga programa ng ikatlong partido, ngunit kinakailangan nito na Dapat mong malaman kung paano i-access ang mga setting ng iyong router at maging maingat sa seguridad.Bukod pa rito, kung ang iyong pampublikong IP ay dynamic, maaari itong magbago sa paglipas ng panahon, na mapipilitan ang iyong mga kaibigan na patuloy na magtanong ng "uy, ano na ang IP mo ngayon?".
Dahil dito, lubos na inirerekomenda na i-link ang iyong server sa isang pangalan ng domain o isang dynamic na serbisyo ng DNSSa halip na bigyan ang iyong mga kaibigan ng nagbabagong numerical address, binibigyan mo sila ng isang simpleng domain na laging nakaturo sa iyong kasalukuyang IP address. Dahil sa trick na ito, mas mapapadali ang pagkonekta sa server, mula man sa Android o anumang iba pang device.
Alternatibo nang hindi binubuksan ang mga port: lumikha ng isang virtual network na uri ng Hamachi
Kung ang lahat ng bagay na ito sa pagbubukas ng port ay tila kumplikado o ayaw mo lang guluhin ang iyong router, may isa pang kapaki-pakinabang na opsyon: ang paggamit ng VPN na uri ng Hamachi para lumikha ng virtual private networkAng pamamaraang ito ay napakapopular sa mga manlalaro na gustong mag-set up ng laro kasama ang mga kaibigan nang hindi nahihirapan sa pag-configure ng hardware ng network.
Simple lang ang premisa: ikaw at ang iyong mga kaibigan ay nag-i-install ng isang programang tulad ng LogMeIn Hamachi, lumikha ka ng isang virtual network na may ID at passwordAt lahat kayo ay sasali sa network na iyon. Mula noon, nakikita na ng inyong mga computer ang isa't isa na parang nakakonekta sila sa iisang lokal na network, kahit na pisikal na nasa sarili ninyong tahanan ang bawat isa sa inyo.
Sa isang tipikal na halimbawa, ang host ang lumilikha ng network sa Hamachi, habang ang ibang mga manlalaro ay sumasali sa pamamagitan ng paglalagay ng nabuong ID at password. Makakakita ang lahat ng tulad ng "PC-Name" o "Laptop-Name" sa kanilang listahan, na may berdeng indicator na nagpapatunay na sila ay konektado. Sa ganitong paraan, kapag ang game server ay nakikinig sa Raspberry Pi o PC, ang iba ay makakagawa nito. Gamitin ang virtual IP address na ipinapakita ng Hamachi, sa halip na ang tunay na pampublikong IP address..
Praktikal na kaso: pag-set up ng isang sample na pribadong server
Para mas maging malinaw ang mga ideyang ito, maaari nating tingnan kung paano ang paglikha ng isang pribadong server sa isang laro sa PC na may mga kliyente na kumokonekta sa pamamagitan ng HamachiBagama't ang klasikong halimbawa ay karaniwang isang pamagat tulad ng Project Zomboid, ang mga prinsipyo ay maaaring gamitin sa iba pang mga laro na may nakalaang hardware.
Una, dapat mayroon ang lahat ng manlalaro ng larong legal na nakuha at na-install sa iyong systemKasama rito ang mga update, at mainam na patakbuhin ito nang isang beses upang mapatunayan na gumagana ito nang tama. Maipapayo na huwag paganahin ang full screen upang mabasa mo ang mga tagubilin o lumipat sa pagitan ng mga window nang hindi nawawala ang paningin sa nangyayari sa background.
Susunod, ang proseso ay nahahati sa ilang lohikal na yugto. Una, ang virtual network gamit ang Hamachi sa lahat ng kalahok na computerMaliban sa partikular na bahagi ng paglikha ng network, na ginagawa lamang ng host. Ang bawat manlalaro ay nagda-download ng Hamachi client, pipili ng mode nang walang central administration, i-install ito, at sasali sa network na nilikha ng taong nagho-host ng server.
Kapag nakakonekta na ang lahat sa virtual network na iyon, magsisimula na ang mga pagsasaayos. mga opsyon sa laro na may kaugnayan sa koneksyonSa kaso ng ilang mga laro na isinama sa Steam, maaaring kailanganing simulan ang laro gamit ang mga espesyal na parameter (halimbawa, isang flag tulad ng "-nosteam") upang maisaaktibo ang dedicated server mode o maiwasan ang mga conflict sa platform overlay.
Ang host lang ang kailangang mag-cast ng server executable na kasama sa laroKaraniwan itong nagbubukas ng console window kung saan makikita mo ang server na nag-i-initialize ng mga resources, naglo-load ng configuration, at pagkatapos, pagkalipas ng ilang segundo, magpapakita ng mensaheng tulad ng "SERVER STARTED" o katulad nito. Karaniwan ding mayroon ding configuration tool, minsan ay nakasulat sa Java, kung saan maaari mong isaayos ang mga detalye ng server tulad ng kung ito ay humihinto kapag walang laman ang server, ang pangalan ng mundo, mga panuntunan ng laro, at iba pa.
Ang karaniwang pagkakasunod-sunod ay binubuo ng Ayusin ang mga parameter, i-save ang configuration, i-restart ang server para mabasa nito ang mga pagbabagong iyon at, pagkatapos lamang, mabuksan ang game client. Mula sa pangunahing menu, papasok ang host sa online na seksyon, pipili ng opsyon na lumikha o sumali sa kanilang sariling lokal na server, at bubuo ng mundo o karakter na gagamitin nila sa sesyon.
Para mahikayat ang ibang mga manlalaro na sumali, ipinapasa sa kanila ng host ang virtual IP address na itinatalaga sa iyo ng Hamachi sa pribadong networkKokopyahin ng mga magkakaibigan ang IPv4 address mula sa sarili nilang window ng programa (kopyahin ang IPv4 address) at pagkatapos ay i-paste ito sa IP field ng online menu ng laro, sa halip na isang LAN o pampublikong IP address. Sa ganitong paraan, lohikal na makakakonekta ang lahat sa iisang server, na parang nasa iisang silid sila.
Karaniwan ding idinedetalye ng ganitong uri ng gabay ang ilang mga limitasyon: halimbawa, na para baguhin ang configuration ng server, kailangan mong baguhin ang mga parameter sa kaukulang tool, i-save at i-restart ang server at ang laro; o na Hindi laging malinaw kung paano ganap na i-reset ang mundo at magsimula mula sa simula nang hindi manu-manong binubura ang mga save folder. Bukod pa rito, marami sa mga prosesong ito ay napupunta sa mas maginhawang mga integrasyon sa loob ng mga platform tulad ng Steam, na ginagawang medyo lipas na ang mga manwal na gabay sa mga mas bagong bersyon.
Paano isama ang lahat ng ito sa isang laro sa Android
Kung bumubuo ka ng isang multiplayer na laro para sa Android at iniisip kung paano paganahin ang mga manlalaro na sumali sa mga online na laban, ang pinagbabatayan na lohika ay pareho sa mga nakaraang halimbawa. Kailangan mong magpasya kung ang iyong arkitektura ay aasa sa isang dedicated server kung saan kumokonekta ang mga mobile app O kung pipiliin mo ang peer-to-peer scheme kung saan direktang nakikipag-ugnayan ang bawat mobile phone sa isa't isa.
Kung pipili ka ng dedicated server, ang Raspberry Pi ay maaaring magsilbing perpektong testing environment, dahil maaari mong i-deploy ang server logic sa Java, Python, Node.js, o kahit anong app na ginagamit mo, at ituro ng iyong mga Android phone ang IP address ng Pi. Sa isang LAN, walang gaanong misteryo, at para subukan ang mga koneksyon mula sa labas, maaari mong gamitin ang port forwarding o isang VPN tulad ng Hamachi, tulad ng gagawin mo sa mga PC game.
Kung pipiliin mo ang peer-to-peer na pamamaraan, kakailanganin ng iyong code na pamahalaan ang pagtuklas ng ibang mga manlalaro, ang direktang pagpapalitan ng datos, at paglutas ng tunggalian Kapag halos sabay na nagaganap ang dalawang aksyon. Nakakatipid ito sa iyo mula sa pagpapanatili ng isang sentral na server, ngunit magiging kumplikado ang programming at seguridad, lalo na kung gusto mo itong maging matatag laban sa pandaraya.
Sa anumang kaso, ang pag-unawa kung paano pinangangasiwaan ng ibang mga laro ang pag-access sa pamamagitan ng mga pribadong server, mga simulated network na uri ng Hamachi, port forwarding, at mga kaugnay na domain Magbibigay ito sa iyo ng isang matibay na mapa ng pag-iisip. Pagkatapos, ang pag-aangkop ng mga pattern na iyon sa Android at sa iyong Pi ay magiging usapin ng pagpili ng tamang technology stack at pagpapahusay ng mga detalye ng implementasyon.
Sa huli, ang pag-set up ng isang Android game server gamit ang iyong Raspberry Pi ay nakasalalay sa pagsasama-sama ng ilang kilalang sangkap: Isang makinang laging naka-on at gumaganap bilang isang server, isang multiplayer na laro o lohika na maaaring makipag-ugnayan sa server na iyon, isang paraan para mahanap ng mga kliyente ang tamang address (IP o domain), at, kung kinakailangan, mga tool tulad ng mga VPN o port forwarding upang malampasan ang mga router.Kung naiintindihan mo ang mga konseptong ito, ang natitira ay mga pagsasaayos, pagsubok, at maraming paglalaro kasama ang mga kaibigan para matiyak na magiging maayos ang lahat. Ibahagi ang gabay na ito at tulungan ang mas maraming user na lumikha ng game server sa Android.