Giriş
İlk önce kaydırmalı bulmaca türü oyunların ne olduğuyla alakalı kısa bir tanımla başlayalım. Genelde 3×3 ile 5×5 arası olan bir ızgara üzerinde oynanan, ızgaranın tek bir parçası boş olma şartıyla bulmaca parçalarının karıştırıldığı ve oyuncunun sadece boş parçanın etrafındaki parçaları hareket ettirerek parçaların sırasını düzeltmeye çalıştığı bulmaca türleridir.
Peki Unity’de bu tür oyun geliştirmeye yaklaşım nasıl olmalı? Bu proje 2D veya 3D ortamda geliştirilebilir. Grafiklerin oluşturulması aşaması daha doğal olması için 3D ortamdaki hazır çevresel unsurlardan yararlanılabilir. Sonra basitçe bir ızgara oluşturup, ızgarada bir parçayı boş bırakırken kalanları bulmaca parçalarıyla doldurup bu parçaları rastgele karıştırmak gerekir.
Oyun Mekanikleri Temellerini Anlama
Izgara Sistemi Nedir? Nasıl Çalışır?
Kare şeklinde karoların yerleşeceği oluşan x ve y eksenlerinde eşit sayıda karoya sahip olacak oyunun oynanacağı tüm alan. Unity’de iki boyutlu bir dizi olarak ifade edilebilir.
Karo Yapısı
Oluşturulduğu sırada ızgaranın indisleriyle tanımlanacak olan bulmaca parçaları. Herbiri kullanıcı etkileşimini sağlayan ve ızgara üstündeki orijinal pozisyonlarını hatırlarken anlık pozisyonlarını güncellemeli (bu pozisyonlar gelişim aşamasında basitlik amacıyla ızgara üstünde indisler olarak hesaplanabilir).
Oyuncu Etkileşimi ve Yapılması Gereken Kontroller
Oyuncunun yapması gereken tek şey karoların pozisyonlarını ızgara üstündeki boş karo yerinin yerine taşımak. Bu sırada etkilleşim kurulan karonun yanında boş bir pozisyon açık mı, karo zaten hareket halinde mi gibi kontroller gerekli.
Sanal Ortam Oluşturma
Unity Projesi Oluşturma. 2D/3D ?
Oyun 2D düzlemde oynanacak fakat bu proje 2D düzlemde başlatılmalı anlamına gelmiyor. 3D proje başlatıp hazır çevresel faktörlerden yararlanılabilir. 3D düzlemde oyun x ve z eksenlerinde oynanacak şekilde hazırlanılabilir.
IDE
Varsayılan olarak Unity Visual Studio kullanır. Bunu sevdiğiniz eklenti bazlı (dolayısıyla ihtiyaca göre olduğundan hafif) IDE’lerden biriyle değiştirmenizi öneririm. Benim tercihim Visual Studio Code. En azından C#, .NET ve Unity ile alakalı resmi eklentilere ihtiyacınız olur.
Versiyon Kontrol
Projeyi başlattıktan sonra Github ile versiyon kontrol hazırlıklarını yapıp bir repository hazırlamanız önerilir. Github Unity projeleri için hazır .gitignore dosyasına sahip.
Asset
Oyun geliştirme aşamasında ihtiyaç olacak dokular, yazı tipleri ve kullanıcı arayüzü ögeleri şimdiden hazırlanılabilir. Ama aceleye gerek yok. Oyun geçici grafiklerle geliştirilebilir.