Oyun yapmak için matematik şart mı?

EkipConcept Artist · Pixel Artist · UI Artist · Game Designer · 44 mesaj
#1

Kısa cevap: başlamak için hayır, ilerlemek için evet — ama sandığın matematik değil.

Başlarken gerçekten gereken

Bir platformer yapmak için lise matematiği bile fazla. Gereken:

  • Toplama, çarpma, oran
  • Koordinat düzlemi: x sağa, y yukarı (ya da aşağı, motora göre)
  • Bir açının derece olduğunu bilmek

Gerçekten bu kadar. İlk oyununu bu bilgiyle bitirirsin.

İlerledikçe çıkanlar

r/gamedev'in SSS'i şunları sayıyor: doğrusal cebir, olasılık, bilgisayar grafikleri teorisi, sonlu durum makineleri, sinyal işleme. İçlerinden doğrusal cebir "oyun geliştiriciler için zorunlu" diye işaretlenmiş.

Ama panik yapma — "doğrusal cebir" burada üniversite dersi değil, üç kavram demek:

Vektörler. Yön ve büyüklük. Karakterin nereye gittiği, mermilerin nereye uçtuğu, düşmanın oyuncuya bakması — hepsi vektör. Toplama, çıkarma, normalize etme ve dot product'ı anladığında işin çoğu bitiyor.

Dot product. İki yönün ne kadar aynı tarafa baktığını söylüyor. "Düşman oyuncuyu görüyor mu", "yüzeye hangi açıyla çarptım" sorularının cevabı bu. Tek bir formül, sürekli kullanılıyor.

Lerp (doğrusal interpolasyon). İki değer arasında yumuşak geçiş. Kamera takibi, renk geçişi, hız artışı. Muhtemelen en çok kullanacağın tek fonksiyon.

Bunların üçü bir hafta sonunda öğrenilir ve oyun geliştirmede karşılaşacağın matematiğin belki %80'ini kapsar.

Nerede öğrenilir

  • The Nature of Code — Daniel Shiffman, tam metni ücretsiz. Vektörler, kuvvetler, salınım, parçacık sistemleri, otonom ajanlar. Matematiği çalışan örneklerle öğretiyor, formülle değil. Başlamak için en iyi yer.
  • Red Blob Games — Amit Patel. A*, yol bulma, altıgen ızgaralar, harita üretimi, 2B görüş alanı. Diyagramları sürükleyebiliyorsun; matematik anlatımının nasıl yapılması gerektiğinin örneği.
  • Inigo Quilez — ileri seviye: işaretli mesafe fonksiyonları, prosedürel gürültü, fraktallar. Shader'a girdiğinde buraya geleceksin.
  • The Book of Shaders — shader matematiği, canlı düzenlenebilir örneklerle.

Ne zaman gerçekten lazım olur

  • 3B'ye geçtiğinde — döndürme, quaternion, matris. 2B'de kaçabilirsin, 3B'de kaçamazsın.
  • Shader yazarken — shader neredeyse tamamen matematik.
  • Prosedürel üretim yaparken — gürültü fonksiyonları, olasılık dağılımları.
  • Fizik yazarken — ama hazır fizik motoru varken bunu yazmana gerek yok.

Rahatlatıcı kısım

Oyun matematiğinin çoğu ezberlenmiyor, aranıyor. Kimse quaternion formüllerini ezbere bilmiyor; ne zaman quaternion gerektiğini biliyor ve gerisini arıyor.

Ayrıca motorlar bu işin büyük kısmını zaten yapıyor: Vector3.Distance, Mathf.Lerp, look_at gibi hazır fonksiyonlar var. Senin işin formülü yazmak değil, hangi fonksiyonun ne işe yaradığını bilmek.

Aynı SSS'in bir başka yerinde şu da yazıyor: "Herkes oyun yapabilir. Usta programcı olmayı gerektirmez, hatta acemi programcı bile olmayı gerektirmez." İki cümle çelişiyor gibi duruyor ama ikisi de doğru — başlamak için yeter, ustalaşmak için yetmez.

Diğer sık sorular ayrı bir konuda.

Açıldı
Fatih ÜNAL2 hafta önce
Son yanıt
Fatih ÜNAL2 hafta önce
Yanıt
0
Görüntülenme
5
Beğeni
0
Katılımcılar
Fatih ÜNAL

Tartışmaya katılmak için giriş yap.

Hoş Geldin!

Oyun yapımındaki ekip kaosunu biliyoruz. İşte bu yüzden Devchaos var!

Devchaos, oyun geliştiricileri için kurulan bir topluluk ve iş birliği platformudur. Burada ekip arkadaşları bulabilir, projelerini paylaşabilir, anketler oluşturabilir, forumlarda etkinlik gösterebilir, yorum yapabilir, tester bulabilir ya da olabilirsin. Ayrıca gelişim sürecini takip etmek için Devlog Timeline seni bekliyor.

İlk 100 üyeye özel ayrıcalıklar!Üye olup toplulukta aktif olan ilk 100 kişi özel rozet, benzersiz profil seçenekleri ve sürpriz avantajlar kazanacak. Yalnızca üye olmak yetmez: paylaş, yaz, üret!
Hemen katıl ve yerini al!