Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir oyun geliştiricisinin Isocore adlı indie projesinde yükseltme özelliğini nasıl eklediğini anlattığı bir eğitim içeriğidir. Geliştirici, iki yıl boyunca üzerinde çalıştığı 2D isometrik açık dünya sandbox oyununda yükseltme özelliğini eklemek için karşılaştığı zorlukları paylaşıyor.
- Video, Isocore'un 2D pixel art yapısı nedeniyle yükseltme özelliğinin eklenmesinin zorluklarını ve 3D yükseltme sisteminin geliştirilme sürecini ele alıyor. İlk bölümde oyunun iç mekaniklerini ve görsel ön yüzünü ayırmak, perlin noise ve octaves kullanarak doğal görünümlü bir terrain oluşturma anlatılırken, ikinci bölümde 3D dünyada nesnelerin doğru sıralanması için gerekli matematiksel hesaplamalar ve Unity'nin otomatik sıralama sisteminin yetersizliği ele alınıyor.
- Geliştirici ayrıca, 2D oyunlarda yükseklik farklarını göstermenin zorluklarını ve bu sorunu çözmek için kullandığı teknikleri, 3D dünyada bloklar ve daha karmaşık yapıların (binalar, bitkiler) sıralanmasını ve kendi zaman dilimi sistemi geliştirmesini de detaylı şekilde açıklıyor. Video, oyunun yükseltme sisteminin tamamlanması ve gelecek güncellemelerde eklenecek özellikler hakkında bilgi veriyor.
- Isocore Projesi ve Elevasyon Ekleme
- Konuşmacı, iki yıldır üzerinde çalıştığı indie projesi Isocore'da en büyük zorluk olan elevasyonu eklemeye karar verdiğini belirtiyor.
- Isocore, 2D isometrik açık dünya sandbox oyunu olup, daha önce tamamen düz bir dünyaya sahipken, artık elevasyon eklenecek.
- Elevasyon ekleme isteği uzun süredir tekrarlanan bir talep olmasına rağmen, konuşmacı uzun süre bu fikri reddetmiş.
- 00:542D Oyunlarda Elevasyon Ekleme Zorlukları
- Isocore, 2D piksel sanat oyunu olduğu için tüm sprite'lar tamamen 2D ve oyun tamamen düz bir 2D canvas üzerinde gerçekleşir.
- Her sprite'ın 2D pozisyonu ve bir sıralama sırası vardır, ancak bu sıralama sırası gerçek bir boyut değil, sadece sprite'ların ekranda doğru sırayla görüntülenmesini sağlar.
- Dinamik 3D bir dünya oluşturmak için her nesnenin tüm üç eksende konum bilgisi gerekir, bu da her nesnenin hem 3D iç konumu hem de 2D ekran konumu olması gerektiği anlamına gelir.
- 01:49Kodun Refaktörü ve Elevasyon Ekleme
- Elevasyon eklemek için oyunun iç işlevselliği ve hesaplamaları görsel ön plandan tamamen ayrılmalıdır.
- Konuşmacı, proje büyüdükçe bu ayrımı yapmanın zorluğunu hissetmiş ve bu nedenle eski kodları yeniden düzenlemeye karar vermiştir.
- Tüm iç mekanikler ve ön plan ayrıldıktan sonra, her nesne 3D vektör kullanılarak iç konumda konumlandırılmış ve ekranda doğru konum ve sıralama sırası hesaplanmıştır.
- 02:41NordVPN Tanıtımı
- Konuşmacı, son iki aydır üniversite kampüslerinde, kütüphanelerde ve kafelerde çalıştığı için genellikle güvenli olmayan kamu WiFi'lerini kullanmak zorunda kalmıştır.
- NordVPN, internet trafiğini şifreleyerek verilerin güvenliğini sağlar ve zararlı bağlantıları tespit ederek phishing saldırılarından korur.
- NordVPN'in Plus planı ile gelen NordPass şifre yöneticisi, karmaşık ve güvenli şifreler oluşturmayı kolaylaştırır ve login sürecini hızlandırır.
- 04:22Terrain Oluşturma Teknikleri
- Terrain, basit bir doğrusal fonksiyonla temsil edilirken, rastgele değerler veren bir fonksiyon kullanıldığında yükseklik değişiklikleri çok dramatik ve öngörülemez olur.
- Perlin noise, 0-1 aralığında rastgele değerler veren ve sert değil, yumuşak geçişler sağlayan bir matematiksel fonksiyondur.
- Octaves tekniği, Perlin noise'un daha detaylı ve organik görünmesini sağlar.
- 05:45Terrain Detaylandırma
- Sadece noise fonksiyonunun temel yükseklik seviyesine uygulanması yerine, ikinci bir noise fonksiyonu ve yükseklik profili kullanılarak daha ilginç tepe değişiklikleri oluşturulabilir.
- İkinci noise fonksiyonuna göre farklı değerler için farklı yükseklik profilleri belirlenerek doğal görünümlü uçurumlar ve dağlar oluşturulabilir.
- İlk noise fonksiyonu, ikinci yükseklik profili üzerinde uygulandığında, doğal görünümlü, küçük detaylı, büyük uçurumlar ve dağlar elde edilir.
- 06:57Terrain Görselleştirme Zorlukları
- Terrain'in katmanlarını ayırt etmek zor çünkü oyun 2D olduğu için ortografik kamera kullanır.
- Normal kameralar (3D oyunlar veya gerçek hayatta) genişleyen bir görüş alanına sahipken, ortografik kamera düz bir görüş alanına sahiptir ve bu nedenle uzak nesneler yakın nesnelerle aynı boyutta görünür.
- Terrain'in düşüş kenarlarına çizgiler eklenerek bu sorun bir dereceye kadar giderilebilir, ancak tam olarak nasıl aşağı indiğini anlamak hala zor olabilir.
- 08:083D Sıralama Mekanizması
- Oyun, nesnelerin dünyada nerede olduğunu otomatik olarak bilmez, bu bilgiyi programlamak gerekir.
- 2D dünyada nesneleri sıralamak için sadece yatay satırı hesaplamak yeterlidir, ancak 3D dünyada bu daha karmaşıktır.
- 2D dünyada nesneleri sıralamak için x ve y değerlerinin toplamını hesaplayıp, x eksenini yansıtmak için eksi bir ile çarpılır.
- 09:043D Sıralama Zorlukları
- Tüm nesneler blok değil, binalar ve bitkiler genellikle birden fazla blok yüksekliğinde veya genişliğinde olabilir.
- İlk yaklaşım, tüm nesnelerin işgal ettiği hücrelerin toplamını hesaplayıp ortalama almaktı, ancak bu yöntem iki bloktan büyük nesneler için çalışmaz.
- Matematiksel bir çözüm bulunamadığı için, y eksenine ağırlık faktörü ekleyerek ve nesneleri yatay dilimlere ayırarak çözüm bulunmuştur.
- 10:02Sıralama Sisteminin Sorunları
- Çoklu tilemaps kullanarak 3D terrain oluşturulduğunda, tüm bloklar aynı mesh içinde olduğu için aynı sıralama düzenine sahiptir.
- Unity, tilemaps içindeki nesneleri otomatik olarak sıralar, ancak tilemaps dışındaki nesneler için bu sorun ortaya çıkar.
- Oyuncu, aynı tilemaps içindeki nesneler arasında geçiş yapamaz çünkü bu nesneler aynı anda çizilir.
- 10:54Güncellemeler ve Gelecek Planlar
- Tüm mevcut mekanikler 2D mantığına dayalı olduğu için yeniden yazılmış ve yeniden tasarlanmıştır.
- Yeni versiyon henüz tamamlanmamış olup, gridline strength, özelleştirme, slimes ve ruins gibi özellikler henüz eklenmemiştir.
- Bir sonraki güncelleme birkaç gün içinde yayınlanacak ve oyunun derinlik algısı gibi küçük sorunları çözülecektir.
- 11:34Kapanış
- Oyunun perspektifi ve 2D yapısı nedeniyle yüksekliğin hissedilmesi endişe vericiydi, ancak yüksekliğin oyun için yeni potansiyel sağladığı düşünülmektedir.
- Oyunun tamamen pürüzsüz ve profesyonel hale gelmesi için birkaç güncelleme gerekecektir.
- İzleyiciler, yeni özellikler için oy vermek ve toplulukla iletişim kurmak için Discord sunucusuna katılabilirler.