- Mesaj
- 181
- Çözümler
- 7
- Beğeni
- 195
- Puan
- 769
- Ticaret Puanı
- 0
Bu bir genel tartışma konusudur.
Merhaba, bir süredir aklımdaki bir soruyu size de sorup bu postun altında tartışmak istedim. Biliyorsunuz ki şuan bir private sunucusunu yok edebilecek en büyük 2 sorundan bir tanesi oyun dışı ticaret ve diğeri de hile/bot.
Benim yaptığım araştırmalara göre MMORPG oyun şirketleri, kendi otomatik algılama sistemlerini yazar, bu otomatik algılama sistemleri kısaca oyuncu aktivetisindeki anormallikleri, tekrarlanan davranışları analiz eder. Aynı zamanda botlar genellikle normal oynayan oyunculardan daha farklı davranışlar sergiler. Oyun şirketleri, bu farklılıkları tespit etmek için bot hareketlerini, tepkilerini ve oyun içi kararlarını analiz eder.
Metin2'de ise özellikle son zamanlarda dikkat ettiğim, iki sunucu için gördüğüm (belki daha fazla sunucu bunu yapıyordur) buna benzer bir yol izliyor. Tahminim oyun içinde mouse hareketlerini (move, click) loglayarak bir botun yapabileceği bir şekilde mi yoksa normal bir oyuncunun yapabileceği şekilde mi oyunu oynadığını anlıyorlar.
Peki oyun dışı ticareti engellemek için böyle bir algoritma geliştirilebilir mi?
Bunu uzun uzun düşündükten sonra tek düşündüğüm şey neden olmasın oldu. Çünkü işin sonunda oyun dışı ticaret yapan kişiler bizim açtığımız bir sunucuda bizden habersiz bir şey yapamazlar.
Peki bunu nasıl yapabiliriz, nasıl bir yol izlemeliyiz, nasıl bir algoritma geliştirebiliriz?
Aslında tartışmamız gereken konu tam olarak bu. Evet loglar var peki bu logları oyun dışı ticaretini engelleyebilmek için nasıl bir tespit uygulaması yapabiliriz.
İlk öncelikle oyun dışı ticaret yapan iki kişinin hangi yollardan işlerini görebileceklerine bir bakalım;
Peki oyun içinde neylerin logu tutuluyor?
Aslında her şeyin. İstediğimiz takdirde oyuncunun oyun içinde attığı adıma kadar log tutabiliriz. Fakat bizim istediğimiz yukarıdaki transfer çeşitlerini düşündüğümüzde işimize yarayacak 2 log: ticaret logları, offline shop logları.
İlk öncelikle sadece ticaretten yang ve item transferini ele alalım, iki oyuncu birbiriyle ticaret yaptığında ortaya nasıl bir log çıkıyormuş buna bakalım (TMP4 files kullanıyorum belki filese göre değişiklik gösterebilir).
Sadece yang transferi:
Yang transferi için sadece ihtiyacımız olan kısmı tekrar tablo haline getirelim;
Bu tablodan şu sonucu çıkartıyoruz: 07/12/2023 tarihinde saat 04:56:17, Legandalith adlı oyuncu Test adlı oyuncuya 1,000,000 yang vermiş, fakat kendi hesabına vermiş. Yani yüksek ihtimalle ilk kontrolümüz yapılan yang ticareti yapan iki oyuncunun ip değerleri aynı mı diye bakmak olacak. Şimdi bir düşünelim;
Bir oyuncu istediği takdirde yeni başlayan bir oyuncuya destek amaçlı az miktarda göze çarpmayan bir miktarda yang verebilir. Bu yüzden yapılan yang transferlerinde belirli bir yang üstüne bakabiliriz.
Bir oyuncu kendi yan hesabına para verebilir, ip kontrolü yapabiliriz. Aynı ip mi?
Bunlar normal logların bize verdiği bilgiler doğrultusunda yapabileceğimiz en 'basit' kontroller, daha karmaşık problemleri düşünmek gerekiyor. Mesela bir kişi arkadaşına borç yang verdiğinde ne olacak? Aslında bu gerçekten karmaşık bir durum. Özellikle global sunucular (en azından Aeldra bunu yapıyordu) belirli bir yang'ın üstünde karşılıksız yang transferi yapan herkesi denetliyordu.
Yani sonuç olarak başlıktaki soruyu da cevaplandıracak olursak, Oyun dışı ticaretini engelleyemeyiz aynı hileyi şuanda nasıl engelleyemiyorsak. Fakat bir algoritma geliştirerek, ve bu algoritmayı da sürekli oyun dışı ticaret yapanların nasıl yaptığını öğrenip bu yönde geliştirirsek, ben eminimki en azından belirli bir kısım için caydırıcı olur ve oyun dışı ticaret azaltılabilir.
Sizin düşünceleriniz ne?
Merhaba, bir süredir aklımdaki bir soruyu size de sorup bu postun altında tartışmak istedim. Biliyorsunuz ki şuan bir private sunucusunu yok edebilecek en büyük 2 sorundan bir tanesi oyun dışı ticaret ve diğeri de hile/bot.
Benim yaptığım araştırmalara göre MMORPG oyun şirketleri, kendi otomatik algılama sistemlerini yazar, bu otomatik algılama sistemleri kısaca oyuncu aktivetisindeki anormallikleri, tekrarlanan davranışları analiz eder. Aynı zamanda botlar genellikle normal oynayan oyunculardan daha farklı davranışlar sergiler. Oyun şirketleri, bu farklılıkları tespit etmek için bot hareketlerini, tepkilerini ve oyun içi kararlarını analiz eder.
Metin2'de ise özellikle son zamanlarda dikkat ettiğim, iki sunucu için gördüğüm (belki daha fazla sunucu bunu yapıyordur) buna benzer bir yol izliyor. Tahminim oyun içinde mouse hareketlerini (move, click) loglayarak bir botun yapabileceği bir şekilde mi yoksa normal bir oyuncunun yapabileceği şekilde mi oyunu oynadığını anlıyorlar.
Peki oyun dışı ticareti engellemek için böyle bir algoritma geliştirilebilir mi?
Bunu uzun uzun düşündükten sonra tek düşündüğüm şey neden olmasın oldu. Çünkü işin sonunda oyun dışı ticaret yapan kişiler bizim açtığımız bir sunucuda bizden habersiz bir şey yapamazlar.
Peki bunu nasıl yapabiliriz, nasıl bir yol izlemeliyiz, nasıl bir algoritma geliştirebiliriz?
Aslında tartışmamız gereken konu tam olarak bu. Evet loglar var peki bu logları oyun dışı ticaretini engelleyebilmek için nasıl bir tespit uygulaması yapabiliriz.
İlk öncelikle oyun dışı ticaret yapan iki kişinin hangi yollardan işlerini görebileceklerine bir bakalım;
- Ticaretten yang transferi
- Ticaretten item transferi
- Satın alan kişinin kurduğu pazardan satan kişinin item satın alması
- Direkt hesabı vererek kişinin eşyaları veya yangı karşı tarafa vermesi
Peki oyun içinde neylerin logu tutuluyor?
Aslında her şeyin. İstediğimiz takdirde oyuncunun oyun içinde attığı adıma kadar log tutabiliriz. Fakat bizim istediğimiz yukarıdaki transfer çeşitlerini düşündüğümüzde işimize yarayacak 2 log: ticaret logları, offline shop logları.
İlk öncelikle sadece ticaretten yang ve item transferini ele alalım, iki oyuncu birbiriyle ticaret yaptığında ortaya nasıl bir log çıkıyormuş buna bakalım (TMP4 files kullanıyorum belki filese göre değişiklik gösterebilir).
Sadece yang transferi:
type | time | who | x | y | what | how | hint | ip | vnum |
---|---|---|---|---|---|---|---|---|---|
CHARACTER | 2023-12-07 04:56:17 | 2 | 959120 | 271850 | 1000000 | EXCHANGE_GOLD_TAKE | 1 Legandalith | 192.168.1.34 | NULL |
CHARACTER | 2023-12-07 04:56:17 | 1 | 959011 | 271965 | 1000000 | EXCHANGE_GOLD_GIVE | 2 Test | 192.168.1.34 | NULL |
Yang transferi için sadece ihtiyacımız olan kısmı tekrar tablo haline getirelim;
time | who | what | how | hint | ip |
---|---|---|---|---|---|
2023-12-07 04:56:17 | 2 | 1000000 | EXCHANGE_GOLD_TAKE | 1 Legandalith | 192.168.1.34 |
2023-12-07 04:56:17 | 1 | 1000000 | EXCHANGE_GOLD_GIVE | 2 Test | 192.168.1.34 |
Bu tablodan şu sonucu çıkartıyoruz: 07/12/2023 tarihinde saat 04:56:17, Legandalith adlı oyuncu Test adlı oyuncuya 1,000,000 yang vermiş, fakat kendi hesabına vermiş. Yani yüksek ihtimalle ilk kontrolümüz yapılan yang ticareti yapan iki oyuncunun ip değerleri aynı mı diye bakmak olacak. Şimdi bir düşünelim;
Bir oyuncu istediği takdirde yeni başlayan bir oyuncuya destek amaçlı az miktarda göze çarpmayan bir miktarda yang verebilir. Bu yüzden yapılan yang transferlerinde belirli bir yang üstüne bakabiliriz.
Bir oyuncu kendi yan hesabına para verebilir, ip kontrolü yapabiliriz. Aynı ip mi?
Bunlar normal logların bize verdiği bilgiler doğrultusunda yapabileceğimiz en 'basit' kontroller, daha karmaşık problemleri düşünmek gerekiyor. Mesela bir kişi arkadaşına borç yang verdiğinde ne olacak? Aslında bu gerçekten karmaşık bir durum. Özellikle global sunucular (en azından Aeldra bunu yapıyordu) belirli bir yang'ın üstünde karşılıksız yang transferi yapan herkesi denetliyordu.
Yani sonuç olarak başlıktaki soruyu da cevaplandıracak olursak, Oyun dışı ticaretini engelleyemeyiz aynı hileyi şuanda nasıl engelleyemiyorsak. Fakat bir algoritma geliştirerek, ve bu algoritmayı da sürekli oyun dışı ticaret yapanların nasıl yaptığını öğrenip bu yönde geliştirirsek, ben eminimki en azından belirli bir kısım için caydırıcı olur ve oyun dışı ticaret azaltılabilir.
Sizin düşünceleriniz ne?