Elektrik Mühendisliği · Sayı 440 · Kasım 2010

BİLGİSAYAR OYUNLARI İÇİN FİZİK

Dr. Umut Durak

Bilgisayar, yazılım ve internet Teknik / bilimsel makale

Yıl
2010
Sayfa
4
Okuma süresi
5 dk
Görüntülenme
0

Konu

Bilgisayar, yazılım ve internet

Anahtar kelimeler

  • oyun fiziği
  • klasik mekanik
  • çarpışma tespiti
  • yay-kütle modeli
  • hareket yakalama
  • Yumuşatılmış Parçacık Hidrodinamiği

Özet

Yazı, bilgisayar oyunlarında kullanılan fizik simülasyonlarının tarihçesini ve klasik mekanikten yumuşak cisim, sıvı modelleme ve karakter canlandırmaya uzanan temel kavramlarını tanıtmaktadır.

Tam metin

Metin PDF'ten otomatik çıkarılmıştır; tablo, şekil ve formüller eksik ya da hatalı olabilir. Özgün dizgi için PDF'e bakın.

Dr. Umut Durak-ODTÜ, Enformatik Enstitüsü [email protected]

Giriş

F izik, bilgisayar oyunlarında uzun süredir kilit bir rol oynamaktadır. Oyunların başarısı ile oynayanı sarması, onu kendi dünyasına katması arasında önemli bir ilişki olduğu için, oyunda sunulan görselliğin ve davranışların; beklenen, alışıla gelen, yani tanıdık olması gerekir. Görselleştirmedeki teknolojik gelişim hem sanatsal olanı hem de gerçek olanı sunma olanaklarını oldukça artırmıştır. Eş zamanlı olarak, davranıştaki gerçekçiliğin desteklenmesi yönündeki çalışmalar “Oyun Fiziği” olarak adlandırılan bir alanı ortaya çıkarmıştır. Bu yazıda oyun geliştirmek için kullanılan fizik alan bilgisi tanıtılacak ve bu alanın çağdaş araştırma problemlerinden bahsedilecektir.

olan klasik mekanikten başka bir şey değildir.[1]

Oyun fiziği bilgisayar oyunlarının erken dönemlerinden bu yana kullanılagelmektedir. En erken uygulama biri 1961 yılında MIT (Massachusetts Institute of Technology) öğrencilerinden Martin Graetz, Steve Russell ve Wayne Wiitane tarafından geliştirilen “Spacewar!” oyunudur.[2] Spacewar!’un oyuncularının amacı bir yandan uzay gemilerini kontrol edip bir yandan ateş ederek rakipleri yok etmek ve yıldızlara çarpmamaktır. Oyunda kullanılan yerçekimi, mermi yörüngelerinin yamulmasına ve gemilerin mermilere doğru çekilmesini sağlayarak, özgün bir his

yaratmıştır.[3] Spacewar! oyununun bir görseli Şekil 1’de sunulmuştur.

Bundan on sene sonra Atari Firması tarafından satışa sunulan Pong [4] Oyunu’nda, iki oyuncu karşılıklı 2 boyutlu bir tenis oynamaktadır. Oyun topun rakete hangi açı ile vurduğunda hangi açı ile sekeceğinin hesaplandığı basit fizik hesabına dayanmaktadır.[3]

Erken dönemlerde oyunlar içindeki kıvılcım, top, mermi, havai fişek gibi parçacıkların hareketi için kullanılan fizik, zaman içinde önce 2 boyutta katı cisimlerin hareketi sonrasında 3 boyutta katı cisimlerin hareketlerinin hesaplanması için kullanılmıştır. Gü-

Oyun Fiziği Nedir?

Fizik, Türk Dil Kurumu’nun Büyük Türkçe Sözlüğü’nden “Maddenin kimyasal yapısındaki değişiklikler dışında genel veya geçici yasalara bağlı, deneysel olarak araştırılabilen, ölçülebilen, matematiksel olarak tanımlanabilen madde ve enerji olgularıyla uğraşan bilim dalı” olarak tanımlanmaktadır. Herkesin takdir edeceği üzere fizik çok geniş bir disiplindir ve yüzlerce alt alana sahiptir. Oyun fiziği dediğimiz ise temelde nesnelerin yerçekimi ve diğer kuvvetler altında nasıl hareket edeceklerini söyleyen kanunlar bütünü

