Şimdi Ara

Unity ile online oyun hakkında birkaç soru

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
11
Cevap
3
Favori
9.969
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Başlıktan anlaşıldığı üzere bazı sorunlarım var arkadaşlar. Unity ile 3 4 aydır yoğun bir şekilde çalışıyorum. Genel olarak 2d oyun yazıyorum. Temel kavramları ve arayüzü öğrendim diyebilirim. Şimdi yaptığım oyunları playe atacağım sertifika alacağım ama oyunlar çok yavan kalıyor. Zaten oyun olarak değil, ders olarak gördüm çoğu şeyi sırf kendimi geliştirmek için yazdım. Şimdi aklımda güzel diyebileceğim fikirler var. Fakat genel olarak online oyun hakkında ciddi eksikliklerim var. Genel olarak bir bilgi almak istedim. Sorularımı ve ihtiyaçlarımı listelesem daha kolay olur sanırım.

    1) Çok basit şekilde bile olsa sadece online android oyun mantığını merak ediyorum. Atıyorum 2 kişi bir odaya girsin, odada random sayı belirleyim sayıyı bilen puan alsın, diğeri puan kaybetsin bunları veritabanına işleyeyim. Bu kadar basit olsa bile şimdilik yeterli, merak ettiğim bu oda, online olma, sql vs durumları. Eğer bunları kavrarsam oyun kompleks olmuş, basit olmuş şu an için önemli değil. Sadece bu işleyici merak ediyorum.

    2) Web sitesi vs kurdum önceden tabii sunucu gerekiyor bunun için online bir oyun için de illaki sunucu gerekiyordur. Bunlar nasıl sunucular arkadaşlar? Nerden ne kadarlık alayım? Bir websitesi kadar yoğun, ağır trafiği olur mu? Genel olarak bilgi verebilirseniz çok iyi olur.

    3) 1. soruda belirttiğim örnekteki gibi çok basit dahi olsa sadece mantığı anlamak için gereken bir projeyi nereden bulabilirim? Assetstore daha çok animasyon vs için gibime geldi, zaten indirdiklerimin çoğu hatalı çıkıyor. Ben istiyorum ki hazır unity projeleri bulabilir miyim? Önemli olan kodlama mantığı vs. merak ettiklerim bunlar. Bu tarz kodlarını inceleyip, kendimi geliştirebileceğim ortamlar mevcut mu?

    pek toparlayamadım istediklerimi galiba ama illaki bir şeyler anlatabilmişimdir. Emek verip, cevap veren herkese şimdiden teşekkürler







  • Öncelikle şunu söylemem gerekiyor. Unity de usta değilim ancak geçen sene hobi olarak bir online oyun yapmayı denemiştim. Online çalışan 3D bir araba yarışıydı. Dediğin gibi kullanıcıları birbirleriyle eşliyip aynı yarışa koyup, yarış sonucuna göre altın ve skor dağılımı yapıyordu.

    Öncelikle şunu söylemem gerek. Bu işin server kısmı tamamen ücretsiz değil. Ama çoğu oyun server belirli limitler dahilinde ücretsiz paketler de sağlıyorlar.

    İlk olarak oyunun türüne göre bir realtime multiplayer server alman lazım. Kendi serverını kendin de kurabilirsin elbette. Bunun için bazı kaynaklar var. Ancak bilgisayarın sürekli açık kalmasını sağlamak, static IP almak, evdeki internet hızının oyuncuları etkilemesi gibi sorunların önene geçmek için dışarından server ile bu iş daha iyi olur bence. Bu arada oyunun tur tabanlı (turn based) veya gerçek zamanlı (realtime) olması durumuna göre server seçmen gerekiyor.

    Oyuncuların birbirleri ile iletişimi:

    1- Google Play Games: Eğer oyun sadece android tabanlı olacaksa Google Play Games ücretsiz olarak sunucu sağlıyor. Oyuncuları eşleştirip birbirleri ile data alışverişi yaptırabiliyorsun. Benim oyunum bu şekilde çalışıyordu. Ancak kullanıcı bilgilerini (kullanıcı adı, şifre, skor, altın vs) farklı bir oyun sunucusunda tutuyordum. Dediğim gibi, sadece aktif kullanıcıların birbirleri ile iletişimi için Google Play Games ücretsiz. Performansı da fena değil. Belki kullacı verilerini tutmanın da bir yolu vardır ancak ben çok uğraşamadım.
    Unity eklentisi:https://github.com/playgameservices/play-games-plugin-for-unity
    Örnek proje videosu:https://www.youtube.com/watch?v=joOkQK5EjHw&t=46s

    2- Photon Unity Networking: Photon firmasının unity için açmış olduğu bir seçenek. Bu seçenek de google play games de yapabildiğin herşeyi yapabiliyorsun. Unity marketinde eklentileri var. Onları indirip hazır kodlarlar çok daha hızlı ve kolay bir şekilde çalışabilirsin. Tek sorun bu servisin ücretsiz paketi sadece 20 aktif kullanıcıyı destekliyor. Paket fiyatlarına aşağıdan bakabilirsin.
    Link:https://www.photonengine.com/en-US/PUN/Pricing#plan-20

    3- Unity Multiplayer : Bu servis de benim oyunumu geliştirdiğim dönemde Photon 'un bir benzeriydi ve aynı şekilde aktif 20 kullanıcıdan fazlası için paralıydı. Ancak az önce kontrol ettiğimde tamamen farklı bir arayüz karşıma çıktı. Örnek projeler de var. Biraz kurcalayabilirsin.
    Link :https://unity3d.com/unity/features/multiplayer

    Elbette farklı seçenekler de mevcuttur. Biraz araştırma yapmak lazım. Ancak en popüler olanları bu 3 üydü geçen sene.


    Kullanıcı bilgilerinin tutulması

    1- Gamesparks : Benim kullanımdığım sunucu buydu. Hala oyun denemelerimde bunu kullanırım. Biraz basit oluşundan, bir de cloud code sisteminin güzel çalışmasından. Server kodlarını java script ile yazabiliyorsun. Aylık 100000 aktif kullanıcıya kadar ücretsiz.
    Link:https://www.gamesparks.com/pricing/

    2- Playfab : Bu platformu da çok kullanan duydum. Popüler olanlardan biri ancak kendim şahsen kullanmadığımdan bir yorum yapamayacak. Kullanıcılara aylık uyguladığı bazı data trafik kotasıyla ücretsiz bir paketi mevcut. Kendin deneyebilirsin.
    Link:https://playfab.com/pricing/

    3- Google Firebase : Google ın kendi oyun sunucusu. Yukarıda bahsettiğim herşeyi yapabiliyorsun. Şahsen test etmedim ancak Google güvencesi olduğundan en popüler sunucu budur veya bu olacaktır diye düşünüyorum. Ücretsiz bir paketi mevcut
    Link:https://firebase.google.com/pricing/

    ve bunlara benzer daha sayısız oyun sunucusu mevcut. Kendin test et, hangisi hoşuna giderse onu kullan.
    Ben kendi oyunumu Google Play Games + Gamesparks şeklinde yapmıştım. Bu ikisi hakkında sorun olursa memnuniyetle yardımcı olmaya çalışırım.
  • Öncelikle şunu söylemem gerekiyor. Unity de usta değilim ancak geçen sene hobi olarak bir online oyun yapmayı denemiştim. Online çalışan 3D bir araba yarışıydı. Dediğin gibi kullanıcıları birbirleriyle eşliyip aynı yarışa koyup, yarış sonucuna göre altın ve skor dağılımı yapıyordu.

    Öncelikle şunu söylemem gerek. Bu işin server kısmı tamamen ücretsiz değil. Ama çoğu oyun server belirli limitler dahilinde ücretsiz paketler de sağlıyorlar.

    İlk olarak oyunun türüne göre bir realtime multiplayer server alman lazım. Kendi serverını kendin de kurabilirsin elbette. Bunun için bazı kaynaklar var. Ancak bilgisayarın sürekli açık kalmasını sağlamak, static IP almak, evdeki internet hızının oyuncuları etkilemesi gibi sorunların önene geçmek için dışarından server ile bu iş daha iyi olur bence. Bu arada oyunun tur tabanlı (turn based) veya gerçek zamanlı (realtime) olması durumuna göre server seçmen gerekiyor.

    Oyuncuların birbirleri ile iletişimi:

    1- Google Play Games: Eğer oyun sadece android tabanlı olacaksa Google Play Games ücretsiz olarak sunucu sağlıyor. Oyuncuları eşleştirip birbirleri ile data alışverişi yaptırabiliyorsun. Benim oyunum bu şekilde çalışıyordu. Ancak kullanıcı bilgilerini (kullanıcı adı, şifre, skor, altın vs) farklı bir oyun sunucusunda tutuyordum. Dediğim gibi, sadece aktif kullanıcıların birbirleri ile iletişimi için Google Play Games ücretsiz. Performansı da fena değil. Belki kullacı verilerini tutmanın da bir yolu vardır ancak ben çok uğraşamadım.
    Unity eklentisi:https://github.com/playgameservices/play-games-plugin-for-unity
    Örnek proje videosu:https://www.youtube.com/watch?v=joOkQK5EjHw&t=46s

    2- Photon Unity Networking: Photon firmasının unity için açmış olduğu bir seçenek. Bu seçenek de google play games de yapabildiğin herşeyi yapabiliyorsun. Unity marketinde eklentileri var. Onları indirip hazır kodlarlar çok daha hızlı ve kolay bir şekilde çalışabilirsin. Tek sorun bu servisin ücretsiz paketi sadece 20 aktif kullanıcıyı destekliyor. Paket fiyatlarına aşağıdan bakabilirsin.
    Link:https://www.photonengine.com/en-US/PUN/Pricing#plan-20

    3- Unity Multiplayer : Bu servis de benim oyunumu geliştirdiğim dönemde Photon 'un bir benzeriydi ve aynı şekilde aktif 20 kullanıcıdan fazlası için paralıydı. Ancak az önce kontrol ettiğimde tamamen farklı bir arayüz karşıma çıktı. Örnek projeler de var. Biraz kurcalayabilirsin.
    Link :https://unity3d.com/unity/features/multiplayer

    Elbette farklı seçenekler de mevcuttur. Biraz araştırma yapmak lazım. Ancak en popüler olanları bu 3 üydü geçen sene.


    Kullanıcı bilgilerinin tutulması

    1- Gamesparks : Benim kullanımdığım sunucu buydu. Hala oyun denemelerimde bunu kullanırım. Biraz basit oluşundan, bir de cloud code sisteminin güzel çalışmasından. Server kodlarını java script ile yazabiliyorsun. Aylık 100000 aktif kullanıcıya kadar ücretsiz.
    Link:https://www.gamesparks.com/pricing/

    2- Playfab : Bu platformu da çok kullanan duydum. Popüler olanlardan biri ancak kendim şahsen kullanmadığımdan bir yorum yapamayacak. Kullanıcılara aylık uyguladığı bazı data trafik kotasıyla ücretsiz bir paketi mevcut. Kendin deneyebilirsin.
    Link:https://playfab.com/pricing/

    3- Google Firebase : Google ın kendi oyun sunucusu. Yukarıda bahsettiğim herşeyi yapabiliyorsun. Şahsen test etmedim ancak Google güvencesi olduğundan en popüler sunucu budur veya bu olacaktır diye düşünüyorum. Ücretsiz bir paketi mevcut
    Link:https://firebase.google.com/pricing/

    ve bunlara benzer daha sayısız oyun sunucusu mevcut. Kendin test et, hangisi hoşuna giderse onu kullan.
    Ben kendi oyunumu Google Play Games + Gamesparks şeklinde yapmıştım. Bu ikisi hakkında sorun olursa memnuniyetle yardımcı olmaya çalışırım.




  • eeerdem kullanıcısına yanıt
    Hocam çok sağolun baya bilgilendirmişsiniz. Ben konuya yazmayı unuttum fakat biraz araştırma yaptığım zaman tıpkı sizin ki gibi photon ve birkaç farklı sistem çok öneriliyordu. Misal Şurada

    Sonra bu sistemleri araştırdım fakat fiyatlar pek istediğim gibi çıkmadı.
    https://www.photonengine.com/en-US/OnPremise/Pricing
    500 CCU yani aktif 2k için aylık 95 $ istiyor. Belki yurt dışı için bu fiyatlar normaldir fakat kur farkını ortaya koyarsak, ben bir proje yapsam sadece zarar ederim gibime geliyor :) Sanırım bu maliyeti düşük tutmanın yolu: normal sunucu kiralayıp gerekli kodu yazarsam daha düşük olabilirmiş. Soket programlama, client vs vs bir sürü terim geçiyor, not aldım hepsini ama direkt şunu yapacaksın diyen olmadı.

    Dediğim gibi bazı şeyleri biliyorum ama çoğu şeyi de bilmiyorum :D Öğrenmeye çalışıyorum ama yorucu olmaya başladı. Bölüm başladı, 2. sınıfım bu dönem 8 tane ders alıyorum. Kimse oyun yazabiliyorum diye derslerden geçirmeyecek. Ufak ufak iş yapmaya, az da olsa para kazanırım diyerek girdim ama pek istediğim gibi çıkmadı oyun sektörü. Sağlık olsun ne diyelim, bir iki hafta daha sınav stresi başlamadan bakacağım bu online işlerine. Eğer 2d yazdığım bir oyunu kolayca online hale entegre edebilirsem belki yıl içinde oyunlar yaparım ama sınavlar bir başladı mı gözümü anca yazın bütler bitince açabiliyorum. O yüzden şimdilik zora girdi gibi, kısmet.




  • Hocam photon ve unity multiplayer’da 20 aktif kullanıcı sayısı derken aynı oyunda 20 kişi mi yoksa oyunu oynayan toplam kişi sayısı 20 kişi ile mi sınırlı?
    Aklımda hem ios hem android 2 kişilik online 2D oyun var.



    < Bu mesaj bu kişi tarafından değiştirildi onur01 -- 28 Eylül 2017; 14:55:14 >
    < Bu ileti mobil sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: onur01

    Hocam photon ve unity multiplayer’da 20 aktif kullanıcı sayısı derken aynı oyunda 20 kişi mi yoksa oyunu oynayan toplam kişi sayısı 20 kişi ile mi sınırlı?
    Aklımda hem ios hem android 2 kişilik online 2D oyun var.

    Oyunu oynayan aktif kişi sayısı 20 dir. Yani uygulamayı açmış ve real time oyunlardan birine girmiş oyuncu sayısı. Test etmedim ama bildiğim bu



    < Bu mesaj bu kişi tarafından değiştirildi eeerdem -- 30 Eylül 2017; 3:2:15 >
    < Bu ileti mobil sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: Antifa_ultra

    Hocam çok sağolun baya bilgilendirmişsiniz. Ben konuya yazmayı unuttum fakat biraz araştırma yaptığım zaman tıpkı sizin ki gibi photon ve birkaç farklı sistem çok öneriliyordu. Misal Şurada

    Sonra bu sistemleri araştırdım fakat fiyatlar pek istediğim gibi çıkmadı.
    https://www.photonengine.com/en-US/OnPremise/Pricing
    500 CCU yani aktif 2k için aylık 95 $ istiyor. Belki yurt dışı için bu fiyatlar normaldir fakat kur farkını ortaya koyarsak, ben bir proje yapsam sadece zarar ederim gibime geliyor :) Sanırım bu maliyeti düşük tutmanın yolu: normal sunucu kiralayıp gerekli kodu yazarsam daha düşük olabilirmiş. Soket programlama, client vs vs bir sürü terim geçiyor, not aldım hepsini ama direkt şunu yapacaksın diyen olmadı.

    Dediğim gibi bazı şeyleri biliyorum ama çoğu şeyi de bilmiyorum :D Öğrenmeye çalışıyorum ama yorucu olmaya başladı. Bölüm başladı, 2. sınıfım bu dönem 8 tane ders alıyorum. Kimse oyun yazabiliyorum diye derslerden geçirmeyecek. Ufak ufak iş yapmaya, az da olsa para kazanırım diyerek girdim ama pek istediğim gibi çıkmadı oyun sektörü. Sağlık olsun ne diyelim, bir iki hafta daha sınav stresi başlamadan bakacağım bu online işlerine. Eğer 2d yazdığım bir oyunu kolayca online hale entegre edebilirsem belki yıl içinde oyunlar yaparım ama sınavlar bir başladı mı gözümü anca yazın bütler bitince açabiliyorum. O yüzden şimdilik zora girdi gibi, kısmet.

    Photon işin en kolay yolu olduğundan fiyat biraz pahalı. Bence google play games e bi şans ver derim. Eğer sadece mobil olacaksa oyunun. Emin değilim ama play games in ios cihazlarda da çalıştığını duydum. Sanırım ios cihazlı oyuncuda google play games yüklü değilse uygulama direk appStore da yüklemeye zorluyodu.



    Ben hobi olsun diye yapıyorum. Ama eğer bu işin okulunu okuyosan, ve android le uğraşmak istiyorsan, java ile android studyo da native oyun yazman olacaktır. Aradaki performans farkı uçurum niteliğinde ve oyun boyutu unity den çok daha az olur.

    Unity biraz daha 3D oyunlar için güzel bir oyun motoru. Sağlam bir 3D oyun da sadece kodlardan oluşmuyor. Grafik ve 3D tasarım inan bana kodlardan çok daha zamanını alır ve yetenek meselesidir. Ben yazdığım 3D multiplayer araba yarışı oyununu bitirmeme rağmen koymadım google play e. Çünkü aynı kategorideki oyunlara baktığımda, ben araba yarışı oyunumun grafikleri bana bile daha kötü geliyordu, kodlarda hiçbir sıkıntı olmamasına rağmen.

    < Bu ileti mobil sürüm kullanılarak atıldı >




  • eeerdem kullanıcısına yanıt
    Bir bakacağım hocam Playe, ücretsiz olan paketleri kullanabilirsem derim ki; en azından kodlar çalışıyor. Okul olarak bilgisayar mühendisliği okuyorum ama bölüm pek Android Mobil oyun vs öğretme niyetinde değil. Genel olarak Anadolu'daki nispeten eski üniversiteler direkt piyasaya adam yetiştiriyor. Verilen ödevler vs. daha çok otomasyon işte e ticaret vs. gibi. Aslında ben de kendime bir alan seçmeye çalışıyorum. Her şeyden az az bilmekten sıkıldım. Bir şeye başlayıp, o işten para kazanayım, iş yapayım diyorum ama basiretim mi bağlandı nedir :D olmuyor bir türlü. Çalışacak firma aradım kimse öğrenciyle uğraşmak istemiyor. Öğrenciyi bırakın yeni mezunla uğraşmak istemiyor ki ben öğrenciyim. Tüm bu karmaşanın içinde başladım Unitye c# bildiğim için başta hızlı ilerledim. Şu animasyon hakkında dediklerinize katılıyorum. Bana göre 2 tip oyun var sektörde. 1.si belli oyun dallarında en iyisini, en gerçekçi olanı yapıp, en büyük payı almak isteyenler. 2. si minimalist hırsa dayalı oyunlar. Ben 2. türden oyunlar yapabilir miyim, para kazanabilir miyim diye başladım ama zorluklar çıkmaya başladı. Bakalım kısmet bu arada unity konusunda dediğinize de katılıyorum. Javayı da temel olarak biliyorum, şu oyunla ilgili her şeyi halledersem oyun motorundan kurtulma niyetim var ama maalesef şu an çok erken gibi :D




  • ben multiplayer için photon, database için firebase kullanıyorum, ikisinide öneririm :)




  • Bu konuyu tekrardan hortlatıyorum, kafama takılan bir şey var. Unityde hiçbir platforma bağlı kalmadan -Photon, UNET gibi...- sadece direk kendi sunucumuz ile socket programlama aracılığıyla multiplayer altyapımızı yapabiliyor muyuz... mesela her ne kadar "kendi sunucunu yazmak" olarak tanımlasa da altında UNET altyapısı var galiba client haberleşme kısmında. Gerçi arkadaş biraz ezberci anlatım yapıyor neyse. Zaten şu an UNET kaldırıldı yeni bir multiplayer platformu gelmek uzere Unitynin kendisinde.

    Dediğim gibi hiçbir sınırlamaya, hiçbir platforma bağlı kalmadan bu işi yapmanın yolu yok mudur...



    < Bu mesaj bu kişi tarafından değiştirildi Fulton -- 7 Aralık 2019; 18:25:37 >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.