• 28-12-2020, 20:01:21
    #1
    Merhabalar,

    Single Player oyunlara ilgili firma tarafından değilde kullanıcı topluluğu tarafından multiplayer oyun geliştiriliyor. Bunların hangi dille yazıldığını az çok biliyorum. C++ gibi

    Örneğin;
    San Andreas için Multiplayer eklentisi geliştirildi ve oyuncular sunucu açabilsin diye ek dil geliştirildi.
    veya gta 5 için Rage Mp platformu geliştirildi. Oyuncular sunucu açsın diye JS dili ve C# diliyle açsınlar diye.

    Single oyunu multiplayere dönüştürürken hangi teknolojileri kullanılıyorlar. Oyunun kendi içindeki can değerini bulup onu nasıl modifikasyon olarak ekliyorlar?
    Veya multiplayer eklentisini yazdılar diyelim, millet sunucu açsın diye nasıl ek bir dile dönüştürüyorlar
  • 28-12-2020, 21:07:45
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Hangi dil ile geliştirildiğinin çok bir önemi bulunmuyor. SP olan bir oyunu yapımcı firmadan bağımsız MP yapabilmek için çok ciddi derecede tersine mühendis uygulanmaktadır. Can, ölüm, round başladı/bitti vs. bu bilgilerin tamamını tersine mühendislik ile tespit ederek hook edebilirsiniz. Kısacası böyle bir iş için bilmeniz gereken en önemli unsur tersine mühendisliktir.

    Diyelim ki, SP olan herhangi bir oyun için tersine mühendislik uyguladınız, çok basit düzeyde entity*cl oluşturabiliyorsunuz, can değelerinin değişikliğinin tespitini yapabiliyorsunuz. Bu işlemler tam anlamıyla yapabilseniz bile MP için yeterli değil. MP için protokol oluşturmalısınız ki oyuncular birbirleri ile iletişimde olabilsin. Ne demek bu? Örneğin, x oyuncusu yüksekten düştü ve 50 canı kaldı, bunu diğer oyunculara bildirmemiz gerekmektedir, bu işlemi de server yapacaktır. Peki, oyuncunun düştüğünü server nasıl bilecek ? Düşen oyuncunun client tarafı hook ettiği veriyi belli bir protokol ile servera yollayacak, serverda bu bilgiyi diğer oyunculara yollayacaktır. Ardından bu paketi alan diğer oyuncuların client tarafı hook ettiği alanı düşen oyuncu için 50 olarak düzenleyecektir. Demek ki, ihtiyacınız olan tüm verileri tersine mühendislik ile tespit edebilseniz bile ardından protokol geliştirmelisiniz ardından server-client yazılımlarını geliştirmelisiniz.

    Bitti mi? Hayır, bu kadar basit bir yapıda MP geliştirdiniz ancak bu sunucunun diğer oyuncular tarafından görüntülenebilmesi ve giriş yapılabilmesi için master server ardından da query protokol geliştirmelisiniz.

    Ardından tüm bu alt yapıyı, SDK veya API sunarak, pawn ile son geliştiricilere açabilirsiniz.

    Güvenlik ve hile yazılımlarını engellemek için ayrıca bir çabanız olması gerekecektir.
  • 28-12-2020, 22:12:25
    #3
    @PROOYUN;

    Cevabınız için teşekkürler.Mafia2 Online platformu içinde github dan bu bahsettiğiniz client ve server kütüphanelerini paylaşmışlar. Bknz; Link

    Bu projeyi alıp, geliştirme yapsak ve son kullanıcıya farklı bir dil ile sunsak yasal olarak bir sıkıntı yaşar mıyız. Ana firma açısından veya projeyi geliştiren github kullanıcısı tarafından.

    Demek istediğim; firmadan bağımsız projelerde bir çeşit lisans almak felan gerekiyor mu?
  • 28-12-2020, 22:22:52
    #4
    Konunun bu tarafı ile ilgili hiçbir bilgim yok maalesef.