Şekil 1- Spacewar! Oyunu

elektrik mühendisliği, 440. sayı, kasım 2010 27

nümüzde ise parçacık ve katı cisim mekaniği dışında, giysiler, kumaşlar, ipler gibi yumuşak cisimlerin, sıvıların, gazların hareketlerinin hesaplanması, çarpışma ve çakışma hesapları, kırılma, dağılma hesapları, vücut hareketinin hesaplandığı bez bebek fiziği, oyun fiziğinin konuları içine girmiştir. Bundan sonraki bölümlerde bu konuları genel olarak ele alacağız.

Klasik Mekanik

Klasik mekanik, oyunlarda en çok kullanılan temel araçlardan bir tanesidir. Oyun dünyasının yapısına göre, 2 boyutlu veya 3 boyutlu uzayda oyun içindeki nesnelerin hareketlerinin hesaplanması için kullanılan ana yöntemdir. Oyun içindeki nesnelerin hareketleri, duruma göre parçacık veya katı cisim kabulleri, kinematik veya dinamik kullanılarak hesaplanabilir. Parçacık, kütlesi olan ama boyutları önemsiz olan cisim olarak tanımlanırken; katı cisim, birbirine göre konumları değişmeyen parçacıklar bütünü olarak tanımlanabilir. Katı cisim hareket ederken şekil değiştirmez ve şekli ile yönelimi önemlidir. Parçacık ise nokta şeklindedir ve yönelimi yoktur. Kinematik cismin konum, hız ve ivmesi ile ilgilenir. Bunların arasındaki bağıntıları ve bu değerlerin zaman içinde nasıl değiştiklerini konu alır. Dinamik ise, cisimlerin üstüne etkiyen kuvvet ve momentleri, onların doğrusal ve açısal hareketleri ile ilişkilerini konu alır.[5]

Oyun içindeki nesneler üzerine etkiyen kuvvetleri modellemek de klasik mekaniğin konusudur. Nesnelerin hareketlerinin gerçekçi algılanabilmesi için, kuvvetleri hesaplamak için kurulan modellerin çalışılması gerekir. Bu modeller bazen gerçeği yansıtırken, bazen de algıyı aldatmak için hilelere başvurur. Örnek olarak, ekrandan hemen kaybolmaması için oyunlardaki mermilerin namlu çıkış hızları gerçeğin 10 kat kadar altında tutulur, enerjilerini korumak içinse kütleleri artırılır. Hal böyle iken yerçekiminin etkisi de yer-

Şekil 2- Pong Oyunu Konsolu

Şekil 3- Gorillas Oyunundan Ekran

çekim ivmesini azaltarak sağlanır.[1] Bu örneği en iyi, rakiplerin birbirine atış yaptıkları ünlü MSDOS oyunu

