Yararlı olan birçok matematik formu daha var, fakat bunları en azından bilmeniz gerekiyor:
Bunlar oldukça basit, ancak bunları bilmiyorsanız, bir oyun geliştirici yerine, bir programcı olma şansınız bile olmayacak.
Oyun dünyasındaki nesneler vektörlerle temsil edilir. Vektör, bir nesnenin konumu, bakış yönü ve hızı gibi şeyleri temsil eder. Nokta çarpımı , Çapraz çarpım ve Vektör normalizasyonu gibi vektör matematik hesaplamaları esastır.
Oyun nesnemi nasıl hareket ettiririm? Acemi şöyle diyebilir:
"Biliyorum! Sadece yapacağım:" object.position.x++
.
Hayır hayır hayır. Bir vektör hesaplama kullanmanız gerekir. Nesne, nesneyi taşımak için kullanabileceğiniz bir konum, yön ve ivme vektörüne ihtiyaç duyar. Acemi bir şey yaparsanız, sürdürülemez bir karmaşa içinde sıkışıp kalacaksınız ve dünyanın XYZ ekseni ile hizalı olmayan bir yönde nasıl hareket ettireceksiniz?
Oyunların kuaterniyonlar kullanmasının temel nedeni, Gimbal kilidi sıkıntısı çekmeden, neredeyse Euler açıları kadar uzayda etkili rotasyonları temsil etmeleridir . Gimbal Kilidi herhangi bir Euler açısı herhangi bir eksen etrafında 90 derecelik bir dönüşe ulaştığında başlar: hemen bir serbestlik derecesini kaybedersiniz. Kuaterniyonlar bu sorunu dördüncü bir boyut ekleyerek ele almaktadır. Euler açılarıyla sıkışırsanız, bir ekseni asla ~ 89 dereceden fazla dönmeyecek şekilde sınırlamanız gerekir.
Bir oyunda fizik tepkileri için matematiği programlayacaksanız, bir fizik dersi almak kötü bir fikir olmazdı.
Fizik denklemlerini bilmenizin nedenleri:
- Top zıplaması yapma (bkz: restitüsyonun kooperatifi)
- Bir topun 'x' kuvvet Newtonu ile hareket etmesini sağlayın
- Bir şey daha fazla veya daha az sürtünme olun, böylece farklı bir hızda kayar
- Çarpışma tepkileri: 'Buraya' bastığımda nesne hangi yöne dönecek?
Bir fizik motoru (veya fizik motoru yerleşik olan bir oyun motoru) kullanıyorsanız, o zaman fizik hakkında çok az şey bilmekten kurtulabilirsiniz. Yine de, ne zaman ellerini kirletmeniz gerektiğine karar vermek iyi çünkü fizik motoru düzgün çalışmıyor.