Çekmecenizde tozlanmış bir Raspberry Pi'niz ve çok oyunculu oyunlarla dolu bir Android telefonunuz varsa, kendi bilgisayarınızı kurmaya bir adım uzaktasınız demektir. Arkadaşlarınızla çevrimiçi oyun oynamak için ev altyapısıSüper bilgisayara ihtiyaç duymadan veya özel bir sunucuya servet harcamadan, iyi yapılandırılmış bir Pi, ister yerel ağda ister internet üzerinden olsun, küçük oyun evreninizin merkezi haline gelebilir.
Bu yazıda iki dünyayı bir araya getireceğiz: bir yandan bunun ima ettiği her şey. Raspberry Pi üzerinde oyun sunucusu kurma ve yönetmeBir yandan, özel sunucular, eşler arası ağlar, Hamachi tipi sanal ağlar ve port yönlendirme gibi kavramları kullanarak oyuncuları (Android veya diğer cihazlardan) nasıl bağlayacağınızın temellerini öğreneceksiniz. Amaç, ağlar ve sunucularla ilk kez ilgileniyor olsanız bile, çevrimiçi bir oyunun arkasındaki gerçek süreci anlamanız ve tam olarak nereden başlayacağınızı bilmenizdir.
Oyun sunucusu tam olarak nedir ve Android tüm bunların neresinde yer alıyor?
Çılgınca şeyler yüklemeye başlamadan önce, oyun sunucusunun oynadığı rolü anlamakta fayda var. Birçok modern çok oyunculu oyunda, özellikle rekabetçi veya sürekli oyunlarda, bir sunucu bulunur. Oyunda olup biten her şeyi koordine eden merkezi sunucu.Bu sunucu istatistikleri tutar, oyuncu veritabanlarını yönetir, oyun dünyasını kontrol eder ve tüm kullanıcıların eylemlerinin hile yapılmadan senkronize edilmesini sağlar.
Android mobil cihazınızdan oynadığınızda, oyun uygulaması bir şeyden başka bir şey değildir. istemci uzak sunucuya bağlanıyorBu genellikle oyun şirketi tarafından yönetilir (World of Warcraft veya benzeri mobil hizmetler gibi oyunlarda olduğu gibi). Ancak birçok durumda, özellikle bağımsız, açık kaynaklı veya LAN tabanlı oyunlarda, oyun ve ağ doğru şekilde yapılandırılmışsa, arkadaşlarınızın Android telefonlar da dahil olmak üzere cihazlarından bağlanabileceği özel bir sunucu kurmak mümkündür.
Özel sunucu mu yoksa eşler arası (peer-to-peer) ağ mı: sizin için hangi seçenek daha uygun?
Çevrimiçi bir oyun tasarlamaya veya yayınlamaya başladığınızda, mutlaka bir şeye ihtiyacınız olup olmadığı sorusu sıklıkla ortaya çıkar. sürekli açık olan özel sunucu Ya da eşler arası (P2P) bir mimari kullanıp kullanamayacağınız. Bu farkı anlamak, Raspberry Pi'nizi nasıl entegre edeceğinize ve arkadaşlarınızın oyuna nasıl katılacağına karar vermenin anahtarıdır.
Özel sunucu modelinde, belirli bir makine (bu durumda Raspberry Pi'niz veya ücretli bir uzak sunucu) şu şekilde davranır: Tüm oyuncuların bağlandığı merkezi noktaSunucu, oyunun temel mantığını hesaplar, bariz hileleri kontrol eder, ilerlemeyi kaydeder ve bu bilgileri masaüstü bilgisayarlar, dizüstü bilgisayarlar veya Wi-Fi ya da mobil veri üzerinden bağlanan Android cihazlar gibi tüm istemcilere dağıtır.
Eşler arası modelde işler oldukça değişiyor çünkü Komut veren tek bir sunucu yok.Her oyuncu aynı anda hem istemci hem de kısmi sunucu görevi görür ve veriler katılımcılar arasında doğrudan paylaşılır. Bu, özel bir sunucu kurma zorunluluğundan sizi kurtarabilir, ancak senkronizasyonu karmaşıklaştırır, hileye daha fazla olanak tanır ve her cihazın bağlantısına büyük ölçüde bağımlıdır.
Araştırma yaptıktan sonra birçok acemi geliştiricinin eşler arası (peer-to-peer) kavramını keşfetmesi ve özellikle bu yönde ilerlemeye karar vermesi oldukça yaygındır. özel bir sunucu için ödeme yapmak istemediklerinde Ya da bir sunucuyu yönetmek konusunda kendilerini rahat hissetmiyorlar. Her durumda, nihayetinde P2P'yi tercih etseniz bile, Raspberry Pi üzerinde klasik bir sunucu kurmayı anlamak, çevrimiçi oyunların perde arkasında nasıl çalıştığı konusunda size çok net bir fikir verecektir.
Özel bir sunucu ücretli midir ve alternatifleri nelerdir?
En büyük soru genellikle, özel bir sunucunun mutlaka şu anlama gelip gelmediğidir: Veri merkezinde barındırılan bir makine için her ay ödeme yapmakKısa cevap hayır: Eski bir bilgisayar veya Raspberry Pi gibi kendi donanımınızı kullanarak, sınırlamalarını kabul ettiğiniz sürece, ekstra para harcamadan özel bir sunucuya sahip olabilirsiniz.
Ücretli özel sunucu dediğimizde genellikle şunu kastediyoruz: bulutta veya hosting sağlayıcılarından sözleşmeyle alınan makinelerİşletim sistemini ve hizmetleri siz kontrol edersiniz, ancak donanım ve profesyonel bağlantıyı onlar sağlar. Bu, muazzam bir istikrar sunar ve birden fazla oyuncunun yer almasına olanak tanır, ancak doğal olarak tekrarlayan maliyetleri de beraberinde getirir.
Öte yandan, Raspberry Pi'nizi evde özel bir sunucu olarak kullanmaya karar verirseniz, donanım maliyeti çok düşüktür (yaklaşık olarak). Evde zaten bulunan basit bir ocak için 30 euro.Gerisi internet bağlantınıza ve yönlendiricinize bağlı. Bunun karşılığında, güç ve bant genişliğinde belirli sınırlamaları kabul etmeniz gerekecek; bu nedenle sunucunuz özel oyunlar için mükemmel olacak, ancak yüzlerce kişiyi ağırlamak için uygun olmayacaktır.
Bir Raspberry Pi oyun sunucusu olarak neler yapabilir?
Raspberry Pi temelde bir 7/24 çalışabilen düşük güç tüketimli mini bilgisayarÇok mütevazı donanımıyla, ev sunucusu görevlerinin birçoğu için fazlasıyla yeterli. Oyun oynamanın yanı sıra, kişisel bulut, medya merkezi, indirme istemcisi veya hatta retro oyun konsolu olarak da kullanılabildiğini muhtemelen duymuşsunuzdur; üstelik minimum güç tüketimiyle.
Oyun dünyasında Pi, profesyonel bir sunucuyla rekabet edemez, ancak hafif oyunlar veya mütevazı kurulumlar için yeterlidir. Küçük bir yerel ağı veya birkaç uzak bağlantıyı kolayca yönetebilir.İşlemcisinin ve RAM'inin çok sınırlı olduğunu unutmayın, bu nedenle onlarca oyuncunun aynı anda gecikme veya çökmeler yaşamadan oynamasını beklemeyin.
Önemli olan, özel sunuculara izin veren ve çok fazla kaynak gerektirmeyen oyunları seçmektir. Örneğin, özel sunuculara izin veren ve çok fazla kaynak gerektirmeyen oyunlar gibi. Minecraft, 3 boyutlu blok tabanlı kum havuzu oyunu. ve Terraria Bu profile mükemmel şekilde uyuyorlar ve birçoğunun Raspberry Pi'ye sunucularını kurmak için test edilmiş yapılandırmalarla birlikte özel kılavuzları zaten mevcut.
Raspberry Pi üzerinde çalıştırabileceğiniz oyun örnekleri
Özel sunucularla uyumlu oyunlar kataloğunda, dikkat çeken iki oyun bulunmaktadır: Minecraft, 3 boyutlu blok tabanlı kum havuzu oyunu ve Terraria, onun 2 boyutlu rakibi.Her iki oyun da, istemcilerin bağlanacağı belirli bir sunucuyu dağıtma özelliğini içeriyor; bu sayede genel sunuculara bağımlı kalmadan özel oyunlar oluşturabilirsiniz.
Raspberry Pi'nizi bu oyunlar için sunucu olarak kullanarak şunları yapabilirsiniz: Arkadaşlarınızla oynayabileceğiniz kalıcı dünyalar oluşturun.Bu işlem, yerel bir ağ üzerinden (örneğin, herkesin aynı Wi-Fi ağına bağlı olması) veya internet üzerinden yapılabilir. Genel fikir, ARM için uyarlanmış bir sunucu sürümü kurmak, temel parametreleri (maksimum oyuncu sayısı, zorluk seviyesi, dünya tohumları vb.) yapılandırmak ve ilgili portu açmak veya yönlendirmektir.
Birinci şahıs oyunları ilginizi çekiyorsa, Pi'de çalıştırabileceğiniz birkaç klasik seçenek de mevcut. Bunlara örnek olarak şunlar verilebilir: QuakeWorld, AssaultCube veya efsanevi Doom Bu tür donanımlarda iyi çalışan sunucu sürümleri mevcut. Modern nişancı oyunlarına göre çok daha hafif oyunlar ve doğru şekilde yapılandırıldıklarında, oldukça sorunsuz bir deneyimle birden fazla oyuncuyu destekleyebiliyorlar.
Bu FPS oyunlarında kendi sunucunuzu kullanmanın avantajı, oyunun kendi sunucunuzda barındırılmasıdır. Kontrol ettiğiniz bir makinede merkezileştirilmişBu, birilerinin gecikmeyi istismar etme veya tipik genel sunucu hilelerini kullanma riskini azaltır. Ayrıca, yeniden doğma süresi, silah hasarı veya harita rotasyonu gibi parametreleri üçüncü taraflara bağımlı kalmadan ayarlayabilirsiniz.
Raspberry Pi, açık dünya oyunları ve nişan alma oyunlarının ötesinde, aşağıdakilerle de iyi çalışır: Özel sunucu desteği bulunan strateji oyunları ve gündelik oyunlar.İlginç örnekler arasında FreeCiv (Civilization'ın ücretsiz bir kopyası), Windward (işbirlikçi korsan maceraları), The Battle for Wesnoth (Age of Empires gibi klasiklerden esinlenilmiş sıra tabanlı bir strateji oyunu), Crossfire (gizlilik içeren arcade-strateji) ve ulaşım yönetimini RollerCoaster Tycoon ile Monopoly'nin bir karışımına benzer şekilde yeniden yorumlayan OpenTTD yer alıyor.

Pi üzerinde kendi sunucunuzla yerel ağ ve internet oyunları oynayın.
Raspberry Pi üzerinde favori oyun sunucunuzu kurup çalıştırdıktan sonra, başkalarının bağlanmasının iki ana yolu vardır: Yerel ağınız (LAN) üzerinden veya evinizin dışından internet üzerinden.LAN modu genellikle en basit olanıdır, çünkü tüm cihazlar aynı yönlendiricinin arkasındadır ve dışarıya herhangi bir şey göstermenize gerek yoktur.
LAN oyunları için, Android telefonların veya diğer istemcilerin aynı Wi-Fi ağına bağlı olması ve aşağıdaki ayarların kullanılması yeterlidir: Raspberry Pi'nin yerel IP adresi sunucu adresi olarak kullanılıyor.Birçok oyun, yayın yoluyla yerel ağdaki sunucuları otomatik olarak algılar, ancak algılamıyorsa, IP adresini istemciye manuel olarak girmeniz yeterlidir.
Eğer evinizde olmayan arkadaşlarınızın da katılabilmesini istiyorsanız, o zaman şu alana giriyorsunuz demektir... uzaktan bağlantılarBurada esasen iki yolunuz var: Yönlendiricinizde portları açın (port yönlendirme) veya VPN kullanarak yerel bir ağ simüle edin. Hamachi'nin sunduğu gibi. Her yöntemin kendine özgü karmaşıklığı var, ancak ikisi de tamamen uygulanabilir.
Ev sunucunuz için port yönlendirme ve alan adı kullanımı
Ev sunucusunu internete açmanın klasik yolu, ünlü yapılandırmayı kullanmaktır. yönlendiricide port yönlendirmeBu işlem, yönlendiriciye belirli bir porta (örneğin, Minecraft durumunda 25565) gelen tüm trafiği Raspberry Pi'nin yerel IP adresine yönlendirmesini söylemeyi içerir. Bu sayede, dışarıdan biri o port üzerinden genel IP adresinize bağlandığında, istek oyun sunucunuza ulaşır.
Port yönlendirme, oldukça verimli olması ve üçüncü taraf programlara bağımlı olmaması avantajına sahiptir, ancak bazı gereksinimleri de vardır. Yönlendiricinizin ayarlarına nasıl erişeceğinizi bilmeli ve güvenlik konusunda biraz dikkatli olmalısınız.Ayrıca, eğer herkese açık IP adresiniz dinamik ise, zamanla değişebilir ve bu da arkadaşlarınızın sürekli olarak "Hey, şu anki IP adresin ne?" diye sormasına neden olabilir.
İşte tam da bu nedenle sunucunuzu bir şeye bağlamanız şiddetle tavsiye edilir. alan adı veya dinamik DNS hizmetiArkadaşlarınıza sürekli değişen sayısal bir adres vermek yerine, her zaman mevcut IP adresinize işaret eden basit bir alan adı verin. Bu yöntem, Android veya başka herhangi bir cihazdan sunucuya bağlanmayı çok daha kolay hale getirir.
Portları açmadan alternatif çözüm: Hamachi benzeri bir sanal ağ oluşturun.
Eğer tüm bu port açma işlemleri size karmaşık geliyorsa veya yönlendiricinizle uğraşmak istemiyorsanız, çok kullanışlı başka bir seçenek daha var: bir Hamachi tipi VPN kullanarak sanal özel ağ oluşturun.Bu yaklaşım, ağ donanımı yapılandırmasıyla uğraşmadan arkadaşlarıyla oyun kurmak isteyen oyuncular arasında çok popülerdir.
Temel fikir basit: Siz ve arkadaşlarınız şöyle bir program yüklüyorsunuz: LogMeIn Hamachi'de, bir kimlik ve şifre ile sanal bir ağ oluşturursunuz.Ve hepiniz bu ağa katılıyorsunuz. O andan itibaren, her biriniz fiziksel olarak kendi evinizde olsanız bile, bilgisayarlarınız birbirini aynı yerel ağa bağlıymış gibi görüyor.
Tipik bir örnekte, sunucu Hamachi'de ağı oluştururken, diğer oyuncular oluşturulan kimlik ve şifreyi girerek katılırlar. Herkes listede "Bilgisayar Adı" veya "Dizüstü Bilgisayar Adı" gibi bir şey görecek ve bağlantının kurulduğunu onaylayan yeşil bir gösterge belirecektir. Bu şekilde, oyun sunucusu Raspberry Pi veya bir bilgisayarda dinleme yaparken, diğerleri de oyuna bağlanabilir. Hamachi'nin gösterdiği sanal IP adresini, gerçek genel IP adresi yerine kullanın..
Pratik örnek: Örnek bir özel sunucu kurulumu
Bu fikirleri biraz daha somutlaştırmak için, bir şeyin yaratılışının nasıl gerçekleştiğine bakabiliriz. PC oyununda Hamachi üzerinden bağlanan istemcilere sahip özel sunucuKlasik örnek genellikle Project Zomboid gibi bir oyun olsa da, bu prensipler özel donanıma sahip diğer oyunlara da uyarlanabilir.
Öncelikle, tüm oyuncuların şunlara sahip olması gerekir: oyun yasal olarak edinilmiş ve sisteminize yüklenmiştirBu, güncellemeleri de içerir ve doğru çalıştığını doğrulamak için bir kez çalıştırmanızda fayda var. Arka planda neler olup bittiğini gözden kaçırmadan talimatları okuyabilmeniz veya pencereler arasında geçiş yapabilmeniz için tam ekran modunu devre dışı bırakmanız önerilir.
Ardından, süreç birkaç mantıksal aşamaya ayrılır. İlk olarak, Katılımcı tüm bilgisayarlarda Hamachi bulunan sanal ağ.Ağ oluşturma işlemi tamamen sunucu sahibi tarafından yapılır. Her oyuncu Hamachi istemcisini indirir, merkezi yönetim olmadan modu seçer, kurar ve sunucu sahibi tarafından oluşturulan ağa katılır.
Herkes sanal ağa bağlandıktan sonra, ayarlamalar başlar. bağlantıyla ilgili oyun seçenekleriSteam ile entegre edilmiş bazı oyunlarda, özel sunucu modunu etkinleştirmek veya platform arayüzüyle çakışmaları önlemek için oyunu özel parametrelerle (örneğin, "-noster" gibi bir işaret) başlatmak gerekebilir.
Sunucu, oyuncu seçimini yapması gereken tek kişidir. Oyunla birlikte gelen sunucu yürütülebilir dosyasıBu genellikle, sunucunun kaynakları başlatmasını, yapılandırmayı yüklemesini ve ardından birkaç saniye sonra "SUNUCU BAŞLATILDI" veya benzeri bir mesaj görüntülemesini görebileceğiniz bir konsol penceresi açar. Ayrıca, sunucu boşken duraklatılıp duraklatılmayacağı, dünya adı, oyun kuralları vb. gibi sunucu ayrıntılarını ayarlayabileceğiniz, bazen Java ile yazılmış bir yapılandırma aracı da bulunur.
Tipik sıralama şunlardan oluşur: Parametreleri ayarlayın, yapılandırmayı kaydedin, sunucuyu yeniden başlatın. Böylece değişiklikleri okuyabilir ve ancak ondan sonra oyun istemcisini açabilir. Ana menüden, sunucu sahibi çevrimiçi bölümüne girer, kendi yerel sunucusunu oluşturma veya katılma seçeneğini seçer ve oturumda kullanacağı dünyayı veya karakteri oluşturur.
Diğer oyuncuların katılmasını sağlamak için, sunucu onlara komutu iletir. Hamachi'nin özel ağda size atadığı sanal IP adresi.Arkadaşlar kendi program pencerelerinden IPv4 adresini kopyalayıp (IPv4 adresini kopyala) oyunun çevrimiçi menüsündeki IP alanına yapıştırırlar; bu, yerel ağ veya genel IP adresi yerine kullanılır. Bu şekilde, herkes aynı sunucuya bağlanır, sanki aynı odadaymış gibi.
Bu tür kılavuzlar genellikle belirli sınırlamaları da detaylandırır: örneğin, sunucu yapılandırmasını değiştirmek için ilgili araçtaki parametreleri değiştirmeniz, kaydetmeniz ve sunucuyu ve oyunu yeniden başlatmanız gerekir; veya Dünyayı tamamen sıfırlamanın yolu her zaman açık değildir. ve kayıt klasörlerini manuel olarak silmeden sıfırdan başlayabilirsiniz. Dahası, bu işlemlerin çoğu Steam gibi platformlardaki daha kullanışlı entegrasyonlar tarafından otomatik olarak devralınıyor ve bu da yeni sürümlerle birlikte manuel kılavuzları bir bakıma gereksiz hale getiriyor.
Tüm bunları bir Android oyununa nasıl sığdırabiliriz?
Android için çok oyunculu bir oyun geliştiriyorsanız ve oyuncuların çevrimiçi maçlara katılmasını nasıl sağlayacağınızı merak ediyorsanız, temel mantık önceki örneklerdekiyle aynıdır. Mimarinizin bir şeye mi yoksa diğerine mi dayanacağına karar vermeniz gerekiyor. Mobil uygulamaların bağlandığı özel sunucu Ya da her cep telefonunun diğerleriyle doğrudan iletişim kurduğu eşler arası bir sistemi tercih edebilirsiniz.
Eğer özel bir sunucu seçerseniz, Raspberry Pi mükemmel bir test ortamı olarak hizmet verebilir, çünkü sunucu mantığını Java, Python, Node.js veya kullandığınız herhangi bir uygulamada dağıtabilir ve Android telefonlarınızın Pi'nin IP adresine yönlendirilmesini sağlayabilirsiniz. Yerel ağda (LAN) çok fazla gizem yoktur ve dışarıdan bağlantıları test etmek için, tıpkı PC oyunlarında olduğu gibi port yönlendirme veya Hamachi gibi bir VPN kullanabilirsiniz.
Eğer eşler arası (peer-to-peer) yaklaşımı tercih ederseniz, kodunuzun şu şekilde olması gerekecektir: Diğer oyuncuların keşfedilmesini, doğrudan veri alışverişini ve çatışma çözümünü yönetmek. İki eylem neredeyse eş zamanlı olarak gerçekleştiğinde. Bu, merkezi bir sunucu bulundurma zorunluluğunu ortadan kaldırır, ancak özellikle hileye karşı dayanıklı olmasını istiyorsanız, programlamayı ve güvenliği karmaşıklaştırır.
Her halükarda, diğer oyunların erişimi nasıl ele aldığını anlamak önemlidir. Özel sunucular, Hamachi tipi simüle edilmiş ağlar, port yönlendirme ve ilgili alan adları Bu size oldukça sağlam bir zihinsel harita sağlayacaktır. Ardından, bu kalıpları Android ve Pi'nize uyarlamak, doğru teknoloji yığınını seçmek ve uygulama ayrıntılarını iyileştirmek meselesi olacaktır.
Özetle, Raspberry Pi'nizle bir Android oyun sunucusu kurmak, bilinen birkaç bileşeni bir araya getirmekten ibarettir: Sürekli açık olan ve sunucu görevi gören bir makine, bu sunucuyla iletişim kurabilen çok oyunculu bir oyun veya mantık, istemcilerin doğru adresi (IP veya alan adı) bulmasının bir yolu ve gerekirse yönlendiricileri atlamak için VPN'ler veya port yönlendirme gibi araçlar.Bu kavramları anlıyorsanız, gerisi sadece ayarlamalar, testler ve her şeyin düzgün çalıştığından emin olmak için arkadaşlarınızla bol bol oynamaktan ibaret. Bu kılavuzu paylaşarak daha fazla kullanıcının Android'de oyun sunucusu oluşturmasına yardımcı olun.