Aylardır üzerinde çalışıyorum, büyük ihtimalle oyunu çıkartabilirim.

Son gelişmeler:
Eki Görüntüle 281888

Kart kataloğundaki oyuncular için özel bir render Script'i yazdım. Dilediğim gibi pozlama verip, ışıklandırmasını yapabiliyorum.

Eki Görüntüle 281889

"Oyunun "press to any key" menüsünü oyunun kendi assetleriyle güncelledim. Bu assetler tam olarak nerede, neden kullanıldığını pek araştırmadım ama neymar sanki Amedspor'dan çıkmış gibi :)

Eki Görüntüle 281890

Transfer sistemini de tam olarak bitirmiş bulunmaktayım, satın alma işlemleri dahil.

Eki Görüntüle 281891

Kart destelerini, takım ruhunu ve yönetimini de aynı şekilde tamamladım.

Proje %70 oranında tamamlandı diyebilirim, ileriki vakit Production'a çıkartabilirim. Ayrıca maddi kaynak gerektiren durumlarla kendim yüzleşmemem için güvenilir bir yoldaş arıyorum.

Sırf yeteri kadar mesajım yok diye projeleriniz kısmına konu açamadığım diye başka kategoriye konu açtım diye konum reddedildi :D

Projeden bazı görseller paylaşayım en azından:

Eki Görüntüle 281913
Eki Görüntüle 281915
Eki Görüntüle 281916
Eki Görüntüle 281910
Eki Görüntüle 281911
Eki Görüntüle 281909

Hocam antrenman kısmını nasıl çözdünüz acaba antrenman kısmı sorun çıkarıyor 8 sn sayacında oyun bazen haritayı gezdirmeye buga giriyor antrenmanlara başlayabilindiğinde ise saymıyor ve sağdaki kutularda olan antrenmanlarda rakipler görünmüyor taktikler değişmiyor. Direkt sunucu yapısını oturtarak database vb bağlayıp sabit hesap ile mi ilerleyerek antrenman kısmınıda tamamladınız yoksa her açılışta sıfırlanan geçici yöntem ile mi?
 
Aylardır üzerinde çalışıyorum, büyük ihtimalle oyunu çıkartabilirim.


Son gelişmeler:
Eki Görüntüle 281888

Kart kataloğundaki oyuncular için özel bir render script'i yazdım. Dilediğim gibi pozlama verip, ışıklandırmasını yapabiliyorum.

Eki Görüntüle 281889

"Oyunun "Press to any key" menüsünü oyunun kendi assetleriyle güncelledim. Bu assetler tam olarak nerede, neden kullanıldığını pek araştırmadım ama Neymar sanki Amedspor'dan çıkmış gibi :)


Eki Görüntüle 281890

Transfer sisteminide tam olarak bitirmiş bulunmaktayım, satın alma işlemleri dahil.

Eki Görüntüle 281891

Kart destelerini, takım ruhunu ve yönetiminide aynı şekilde tamamladım.

Proje %70 oranında tamamlandı diyebilirim, ileriki vakit production'a çıkartabilirim. Ayrıca maddi kaynak gerektiren durumlarla kendim yüzleşmemem için güvenilir bir yoldaş arıyorum.
Hocam, kodlama işinden anlamıyorum ama ileride eklemeyi düşündüğünüz oyuncuların özelliklerini falan belirlemede yardımcı olabilirim. FM araştırmacıları gibi yani.
 
Hocam antrenman kısmını nasıl çözdünüz acaba antrenman kısmı sorun çıkarıyor 8 sn sayacında oyun bazen haritayı gezdirmeye buga giriyor antrenmanlara başlayabilindiğinde ise saymıyor ve sağdaki kutularda olan antrenmanlarda rakipler görünmüyor taktikler değişmiyor. Direkt sunucu yapısını oturtarak database vb bağlayıp sabit hesap ile mi ilerleyerek antrenman kısmınıda tamamladınız yoksa her açılışta sıfırlanan geçici yöntem ile mi?
Herhangi bir server iskeleti oluşturmazsanız en temelde bağlantı hataları alırsınız bu yüzden önce oyunu decrypt edip hata aldığınız noktada ki fonksiyonları bulup bunları veya bunları çağıran fonksiyon/fonksiyonları loglayıp buna göre çözüm üretmeniz gerekiyor hocam.
 
