NMORPG: Ev Yapımı Online RPG - Bölüm 1
5 min read

NMORPG: Ev Yapımı Online RPG - Bölüm 1

Geçmişe gitsem ve bu seneki bilgimi kullanarak en az efor ile, en kısa zamanda NMORPG'nin basit bir prototipini nasıl oluştururdum diye düşünürken bununla ilgili kısa bir video serisi çekmeye karar vermiş, seslendirmesi olmayan bir Unity 3D kurulum videosu yayınlanmıştım.

İkinci videoda seslendirme yapmasam olmayacaktı, anlatsam çok daha anlaşılır olacak o kadar adım vardı ki. Lakin, bir aydır düzelmeyen burun tıkanıklığım 2021'de de devam edince video yayınlamak yerine eskiden olduğu gibi blog yazmaya ve görsellerin gerektiği yerlerde çok kısa videolar ve GIF animasyonları kullanmaya karar verdim.

Oyun prototipini hızlıca oluşturmak için bazı konuları hızlı geçecek, ve o konu hakkındakı detayları ayrı bir blog haricinde yayınlayacağım. Bunlardan birkaçı Unity'nin görüntü işleme hattı URP, yeni iletişim altyapısı MLAPI ve NMORPG'yi geliştirirken kullandığım performans/kolaylık hileleri.


Hazırlık

NMORPG gibi bir projeye başlarken niyetim kısa sürede bir oyun çıkarmak değil, Golang ile oyun sunucusu yazıp yazamayacağımı görmekti. Zamanla, oyun yapma fikri ve heyecanı daha baskın gelince "naçizane" bir online RPG yapmaya başladım ve olaylar gelişti. Projenin gelişimini, YouTube kanalımdaki videolardan takip edebilirsiniz.

Binlerce model, onlarca animasyon ve sayısız saatler sonrasında hala istediğim noktada değilim ancak yapmak istediğim şey düşündüğüm kadar eğlenceli olacak mı, ya da teknik olarak bunu becerebilir miyim görmek için sıkça duraklıyor ve ufak prototipler hazırlıyorum. Bu prototiplerin en sonuncusu (GPU gerektirmeyen) oyun sunucusuna birden fazla kullanıcının bağlanabildiği ufak bir demoydu ve hızlı bir MMO prototipi geliştirme tarifi olarak kullanılabilecek kadar sade olunca paylaşmak istedim.

Mini oyun için gereken paketlerin bir kısmını Unity Asset Store'dan edinirken, bazılarını da projelere ait GitHub depolarından indirebilirsiniz. Asset Store için, ücretsiz olarak Unity 3D hesabı açmanız gerekiyor. Asset Store'dan arşivinize eklediğiniz paketlere, editörden ulaşabileceksiniz.

Unity 3D kurulumu için, daha önce yayınladığım videodaki adımları takip edebilirsiniz:

Gerekli Bileşenler

Oyun prototipi için gereken asset listesi şöyle:

Unity Asset Store Paketleri

Unity Asset Store paketlerini, "Add to My Assets" tuşu ile arşivinize ekleyebilir, ve açtığınız herhangi bir Unity projesinde, Window menüsü altındaki Package Manager ile projenize dahil edebilirsiniz. Bu ilk Unity deneyiminiz olacaksa, ilk açılan ekranda tahminen eklediğiniz iki paketi hemen görebilirsiniz. Göremiyorsanız, ekranın sol üst kısmındaki listeden My Assets'i seçmeniz gerekebilir.

Dilerseniz, penceredeki arama ve filtreleme fonksiyonlarından faydalanabilirsiniz. Asset sayısı arttıkça, listeniz uzayabilir.

Bu ekranda yapmanız gereken, asset'i seçmek, Download ile bilgisayarınızdaki arşive eklemek ve daha sonra Import ile projenize dahil etmek.

Import, her yeni projede yapmanız gereken bir işlem. Daha sonra, eğer pakette bir yenilik yoksa tekrarlamanıza gerek yok. Prototip geliştirdiğinizi varsayarsak, bu işlemleri her asset için sadece bir kez yapmanız yeterli.

Unity'nin her dosyayı işlemesi gerekiyor ve dosya sayısına bağlı olarak uzayabiliyor. Projede kullanacağımız iki paketin işlem süresi birkaç dakikadan uzun sürmemeli ancak unutmayın, bu disk ve işlemci hızına bağlı.

Modeller ve animasyonlar, Unity proje sahnenizin temelini oluşturuyor. Kullandığınız model, animasyon, materyal ve artistik beceriye bağlı olarak basit prototipler de yapabilirsiniz, sinema kalitesindeki yapımlar da.

