- Katılım
- 17 Ağu 2024
- Konular
- 5
- Mesajlar
- 39
- Online süresi
- 2d 5h
- Reaksiyon Skoru
- 22
- Altın Konu
- 0
- Başarım Puanı
- 23
- MmoLira
- 1,050
- DevLira
- 9
HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!
Source dosyalarını bir repo açıp gelen isteklere göre refactor etmeyi düşünüyorum(örneğin char.cpp'deki x fonksiyonu gibi, x classı, x eklentisi vb.), source çok eski olduğundan code smellslerle dolu. Contributor olmak isteyen varsa yorum yazabilir, yeterli katılım olursa bu işi beraber yapabiliriz dediğim gibi tek başıma yapacağım bir iş değil.
Kısaca kendimden bahsedeyim, mid level mühendisim(bilgisayar müh. çıkışlıyım), 4 yıla yakındır savunma sanayiide çalışıyorum ek olarak yüksek lisans yapıyorum. Burdaki herkes gibi çocukluğumda bu oyunu oynadım, bu aralar çok yoğun olmadığım için bakınırken bu forum aklıma geldi, sadece boş zamanlarımda ilgileneceğim gönüllü bir uğraş benim için.
Tabii ki üretimde C/C++ kullanıyoruz ve bu profosyonel düzeyde. Metin2 geliştiricileri tarafından yazılan kodları bu repoya kabul etmeyeceğimi belirtmek isterim, forumda yeterince yerli/yabancı kodlarını inceledim ve %90ı intern bir C++ geliştiricinin bile yazacağı kodlar değil. Kısacası bu dili udemyden veya ezbere öğrenmeyip kural, logic, yazılım mimarileri gibi konulara hakimseniz yorumda belirtebilirsiniz.
Kısaca kendimden bahsedeyim, mid level mühendisim(bilgisayar müh. çıkışlıyım), 4 yıla yakındır savunma sanayiide çalışıyorum ek olarak yüksek lisans yapıyorum. Burdaki herkes gibi çocukluğumda bu oyunu oynadım, bu aralar çok yoğun olmadığım için bakınırken bu forum aklıma geldi, sadece boş zamanlarımda ilgileneceğim gönüllü bir uğraş benim için.
Tabii ki üretimde C/C++ kullanıyoruz ve bu profosyonel düzeyde. Metin2 geliştiricileri tarafından yazılan kodları bu repoya kabul etmeyeceğimi belirtmek isterim, forumda yeterince yerli/yabancı kodlarını inceledim ve %90ı intern bir C++ geliştiricinin bile yazacağı kodlar değil. Kısacası bu dili udemyden veya ezbere öğrenmeyip kural, logic, yazılım mimarileri gibi konulara hakimseniz yorumda belirtebilirsiniz.
En Çok Reaksiyon Alan Mesajlar
yüzme biliyorum diyerek karadenize girmek gibi. size tavsiyem, önce oyunun mantığını ve çalışma yapısını öğrenmeniz.
Öğeyi görmek için üye olmalısınız.
şu konuya bakarsak; oyun açmak veya bir projede bulunmak bir kenara, oyunculuk dışında bilginiz sıfır. bu durumda "intern" seviyede bile olamayan "devlobırslar" sizden daha tecrübeli.
paylaşım yapanların çoğu; yazılım konusunda az bilgili ama foruma ve oyuna katkıda bulunmaya çalışır, oyun bilgisi vardır x yeri değiştirirsem y tarafı beklenmedik bir davranış sergileyebilir diyebilir ama siz diyemezsiniz.
karakter ve mob classının aynı olması; binek(isim, level, hız, hareket vb.), pet(isim, level, hız, hareket vb.), sahte oyuncu(isim, level, hız, align, skill vb.) belki aklıma gelmeyen onlarca şeyin aynı özelliklerini tek bir yerden yönetmenize olanak tanır.
bu durumda, köklü bir değişiklik yapmak hayatı pamuk ipliğine bağlı olan bir oyunu mahvetmek gibi bir şey. özellikle "devlobır" değilseniz bu kaçınılmaz bir sondur. bahsettiğim şey basit bir iteratorı auto yapmak değil.
son;
aylarca hatta yıllarca sorunsuz test yapabilirsiniz. bu oyun size gerçek yüzünü aktif oyunda gösterir, test sunucuda değil. şimdiden başarılar
metin2 sıfırdan kodlicakta metin2yi kurtarıcak peh
Öğeyi görmek için üye olmalısınız.
Güzel bir düşünce kodu yenileyecekseniz tüm server yapısını kodlarını komple değişmesi gerekiyor sadece belli bölümleri değiştirmek uzun vadede iyi değil en temel gereksinim yeni nesil fonksiyonel bir network kütüphanesi yazılması şart metin2 için 2. gereksinim karakter senkronizasyonlarının baştan ele alınması ve eşitlenmesi 3. gereksinim çoklu çekirdek yapısı ve modüler mimari yapısına geçilmesi gerekiyor bir sürü madde var yapılması gereken uzun uğraş isteyen savunma sanayi işlerinde çalıştıysanız buraya ayıracağınız zamanı daha gelişmiş silah ve savunma sistemleri üzerine yazılım geliştirmek sizin için daha avantajlı olur bu eski kodu modern yapıya yükseltmek herşeyi baştan yazmak gibi birşey kodları okuduysanız tüm cpp yapısını o zamanın şartlarıyla iyi olabilir ama günümüz şartlarıyla ne kadar mantıksız ve kusurlu olduğunu farketmişsinizdir.
- Katılım
- 14 Ocak 2021
- Konular
- 11
- Mesajlar
- 482
- Çözüm
- 9
- Online süresi
- 6mo 10d
- Reaksiyon Skoru
- 403
- Altın Konu
- 0
- TM Yaşı
- 5 Yıl 5 Ay 4 Gün
- Başarım Puanı
- 130
- MmoLira
- 10,605
- DevLira
- 12
Güzel bir düşünce kodu yenileyecekseniz tüm server yapısını kodlarını komple değişmesi gerekiyor sadece belli bölümleri değiştirmek uzun vadede iyi değil en temel gereksinim yeni nesil fonksiyonel bir network kütüphanesi yazılması şart metin2 için 2. gereksinim karakter senkronizasyonlarının baştan ele alınması ve eşitlenmesi 3. gereksinim çoklu çekirdek yapısı ve modüler mimari yapısına geçilmesi gerekiyor bir sürü madde var yapılması gereken uzun uğraş isteyen savunma sanayi işlerinde çalıştıysanız buraya ayıracağınız zamanı daha gelişmiş silah ve savunma sistemleri üzerine yazılım geliştirmek sizin için daha avantajlı olur bu eski kodu modern yapıya yükseltmek herşeyi baştan yazmak gibi birşey kodları okuduysanız tüm cpp yapısını o zamanın şartlarıyla iyi olabilir ama günümüz şartlarıyla ne kadar mantıksız ve kusurlu olduğunu farketmişsinizdir.
Son düzenleme:
- Katılım
- 17 Ağu 2024
- Konular
- 5
- Mesajlar
- 39
- Online süresi
- 2d 5h
- Reaksiyon Skoru
- 22
- Altın Konu
- 0
- Başarım Puanı
- 23
- MmoLira
- 1,050
- DevLira
- 9
Geniş açıdan bakacak olursak evet mimarisi zaten çok kötü singleton pattern four gangin bile sorguladığı bir pattern ve CTRP'den dolayı olumsuz gözle bakılıyor, halen çalışmaktayım öyle uğraş çıksın diye düşünmüştüm zaten kısa vadeli bir şey değil ve gönüllü bir iş olduğu için x gün x ayda bitirip geçicem diye düşünmedim. Evet network, sql kesinlikle sıfırdan geliştirilmeli, character class(mob ve karakterler aynı classtan türetilmiş vb.) gibi çok fazla durum var(sourceyi detaylı incelemedim o kadar vaktim olmadı ama 2-3 saat göz gezdirmede bile yüzlerce "bu nedir ya?" dediğim oldu). Aslında demek istediğim buydu zaten character classını refactor edelim desen çok fazla düzeltmen gereken yer olucak, bazen bazı sistemleri sıfırdan geliştirmek refactor etmekten daha kolay oluyor haklısınız. Minimalist bir şeyler yapar, plan kafamızda oturmazsa başlamayız son çare sağlık olsunGüzel bir düşünce kodu yenileyeceksek tüm server yapısını kodlarını komple değişmesi gerekiyor sadece belli bölümleri değiştirmek uzun vadede iyi değil en temel gereksinim yeni nesil fonksiyonel bir network kütüphanesi yazılması şart metin2 için 2. gereksinim karakter senkronizasyonlarının baştan ele alınması ve eşitlenmesi 3. gereksinim çoklu çekirdek yapısı ve modüler mimari yapısına geçilmesi gerekiyor bir sürü madde var yapılması gereken uzun uğraş isteyen savunma sanayi işlerinde çalıştıysanız buraya ayıracağınız zamanı daha gelişmiş silah ve savunma sistemleri üzerine yazılım geliştirmek sizin daha avantajlı olur bu eski kodu modern yapıya yükseltmek herşeyi baştan yazmak gibi birşey kodları okuduysanız tüm cpp yapısını o zamanın şartlarıyla iyi olabilir ama günümüz şartlarıyla ne kadar mantıksız ve kusurlu olduğunu farketmişsinizdir.

- Katılım
- 14 Ocak 2021
- Konular
- 11
- Mesajlar
- 482
- Çözüm
- 9
- Online süresi
- 6mo 10d
- Reaksiyon Skoru
- 403
- Altın Konu
- 0
- TM Yaşı
- 5 Yıl 5 Ay 4 Gün
- Başarım Puanı
- 130
- MmoLira
- 10,605
- DevLira
- 12
Evet çok iyi noktaları görmüşsün game ve db arasındaki gereksiz paket yükünü bir görsen bunu hangi zihinle yazdılar diye düşünürsün. Boş zamanlarında uğraşabilirsin ama ileride bir gün bu altyapıyı kullanmayacaksan zaman kaybı demek oluyor keşke başka birşey üzerine uğraşsaydım dememen için söylüyorum yazılım topluluğu olarak zaman çok değerli. Biraz kodları incele bak network den sonra en büyük sıkıntı item sınıfı sonra character sınıfı geliyor bunların db iletişimine bak ve paketleri loglayıp bir test et trafiği normal oyuncu olarak bunu yüksek bir online ile çarp burada bir nokta var ne kadar karakterler yan yana olursa biri vurduğu anda yakındaki tüm karakterlere bir sürü paket gidiyor ve bu durum birbirini gören oyuncu sayısı ne kadar artarsa paket yükü o kadar artıyor. Benim en nefret ettiğim nokta bir şeyi güncellemek istiyorsun baştan yazmak kodunu ama tüm yapıyı ele alman gerekiyor herşey birbirine bağlı olduğu için ağır işlemlere giremiyorsun kodun testi ayrı bir durum yüksek oyuncuda deneme riski ayrı bir durum çok fazla sınırlamayla karşılaşılıyor.Geniş açıdan bakacak olursak evet mimarisi zaten çok kötü singleton pattern four gangin bile sorguladığı bir pattern ve CTRP'den dolayı olumsuz gözle bakılıyor, halen çalışmaktayım öyle uğraş çıksın diye düşünmüştüm zaten kısa vadeli bir şey değil ve gönüllü bir iş olduğu için x gün x ayda bitirip geçicem diye düşünmedim. Evet network, sql kesinlikle sıfırdan geliştirilmeli, character class(mob ve karakterler aynı classtan türetilmiş vb.) gibi çok fazla durum var(sourceyi detaylı incelemedim o kadar vaktim olmadı ama 2-3 saat göz gezdirmede bile yüzlerce "bu nedir ya?" dediğim oldu). Aslında demek istediğim buydu zaten character classını refactor edelim desen çok fazla düzeltmen gereken yer olucak, bazen bazı sistemleri sıfırdan geliştirmek refactor etmekten daha kolay oluyor haklısınız. Minimalist bir şeyler yapar, plan kafamızda oturmazsa başlamayız son çare sağlık olsun![]()
- Katılım
- 30 Ocak 2020
- Konular
- 50
- Mesajlar
- 812
- Çözüm
- 6
- Online süresi
- 26d 15h
- Reaksiyon Skoru
- 735
- Altın Konu
- 1
- Başarım Puanı
- 184
- MmoLira
- 8,746
- DevLira
- 123
Onlarla dolu değil de kaynak kodunun tamamı koca bir code smells örneği desek çok daha isabetli olabilir.
Temeli 2002-2004 yıllarına dayanıyor ve döneminde çalışan senior devleri dahil ekiplerinin çok büyük bir çoğunluğunun C dilinde uzman devler olduğunu düşünüyorum, fonksiyon yapıları, oldukça ezber gözüken kodlama stilleri bana böyle düşündürdü. Pek çoğunun C++ ile herhangi bir bağlantısı olmadığını ve hatta bu projeyi geliştirirken bazı şeyleri öğrendiklerini düşünüyorum, bence bu source 2004 dönemi için bile oldukça özensiz, plansız ve kesinlikle profesyonellikten uzak, aynı dönemin oyunu olan hatta hala dünyanın en büyük MMORPG oyunu olan WoW en büyük örnek, aradaki kaynak farkı, profesyonellik bambaşka düzeyde.
Bahsettiğiniz projenin üstteki arkadaşın da dediği gibi bölüm bölüm yapılabilmesi bence de çok güç, o kadar birbirine bağlı bir kaynak ki örneğin eğer solid prensipleriyle refactor etmek istiyorum derseniz muhtemelen en basitinden yüzlerce yeni class yazmanız gerekir, çok uzun bir iş ve uğraşa değeceğinden de şüpheliyim. Bu kadar detaylı olmasa da bunu belirli bir düzeyde yapan projeler de var örneğin N2Play dosyalarını incelemenizi öneririm, tam bir refactor sayılmayabilir ama güzel iştir.
Temeli 2002-2004 yıllarına dayanıyor ve döneminde çalışan senior devleri dahil ekiplerinin çok büyük bir çoğunluğunun C dilinde uzman devler olduğunu düşünüyorum, fonksiyon yapıları, oldukça ezber gözüken kodlama stilleri bana böyle düşündürdü. Pek çoğunun C++ ile herhangi bir bağlantısı olmadığını ve hatta bu projeyi geliştirirken bazı şeyleri öğrendiklerini düşünüyorum, bence bu source 2004 dönemi için bile oldukça özensiz, plansız ve kesinlikle profesyonellikten uzak, aynı dönemin oyunu olan hatta hala dünyanın en büyük MMORPG oyunu olan WoW en büyük örnek, aradaki kaynak farkı, profesyonellik bambaşka düzeyde.Bahsettiğiniz projenin üstteki arkadaşın da dediği gibi bölüm bölüm yapılabilmesi bence de çok güç, o kadar birbirine bağlı bir kaynak ki örneğin eğer solid prensipleriyle refactor etmek istiyorum derseniz muhtemelen en basitinden yüzlerce yeni class yazmanız gerekir, çok uzun bir iş ve uğraşa değeceğinden de şüpheliyim. Bu kadar detaylı olmasa da bunu belirli bir düzeyde yapan projeler de var örneğin N2Play dosyalarını incelemenizi öneririm, tam bir refactor sayılmayabilir ama güzel iştir.
- Durum
- Üzgünüz bu konu cevaplar için kapatılmıştır...
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 8
- Görüntüleme
- 526
- Cevaplar
- 1
- Görüntüleme
- 336
- 5.00 yıldız(lar) 1 Değerlendirme
- Cevaplar
- 4
- Görüntüleme
- 366
- Cevaplar
- 1
- Görüntüleme
- 28
- Cevaplar
- 1
- Görüntüleme
- 27



