Level dizaynında uyulduğunda verimliliğinizi kat ve kat arttıran birkaç disiplin var. Bu rehberde bunlardan biri ve en önemlisi Modular Level Design hakkında konuşmak istiyorum. Konuya girmeden önce hemen kısa bir örnek verecek olursak;
Unreal Engine üzerinde büyük çaplı bir oyun geliştiriyorsunuz ve bir bölüm için 3. parti yazılımlar kullanarak tek parça, .fbx uzantılı 100mb'lık bir level hazırladınız. Unreal Engine'e aktardınız ve test ettiniz; fakat testleriniz sonucunda yaptığınız haritanın %10'luk bir kısmında game breaking bug'lar meydana çıktı. Mecburen bu modeli tekrar 3. parti yazılımlar ile ele alıp, üzerinden geçmeniz gerekecektir bu durumda. Şimdi olay burada başlıyor. Önünüzdeki sorunları hemen yazayım liste şeklinde;
-100mb'lık bir modelin %10'luk o kısmını editledikten sonra Unreal Engine'e yine 100mb'lık bir model import edeceksiniz, fazlaca zaman kaybı demek bu.
-Modelinizi bütün olarak ele almak zorunda kalacaksınız bug'ları giderirken, oysa ki sizin üzerine düşeceğiniz kısım sadece %10'luk kısım.
-Yaptığınız ufak değişiklikler bütün modeli etkileyecek, belki UV Mapping'te bile değişiklik yapmaya gerek duyacaksınız, bu da bir sürü zaman kaybı demektir yine.
-İleriki zamanlarda bu %10'luk kısım dışında başka bir yerde daha sorun yaşamayacağınızın garantisi yok, yukarıda yazdıklarımı defalarca tekrarlamak zorunda kalacaksınız her bug için.
-Tek çalışmıyorsanız, isteklere göre dizayn yapıyorsanız her türlü değişikliğe hazır olmanız lazım. Yukarıdan gelecek isteklere en verimli şekilde cevap vermelisiniz. Bu noktada Modular Level Design devreye giriyor.
Yukarıda yazdığım olayda temel sorun ufak değişiklikler için bile bütün bir modeli ele alıp değiştirmeniz, tekrar import etmeniz. Oysa elinizde %10'luk kısım olsa, geri kalan %90'lık kısım oyun içerisinde kalsa ve bu %10 luk kısmı yeniden import etseniz zaman bakımından çok ama çok fazla tasarruf etmiş olacaksınız. Bunun için tahmin ettiğiniz gibi level dizayn ederken dizaynı bir bütün olarak değil parçalar olarak yapmak gerekiyor.
Bu disiplinin en güzel örneği TES: Skyrim'de görülebilir:
Görsel her şeyi daha net hale getirmiştir sanırım, bütün bir Dwarven Dungeon tasarlamak yerine, konseptinizdeki biçime uygun olarak ve bütün isteklere cevap verecek parçalar oluşturmak gerekiyor bunun için. Daha sonra lego parçaları gibi yapmanız gereken haritayı oluşturuyorsunuz. En can alıcı nokta ise, herhangi bir noktada değişiklik yapmanız gerektiğinde Unreal Engine üzerinden bu parçayı siliyorsunuz, 3. parti yazılımlar üzerinde değişiklikleri yapıp tekrar bu parçayı import ediyorsunuz. Böylece bir taşla iki kuş bile değil, ikiden fazla kuş vurmuş oluyorsunuz
Dikkat edilmesi gereken husus parçaları ve haritayı oluştururken bir grid kullanmanız ve bütün parçaları belirlediğiniz bir noktayı referans alarak birleştirmeniz(Orijin noktası ideal bunun için), daha sonrasında da güzelce indexlemek bu modelleri. Siz Unreal Engine'e bu modelleri import ederken de yine bu referans noktasına göre import edileceklerdir ve parça parça istediğiniz bütünü oluşturacaklardır.
Tabii ki modu moduna bunlara uymanız gerekmiyor, kimi yapımcılar haritalarını belirli bir alana göre kare parçalara ayırıyor, kimileri ise yukarıda bahsettiğim gibi çalışıyor. Bence en mantıklısı özel bir durum yoksa yukarıdaki gibi çalışmak. Yine tabii ki kimi oyunda bu tarz karmaşık olaylara girmeye gerekte yok; ama girmeniz sizin için her zaman faydalı olacaktır.
Rehber yazdım konu başlığına, kendi projem üzerinden birkaç ss ile sonlandırayım yazımı. Misal benim üzerinde çalıştığım oyunda çok fazla tekrar eden koridor çeşidi var, bütün haritayı modellemek yerine, dizaynımı duvar, zemin, tavan ve ekstra parçalar olarak 4'e ayırdım. Yine bu dizaynlar içerisinde de çok fazla copy-paste gerçekleştirdim tekrar eden parçalar için. Hazırladığım parçaları şu şekilde indexledim ve koordinatlarını orijin noktasına göre harita üzerinde nerede duruyorlarsa oraya sabitledim;
Indexlenmiş Zemin Modelleri:
Indexlenmiş Duvar Modelleri:
Misal burada 01_03.xxxx.skp dosyasında; 01 ilk harita olduğu, 03 ise bu haritanın 3. parçasına ait olduğu anlamına geliyor. 3ds max üzerinde bu parçaları import ettiğimde birbiri üzerine oturuyor bu parçalar koordinatları ayarlı olduğu için. Yine 04,05 parçaları da eklendiğinde bu parçaların kaldığı yerden devam ediyor. Bahsi geçen dosyalardan ss'ler ise şunlar;
Duvar Modeli:
Zemin Modeli:
Bu parçaları 3ds max üzerine import ettiğimde, az önce yazdığım gibi üst üste denk geliyorlar ve birbirlerinden tamamen bağımsızlar. Duvarlara bir şey eklemem gerektiğinde zemin modeline müdahale etmeme gerek kalmayacak Unreal Engine'e geçiş yaptığımda.
3ds max üzerinde tüm parçaları öylesine import ettim şimdi, sonuç şu şekilde:
Umarım güzel bir başlangıç için yeterli olmuştur bu bilgiler. Bir sorunuz olursa yine bu konu altından yardımcı olabilirim. Kolay gelsin.
Unreal Engine üzerinde büyük çaplı bir oyun geliştiriyorsunuz ve bir bölüm için 3. parti yazılımlar kullanarak tek parça, .fbx uzantılı 100mb'lık bir level hazırladınız. Unreal Engine'e aktardınız ve test ettiniz; fakat testleriniz sonucunda yaptığınız haritanın %10'luk bir kısmında game breaking bug'lar meydana çıktı. Mecburen bu modeli tekrar 3. parti yazılımlar ile ele alıp, üzerinden geçmeniz gerekecektir bu durumda. Şimdi olay burada başlıyor. Önünüzdeki sorunları hemen yazayım liste şeklinde;
-100mb'lık bir modelin %10'luk o kısmını editledikten sonra Unreal Engine'e yine 100mb'lık bir model import edeceksiniz, fazlaca zaman kaybı demek bu.
-Modelinizi bütün olarak ele almak zorunda kalacaksınız bug'ları giderirken, oysa ki sizin üzerine düşeceğiniz kısım sadece %10'luk kısım.
-Yaptığınız ufak değişiklikler bütün modeli etkileyecek, belki UV Mapping'te bile değişiklik yapmaya gerek duyacaksınız, bu da bir sürü zaman kaybı demektir yine.
-İleriki zamanlarda bu %10'luk kısım dışında başka bir yerde daha sorun yaşamayacağınızın garantisi yok, yukarıda yazdıklarımı defalarca tekrarlamak zorunda kalacaksınız her bug için.
-Tek çalışmıyorsanız, isteklere göre dizayn yapıyorsanız her türlü değişikliğe hazır olmanız lazım. Yukarıdan gelecek isteklere en verimli şekilde cevap vermelisiniz. Bu noktada Modular Level Design devreye giriyor.
Yukarıda yazdığım olayda temel sorun ufak değişiklikler için bile bütün bir modeli ele alıp değiştirmeniz, tekrar import etmeniz. Oysa elinizde %10'luk kısım olsa, geri kalan %90'lık kısım oyun içerisinde kalsa ve bu %10 luk kısmı yeniden import etseniz zaman bakımından çok ama çok fazla tasarruf etmiş olacaksınız. Bunun için tahmin ettiğiniz gibi level dizayn ederken dizaynı bir bütün olarak değil parçalar olarak yapmak gerekiyor.
Bu disiplinin en güzel örneği TES: Skyrim'de görülebilir:
Görsel her şeyi daha net hale getirmiştir sanırım, bütün bir Dwarven Dungeon tasarlamak yerine, konseptinizdeki biçime uygun olarak ve bütün isteklere cevap verecek parçalar oluşturmak gerekiyor bunun için. Daha sonra lego parçaları gibi yapmanız gereken haritayı oluşturuyorsunuz. En can alıcı nokta ise, herhangi bir noktada değişiklik yapmanız gerektiğinde Unreal Engine üzerinden bu parçayı siliyorsunuz, 3. parti yazılımlar üzerinde değişiklikleri yapıp tekrar bu parçayı import ediyorsunuz. Böylece bir taşla iki kuş bile değil, ikiden fazla kuş vurmuş oluyorsunuz
Dikkat edilmesi gereken husus parçaları ve haritayı oluştururken bir grid kullanmanız ve bütün parçaları belirlediğiniz bir noktayı referans alarak birleştirmeniz(Orijin noktası ideal bunun için), daha sonrasında da güzelce indexlemek bu modelleri. Siz Unreal Engine'e bu modelleri import ederken de yine bu referans noktasına göre import edileceklerdir ve parça parça istediğiniz bütünü oluşturacaklardır.
Tabii ki modu moduna bunlara uymanız gerekmiyor, kimi yapımcılar haritalarını belirli bir alana göre kare parçalara ayırıyor, kimileri ise yukarıda bahsettiğim gibi çalışıyor. Bence en mantıklısı özel bir durum yoksa yukarıdaki gibi çalışmak. Yine tabii ki kimi oyunda bu tarz karmaşık olaylara girmeye gerekte yok; ama girmeniz sizin için her zaman faydalı olacaktır.
Rehber yazdım konu başlığına, kendi projem üzerinden birkaç ss ile sonlandırayım yazımı. Misal benim üzerinde çalıştığım oyunda çok fazla tekrar eden koridor çeşidi var, bütün haritayı modellemek yerine, dizaynımı duvar, zemin, tavan ve ekstra parçalar olarak 4'e ayırdım. Yine bu dizaynlar içerisinde de çok fazla copy-paste gerçekleştirdim tekrar eden parçalar için. Hazırladığım parçaları şu şekilde indexledim ve koordinatlarını orijin noktasına göre harita üzerinde nerede duruyorlarsa oraya sabitledim;
Indexlenmiş Zemin Modelleri:
Indexlenmiş Duvar Modelleri:
Misal burada 01_03.xxxx.skp dosyasında; 01 ilk harita olduğu, 03 ise bu haritanın 3. parçasına ait olduğu anlamına geliyor. 3ds max üzerinde bu parçaları import ettiğimde birbiri üzerine oturuyor bu parçalar koordinatları ayarlı olduğu için. Yine 04,05 parçaları da eklendiğinde bu parçaların kaldığı yerden devam ediyor. Bahsi geçen dosyalardan ss'ler ise şunlar;
Duvar Modeli:
Zemin Modeli:
Bu parçaları 3ds max üzerine import ettiğimde, az önce yazdığım gibi üst üste denk geliyorlar ve birbirlerinden tamamen bağımsızlar. Duvarlara bir şey eklemem gerektiğinde zemin modeline müdahale etmeme gerek kalmayacak Unreal Engine'e geçiş yaptığımda.
3ds max üzerinde tüm parçaları öylesine import ettim şimdi, sonuç şu şekilde:
Umarım güzel bir başlangıç için yeterli olmuştur bu bilgiler. Bir sorunuz olursa yine bu konu altından yardımcı olabilirim. Kolay gelsin.