Kendimi bir uzman olarak adlandırmasam da, hevesli bir dövüş sanatları öğrencisiyim. Kendimi sürekli bilgi arayan, ebedi bir beyaz kuşak olarak düşünmeyi tercih ederim.
Boks, Greko-Romen güreşi, Alman ve İtalyan Uzun Kılıç, İskoç kalesi, Jiujitsu (hem geleneksel hem de Brezilya), savate ve judo gibi çeşitli dövüş sanatları hakkında temel bir anlayışa sahip olmama rağmen, uzmanlığım genel olarak sınırlıdır. Ancak farklı dövüş sanatlarını aşan bir kavram da katadır.
En basit haliyle kata, bireysel olarak uygulanan önceden belirlenmiş hareketler dizisidir. Katalar teknikleri geliştirmek, dengeyi geliştirmek ve zihinsel disiplini geliştirmek için tasarlanmıştır. Temel hareketlerin ezberlenmesini ve tekrarlanmasını kolaylaştırırlar.
Modern dövüş sanatları sistemlerinin çoğunun kodlandığı 19. yüzyıldan bu yana pedagojideki gelişmeler göz önüne alındığında, kataların öğretim yöntemi olarak etkinliği hakkında devam eden bir tartışma vardır.
Ancak bu makalenin kapsamı bu tartışmayı kapsamıyor. Bunun yerine, motor hakkındaki anlayışınızı geliştirmek ve oyun geliştirme becerilerinizi keskinleştirmek için Unity'de veya başka herhangi bir oyun motorunda gerçekleştirilebilecek bir dizi alıştırmayı tanıtmak için kata kavramını kullanmayı amaçlıyorum.
Katalara benzer şekilde, önerdiğim egzersizler eğitim ve simülakr amaçlıdır ve asla iş deneyiminin yerini tutamaz, bunları tercih ettiğiniz çalışma tarzına göre uyarlamalı ve şekillendirmelisiniz.
Öte yandan, oyun geliştirmenin kuralların az olduğu bir anarşi alanı olduğunu da unutmamak gerekir; bunun dışında, projeleri cuma günü veya tatilden önce yayınlamaktan kaçınmak gibi birkaç pratik kural dışında.
Daha fazla uzatmadan kataların kendisine geçelim:
Atölye, keşfedeceğimiz ilk kata görevi görüyor. Temel olarak Atölye, deneyler yapabileceğiniz, yeni konseptleri test edebileceğiniz ve yakın zamanda piyasaya sürülen özellikleri keşfedebileceğiniz ebedi bir Unity projesidir.
Bunu konsept kanıtı hazırlama alanınız olarak kullanın. Yeni bir oyun fikriniz olduğunda ve adlar, tasarımlar veya ana oynanış (öncelikli odak noktanız olmalıdır) dışında herhangi bir şey hakkında endişelenmeden hızlı bir şekilde prototipini oluşturmak istediğinizde Atölye ideal bir ortam sunar.
Bunu yaygın olarak kullanılan kodlar için bir depo olarak kullanın. Belirli kod parçaları kaçınılmaz olarak yeniden kullanılacaktır, ancak her seferinde web'de arama yapmak istemeyebilirsiniz. Örneğin Atölyemde düğmelerin, oyun durumlarının, duraklatma menülerinin ve her oyunun gerektirdiği diğer çeşitli temel öğelerin yönetimi için özel kod parçacıklarım var. Bu parçacıklar, her yeni oyun için özel kod yazma ihtiyacını ortadan kaldırarak zamandan ve emekten tasarruf sağlar.
Çevrimiçi kaynaklardan kod kopyalarsanız bu yaklaşım için faydalı bir ipucu, kopyalanan kodu anladığınızdan emin olmak, onu projenizin stiline ve standartlarına uyacak şekilde yeniden yazmak ve kökenini belirten bir yorum eklemektir. Kod yazarları uygulamalarını güncelleyebilir veya belirli bir çözümün kullanımına ilişkin bağlamı unutabilirsiniz, ancak bir yorum gerekli bilgiyi sağlayabilir.
Yeni özellikleri öğrenmek, denemek ve test etmek için bunu kullanın. Workshop projesini en son sürüme güncel tutarak (LTS sürümü için ayrı bir dal oluşturabilirsiniz), tamamen yeni bir proje oluşturma veya daha da kötüsü, bunları devam eden projenize sığdırmaya çalışma zorunluluğu olmadan yeni özellikleri keşfedebilirsiniz.
Hiç bir oyun oynadınız mı ve "Bunu nasıl başardılar?" diye merak ettiniz mi? Şimdi bunu öğrenme şansın var. Kendi oyun geliştirmeniz için fikriniz olmadığında veya projeler arasında kaldığınızda, yakın zamanda oynadığınız bir oyunu seçin, o oyundan bir mekanik, efekt veya özellik seçin ve onu kopyalamaya çalışın.
Klonlamadan bahsederken, tam bir kopyadan bahsetmiyorum, seçilen unsurun özünü yakalamaktan bahsediyorum.
Mesela son zamanlarda Spider-Man: Miles Morales'teki hareket sistemine hayran kaldım. Ancak bu kadar karmaşık bir 3D aksiyon oyununun tüm hareket sistemini kopyalamaya çalışmak oldukça zorlayıcı olacaktır. Bunun yerine, ağda sallanmak gibi beni en çok cezbeden yönü klonlamaya odaklanırdım. Bunu başarmak için eksiksiz bir Örümcek Adam modeline veya detaylı binalara ihtiyacım yok. Oyuncunun düğmeye basmasına tepki veren ve oyuncu karakterinin sallanıp ileri doğru hareket ettiği bir ip oluşturan basit bir küp, orijinal oyunda yaşanan hareket özgürlüğünü kopyalamak için yeterli olacaktır.
Kendinize kesin bir zaman sınırı belirleyin. Unutmayın, oyunun tamamını yaratmıyorsunuz, bunun yerine mevcut bir öğeden tek bir öğeyi kopyalıyorsunuz. Tam zamanlı öğrenciler ve çalışan geliştiriciler için yaklaşık altı iş günü (üç hafta sonuna eşdeğer) ayırın.
Bu Atölyeden yararlanmak için mükemmel bir fırsat. Klonlama projelerinizi depolamak için ideal bir alan sağlar. Belirli bir konsepti daha da ileriye götürmeye karar verirseniz, terk edilmiş Git projelerinin listesine göz atmadan onu kolayca kendi projesine kopyalayabilirsiniz.
Portfolyonuz biraz eksik görünüyorsa, bu alıştırma onu geliştirmenin mükemmel bir yoludur. Klonlanmış öğeyi alın ve bir menü, duraklatma işlevi, arka plan müziği ve hedeflerinizi açıklayan bir giriş ekleyerek onu cilalayın. Böyle bitmiş bir ürün, işe alım görevlilerini, parlak ama tamamlanmamış oyun fikirleriyle dolu bir belgeden çok daha fazla etkileyecektir.
Her klonlama egzersizinden sonra kısa bir ölüm sonrası analizi yapın. Neyin işe yaradığını düşünün, zayıf yönleri belirleyin, gelecekteki iyileştirmeleri göz önünde bulundurun ve ileriye taşımaya değer değerli dersleri çıkarın.
Bazen palyaçoluk yapıyorum. Teknik olarak ilgi çekici olan veya öğrenmek veya tekrar gözden geçirmek istediğim birkaç teknik bileşeni birleştiren ancak hiçbir ticari potansiyeli veya pratik değeri olmayan bir fikri seçiyorum.
Palyaçoluğun amacı mükemmellik baskısını ortadan kaldırmaktır. Kâr amaçlı veya başkalarına sunum amaçlı bir proje üzerinde çalışırken tasarım kararları daha bilinçli hale gelir. Palyaçoluk, yalnızca belirli alanlardaki bilginizi derinleştirmeye odaklanmanızı sağlar.
Örneğin birkaç yıl önce "Büyücülük Değişimi" adında bir projeye başladım. Bu, para birimini gerçek dünyadaki değerlerden (CAD, EUR, GBP veya USD) Harry Potter evreninde kullanılan para birimine (knut, orak ve kalyon) dönüştüren bir uygulamaydı. Bu proje, ön uç için Unity3D WebGL'yi, arka uç için Go'yu, özel bir önbellekleme sistemini ve Docker'ı kullanarak AWS'de dağıtımı içeriyordu.
Bu pratik veya faydalı bir proje mi? Hiç de bile! Ön uç Unity gerektirmiyor, Go birkaç basit uç nokta için fazla abartılıyor ve uygulama, bırakın AWS'yi, patates üzerinde bile çalışabilir.
Peki neden bu belaya katlanalım? Unity ile WebGL hakkında bilgi edinmek için sunucu geliştirmede Go'yu kullanın ve AWS'de Docker'ı kullanarak uygulama oluşturma ve dağıtma konusunda deneyim kazanın. Nihai sonuç, bilgi edinme süreci kadar önemli değildir.
Bu, Unity veya herhangi bir oyun motoru hakkındaki anlayışınızı derinleştirmenize yardımcı olabilecek üç katayı tamamlıyor.
Daha önce kullandığım spesifik bir ifadeye dikkat çekmek istiyorum: "eğitim rejimi" .
Bu yaklaşım 15 yılı aşkın bir süredir mühendislik uygulamalarıma rehberlik etti. Üniversiteden mezun olmayı siyah kuşak almak gibi düşünüyorum ve Judo'ya benzer şekilde (kemer sisteminin kökeni), siyah kuşak ustalıktan ziyade temelleri kavramak anlamına geliyor.
Siyah kuşak aldıktan sonra kişinin Judo sanatındaki becerilerini daha da geliştirmek için bağımsız araştırma yapması beklenir.
Benzer şekilde, mezun olduğunuzda teknik becerilerinizi sürekli olarak geliştirmek ve bilgi edinmek için bir eğitim rejimi oluşturmak sizin sorumluluğunuz haline gelir. Bilgiyi çalışarak kazanacaksınız, ancak bu bilgi rehberlik ve kişisel gelişimden yoksun olabilir.
Bu nedenle, mühendislik becerilerinizi geliştirecek bir eğitim rejimi oluşturmak çok önemlidir. Böylece şirketinizde yeni bir pozisyon açılması, mevcut işinizden ayrılma, başka bir yerde cazip bir görevle karşılaşma gibi bir fırsat ortaya çıktığında, iş deneyiminden çok daha fazlasına sahip olursunuz.
Üniversitedekinin aksine, işinizin mutlaka yeteneklerinizi belirli bir noktanın ötesine ilerletmeye öncelik vermeyebileceğini unutmayın. İyi bir iş yeterli olacaktır ancak ikisini birbirinden ayırmak bazen zorlayıcı olabilir. Bir eğitim rejimine sahip olmak profesyonel gelişiminizi korur.
Umarım bu kataları yararlı olmasa da en azından ilgi çekici bulmuşsunuzdur ve teknik becerilerinizi ilerletmek için yeni bir yolun kilidini açabilirler.