Hocam antrenman kısmını nasıl çözdünüz acaba antrenman kısmı sorun çıkarıyor 8 sn sayacında oyun bazen haritayı gezdirmeye buga giriyor antrenmanlara başlayabilindiğinde ise saymıyor ve sağdaki kutularda olan antrenmanlarda rakipler görünmüyor taktikler değişmiyor. Direkt sunucu yapısını oturtarak database vb bağlayıp sabit hesap ile mi ilerleyerek antrenman kısmınıda tamamladınız yoksa her açılışta sıfırlanan geçici yöntem ile mi?

Ben daha gameguardı geçemedim bir de HTTPS hatası alıyorum ondan zorlamıyorum.
 
Hocam antrenman kısmını nasıl çözdünüz acaba antrenman kısmı sorun çıkarıyor 8 sn sayacında oyun bazen haritayı gezdirmeye buga giriyor antrenmanlara başlayabilindiğinde ise saymıyor ve sağdaki kutularda olan antrenmanlarda rakipler görünmüyor taktikler değişmiyor. Direkt sunucu yapısını oturtarak database vb bağlayıp sabit hesap ile mi ilerleyerek antrenman kısmınıda tamamladınız yoksa her açılışta sıfırlanan geçici yöntem ile mi?
Auth mekanizmasını launcher tarafında VIETNAM protokolü üzerinden çözdüm. Launcher, VIETNAM protokolüne bir ticket gönderiyor ve bu doğrulama sonrasında oyun istemcisine gerekli yetkilendirme sağlanıyor. Bu nedenle oyun içerisinde ayrıca bir login mekanizmasına ihtiyaç duymuyorum.

Oyunun temel işleyişi ise büyük ölçüde server tarafında gerçekleşiyor. Goley, yıllar önce kendi wiki sayfalarında mimariyi “client + web” şeklinde ifade etmiş. Buradaki “web” ifadesinin doğrudan web tabanlı bir oyun anlamına gelmediğini, server/backend tarafındaki yapıyı ifade etmek için kullanıldığını varsayıyorum. Zira Goley hiçbir dönem web tabanlı bir oyun olarak yayımlanmadı ve oyun istemcisi üzerinden çalışan klasik client-server mimarisine sahipti.

P2P/NPC, mağaza, transfer, görevler, maç tahminleri ve benzeri birçok sistemi içeren, tamamen çalışır durumdaki sunucu altyapısını uygun bir ücret karşılığında satışa sunmayı düşünüyorum. İsteğe bağlı olarak site altyapısı, launcher/patch sistemleri ve mevcut geliştirmeler de ek ücret karşılığında dahil edilebilir.

Amacım, mevcut geliştirmelerimi başka projelerde kullanılabilecek şekilde, şeffaf ve karşılıklı olarak belirlenen şartlar çerçevesinde değerlendirmek. Bunun etik bir davranış olup olmadığı konusunda en doğru değerlendirmeyi, bu proje üzerinde daha önce çalışmış kişiler yapabilir. Ortaya çıkarılan yapının arkasında uzun, zor ve yorucu bir geliştirme süreci bulunuyor.

Ciddi olarak ilgilenecek arkadaşlarla iletişim kurabiliriz. (Buradan iletişim mümkünse buradan, değilse Discord üzerinden mesajlarınızı iletebilirsiniz: scylland)
 
Auth mekanizmasını launcher tarafında VIETNAM protokolü üzerinden çözdüm. Launcher, VIETNAM protokolüne bir ticket gönderiyor ve bu doğrulama sonrasında oyun istemcisine gerekli yetkilendirme sağlanıyor. Bu nedenle oyun içerisinde ayrıca bir login mekanizmasına ihtiyaç duymuyorum.

Oyunun temel işleyişi ise büyük ölçüde server tarafında gerçekleşiyor. Goley, yıllar önce kendi wiki sayfalarında mimariyi “client + web” şeklinde ifade etmiş. Buradaki “web” ifadesinin doğrudan web tabanlı bir oyun anlamına gelmediğini, server/backend tarafındaki yapıyı ifade etmek için kullanıldığını varsayıyorum. Zira Goley hiçbir dönem web tabanlı bir oyun olarak yayımlanmadı ve oyun istemcisi üzerinden çalışan klasik client-server mimarisine sahipti.

