Gerİ
LOOK NORTH WORLD, FORTNITE'TA RİTİM TABANLI "PATCHWORK PARKOUR"U NASIL GELİŞTİRDİ?
Michael Dekoekkoek, Başmühendis, Look North World
Patchwork Parkour (ada kodu: 1425-4464-4801), UCG oyun stüdyosu ve yayıncısı Look North World ile Epic Games'in müzik odaklı birinci sınıf deneyimleriyle bilinen stüdyosu Harmonix Labs işbirliğiyle ortaya çıkan bir ada.
Birlikte, oynanışta büyük ölçüde müzikle etkileşime odaklanan bir müzik oyunu geliştirdik. Bunu yaparken de Fortnite Kreatif ve UEFN'de müzik ve görsel oluşturup bunları değiştirme olanağı sunan Patchwork adlı cihaz paketinin sınırlarını zorladık. Patchwork Parkour, adalarınıza özel müzikler hazırlamanıza ve oynanışı müzikle zenginleştirmenize olanak tanıyan bazı yollar sunuyor.
Patchwork araçlarını geliştirmeye ve genişletmeye devam eden Harmonix, Patchwork Parkour'un geliştirilme sürecinde de önemli aşamalar kaydetti.
Aşağıda, oyunumuzda kullanılan bazı temel özellikleri ve geliştirme sürecinde öğrendiğimiz önemli noktaları sıralayacağız. Mevcut Patchwork araçları hakkında daha fazla bilgi ve dokümantasyon için Epic'in Patchwork Cihazları dokümantasyonunu inceleyebilirsiniz.
Nota Sıralayıcısı, mevcut tempoya göre nota yerleştirme ve çalma imkânı veriyor. Doğrudan müzik yapmayan Nota Sıralayıcısı cihazının çıktı kablosu çeşitli cihazlara bağlanabiliyor. Bunu daha sonra anlatacağız.
Nota Tetikleyicileri ise seçilen notalar üretildiğinde olayları başlatıyor. Bir Nota Sıralayıcısı'nın çıktı zincirine bir Nota Tetikleyicisi yerleştirildiğinde, başka cihazların bu olaylara tepki vermesini ve tetiklenen notaya göre belirli eylemler gerçekleştirmesini sağlayabiliyorsunuz. Patchwork Parkour'da çevresel tehlikeleri müzikle senkronize bir şekilde harekete geçirmek için kullandığımız temel yöntem bu.
Şarkı Senkronizasyonu ile birlikte bu cihazlar, ritim tabanlı zamanlama oyunlarının ana yapıtaşlarını oluşturuyor. Bunları diğer cihazlarla birlikte kullanarak gerçek müzik bile yapılabiliyor. Öte yandan, teknik olarak ritim tabanlı oynanışı tetiklemek için herhangi bir ses oynatmanıza bile gerek yok. Müzik yapma süreci diğer Patchwork cihazlarıyla sıralı ve/veya paralel bir şekilde yürütülebiliyor. Bu şekilde tamamen kendi müziklerinizi oluşturabiliyorsunuz. Bunu bir sonraki kısımda ele alacağız.
Patchwork Parkour'daki bir diğer çok önemli cihaz ise Müzik Yöneticisi. Basit olmasına rağmen bu cihaz tüm Patchwork cihazlarının temposunu yönetmede kritik bir rol üstleniyor. Tempoyu Müzik Yöneticisi'nde ayarladığımızda, yerleştirdiğimiz her bir Nota Sıralayıcısı'nın o tempoda çalmasını sağlamış oluyoruz. Bu özellik sayesinde birden fazla Nota Sıralayıcısı'nı tamamen senkronize bir şekilde paralel olarak çalıştırabiliyoruz.
Patchwork Parkour'un prototip aşamasında genel olarak yerleşik araçlar kullanıldı. Geliştirme sürecinde Füzyon Yamalarına geçerek dinamik seslerden mümkün olan en kapsamlı şekilde yararlanabildik. Bunu yaparken de haritaya yerleştirmemiz gereken cihaz sayısını en aza indirdik.
Müzikal karmaşıklık ve bellek kullanımını dengelemek için, paralelde Nota Sıralayıcıları ve Nota Tetikleyicileri çalışırken Füzyon Yamaları ile Efektleri birlikte kullandık. Özellikle, bir Nota Sıralayıcısı/Tetikleyicisi kombinasyonunu (herhangi bir hoparlöre çıkış vermeden) ayrı bir Nota Sıralayıcısı'nın ve yürütme zincirindeki Enstrüman Çalarlar, Filtreler, Modülatörler ve Hoparlörler gibi çeşitli müzik üretme cihazlarının yanına yerleştirdik.
Bu yaklaşım sayesinde kendi ses örneklerimizin içinde daha karmaşık müzik yapabildik. Bunu yaparken de oynanış animasyonlarını ses örneklerinde çalan müzikle hassas bir şekilde senkronize edebildik.
Senkronize halde birden fazla Nota Sıralayıcısı kullanılan Füzyon Yamaları ve Nota Tetikleyicilerine bir örnek.
Oynanışın müziği etkilemesinin en basit biçimi, oyuncunun Düzenleyici Alanı cihazlarına girişine veya bunlardan çıkışına göre Patchwork cihazlarının etkinleştirilmesi veya devre dışı bırakılmasıdır. Bu yaygın ve basit yöntemi oyunumuzda yoğun bir şekilde kullandık. Daha ilginç bir yol ise Patchwork Değer Belirleyici cihazını kullanmak oldu. Bu cihaz, oynanış esnasında diğer Patchwork cihazlarında değişikliklere neden olmamızı ve müzikal yapıda istediğimiz kadar değişiklik yapmamızı sağladı.
Aşağıdaki videolarda, müziği oynanışla kontrol etmek için Değer Belirleyicilerin nasıl kullanıldığı gösteriliyor.
2. Video: 3. bölümün sonuna doğru müzik yeni bir mikse dönüşüyor.
3. Video: Değer Belirleyici, miksi güncellemek için kullanılıyor. Oynanış esnasında birçok müzikal değişim yaşansa da bu videoda özellikle iki ayrı müzikal kısma odaklanılıyor. Nota Sıralayıcısı'nın geçerli sayfasını ayarlayarak bunlar arasında geçiş yapabiliyoruz.
1. Video: 3. bölüm yeni bir miksle başlıyor.
Oyuncularınız Patchwork cihazlarıyla özellikle etkileşime geçmiyorlarsa, kullanımdaki Patchwork cihazı sayısına bağlı olarak karşılaşabileceğiniz bellek sorunlarını azaltmak için çeşitli yollar bulunuyor.
Ancak, prodüksiyon seviyesindeki performans için, başka animasyon biçimlerine dönüştürülebilecek her şeyi dönüştürmeye vakit ayırın.
Verse kodlarının çoğu ihtiyacımızı karşıladığını gördük. Görsel açıdan daha karmaşık olan bazı animasyonlar Bölüm Sekanslarında kalmış olsa da optimum performans için bunları dikkatli bir şekilde yönetmek büyük önem taşıyor.
Ritim tabanlı bir engo/platform oyunu olan Patchwork Parkour'da, her biri bir veya daha fazla aktörden oluşan aynı engelden çok sayıda kullanılması gerekiyordu. UEFN'de bu durum, bu objeleri kolayca değiştirmek ve kopyalayıp yapıştırmak için bileşenler haline getirme konusunda bir zorluk teşkil ediyordu. Bu işlemi basitleştirecek birkaç ipucunu burada bulabilirsiniz:
![Bölüm Sekansı Birden Fazla Aktör](https://cdn2.unrealengine.com/level-sequence-multiple-actors-1920x1080-69edd9f2a0a0.png)
Patchwork Parkour'da dinamik müziği sürükleyici oynanışla birleştirirken performansı da nasıl optimize edeceğimizi keşfettik. Çeşitli araçlardan yararlanmaktan bellek yönetiminde ince ayarlara kadar aldığımız her karar daha akıcı ve etkileyici bir deneyim sunmamıza yardımcı oldu. Kendi adalarınızı geliştirirken denemeler yapmayı, optimizasyona önem vermeyi ve en önemlisi de eğlenmeyi unutmayın.
Bu ada kodunu kullanarak oyuna dalabilirsiniz: 1425-4464-4801.
Birlikte, oynanışta büyük ölçüde müzikle etkileşime odaklanan bir müzik oyunu geliştirdik. Bunu yaparken de Fortnite Kreatif ve UEFN'de müzik ve görsel oluşturup bunları değiştirme olanağı sunan Patchwork adlı cihaz paketinin sınırlarını zorladık. Patchwork Parkour, adalarınıza özel müzikler hazırlamanıza ve oynanışı müzikle zenginleştirmenize olanak tanıyan bazı yollar sunuyor.
Patchwork araçlarını geliştirmeye ve genişletmeye devam eden Harmonix, Patchwork Parkour'un geliştirilme sürecinde de önemli aşamalar kaydetti.
Aşağıda, oyunumuzda kullanılan bazı temel özellikleri ve geliştirme sürecinde öğrendiğimiz önemli noktaları sıralayacağız. Mevcut Patchwork araçları hakkında daha fazla bilgi ve dokümantasyon için Epic'in Patchwork Cihazları dokümantasyonunu inceleyebilirsiniz.
Ritim Tabanlı Bir Oyun Geliştirmek
Ana bileşenler: Nota Sıralayıcısı, Nota Tetikleyicisi, Şarkı Senkronizasyonu
Çoğu oyunda ritim tabanlı bir oynanış oluşturmak için kullanılan ana Patchwork bileşenleri Nota Sıralayıcısı, Nota Tetikleyicisi ve Şarkı Senkronizasyonu cihazlarıdır. Patchwork Parkour'da bunların ilk ikisi yoğun şekilde kullanılıyor. Şarkı Senkronizasyonu cihazı, UEFN Bölüm Sekanslarını seslerle senkronize etmek için güçlü araçlar sunuyor. Ancak gelecek için büyük bir potansiyel taşıdığını düşündüğümüz bu cihaz, geliştirme sürecinin ortalarına doğru kullanıma sunulduğundan bu projede ondan tam olarak yararlanamadık.![Fortnite Patchwork Parkour'da Sıralayıcı ve Tetikleyicinin Birlikte Kullanımı](https://cdn2.unrealengine.com/fortnite-patchwork-parkour-sequencer-trigger-combo-1920x1080-d7f149c66d8d.png)
Patchwork Parkour'un davul ritmini aktörlerle senkronize etmek için Nota Sıralayıcısı ile Nota Tetikleyicisi birlikte kullanıldı.
Nota Sıralayıcısı, mevcut tempoya göre nota yerleştirme ve çalma imkânı veriyor. Doğrudan müzik yapmayan Nota Sıralayıcısı cihazının çıktı kablosu çeşitli cihazlara bağlanabiliyor. Bunu daha sonra anlatacağız.
Nota Tetikleyicileri ise seçilen notalar üretildiğinde olayları başlatıyor. Bir Nota Sıralayıcısı'nın çıktı zincirine bir Nota Tetikleyicisi yerleştirildiğinde, başka cihazların bu olaylara tepki vermesini ve tetiklenen notaya göre belirli eylemler gerçekleştirmesini sağlayabiliyorsunuz. Patchwork Parkour'da çevresel tehlikeleri müzikle senkronize bir şekilde harekete geçirmek için kullandığımız temel yöntem bu.
Nota Sıralayıcısı ve Nota Tetikleyicisi'nin oyunda tetiklediği ışık animasyonlarını gösteren video.
Şarkı Senkronizasyonu ile birlikte bu cihazlar, ritim tabanlı zamanlama oyunlarının ana yapıtaşlarını oluşturuyor. Bunları diğer cihazlarla birlikte kullanarak gerçek müzik bile yapılabiliyor. Öte yandan, teknik olarak ritim tabanlı oynanışı tetiklemek için herhangi bir ses oynatmanıza bile gerek yok. Müzik yapma süreci diğer Patchwork cihazlarıyla sıralı ve/veya paralel bir şekilde yürütülebiliyor. Bu şekilde tamamen kendi müziklerinizi oluşturabiliyorsunuz. Bunu bir sonraki kısımda ele alacağız.
Patchwork Parkour'daki bir diğer çok önemli cihaz ise Müzik Yöneticisi. Basit olmasına rağmen bu cihaz tüm Patchwork cihazlarının temposunu yönetmede kritik bir rol üstleniyor. Tempoyu Müzik Yöneticisi'nde ayarladığımızda, yerleştirdiğimiz her bir Nota Sıralayıcısı'nın o tempoda çalmasını sağlamış oluyoruz. Bu özellik sayesinde birden fazla Nota Sıralayıcısı'nı tamamen senkronize bir şekilde paralel olarak çalıştırabiliyoruz.
Dinamik Müzikler Oluşturmak
Müzik odaklı bir oyun deneyimi için harici ve dahili sesleri birleştirmek.
Ana bileşenler: Füzyon Yamaları, Enstrüman Çalarlar, Efektler, Filtreler, Modülatörler, Hoparlörler
Patchwork, eksiksiz bir müzik deneyimi oluşturmanızı sağlayacak kapsamlı bir ses cihazları takımına sahip. Patchwork'ün yerleşik enstrümanlarını ve efektlerini kullanarak müziklerinizi tamamen hazırlayabilir ve hatta daha da heyecan verici bir şekilde, Füzyon Yamaları ile harici ses araçlarını kullanan kendi ses örneklerinizi de dahil edebilirsiniz.Patchwork Parkour'un prototip aşamasında genel olarak yerleşik araçlar kullanıldı. Geliştirme sürecinde Füzyon Yamalarına geçerek dinamik seslerden mümkün olan en kapsamlı şekilde yararlanabildik. Bunu yaparken de haritaya yerleştirmemiz gereken cihaz sayısını en aza indirdik.
Müzikal karmaşıklık ve bellek kullanımını dengelemek için, paralelde Nota Sıralayıcıları ve Nota Tetikleyicileri çalışırken Füzyon Yamaları ile Efektleri birlikte kullandık. Özellikle, bir Nota Sıralayıcısı/Tetikleyicisi kombinasyonunu (herhangi bir hoparlöre çıkış vermeden) ayrı bir Nota Sıralayıcısı'nın ve yürütme zincirindeki Enstrüman Çalarlar, Filtreler, Modülatörler ve Hoparlörler gibi çeşitli müzik üretme cihazlarının yanına yerleştirdik.
Bu yaklaşım sayesinde kendi ses örneklerimizin içinde daha karmaşık müzik yapabildik. Bunu yaparken de oynanış animasyonlarını ses örneklerinde çalan müzikle hassas bir şekilde senkronize edebildik.
Müziği Oynanışla Etkilemek
Müzik yapma ve oynanış mekaniklerini zenginleştirmenin yanı sıra Patchwork'te müziği oynanışla etkilemeyi sağlayan çeşitli araçlar da bulunuyor. Patchwork Parkour'da oyuncunun oyun içindeki eylemlerine ve ilerlemesine göre müziği dinamik olarak güncellemek için çeşitli tekniklerden yararlanılıyor.Oynanışın müziği etkilemesinin en basit biçimi, oyuncunun Düzenleyici Alanı cihazlarına girişine veya bunlardan çıkışına göre Patchwork cihazlarının etkinleştirilmesi veya devre dışı bırakılmasıdır. Bu yaygın ve basit yöntemi oyunumuzda yoğun bir şekilde kullandık. Daha ilginç bir yol ise Patchwork Değer Belirleyici cihazını kullanmak oldu. Bu cihaz, oynanış esnasında diğer Patchwork cihazlarında değişikliklere neden olmamızı ve müzikal yapıda istediğimiz kadar değişiklik yapmamızı sağladı.
Aşağıdaki videolarda, müziği oynanışla kontrol etmek için Değer Belirleyicilerin nasıl kullanıldığı gösteriliyor.
2. Video: 3. bölümün sonuna doğru müzik yeni bir mikse dönüşüyor.
3. Video: Değer Belirleyici, miksi güncellemek için kullanılıyor. Oynanış esnasında birçok müzikal değişim yaşansa da bu videoda özellikle iki ayrı müzikal kısma odaklanılıyor. Nota Sıralayıcısı'nın geçerli sayfasını ayarlayarak bunlar arasında geçiş yapabiliyoruz.
Alınan Dersler ve Geliştiricilere Yönelik İpuçları
Ana bileşenler: Patchwork Bellek Modu, Nota Sıralayıcısı'nda birden fazla sayfa, Füzyon ses örnekleri, iskelet örgüler, aktör bağlama
Bellek Yönetimi
Patchwork cihazları oyununuzda çok fazla bellek kullanabilir. Dinamik müziği korurken bellek kullanımını dengelemek için bazı ipuçlarını burada bulabilirsiniz.Oyuncularınız Patchwork cihazlarıyla özellikle etkileşime geçmiyorlarsa, kullanımdaki Patchwork cihazı sayısına bağlı olarak karşılaşabileceğiniz bellek sorunlarını azaltmak için çeşitli yollar bulunuyor.
- Ada Ayarları bölümündeki Patchwork Bellek Modu ayarını kullanın. Bu ayar, oynanış esnasında Patchwork cihazları tarafından kullanılan tüm animasyonları ve grafiklerin çoğunu etkili bir şekilde devre dışı bırakır. Bu özellik yalnızca oyuncularınızın oyunda Patchwork cihazlarıyla etkileşime girmesi gerekmiyorsa kullanıma uygundur.
- Bunu dengeli bir şekilde kullanmalısınız. Patchwork ile müzik oluştururken veya entegre ederken bunların tamamen görünür ve etkileşime geçmeye uygun halde olması gerekir. Ancak, yayın veya bellek testi yaparken bu özelliği etkinleştirerek bellek kullanımını büyük ölçüde azaltabilirsiniz.
- Nota Sıralayıcısı'nda birden fazla sayfadan yararlanın. Oyundaki gereksinimlere göre bu sayfaların değerini Değer Belirleyici cihazlarını kullanarak değiştirebilirsiniz.
- Nota Sıralayıcısı'nda birden fazla sayfa olabilir, bunları ayrı ayrı veya sıralı bir şekilde döngüye sokabilirsiniz. Patchwork Parkour'da, oyundaki cihaz sayısını azaltmak için bu özellikten yararlanıldı. Örneğin, oyuncunun ilerlemesine göre sayfaları değiştiriyoruz. Değer Belirleyici'nin yer aldığı önceki videoda farklı bir müzik çalmak için Nota Sıralayıcısı'nın 3. sayfasına geçişi tetikliyoruz.
- Füzyon ses örneklerini kullanın. Daha önce bahsettiğimiz gibi, Patchwork Parkour'da Füzyon ses örnekleri yoğun bir şekilde kullanılıyor. Harici bir dijital iş istasyonunda oluşturduğumuz sesleri Füzyon Yaması'nda Enstrüman Çalar cihazıyla çalarak, belirtilen bir sesi üretmek için gereken cihaz sayısını ve bellek kullanımını azaltabiliyorsunuz.
Sinematikler: Avantajlar ve Güçlükler
Geliştirme sürecine başlarken Bölüm Sekansı ve Sinematik Sekans cihazlarının performansa çok büyük etki ettiklerini biliyorduk fakat bunların müzikle iyi senkronize olan oyun mekaniklerini hızla yinelemek için de mükemmel olduklarını keşfettik. Prototip aşamasındayken, bu cihazlar eğlenceli oynanış mekaniklerini hızla ve kolaylıkla oluşturma imkânı veriyor. Bu nedenle bunları prototip aşamasında ve oyunun geliştirme sürecinin ilk zamanlarında kullanmayı öneriyoruz.Ancak, prodüksiyon seviyesindeki performans için, başka animasyon biçimlerine dönüştürülebilecek her şeyi dönüştürmeye vakit ayırın.
Verse kodlarının çoğu ihtiyacımızı karşıladığını gördük. Görsel açıdan daha karmaşık olan bazı animasyonlar Bölüm Sekanslarında kalmış olsa da optimum performans için bunları dikkatli bir şekilde yönetmek büyük önem taşıyor.
- Sinematik Sekans cihazlarını bir ritimle senkronize halde oynatırken, o ritimde animasyon oynatan aktörleri olabildiğince az sayıda Bölüm Sekansı içinde birleştirmeye çalışın. Bu cihazlar başladıklarında ve durduklarında performansa önemli derecede etki eder, bu nedenle aynı anda oynatılan Bölüm Sekansı sayısını en aza indirmek performansı iyileştirmeye yardımcı olur.
- Patchwork Parkour'da aynı anda oynatılan sinematik sayısını azaltmak amacıyla animasyonları alana göre etkinleştiren veya devre dışı bırakan bir araç geliştirdik. Oyun tek kişilik olduğundan, özellikle aynı anda kaç adet cihazın çalışacağını belirleyebildik.
Ritim tabanlı bir engo/platform oyunu olan Patchwork Parkour'da, her biri bir veya daha fazla aktörden oluşan aynı engelden çok sayıda kullanılması gerekiyordu. UEFN'de bu durum, bu objeleri kolayca değiştirmek ve kopyalayıp yapıştırmak için bileşenler haline getirme konusunda bir zorluk teşkil ediyordu. Bu işlemi basitleştirecek birkaç ipucunu burada bulabilirsiniz:
- İskelet örgüler: Mümkünse sinematiklerde iskelet örgü kullanmaktan kaçının.
- Başlangıçta, müzikle tetiklenen tüm çevresel tehlikeleri iskelet örgüler ve bunların animasyonlarıyla oluşturduk. Böylece birden fazla tehlikeyle çalışmak çok kolaylaştı. Çoğu durumda, animasyonda değişiklik yapmak için birden fazla sinematikte her bir parçayı değiştirmek yerine yalnızca animasyonu güncellemek yeterli oldu.
- Ancak UEFN'in mevcut durumunda, sinematikler iskelet örgülerin animasyonlarını güncellemesine ve hiçbir animasyon ayarlanmamış olsa bile her karede kemikleri yenilemesine neden oluyor. Bu da performans sorunlarına yol açıyor.
- Başlangıçta, müzikle tetiklenen tüm çevresel tehlikeleri iskelet örgüler ve bunların animasyonlarıyla oluşturduk. Böylece birden fazla tehlikeyle çalışmak çok kolaylaştı. Çoğu durumda, animasyonda değişiklik yapmak için birden fazla sinematikte her bir parçayı değiştirmek yerine yalnızca animasyonu güncellemek yeterli oldu.
- Aktörler ve parçalar: Sinematik kullanırken performansı optimize etmek için her dönüştürme parçasına yalnızca bir aktör bağlamak en iyi çözümdür. Bu yaklaşım yüklemenin daha akıcı olmasını sağlarken, sinematiklerin alt objeleri işleyiş biçimi nedeniyle ortaya çıkan potansiyel performans sorunlarını da en aza indiriyor.
- Tek bir parçaya çok sayıda aktör bağlanırsa parçanın üzerinde bir çift sarı ok simgesi beliriyor. Buna dikkat edin ve optimum performansı korumak için mümkün olduğunca bundan kaçının.
![Birden Fazla Aktör Bağlı](https://cdn2.unrealengine.com/mutliple-actors-bound-1920x1080-9d71449861d1.png)
- Ayrıca, aktörleri ayrı sekanslarda tutmak da iyi bir yöntemdir. Dönüştürme parçaları hızla ve kolaylıkla kopyalanıp yapıştırılabilir. Aynı animasyonu oynatan birden fazla aktörünüz varsa dönüştürme parçalarını her aktöre kopyalayarak senkronize hareket etmelerini sağlayabilirsiniz.
![Bölüm Sekansı Birden Fazla Aktör](https://cdn2.unrealengine.com/level-sequence-multiple-actors-1920x1080-69edd9f2a0a0.png)
Patchwork Parkour'da dinamik müziği sürükleyici oynanışla birleştirirken performansı da nasıl optimize edeceğimizi keşfettik. Çeşitli araçlardan yararlanmaktan bellek yönetiminde ince ayarlara kadar aldığımız her karar daha akıcı ve etkileyici bir deneyim sunmamıza yardımcı oldu. Kendi adalarınızı geliştirirken denemeler yapmayı, optimizasyona önem vermeyi ve en önemlisi de eğlenmeyi unutmayın.
Bu ada kodunu kullanarak oyuna dalabilirsiniz: 1425-4464-4801.