Mükemmeliyetçilik bu işteki en büyük engellerden biri, birçok kişi de senin yaşadığın sorunları yaşamıştır veya yaşıyordur. Hayal ettiğim gibi bir oyun olmayacaksa hiç olmasın diyorsan hiçbir projeyi bitiremezsin. Bu işte sürekli düşe kalka ilerlemek, hata yapmak, düzeltmek, gerektiğinde bazı şeyleri silip baştan yapmak var. Ancak ilerlemeyi görünce de bir o kadar mutlu ediyor insanı.
Ben Trello kullanıyorum. Ücretsiz ve yapacağın işleri listeleyebiliyorsun. Bitenler, Üzerinde Çalıştıklarım, Yapacaklarım gibi başlıklar atıp altına kutu kutu işleri açıyorsun, istersen açıklama da ekleyebiliyorsun. Buradan ilerleyince hem işi parçalamış oluyorsun, önünü görüyorsun, hem de biten şeyleri görünce aslında epey yol aldığını fark ediyorsun. Trello yerine alternatif bu tarz programlar da var. To do list uygulamaları, proje uygulamaları diye aratırsan ilgini çeken birini seçebilirsin.
Alternatiflere gelince, insan bilmediği şeylerden korktuğu için burada pes edesi geliyor. Halbuki en ideal, en optimize, en güzel yolu seçmek zorunda değilsin. Yanlış yoldan ilerleyince her şey çöpe de gitmiyor. Kodunu düzenli yazmaya başlarsan, hiyerarşindeki veya project kısmındaki objeleri güzel bir şekilde isimlendirip klasörlerle düzenlersen bir şeyleri düzeltmek, değiştirmek daha kolay oluyor. Yine de ilk etapta birkaç yol varken seçim yapmak zor gelecektir. Bu noktada mümkün olduğunca araştırma yapmak önemli. İngilizcen iyiyse İngilizce arayarak, değilse Türkçe bak ama çok kaynak bulamayabilirsin. Yapay zekaya da kod yazdırmadan önce "Unity'de, Unreal Engine'de şu işi yapacağım, hangi yolu izlemeliyim, hangi yolun performansı veya yapımı daha kolay olur, hangisi daha idealdir, xxx oyununda hangi yol kullanılmıştır" gibi sorular sorarsan biraz daha ferahlarsın. Önün açılır. Örnek vermek gerekirse karakterini hareket ettireceksin, transform.translate, moveposition, velocity, torque, force gibi alternatifler var. Yapay zekaya yazdığım soruları sor, aklına daha iyi veya seçmende yardımcı olacak daha güzel sorular bulursan onları da sor. Elbet önün açılacaktır. Oyunundan bahsedebilirsin sorarken, karakterim bir top, insan, robot, parkur oyunu, aksiyon var, shooter oyunu, vampire survivors tarzı, açık dünya oyunu, 2d, 3d, karakter kutulardan zıplayacak, şunu şunu da ekleyeceğim dediğin zaman zaten o alternatiflerin çoğu kafandan siliniyor, seçenekler daralınca da seçim yapmak kolaylaşıyor.
Anladığım kadarıyla parkur/platform türünde bir oyun yapıyorsun. Zıplama, duvardan zıplama gibi mekaniklerin olacaksa StateMachine sistemini öğrenmeni tavsiye ederim. Karakterin her durumu için Idle, Move, Jump, WallJump, Slide, Crouch gibi ayrı scriptler açıyorsun. Bunları collision, raycast gibi yöntemlerle tetikleyen durumları, bu statelerde gravity nasıl olacak, karakterin hızı nasıl olacak diye giriyorsun ve işin kolaylaşıyor. Eğer bu tarz bir oyun yapıyorsan sana Udemy'de AlexDev'in kursunu önerebilirim. Şu an 650 lira diyor ama sık sık indirim oluyor burada günde 1 kez baksan yeter, en fazla 1 hafta içinde yakalarsın.
https://www.udemy.com/course/2d-rpg-alexdev/?couponCode=LETSLEARNNOWTR
Emin ol çoğunluğumuz aynı sorunları yaşamaktayız. Çünkü çok basit bir hypercasual oyun yapmıyorsan, herhangi bir oyun yapmak çok kapsamlı, süreç isteyen, birçok hatayla karşılaşacağın, ilk zamanlar insanın gözünü korkutan bir şey. Emin ol pes etmeden ilerlersen ne kadar şey yaptığını gördükçe başarabildiğine olan inancın da artacak.
Tüm bunlar sana fazla geliyorsa, kafandaki projeden daha küçük bir şey yapmayı dene. Bazı oyunları geliştirmek sandığımızdan çok daha zor olabiliyor. İçine girdikçe anlıyorsun. Kendini kısıtlama. Şöyle bir oyun ypamalıyım, hemen bitirmeliyim, Steam'e koymalıyım, Store'a koymalıyım gibi acele işe kalkışma. Kodlarla, Unity ile ne kadar vakit geçirirsen yeni şeyler öğrendiğini fark edeceksin.