P2P/NPC, mağaza, transfer, görevler, maç tahminleri ve benzeri birçok sistemi içeren, tamamen çalışır durumdaki sunucu altyapısını uygun bir ücret karşılığında satışa sunmayı düşünüyorum. İsteğe bağlı olarak site altyapısı, launcher/patch sistemleri ve mevcut geliştirmeler de ek ücret karşılığında dahil edilebilir.

Amacım, mevcut geliştirmelerimi başka projelerde kullanılabilecek şekilde, şeffaf ve karşılıklı olarak belirlenen şartlar çerçevesinde değerlendirmek. Bunun etik bir davranış olup olmadığı konusunda en doğru değerlendirmeyi, bu proje üzerinde daha önce çalışmış kişiler yapabilir. Ortaya çıkarılan yapının arkasında uzun, zor ve yorucu bir geliştirme süreci bulunuyor.

Ciddi olarak ilgilenecek arkadaşlarla iletişim kurabiliriz. (Buradan iletişim mümkünse buradan, değilse Discord üzerinden mesajlarınızı iletebilirsiniz: scylland)
Üstadım Merhaba, yazdıklarını okudum ama launcher kısmında bazı noktalara katılmıyorum. Kendi log'larımla açıklayayım:

1. Launcher sadece patch check yapıyor.
uintptr hocam launcher'ın gönderdiği bütün HTTP request'leri listeliyor:

Kod:
GET /chagu/Real_Server_Patch/PatchInfo.bin?p=...
GET /chagu/Real_Server_Patch/HashV2.VLL?p=...
GET /chagu/Real_Server_Patch/Goley.exe?p=...
GET /chagu/Real_Server_Patch/LauncherRestarter.exe?p=...

Bunların hiçbiri bir auth ya da ticket request'i değil.

2. Launcher'dan client'a parameter aktarılmıyor.
Client'ta Netmarble'ın NMRunParam modülü var, yani launcher'dan client'a parameter geçmek için bir kanal teknik olarak mevcut. Bu modülün export'larını hook'layıp 83 ayrı game session'da izledim. Sonuç:

Kod:
NMRunParamDLL_Load          : 0 call
NMRunParamDLL_GetParam      : 0 call
NMRunParamDLL_ExistsParam   : 0 call
NMRunParamDLL_GetParamCount : 0 call

Launcher client'a bir ticket veriyor olsaydı, client'ın bunu bu kanaldan okuması gerekirdi. Client tek bir parameter bile istemiyor.

3. Login, client'ın kendi login ekranından yapılıyor.
Oyunu launcher olmadan açıyorum. Client, login server'a kendisi bağlanıyor ve username'i in-game login ekranından gönderiyor:

Kod:
[AUTH] CONNECT from 127.0.0.1:64686
[AUTH] 127.0.0.1:64686 login username: admin

4. Vietnam bir protocol değil, bir service region.
Client'ın kendi LoginServerList tablosunda region'lar ayrı ayrı tanımlı: Kore, Turkey QA, Turkey REAL, Turkey MENA QA, Global QA, Global REAL, Vietnam QA, Vietnam REAL ve Indonesia QA. Her region'ın kendi login server'ı var. "VIETNAM protokolü" diye bir yapıya rastlamadım.

5. Maçlar server-side değil, P2P.
Account, card, shop ve mission sistemleri server-side. Ama maçlar client'lar arasında P2P olarak oynanıyor ve game logic client'ta çalışıyor. Bu yüzden oyunun büyük ölçüde server-side çalıştığını söylemek doğru değil.

Eğer kendi launcher'ını ve web tarafında bir auth sistemi kurup ticket'ı client'a bu şekilde aktarıyorsan, bu gayet okey. Ancak bu senin eklediğin bir sistem ya da Vietnam build'ine özgü bir akış olur; orijinal TR launcher'ının davranışı değil. TR client'ta launcher'dan gelen bir auth akışı bulunmuyor.

Satış tarafında ise eğer haddime değil lakin kendi özeleştiri mi yapacağım bu noktada, Bu kadar bilgiye AI olmadan sahip isen bu projeyi community private server'a dönüştürüp güzel bir ortam yaratmak yerine köklü bir şirketin hakları olan bir oyunun server'ını ücret karşılığında satmak hem hukuki hem de etik açıdan problemli. Bu yüzden bu kısma katılmıyorum.
 
Üstadım Merhaba, yazdıklarını okudum ama launcher kısmında bazı noktalara katılmıyorum. Kendi log'larımla açıklayayım:

1. Launcher sadece patch check yapıyor.
uintptr hocam launcher'ın gönderdiği bütün HTTP request'leri listeliyor:

