ÜNOG
Published in

ÜNOG

Yeni Bir Oyun Geliştiricisinin Bilmesi Gereken 3 Matematik Konsepti

Tekrar tekrar karşınıza çıkacaklar.

ÜNOG’a Katıl Bültenimize Abone OlGeçmiş Yayınlarımızı Oku

Max Turnbull

Bu postumuzda

  1. Elimizden düşürmememiz gereken Vektörlerin,
  2. Bir objeyi A’dan B’ye daha şık götürmemizi sağlayan Lineer Interpolasyon konseptinin,
  3. ve bir modelin 3D lokal koordinatlarından çıkıp ekrandaki 2D haline gelmesini sağlayan Homojen koordinatların,

ne olduklarını, nerelerde kullanıldıklarını ve öğrenmek için iyi bulduğumuz başlangıç kaynaklarını tartışıcaz.

Bir oyun geliştirisi için en önemli silahlardan birinin “Matematik” olduğunu söylemekle abartmış olmayız. Fizik sistemlerinden animasyonlara, bilgisayar grafiklerinden, ses programlamasına kadar hemen hemen her şey matematiği öyle ya da böyle bünyesinde barındırır. Peki bu silahı nasıl en efektif şekilde kullanacağız?

Vektör matematiği ve kullanıldığı yerler

Hiç bir yazımızda eksik etmediğimiz, edemediğimiz Freya Holmer’ın da “Oyunlarda Matematik” hakkında söyleyecekleri var. Bu doğaçlama yayın videosunda Freya, oyunlarda kullanılan temel matematik tekniklerinin neler olduğuna ve nasıl kullanılacağına değiniyor. Önemli konuları özet geçmemiz gerekirse;

ve benzeri pek çok temel konuyu anlatarak kavramamıza yardımcı oluyor.

Freya Holmer’ın videosundn bir sahne.

Lerp fonksiyonu ile hiç karşılaştınız mı?

Linear Interpolation (Lerp) oyunlarda en sık başvurulan matematik konseptlerinden biridir. Kamera hareketinin yumuşatılması, herhangi iki renk arasında geçişi, oyundaki bir patlamadan alınan hasarın hesaplanması gibi pek çok temel oyun içi olaylarda kullanılır. Lerp fonksiyonuna başlangıç yapmanız için Freya Holmer’ın bu konuşmasını, biraz daha ileri seviye kullanımları için Squirrel Eiserloh’ın bu GDC videosunu izlemenizi tavsiye ederiz.

Homojen koordinatlar

Uzayda bir modeli temsil edebilmek için 3 önemli vektöre ihtiyacımız vardır:

  1. Translasyon vektörü objenin üç boyulu uzay içerisindeki pozisyonunu belirler ve bütün X, Y, ve Z eksenlerinin başlangıç noktasına olan uzaklığını belirtir.
  2. Rotasyon vektörü objenin baktığı yönü belirler. Sistem içerisinde aslında 4 boyutlu bir Quaternion objesi olarak saklanır, rendering aşamalarına geçildiğinde ise 3 boyutlu Euler açılarına dönüştürülür.
  3. Skala vektörü ise objenin her bir eksendeki boyutunun orijinal boyutlarından ne kadar büyüyüp küçüldüğünü belirtir.

Bu 3 vektörü bir potada erittiğimizde ise boyutları 4x4 olan TRS (Transform Rotation Scale) Matrixlerini elde ederiz. Bu matrixlerin arkasındaki mekaniğe giriş yapmak için gene matematik hakkında konuşmayı pek seven Squirrel Eiserloh’un bu GDC videosunu izlemeden geçmeyin.

“W is for Witchcraft”

Kod yazarak matematik

Matematik ve Vektörler dünyasına girmek isteyen biri için Daniel Shiffman’ın yazdığı “Nature Of Code” kitabı eşsiz bir kaynak niteliği taşıyor. Kitapta Vektör Matematiği, Olasılık, Kuvvetler ve Parçacık Sistemleri gibi pek çok temel konuya giriş yapan Daniel Shiffman, aynı zamanda kitaptaki konuları birebir işlediği youtube video serisi bile hazırlamış. Üstelik istenildiği takdirde kitaba ücretsiz ulaşılabiliyor! (Kaynak kodlarını bayinizden istemeyi unutmayınız.)

Bu kadar matematik sizi kesmediyse sizi bir çok matematikle ilgili GDC materyallerinin ve konuşmalarının toplantığı Essential Math for Game Developers adresine alalım. Ha unutmadan, bir de Jorge Rodriguez’in hazırladığı şöyle bir quest-line’ımız da var.

--

--

--

Profesyonel, bağımsız ve hatta öğrenci oyun geliştiricilerinin bir araya geldiği ÜNOG Oyun Geliştirici Topluluğu, bilgi ve tecrübe paylaşımına özendiriyoruz.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
ÜNOG

ÜNOG

Türkiye’nin en güzel oyun geliştirme topluluğu. https://unog.dev

More from Medium

Sneaker Heads

Pulse AirDAO, internalizing durable carbon

Synchronizer Token Pattern for Cross-Site Request Forgery Prevention

Weekly essay — Open Source Round 1: Read other people’s code