Merhaba, Metin2'nin hareket sistemi ile ilgili sorularım var. Öncesinde sizlere bir hikaye anlatmak istiyorum. Bu soruyu neden sorduğumu daha iyi anlamanız için hikaye size yardımcı olacaktır. Merak edenler spoiler kısmına bakabilir. Direkt konuya geçmek isteyenler ise spoiler ile uğraşmadan mesajın devamını okuyabilir.
@MT2Dev Metin2'nin işleyişinde birçok noktaya hakim olduğunuzu düşündüğüm için sizi etiketlemek istedim.
Metin2'de karakterlerin hareketleri nasıl çalışıyor? Oyuncular, yaratıklar ve oyun içindeki diğer tüm hareketli nesnelerin hareketleri nasıl bir sistemle işliyor bunu bilmek istiyorum. Bu sistemi Unity'de yeniden oluşturacağım.
Unity'de rigidbody ve velocity kullanmayı ve ışın atarak ilerletmeyi denedim fakat istediğim sonucu alamadım. Gayet oynanabilir hareket sistemleri oluşturdum fakat birebir işlediğini hissettirmiyor. Tahminimce hareket sistemi iki eksende çalışıyor. Hiçbir nesnenin yukarı-aşağı hareket ettiğini görmedim. Daha doğrusu zeminden koptuğunu görmedim. Ejderha uçarken bile aslında modeli uçuyor. Etkileşime girilen ana nesnesi zeminde duruyor. Bir de harita tasarlama programında biraz göz gezdirmiştim. Ulaşılamaz bölgeleri belirlerken haritanın boyanması gerektiğini hatırlıyorum. Bu yüzden hareket sisteminin bir map/koordinat verisi okuduğunu düşünüyorum. Yorumlarınızı ve yardımlarınızı bekliyorum. Şimdiden herkese teşekkürler.
Uzun süredir Metin2'yi tek kişilik hale getirme düşüncem var. Bunu yapmak için birçok denemem oldu fakat henüz hedefime ulaşabilmiş değilim. Hatta bu hedefimin bir kısmından vazgeçtim.
Paylaşılan sunucu/istemci dosyalarını (buradan sonra bunlara 'oyun dosyası' diyeceğim) indirip kuruyorum. Biraz oynadıktan sonra çeşit çeşit hata. Birçok eksik kod, eksik dosya. Bir eksiği kapatmak için farklı bir oyun dosyası indir, eksik kısım bu dosyalarda var mı kontrol et, varsa kullanacağın dosyaya ekle, yoksa başka bir oyun dosyası indir. Bu süreç çok fazla vaktimi aldığı gibi hevesimi de kaçırıyor. Niyetim şu oyunu tek başıma oynayabilmek. Sürekli "sorunsuz" diyerek dosya paylaşan insanların arkasından bolca hayır dua etmişimdir
Sorunsuz dedikleri dosyada koskoca bir olayın kodu eksik. Bunu bildirdiğim zaman "eksiksiz olmak zorunda mı?" gibi cevaplar verip kısa süreli sinir krizi geçirmeme sebep olabiliyorlar. Bu yüzden Metin2 dosyalarını tek kişilik hale getirmekten vazgeçtim. Tek isteğim 1-99 ya da 1-120 seviye aralığında, sistem barındırmayan, oyunun saf halini koruyan, hatasız ve eksiksiz dosyalar bulup test ederek tek kişinin oynayabileceği hale getirmek ve paylaşmaktı. Benim gibi tek başına oynamak isteyenlere (tabi varsa) bir eğlence çıkmış olurdu. Ayrıca bu süreçte "şöyle bir özellik olsa işimi kolaylaştırır" diyerek ekleyeceğim yenilikler belki sunucu sahiplerinin de işine yarayacaktı. Neyse. Sonuç olarak ben Metin2'nin ocak söndüren kodlarından vazgeçtim ama hayalimden, hedefimden vazgeçer miyim? Sormak bile yanlış
Bu sebeple oyunun Unity (C#) versiyonunu yapmaya karar verdim. "Şunu yaparım, bunu yaparım, şu da güzel olur" derken oyun kağıt üstünde büyüdü ve bambaşka bir noktaya geldi. Bu büyüyen projeyi yeni bir oyun olarak rafa kaldırdım ve tek kişilik Metin2 projeme geri döndüm.
İlk olarak Metin2'nin birebir yapısını oluşturacaktım. Sunucu kodu yazmama gerek yoktu çünkü oyun tek kişilik olacaktı. Modeller, haritalar, animasyonlar, sesler umurumda değildi. Onları istediğim zaman ekleyebilirdim. Aç yabani köpeğin gri bir kapsül olarak görünmesi ya da dolunay kılıcının dikdörtgen olması sistem oturana kadar sorun değildi. Fakat mekaniklerin orijinal oyundakilerle birebir aynı olması ya da yüksek oranda benzemesi gerekiyordu. İlk olarak hareket sisteminden başladım ve bir türlü ilerleyemediğim nokta bu oldu. Detaylara öylesine takıldım ki yaptığım hiçbir hareket sistemi beni tatmin etmiyordu. Bunu yapana kadar diğer hiçbir mekaniğe girişmeyeceğim dedim ve öyle de yaptım. Sonra uzun süre verilen bir ara ve nihayet günümüzde yeniden başlama kararı.
Kısacası Metin2 mekaniklerini "sunucu tarafı olmadan" birebir ya da çok benzer şekilde Unity oyun motoru ve C# diliyle yeniden oluşturmak istiyorum. Bunu da açık kaynak olarak paylaşma niyetindeyim. Verilecek tüm fikir ve önerilere de açığım. Konuyla ilgili bir topluluk oluşursa da benim için mutluluk verici bir gelişme olur.
Paylaşılan sunucu/istemci dosyalarını (buradan sonra bunlara 'oyun dosyası' diyeceğim) indirip kuruyorum. Biraz oynadıktan sonra çeşit çeşit hata. Birçok eksik kod, eksik dosya. Bir eksiği kapatmak için farklı bir oyun dosyası indir, eksik kısım bu dosyalarda var mı kontrol et, varsa kullanacağın dosyaya ekle, yoksa başka bir oyun dosyası indir. Bu süreç çok fazla vaktimi aldığı gibi hevesimi de kaçırıyor. Niyetim şu oyunu tek başıma oynayabilmek. Sürekli "sorunsuz" diyerek dosya paylaşan insanların arkasından bolca hayır dua etmişimdir


İlk olarak Metin2'nin birebir yapısını oluşturacaktım. Sunucu kodu yazmama gerek yoktu çünkü oyun tek kişilik olacaktı. Modeller, haritalar, animasyonlar, sesler umurumda değildi. Onları istediğim zaman ekleyebilirdim. Aç yabani köpeğin gri bir kapsül olarak görünmesi ya da dolunay kılıcının dikdörtgen olması sistem oturana kadar sorun değildi. Fakat mekaniklerin orijinal oyundakilerle birebir aynı olması ya da yüksek oranda benzemesi gerekiyordu. İlk olarak hareket sisteminden başladım ve bir türlü ilerleyemediğim nokta bu oldu. Detaylara öylesine takıldım ki yaptığım hiçbir hareket sistemi beni tatmin etmiyordu. Bunu yapana kadar diğer hiçbir mekaniğe girişmeyeceğim dedim ve öyle de yaptım. Sonra uzun süre verilen bir ara ve nihayet günümüzde yeniden başlama kararı.
Kısacası Metin2 mekaniklerini "sunucu tarafı olmadan" birebir ya da çok benzer şekilde Unity oyun motoru ve C# diliyle yeniden oluşturmak istiyorum. Bunu da açık kaynak olarak paylaşma niyetindeyim. Verilecek tüm fikir ve önerilere de açığım. Konuyla ilgili bir topluluk oluşursa da benim için mutluluk verici bir gelişme olur.
@MT2Dev Metin2'nin işleyişinde birçok noktaya hakim olduğunuzu düşündüğüm için sizi etiketlemek istedim.
Metin2'de karakterlerin hareketleri nasıl çalışıyor? Oyuncular, yaratıklar ve oyun içindeki diğer tüm hareketli nesnelerin hareketleri nasıl bir sistemle işliyor bunu bilmek istiyorum. Bu sistemi Unity'de yeniden oluşturacağım.
Unity'de rigidbody ve velocity kullanmayı ve ışın atarak ilerletmeyi denedim fakat istediğim sonucu alamadım. Gayet oynanabilir hareket sistemleri oluşturdum fakat birebir işlediğini hissettirmiyor. Tahminimce hareket sistemi iki eksende çalışıyor. Hiçbir nesnenin yukarı-aşağı hareket ettiğini görmedim. Daha doğrusu zeminden koptuğunu görmedim. Ejderha uçarken bile aslında modeli uçuyor. Etkileşime girilen ana nesnesi zeminde duruyor. Bir de harita tasarlama programında biraz göz gezdirmiştim. Ulaşılamaz bölgeleri belirlerken haritanın boyanması gerektiğini hatırlıyorum. Bu yüzden hareket sisteminin bir map/koordinat verisi okuduğunu düşünüyorum. Yorumlarınızı ve yardımlarınızı bekliyorum. Şimdiden herkese teşekkürler.