Kod:
GET /chagu/Real_Server_Patch/PatchInfo.bin?p=...
GET /chagu/Real_Server_Patch/HashV2.VLL?p=...
GET /chagu/Real_Server_Patch/Goley.exe?p=...
GET /chagu/Real_Server_Patch/LauncherRestarter.exe?p=...

Bunların hiçbiri bir auth ya da ticket request'i değil.

2. Launcher'dan client'a parameter aktarılmıyor.
Client'ta Netmarble'ın NMRunParam modülü var, yani launcher'dan client'a parameter geçmek için bir kanal teknik olarak mevcut. Bu modülün export'larını hook'layıp 83 ayrı game session'da izledim. Sonuç:

Kod:
NMRunParamDLL_Load          : 0 call
NMRunParamDLL_GetParam      : 0 call
NMRunParamDLL_ExistsParam   : 0 call
NMRunParamDLL_GetParamCount : 0 call

Launcher client'a bir ticket veriyor olsaydı, client'ın bunu bu kanaldan okuması gerekirdi. Client tek bir parameter bile istemiyor.

3. Login, client'ın kendi login ekranından yapılıyor.
Oyunu launcher olmadan açıyorum. Client, login server'a kendisi bağlanıyor ve username'i in-game login ekranından gönderiyor:

Kod:
[AUTH] CONNECT from 127.0.0.1:64686
[AUTH] 127.0.0.1:64686 login username: admin

4. Vietnam bir protocol değil, bir service region.
Client'ın kendi LoginServerList tablosunda region'lar ayrı ayrı tanımlı: Kore, Turkey QA, Turkey REAL, Turkey MENA QA, Global QA, Global REAL, Vietnam QA, Vietnam REAL ve Indonesia QA. Her region'ın kendi login server'ı var. "VIETNAM protokolü" diye bir yapıya rastlamadım.

5. Maçlar server-side değil, P2P.
Account, card, shop ve mission sistemleri server-side. Ama maçlar client'lar arasında P2P olarak oynanıyor ve game logic client'ta çalışıyor. Bu yüzden oyunun büyük ölçüde server-side çalıştığını söylemek doğru değil.

Eğer kendi launcher'ını ve web tarafında bir auth sistemi kurup ticket'ı client'a bu şekilde aktarıyorsan, bu gayet okey. Ancak bu senin eklediğin bir sistem ya da Vietnam build'ine özgü bir akış olur; orijinal TR launcher'ının davranışı değil. TR client'ta launcher'dan gelen bir auth akışı bulunmuyor.

Satış tarafında ise eğer haddime değil lakin kendi özeleştiri mi yapacağım bu noktada, Bu kadar bilgiye AI olmadan sahip isen bu projeyi community private server'a dönüştürüp güzel bir ortam yaratmak yerine köklü bir şirketin hakları olan bir oyunun server'ını ücret karşılığında satmak hem hukuki hem de etik açıdan problemli. Bu yüzden bu kısma katılmıyorum.
1) Launcher'ı Electron tabanlı olacak şekilde yeniden geliştirdim ve arayüz dahil olmak üzere tamamen kişiselleştirdim. Oyunu başlatma ve gerekli parametreleri iletme işlemini NMRunParamDLL.dll üzerinden argüman göndererek gerçekleştiriyorum. NMRunParamDLL.dll'nin Netmarble ekosistemindeki launcher/çalıştırma yapılarında kullanılan bir bileşen olduğu da çeşitli eski oyun dosya listelerinde görülebiliyor.

2) Bu sorunun cevabı aslında birinci sorunun cevabında mevcut. Launcher tarafındaki çalışma mantığını ve oyunun hangi parametrelerle başlatıldığını orada açıkladım.

3) Login işlemi teknik olarak client'ın kendi ekranı üzerinden gerçekleştirilebiliyor. Ancak VIETNAM protokolü içerisinde gerekli kimlik doğrulama/ticket sürecini doğru şekilde uyguladığınızda, client içerisindeki klasik login aşamasını sunucu tarafındaki doğrulama mekanizmasıyla devre dışı bırakabiliyorsunuz. Benim kullandığım yapı da bu mantık üzerine kurulu.

