- Mesaj
- 620
- Çözümler
- 21
- Beğeni
- 506
- Puan
- 829
- Ticaret Puanı
- 0
Merhabalar arkadaşlar yaklaşık 1 hafta önce başlamış olduğum Unity Mmorpg projemin gelişme aşamalarını buradan paylaşacağım. Bu bir haftalık süreci kısaca özetlemek istiyorum.
İlk başlangıç olarak toplamda 8 job olmak üzere 4 karakterin model yüklemeleri, orjinal yapıdaki .msm>item_proto>item_list mantığıyla yeniden uyarlanmış olup, gerektiğinde herhangi bir files yapısındaki bu üçlü dosya yapısının çok kolay şekilde import edilmesine olanak sağlıyor.
Unity'nin kendi kütüphanesinde işleyebilmesi için,
*MSM dosyaları 8 karakter için data container assetler oluşturularak projeye eklendi
*Karakterlerin 8 job için kullanılacak model dosyaları fbx formatları, skill-animasyon türleri projeye dahil edildi.
*Haritalar zeminler ve objeler ile beraber projeye dahil edildi. Bu aşamada sorun çıkaran bazı objelerin sahnede yeniden oluşturulmasına olanak sağlayan scriptler hazırlandı.
*Spawn olan karakterin "bake" edilmiş zemini otomatik bulmasını sağlayan script hazırlandı.
*Oyuncu adını, seviyesini ve lonca bilgilerini gösteren script hazırlandı.
*Sunucuya kurulan mysql tablosundan ip adresi root ve şifre bilgileri girilerek verileri sunucudan çekmesi için gerekli scriptler yazıldı. Normalde localhost olarak bilgileri çekiyor fakat şuan geçici olarak freebsd ye kurmuş olduğum tablodan verileri çekiyorum. İlerleyen zamanlarda unity için kurulacak sunucuya geçince düzeltilecek.
*Haritadaki tüm ağaçları tek seferde değişen yerine yeni modeller ekleyen script hazırlandı. İhtiyaç halinde sahnedeki problem çıkaran ağaç modelleriyle vakit kaybetmek yerine tek tık ile yeni modelleri eklemek daha mantıklı geldi.
Oyuna start verilince gelen bazı log kayıtlarını ekledim.
*Mobil için başlangıç seviye UI oluşturuldu.
*Envanter sistemine giriş yapıldı. Verileri doğrudan player.items tablosundan çekiyor.
Ayrıca Not olarak paylaşmak istiyorum. Bu projeye dahil olan objeler, modeller zemin dokuları hiçbiri orjinal gameforge dosyalarından alınmamıştır. Eğer olurda proje başarılı şekilde tamamlanır hayata geçerse(tüm fonksiyonların sorunsuz çalıştığı bir senaryoda), oyuna dahil tüm materyal ve objelerin karakterlerin hepsinin baştan modellenip oluşturulup değiştirmeyi düşünüyorum. Kodlama kısmı zaten tamamen farklı, olası telif atma durumu için de modeller hepsi değişirse endişeye gerek kalmaz galiba.
Proje hakkındaki görüşleriniz ve önerileriniz benim için çok kıymetli
Sonuç olarak projenin son güncel görüntüsünü de aşağıya bırakıyorum.
İlk başlangıç olarak toplamda 8 job olmak üzere 4 karakterin model yüklemeleri, orjinal yapıdaki .msm>item_proto>item_list mantığıyla yeniden uyarlanmış olup, gerektiğinde herhangi bir files yapısındaki bu üçlü dosya yapısının çok kolay şekilde import edilmesine olanak sağlıyor.
Unity'nin kendi kütüphanesinde işleyebilmesi için,
*MSM dosyaları 8 karakter için data container assetler oluşturularak projeye eklendi
*Karakterlerin 8 job için kullanılacak model dosyaları fbx formatları, skill-animasyon türleri projeye dahil edildi.
*Haritalar zeminler ve objeler ile beraber projeye dahil edildi. Bu aşamada sorun çıkaran bazı objelerin sahnede yeniden oluşturulmasına olanak sağlayan scriptler hazırlandı.
*Spawn olan karakterin "bake" edilmiş zemini otomatik bulmasını sağlayan script hazırlandı.
*Oyuncu adını, seviyesini ve lonca bilgilerini gösteren script hazırlandı.
*Sunucuya kurulan mysql tablosundan ip adresi root ve şifre bilgileri girilerek verileri sunucudan çekmesi için gerekli scriptler yazıldı. Normalde localhost olarak bilgileri çekiyor fakat şuan geçici olarak freebsd ye kurmuş olduğum tablodan verileri çekiyorum. İlerleyen zamanlarda unity için kurulacak sunucuya geçince düzeltilecek.
*Haritadaki tüm ağaçları tek seferde değişen yerine yeni modeller ekleyen script hazırlandı. İhtiyaç halinde sahnedeki problem çıkaran ağaç modelleriyle vakit kaybetmek yerine tek tık ile yeni modelleri eklemek daha mantıklı geldi.
Oyuna start verilince gelen bazı log kayıtlarını ekledim.
<color=green>[Metin2DB]</color> BAĞLANTI BAŞARILI! Sorgu yürütülüyor...
<color=green>[Metin2DB]</color> Karakter Bulundu! Veriler okunuyor...
<color=green>[Metin2DB]</color> Karakter OKUMASI TAMAMLANDI: Mobile2Fix
<color=green>[Metin2]</color> Karakter Yüklendi: Mobile2Fix (Lv.250)
<color=orange>[Metin2]</color> Karakter Spawning: Mobile2Fix | DB Koordinat: (-37900, 20295, 17142) -> Unity: (-379.00, 171.42, 202.95)
[Metin2] NavMesh üzerinden zemin bulundu: (-379.00, 171.42, 202.95)
<color=magenta>[JobModelManager]</color> Models Root Path: _Game/Characters/
[Metin2] NavMeshAgent aktif edildi. Pozisyon: (-379.00, 171.42, 202.95)
[ZIRH YÜKLEME] Job: 0 | ArmorVnum: 63159
[ZIRH> ShapeIndex: 37
<color=yellow>[ZIRH]</color> MSM Shape Data: BULUNDU
[MODEL YÜKLEME] Job: 0 -> RaceFolder: warrior_m
MSM'den gelen model adı: warrior_4-1.GR2 -> warrior_4-1
Skipping Face Material by Name: warrior_face (Instance)
[SQL BAŞARILI] item_proto -> vnum: 45009 | value3: 5005
[Metin2 Analiz] JOB: 0 | Vnum: 45009 | MSM Index: 5005 | MSM Verisi: BULUNDU
Head bone bulundu: Bip01 Head
SkinnedMeshRenderer kemikleri eşleştirildi
[Metin2] Saç başarıyla takıldı: hair_15_1 -> Bip01 Head
Metin2 UI Assets Imported Successfully!
[Metin2] UI sistemi yeni karaktere (Şaman/Savaşçı) kilitlendi.
[Metin2] Kamera 'Mobile2Fix' karakterini takip ediyor.
<color=green>[Metin2DB]</color> Karakter Bulundu! Veriler okunuyor...
<color=green>[Metin2DB]</color> Karakter OKUMASI TAMAMLANDI: Mobile2Fix
<color=green>[Metin2]</color> Karakter Yüklendi: Mobile2Fix (Lv.250)
<color=orange>[Metin2]</color> Karakter Spawning: Mobile2Fix | DB Koordinat: (-37900, 20295, 17142) -> Unity: (-379.00, 171.42, 202.95)
[Metin2] NavMesh üzerinden zemin bulundu: (-379.00, 171.42, 202.95)
<color=magenta>[JobModelManager]</color> Models Root Path: _Game/Characters/
[Metin2] NavMeshAgent aktif edildi. Pozisyon: (-379.00, 171.42, 202.95)
[ZIRH YÜKLEME] Job: 0 | ArmorVnum: 63159
[ZIRH> ShapeIndex: 37
<color=yellow>[ZIRH]</color> MSM Shape Data: BULUNDU
[MODEL YÜKLEME] Job: 0 -> RaceFolder: warrior_m
MSM'den gelen model adı: warrior_4-1.GR2 -> warrior_4-1
Skipping Face Material by Name: warrior_face (Instance)
[SQL BAŞARILI] item_proto -> vnum: 45009 | value3: 5005
[Metin2 Analiz] JOB: 0 | Vnum: 45009 | MSM Index: 5005 | MSM Verisi: BULUNDU
Head bone bulundu: Bip01 Head
SkinnedMeshRenderer kemikleri eşleştirildi
[Metin2] Saç başarıyla takıldı: hair_15_1 -> Bip01 Head
Metin2 UI Assets Imported Successfully!
[Metin2] UI sistemi yeni karaktere (Şaman/Savaşçı) kilitlendi.
[Metin2] Kamera 'Mobile2Fix' karakterini takip ediyor.
*Mobil için başlangıç seviye UI oluşturuldu.
*Envanter sistemine giriş yapıldı. Verileri doğrudan player.items tablosundan çekiyor.
Ayrıca Not olarak paylaşmak istiyorum. Bu projeye dahil olan objeler, modeller zemin dokuları hiçbiri orjinal gameforge dosyalarından alınmamıştır. Eğer olurda proje başarılı şekilde tamamlanır hayata geçerse(tüm fonksiyonların sorunsuz çalıştığı bir senaryoda), oyuna dahil tüm materyal ve objelerin karakterlerin hepsinin baştan modellenip oluşturulup değiştirmeyi düşünüyorum. Kodlama kısmı zaten tamamen farklı, olası telif atma durumu için de modeller hepsi değişirse endişeye gerek kalmaz galiba.
Proje hakkındaki görüşleriniz ve önerileriniz benim için çok kıymetli
Sonuç olarak projenin son güncel görüntüsünü de aşağıya bırakıyorum.