Gorillas’ı [http://en.wikipedia.org/ wiki/Gorillas_(video_game)] hatırlayarak, canlandırabilirsiniz.

28 elektrik mühendisliği, 440. sayı, kasım 2010

Klasik Mekaniğin Ötesi

Gerçek hayatta cisimler aslında katı cisim mekaniğindeki kabule uymazlar. Yapıları uyarınca her cismin belirli bir elastik karakteri vardır. Bunun ötesinde oyun dünyasında ise katı cisimlerin dışında da birçok unsur vardır. İpler, kablolar, giysiler, hatta sıvılar ve gazlar. Bunların modellenmesi ve bu unsurların davranışlarındaki gerçekçi algının yaratılması yine oyun fiziğinin konusudur. Yay-kütle modelleri, yay dizileri yumuşak cisimleri modellemekte kullanılan en yaygın araçlardır.[6] Şekil 4’te örnek olarak kumaş için hazırlanmış bir Yay-Kütle modeli sunulmuştur.

Oyunlardaki sıvıların davranışlarının modellenmesi ise oyun fiziğinin en çağdaş problemlerinden bir tanesidir. Oyun fiziğinin gerçek zamanlı karakteri ve düşük donanım isterleri sıvıların hareketlerinin hesaplanmasını olanaklı kılan hesaplamalı akışkanlar dinamiği gibi yöntemlerin bu alanda kullanılmasını imkansız hale getirmektedir. Bu noktada, Yumuşatılmış Parçacık Hidrodinamiği (YPH) [7] son yıllarda umut vaat eden bir yöntem olarak kullanılmaya başlanmıştır. Şekil 5’te akışkan çözümleri için YPH kullanan fizik motoru Physx’in [8] demolarından birinin ekran görüntüsü sunulmuştur.

Oyunlar içindeki nesnelerin tek başlarına hareketleri kadar, birbirleri ile olan etkileşimleri de oyun fiziğinin konusudur. Nesnelerin birbirleri ile çakışmalarının bulunması, çarpışmaların tespit edilip çözümlenmesi, oyun fiziğinin temel problemleri arasındadır. Detaylı anlatımları [9] numaralı kaynakta bulunabilecek çakışma algoritmaları kullanılarak, tespit edilen olası veya gerçekleşmiş çakışmalar, çarpışma çözümlemesi ile irdelenip, itki ve momentum hesaplamaları ile çarpışma sonrası nesnelerin hareketleri hesaplanmaktadır.

Şekil 4- Kumaş Yay-Kütle Modeli

Şekil 5- Physx Demosundan Ekran Görüntüsü

Oyun fiziği, oyun içindeki nesneler dışında karakterlerin canlandırması problemi ile de uğraşır. Özellikleri birbirinden farklı birçok eklem, kemik ve kas grubundan oluşan bir karakterin hareketini gerçekçi olarak canlandırmak başlı başına bir zorluktur. Bu işi aynı sahne içindeki birçok karakter

için gerçek zamanda yapmak ise, karmaşıklık ve hesaplama yükünü alabildiğine artırmaktadır. Aynı anda çalıştırılması gereken algoritmaları sıralarsak, integrasyon şeması, çakışma ve girişim hesapları, kısıt çözücü, katı cisim hareket denklemleri gibi bir liste ile karşılaşırız.[10]

elektrik mühendisliği, 440. sayı, kasım 2010 29

Hareket yakalama yöntemi, karakter canlandırma için oyun fiziği ile birlikte kullanılan araçlardan biridir. Aktörün üzerine yerleştirilen işaretler kullanılarak yapılan hareketlerin sayısal ortama alınması olarak tanımlanabilecek hareket yakalama yöntemi, özellikle karmaşık hareketleri ve etkileşimleri modellemekte çok kullanışlıdır.[11] Şekil 6 hareket yakalama sürecinin aşamalarını sunmaktadır.

[8] Physx, http://www.nvidia.com/object/ physx_new.html

[9] Ericson, C., Real-time Collision Detection, Morgan Kaufmann Publishers, Amsterdam, 2005

[10] Jakobsen, T., Advanced Character Physics, GDC Proceedings, 2001

[11] Motion Capture, http: //en.wikipedia.org/wiki/Motion_capture <

Sonuç

Bu makale ile okuyucuya oyun fiziğine temel düzeyde bir aşinalık kazandırılmaya çalışılmıştır. Önce kısa bir tarihçeyi izler biçimde oyun fiziği tanımlanmış, daha sonra da oyun fiziğinin kapsadığı problemler başlıklar halinde okuyucuya tanıtılmıştır. Makale okur için konuya bir giriş niteliği taşımakla birlikte, kullandığı referanslar, bütünsel bir çalışma için temel oluşturacak niteliktedir.

Kaynakça

[1] Milligon, I., Game Physics Engine Development, Morgan Kaufmann Publishers, Amsterdam, 2007

[2] Spacewar!, http://en.wikipedia.org/ wiki/Spacewar!

[3] A History Of Game Physics, http://www.insidemacgames.com/news/ story.php?ArticleID=16511

[4] Pong, http://en.wikipedia.org/wiki/ Pong

[5] Bourg, D.M., Physics for Game Developers, O’Reilly & Associates, Beijing, 2002

[6] Eberly, D.H., Game Physics, Morgan Kaufmann Publishers, Amsterdam, 2004

[7] Smoothed Particle Hydrodynamics, http://en.wikipedia.org/wiki/Smoothedparticle_hydrodynamics

Şekil 6- Hareket Yakalama

30 elektrik mühendisliği, 440. sayı, kasım 2010