4) VIETNAM protokolünü üçüncü maddede açıkladım. Tekrar belirtmek gerekirse burada “protokol” derken yalnızca belirli bir paket veya endpoint'i değil, ilgili iletişimin kurallarını ve uygulama biçimini kastediyorum. Dolayısıyla yapının nasıl çalıştığını anlamak için yalnızca client tarafına bakmak yerine, protokolün tamamının incelenmesi gerekiyor.

5) P2P'nin doğrudan sunucu içerisinde gerçekleştiğini söylemedim. Yaklaşık 10 aydır bu proje üzerinde, gerçekten herkesin erişebileceği ve oynayabileceği bir platform oluşturma amacıyla çalışıyorum. Benim geliştirdiğim sunucu yapısı P2P katmanına da gerekli erişimi sağlıyor. Bunun yanında maç kayıtları, maç ödülleri ve maç sonrasında gerçekleşen işlemler gibi sistemler de sunucu tarafında yönetilebiliyor. Dolayısıyla burada bahsettiğim yapı yalnızca temel bir oyun sunucusundan ibaret değil; P2P ile çalışan oyun altyapısını destekleyen ve maçın öncesi/sonrası süreçlerini de yöneten kapsamlı bir backend yapısı. Bu süreçleride web üzerinde işleyebiliyorum. Bu konu üzerinde gelişmeleri paylaşırken web üzerindeki gelişmeleride sizinle paylaşmıştım oysa.

Bu (Prestige) projesinin temellerini yaklaşık 1 yıl önce attım. Projenin geliştirme süreci, GitHub commit geçmişi ve diğer teknik kayıtlar üzerinden de geriye dönük olarak doğrulanabilir. (Tabii ki dilersen.)

Dolayısıyla bu, kısa süre içerisinde hazırlanmış veya yalnızca mevcut bir yapının üzerine kurulmuş bir proje değil. Yaklaşık bir yıldır düzenli olarak geliştirdiğim, zaman içerisinde birçok bileşenini yeniden yazdığım ve geliştirdiğim kapsamlı bir çalışma.

Satış konusundaki çekincenizi anlıyorum ve hukuki açıdan haklı olduğunuz noktalar var. Ancak burada benim kastettiğim şey, Goley'e ait herhangi bir resmi varlığı veya fikri mülkiyeti satmak değil. Yaklaşık bir yıldır kendi emeğimle geliştirdiğim server, backend, launcher ve ilgili altyapı çalışmalarını bir proje olarak değerlendirmek.

Ayrıca bu projeyi geliştirirken amacım hiçbir zaman yalnızca ticari bir ürün ortaya çıkarmak olmadı. Aksine, uzun süredir herkese açık oynanabilir bir platform oluşturma düşüncesiyle ilerledim. Satış fikrinin ortaya çıkmasının temel nedeni aslında ticari bir beklentiden ziyade, şu an projeye ayırabileceğim boş vaktin oldukça kısıtlı olması. Bunun yanında halihazırda oldukça popüler bir oyun sunucusunun da sahibi olduğum için iki projeyi aynı anda gerektiği şekilde yürütmek benim açımdan oldukça zor.

Bu proje kapsamında takıldığım noktalar genellikle database işlemleri oldu. Bu noktalarda AI'dan destek aldığım zamanlar oldu. (Böyle kapsamlı bir database şemasını ömrü hayatında hiç gördün mü?) Ancak bu, projenin tamamının AI tarafından geliştirildiği veya ortaya çıkan kodun doğrudan kullanıldığı anlamına gelmiyor. Şu saçmalıkları ne zaman bırakabiliriz bilmiyorum. Proje üzerinde çalışmaya başladığım tarihten beri AI kullanan birçok kişiyle karşılaştım ve bunun günümüzde oldukça normal bir durum olduğunu düşünüyorum.

Mesaj kasmak suretiyle mi böyle bir açıklama veya yorumda bulundunuz bilmiyorum fakat uzatmanında bir anlamı yok. Bu konu üzerinde sizin ve benim ilk ve son tartışmamız olsun. Kendi açımdan gerekli açıklamaları yaptım ve konu hakkındaki yaklaşımımı net bir şekilde ortaya koydum. Aynı konu üzerinde daha fazla tartışmaya girmenin de kimseye bir fayda sağlayacağını düşünmüyorum.

Satışta dahil edilecekler: Projeye ait tasarım dosyaları(PSD), Web sitesi dosyaları ve kaynak kodlarıı, Gameserver, Backend, Launcher(Electron tabanlı) ve geliştirme sürecinde oluşturulan diğer gerekli kaynak dosyaları.