Tavsiye ettiğim modeller, hiç ücret ödemeden prototip kalitesinde bir yapım için ideal. RPG tarzı oyunlar için de, yürüme ve atak animasyonlarına sahip basit bir paket işinizi görüyor.

Eğer Unity'de oyun geliştirmenin eğlenceli olduğuna kanaat getirirseniz, model ve animasyonlara, ya da artistik becerilerinizi geliştirmeye yatırım yaparak sevdiğiniz oyunların kalitesine yakın oyunlar geliştirmeniz mümkün.


Önemli bir uyarı: Unity 3D bir süredir yeni bir görüntü işleme modeli olan URP'nin kullanılmasını tavsiye ediyor. Kurulum videosunda proje oluştururken türü URP olarak seçmiştim. Asset Store'daki modellerin bir kısmı, URP kullanıyorsanız fazladan bir işlem yapmanızı gerektiriyor, bu konuda aklınızı karıştırmak istemediğim için konunun detaylarını başka bir blog girdisine saklarken, yapmanız gereken kritik işlemi açıklıyorum:

Edit menüsü altındaki, Render Pipeline > Universal Render Pipeline > Upgrade Project Materials to UniversalRP Materials ile modellere ait materyalleri URP'de kullanılabilir hale getirin.

Özetle, "material" adı verilen ve oyun motorunun, sahnede kullandığınız 3D modelleri ekranda nasıl resmetmesi gerektiğine dair komut ve parametreleri içeren dosyaları URP ile uyumlu hale getiriyorsunuz.

Bunu tüm modelleri yükledikten sonra bir kez yapmanız yeterli. Eğer sahnenizdeki modeller pembe görünüyorsa, emin olun bunu farketmemenize imkan yok, bu "uyum" adımını tekrarlamanız gerekiyor olabilir.


GitHub Paketleri

GitHub'dan, ya da kendi projeleriniz için farklı yerlerden edindiğiniz unitypackage dosyalarını kurmak ise daha basit. Dosyayı, editör ekranındaki dosya listesine sürükleyip bırakıyorsunuz, Package Manager'daki gibi bir Import ekranı çıkıyor.

Her paketin kurulumu farklılık gösterebilir, burada asset geliştiricisine göre farklı yöntemler olabiliyor. MLAPI paketi, iletişim altyapısı için gereken bileşenleri kuracak ufak bir dosya olarak geliyor ve kurulumu kolaylaştırıyor. Windows menüsündeki MLAPI ile şöyle bir ekranla karşılaşıyorsunuz:

Önce ilk sekmede MLAPI'nin kendisini, sonra ikinci sekmede MLAPI ile kullanabileceğiniz iletişim kitaplıklarından birini kurmanız gerekiyor. Aynı geliştiriciden çıkan Ruffles'ı tavsiye ediyorum.

MLAPI yakın zamanda Unity 3D ailesine katıldı, 2021 yılında gerekli tüm parçalar Package Manager ile otomatik kurulabilecek, ancak yazıyı yazdığım sırada ne yazık ki bu şekilde yapmak gerekiyor.

MLAPI ve Ruffles ile paket kaybı yaşadığınızda Ping süresini çok fazla yükseltecek gecikmeler yaşamadan, paketlerin bir kısmının mutlaka sunucuya ulaşacağını garanti eden "Reliable" bir UDP servisi kurmuş oluyorsunuz. MLAPI gerekli tüm işi sizin için yapıyor, elbette siz öyle olmasını istedikçe.

Unity Package Manager Paketleri

Son olarak, Unity tarafından geliştirilen ve doğrudan Package Manager ekranından kurulan Cinemachine paketini kuruyoruz.

Bu son paket ile, objeleri otomatik takip etme, sinematik kamera geçişi gibi sizi hesaplama ve programlama derdinden kurtaracak bir kamera sistemine sahip oluyorsunuz. Kamera ile karakter arasına bir engel girdiğinde karaktere yaklaşma, patlamalar olduğunda ekranı titretme gibi eylemleri otomatik yapması epey zaman kazandırıyor.


Bu adımdan sonra, kurulum videosu sonrası oluşturduğunuz Unity projenizde ufak bir harita oluşturmanız ve çok kullanıcı desteği eklemeniz mümkün hale gelmiş olmalı.

Sıra, bu parçaları nasıl birleştireceğinizde. Bir sonraki yazıda, bileşenleri kullanarak sahne oluşturmaya başlayacağız. Bakalım, sonrasında bu yolculuk sizi nereye götürecek.