Anket Başlığı: Sizce oyun programlamak için fazla matematik gerekli midir?
Evet

11 68.75%
Hayır

5 31.25%
Katılımcı sayısı: 16 100%
* Siz bu anket için oy kullanmışsınız. [Anket Sonuçlarını Göster]


Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Oyun programlama için matematik gerekli midir?
#1
Lightbulb 
Matematik ve oyun programlama aslında yanlış anlaşılan bir ilişkiye sahiptir. Bir çok kişi iyi matematik problemlerini çözen veya iyi matematik yetenekleri olan kişinin iyi bir şekilde yazılımcı ya da programcı olduğunu düşünür fakat bu öyle değildir. En iyi üniversitelerden mezun olan toplumun genelde "zeki" olarak tanımladığı insanlar programcılıkta tam anlamıyla bir andaval olabiliyor. Oyun programlamaktan bahsedecek olursak bu konu "Bir kişinin oyun yazılımı yapması için matematik gerçekten ne kadar gereklidir?" gibi soruların cevabını arar.

Kısa cevap: Oyun programlamak için üst düzey bir matematik bilgisi gerekli değildir. Hatta türev ve integral bile oyun programlamak için baya gereksiz konulardır Smile Günümüzdeki gelişen oyun motorlarının gelişimiyle herkes basit bir matematik bilgisiyle, oyun programcısı olabilir. Önemli olan burada kişinin matematik bilgisinden ziyade edindiği tecrübesi ve mantıklı bir şekilde oyun motorundaki bileşenleri uygulamasıdır.

Önce oyun programcılığının da belirli bir dallara ayrıldığını düşünmeniz lazım. Örneğin grafik programlama ,ağ(network) programlama, yapay zeka(AI) programlama, oynanış(gameplay) programlama ve fizik programlama(bu dallar çoğaltılabilinir.)

Yapacağınız programlama veya yazılım ekipteki görevinizle alakalıdır. Grafik programlayıcısının gerçekten iyi bir matematik ve geometri bilgisine ihtiyacı vardır. Fakat ağ programlayıcı daha çok tecrübesi ve bilgisiyle ön plana çıkar. Oynanış programcısının özelliği ise soyutsal düşünme yeteneği ve mantığıdır. Oyun motoru teknolojileri ile artık bir oyun geliştirmek için bir ağ prototipi ya da buna benzer bir gölgelendirme sıvaması yapmaya gerek kalmıyor. Bu yüzden genel bir oyun programcısının bilmesi gereken matematik yetenekleri şunlardır:

Toplama, çıkarma, bölme ve çarpma: Bildiğiniz gibi çok kolay değil mi? Bir canavar oyuncuya saldırdığında, oyuncunun can puanını -20 düşür. DPS(Bir saniyedeki hasar) TOPLAM HASAR/60 = DPS gibisinden.  Pekala! bunun gibi şeyleri türetebiliriz varsayıyoruz. 

Mod Alma: Bir sayının bir sayıya bölümünden kalan demektir. Örneğin 10 sayısını 8'e böldük kalan 2, o zaman 8 sayısı mod10'da 2'ye eşittir demektir. Bir sayının tek veya çift olduğunu öğrenmek için o sayıyı 2'ye böleriz, eğer sayı tam bölünüyorsa(yani kalanı == 0) çift, eğer sayı tam bölünmüyorsa(yani kalanı==1) ise o sayı tektir. 

Oyuncu bir zar attı ve çift gelirse +20 sağlık puanı kazanıyor. Tek gelirse Burada iki ihtimalimiz var. Zarların üstündeki sayılar 1'den 6 ya kadar 3 tane çift 3 tane tek sayımız var. Ya çift gelecek ya da tek. Peki şöyle düşünelim

örneğin;
zar = 1 ile 6 arasındaki rastgele bir sayıyı random fonksiyonuyla aldık. 
zar sayısının mod 2 de kalanı eğer 0 ise bu sayı çifttir ve +20 sağlık puanı ekle
eğer değilse -20 sağlık puanı ekle. 

Çok basit değil mi? 

Yüzde Alma: Yüzde almak sadece bir verinin daha derli toplu olduğunu göstermesi anlamından başka bir şey değildir. aslında 3 dediğimiz sayı 3/1 fakat yüzde üç dediğimiz sayı 3/100 yani yüzde üç, yüz tane elmadan sadece üçü demek. Diyelim bir sayının %54'ünü alacağız, sayımız 350 olsun 350*0.54 sayısı bize o sayının %54'ünü verir.

Diyelim ki bir canvarın kalan canının yüzde kaç olduğunu bulmak istiyorsunuz. Bunu basit bir oran orantı ile de yapabilirsiniz. Canavarın toplam canı 300 olsun. Canavar saldırdık ve canavarın sağlık puanı 200 oldu. Diyoruz ki, 300 de 100 ise 200'de kaç? işte bunun cevabı bize verir 

Değişken şeklinde düşünelim
KALAN_CAN = TOPLAM_CAN - VERİLEN_HASAR;
KALAN_CAN*100/TOPLAM_CAN gibisinden formüller üretebilirsiniz.


Negatif Sayıları Bilmek: Evet, -1 sayısı, -2 sayısı. -1 * -1 = +1 olur. -5 * 3 = -15 olur. vs..

Kartezyen Koordinat Sistemi: Bilgisayar sisteminde (0,0) orjini belirtir( Ekranın sol ve üst köşesindeki yer) X ekseni ilk bileşeni, Y ekseni ise ikinci bileşeni ifade eder. Yukarıdan aşağıya doğru çektiğimiz zaman Y değişkeni değişir. Soldan sağa doğru fareyi çektiğimizde X değişkeni değişir. Aynı zamanda üç boyutlu düzlemde x, y, z gibi bileşenlere ayrılır.

Pisagor Teoremi: Basitçe a^2 + b^2 = c^2.  (x1, y1) ve (x2, y2)  yani iki tane 2 boyutlu nokta üzerindeki uzaklığı bulmak için kullanıyoruz.

Basit Cebir: x + 5 = 7 ise x=2'dir. Hepsi bu evet. 

Gelişmiş Seviye Oyun Programcılığı: Trigonometri, Doğrusal Cebir(Linear Algebra) ve Matrisler: Belki de matematik bilmeyenler için en zor kısıma geldik. 3B şeyler genellikle trigonometri ve doğrusal cebir (matrislerle uğraşılan) kısmı için mantığını anlaması için temel olarak bilinmesi gereken şeylerdir.  Vektörlerde toplama, çıkarma, çarpma, toplama gibi temel oluşumları bilmeniz gerekli. Trigonometrideki cos,sin gibi temel şeyleri bilmeniz ve matrisler sayesinde oyundaki bir kübün yönünü, dönüşümünü ve çevrilmesini sağlayabilirsiniz. Eğer Unreal Engine, CryEngine veya Unity 3D gibi oyun motorlarını kullanıyorsanız gerçekten işiniz çok kolay demektir. Basit bir lineer cebir eğitimi ile yapı-taşlarını anlayacaksınız. 

Mesela dot product(nokta çarpım) işlemini kullanırsanız bir karakterin diğer karakterin önünde mi yoksa arkasında mı olduğunu anlayabilirsiniz.

Görüldüğü gibi matematik oyun programlamada abartılı bir şekilde kullanılmaz hatta hiç matematik bilmeden oyun programcısı olan bir çok kişi vardır. Fakat eğer bir depremin daha önceden hesaplanmasını bulmak istiyorsanız o zaman deli gibi bir matematik bilgisine ihtiyacınız vardır. Ya da bilgisayar bilimleri ile ilgili en büyük fibonacci sayısını bulacaksanız o zaman geniş çaplı bir matematik uzmanı olmanız gerekli.

Peki oyun programlayıcısı olmak için ne gerekli?
İyi bir oyun programlayıcısı olmanın tek şartı kendinizi sürekli geliştirmeniz ve tecrübe edinmenizdir. Gerçekten dehşet derecede yalayıp yutacak matematik bilmenize gerek yok. Hatta üniversitede & lisede öğretilen bir çok matematik konusunun oyun programlama ile alakası yok. Zorlanacağınız tek konu belki de Doğrusal Cebir olacaktır.
Daha sonra var olan soyutsal düşünceleri oyuna aktarmak için yapacağınız hamleyi bilgileriniz ve tecrübelerinizle sahneye aktarmanız lazım.

En basitinden diyelim ki bir oynanış programcısısınız ve envanter sistemi yapacaksınız. Ve itemleri envanterinizden ekleyip çıkarmak istiyorsunuz.
Aşağıdaki kod sadece matematiğin basit işlemlerde kullanıldığını göstermek amacıyla yazılmıştır. Lütfen ciddiye almayınız.

can = 3 olsun
oyunaDevam doğru durumunu alsın
a 8 elemanlı bir dizi olsun

do

   grafikleriCiz();

   eğer oyuncu bir canavarı öldürürse oyuncunun envanter dizisine yeni bir girdi ekle
   oyuncu.esyaekle("kumaş pantolon");
   oyuncu.esyaekle("altın kılıç");

   eğer oyuncu ölürse (yani canı 0'dan az olursa)
   oyuncu sınıfının eşya ekle dizisinin her elemanı sil.

   eğer oyuncu c tuşuna basarsa envanterini göstermek istiyoruz.
   oyuncu sınıfının her bir elemanını yazdır

   eğer canavar oyuncuya saldırırsa
   oyuncunun canını bir azalt. yani can--;

   eğer can 0 a eşitse veya küçükse
   oyuna devam yanlış değerini alsın
}
while(oyunaDevam yanlış olmayana kadar);  yani can 0'a eşit olana kadar bu döngüyü devam ettir.

gördüğünüz gibi matematik sadece toplama ve çıkartma...

vereceğim bir diğer örnek ise pacman oyununun algoritması (temel bazlı alınmıştır) Bir yapay zeka programcısı buna benzer şeyler yapar.

7 saniye boyunca dağılın, ardından 20 saniye boyunca kovalayın.
7 saniye boyunca dağılın, ardından 20 saniye boyunca kovalayın.
5 saniye boyunca dağılın, sonra 20 saniye boyunca kovalayın.
5 saniye boyunca dağılın, sonra da Kalıcı olarak Chase moduna geçin.

bad-decision.png

Pathfinding(yol bulma) sistemi temel bazlı şöyle işliyor. kırmızı noktada karakterimiz olsun, kırmızı hayalet en kısa yol için 4, en uzun yol için 9 hamlesi var diyelim. Diğer hayaletlerin sayısı ile harekete geçiyor(Muhtemelen bir döngü içerisinde) eğer en kısa yol 4 ise diğer hayaletler en uzun yolu seçiyor. Kısacası anlatmak istediğim yine yüksek derecede bir matematik yok. 3D oyunlarda da NPC lerin sizi takip etmesi sadece vektörlerin belirli bir yolu takip etmesiyle. Sadece lineer koordinatlar değişiyor.

3B veya 2B grafiklerin oluşması için matematiği bilmenize gerek yok çünkü openGL, webGL, Vulkan ve DirectX gibi grafik kütüphaneleri bunu çok kolay şekilde sağlıyor. Sadece nasıl kullanabileceğinizi öğrenmeniz lazım. Fizik konusuna gelirsek o da aynı şekilde. Eğer NVDIA'da çalışacaksanız tabii ki müthiş bir fizik bilgisine sahip olmanız gerekli ama bir Blizzard veya EA'da oyun programcısı olarak çalışacaksanız gerçekten çok fazla bir matematik bilgisine gerek yok.

Bunun dışında pygame(Python için), Allegro, SFML, SDL gibi oyunları yapmak için içinde klavye giriş çıkışı, ses yönetimi, ağ yönetimi ve grafik kütüphaneleri barındıran kütüphaneler mevcut. Bunların nasıl kullanıldığını öğrenirseniz, matematiğe gerek kalmayacaktır. Kendi oyun motorunuzu yapmak istiyorsanız(ki bu gerçekten çok çok çok zor bir iştir bu sefer gerçekten matematiğe ihtiyaç duyacaksınız.)oyun motoru derken sadece bir oyunun motorundan bahsetmiyorum geniş çaplı bir oyun motorundan bahsediyorum. Yoksa basit bir oyun motoru yapmak zor değil.)

Son olarak oyun geliştirmek ve programlamak her insan için kolay bir iş olmaya başladı. İyi bir oyun yapıp bu işi profesyönel bir şekilde idare etmek istiyosanız en zor türev, integral ya da en zor matematik sorusu çözmek size oyun geliştirme konusunda kişiye oyun programlamak hakkında hiçbir şey kazandırmaz. 
Bu konu tartışmaya açıktır.
- Ali Kubur, İletişim: alikubur35@gmail.com
Cevapla
#2
Oyun programlama için değil de normal programlama için algoritma vs. gibi yerlerde gerekli.
Ara
Cevapla
#3
Yazıda belirttiğim gibi kesinlikle gerekli ama öyle çok şey bilmenize gerek yok. Genellikle basit şeyler  Rolleyes
- Ali Kubur, İletişim: alikubur35@gmail.com
Cevapla
#4
Düz mantıkda oyun programlama için bir sürü şey gerekli. Fakat tutupda matematik profesörü, programcı deha olmanız gerekmiyor. Ana mantıkda bilmeniz işinize yarayacak kadar geliştirmeniz gerekiyor bana göre. Ama ne kadar iyi bilirseniz okadar rahatlatır sizi ve faydalı olur. Ama ana mantık kesinlikle hepsi için şart. Buna 3D den animasyona, Video editten müziğe, kodlamadan matematiğe kadar bir çok şeyi katabiliriz. Çok iyi bir grafiker olmayıpda çok iyi bir coder ım diyorsan basit grafiğe sahip oyunlar yapabilirsin ve güzelde olabilir. Yada tam tersiysen harika grafikler ama basit mantıkda şeyler yapabilirsin. Bunlar sadece örnek. Gerisi neyi nekadar geliştirdiğinize göre değişir. Gereksiz diyip salmamak lazım bana göre. Öyle yada böyle faydalı olacaktır. ^^
Copyright © 2010 by RecLast All rights reserved.

Ben bir oyuncuyum…
Bir hayatım olmadığından değil…
Yaşayabilecek bir çok hayatı seçtiğimden…
Cevapla
#5
Farklı bir konudan buraya yönlendim.Tartışmaktan daha çok kişisel fikrimi beyan etmek istiyorum.Evet, oyun programlama için ahım şahım matematik bilgisine gerek olmayabilir.Ama oyunda dahil olmak üzere programlama yapabilmeniz için problem çözme becerinize ihtiyacınız var.Basit düzeyde matematik bilen birisi programlamayla uğraşabilir mi ? Evet, problem çözme ve mantık yürütme becerisine sahipse yazabilir.Matematik bilimi de zaten elde olan değişkenleri kullanarak bilinmeyenlere erişme veya bir takım kavramları ispat etme üzerine kurulu bilim dalıdır.(Örn: Georg Cantor - Kümeler)Tanım detaylandırılabilir.Problem çözme ve mantık yürütme becerisi bol pratikle(gerek programlama gerekse matematik için) arttırılabilir.Matematik veya programlamadan herhangi biriyle uğraşan biri uğraşmadığı alana da kolay bir şekilde adapte olabileceğini tecrübe ettim.Hatta ufkunuzu da arttırıcağını düşünüyorum.Ayrıca, programlamanıza da katkı sağlayacaktır.Örneğin; bir boru hattının ne kadarı denizden ne kadarı karadan geçsin ? en ucuz maliyet ne kadar olur? şeklinde bir sorunu matematikle çözebiliriz.Tabi; oyununuzun mantığına göre değişmekle birlikte bu işlemi programlamaya aktaracak şekilde bir algoritma muhtemelen kurmayacağız.Dolayısıyla oyun programlama için algoritmanıza göre değişmekle birlikte çok matematik bilgisi gerekmeyebilir.Yalnız bakış açınızı geliştirecek ve daha kolay kodlama yapabileceğinizi fark edeceksiniz.Peki basit düzeyde matematik bilen birisinin programlamaya başlamasını tavsiye eder misin ? Hiç durmasın, uğraşmaya hemen başlasın. Smile

Sonuç olarak programlamanın içinde kullandığımız matematiğe sadece hesaplama kültürü olarak davranmamak kanaatindeyim.

(Yorumumu sizi tenzih ederek söylüyorum, daha çok konuyla ilgili bilgi edinmek isteyen arkadaşlar varsa, ufuk açmak niyetindeyim.Zaten yorumlarınızda oyun programlama için basit düzeyde de olsa gerekli olduğundan sizde bahsediyorsunuz.)
Ara
Cevapla
#6
(07-01-2017, Saat: 07:04)Khubur Adlı Kullanıcıdan Alıntı:  En basitinden diyelim ki bir oynanış programcısısınız ve envanter sistemi yapacaksınız. Ve itemleri envanterinizden ekleyip çıkarmak istiyorsunuz. Aşağıdaki kodu sadece anlamak amacıyla yazdım komik gelebilir Smile

tamsayı can = 3;
oyuncu sağlığı = 100;
do
{
   a 8 elemanlı bir dizi olsun
   a.ekle("kumaş pantolon");
   a.ekle("altın kılıç");
   a.cikar("altın kılıç");
   düşman vurursa
   eğer oyuncunun canı 0 ve 0'dan azsa canı bir azalt
   
   for(i=0;i<=8;i++){
       a nın i. elemanını yazdır
  }
}
while(can!=0);

gördüğünüz gibi matematik sadece toplama ve çıkartma...

Öylesine de olsa bu kod ne iş yapıyor, neyin örneğidir?
Cevapla
#7
(04-02-2017, Saat: 02:39)cahitburak Adlı Kullanıcıdan Alıntı:  
(07-01-2017, Saat: 07:04)Khubur Adlı Kullanıcıdan Alıntı:  En basitinden diyelim ki bir oynanış programcısısınız ve envanter sistemi yapacaksınız. Ve itemleri envanterinizden ekleyip çıkarmak istiyorsunuz. Aşağıdaki kodu sadece anlamak amacıyla yazdım komik gelebilir Smile

tamsayı can = 3;
oyuncu sağlığı = 100;
do
{
   a 8 elemanlı bir dizi olsun
   a.ekle("kumaş pantolon");
   a.ekle("altın kılıç");
   a.cikar("altın kılıç");
   düşman vurursa
   eğer oyuncunun canı 0 ve 0'dan azsa canı bir azalt
   
   for(i=0;i<=8;i++){
       a nın i. elemanını yazdır
  }
}
while(can!=0);

gördüğünüz gibi matematik sadece toplama ve çıkartma...

Öylesine de olsa bu kod ne iş yapıyor, neyin örneğidir?

Oyuncuyu ölümsüz yapıyor. Matematiğin sadece toplama ve çıkarma olmadığına çok güzel bir örnek olmuş.
Ara
Cevapla
#8
(04-02-2017, Saat: 03:24)gigalian Adlı Kullanıcıdan Alıntı:  
(04-02-2017, Saat: 02:39)cahitburak Adlı Kullanıcıdan Alıntı:  Öylesine de olsa bu kod ne iş yapıyor, neyin örneğidir?

Oyuncuyu ölümsüz yapıyor. Matematiğin sadece toplama ve çıkarma olmadığına çok güzel bir örnek olmuş.

Bunu pseudo olarak örnek vermek amaçla verdim ve yazarken gerçekten umursamadım sizin bu kadar ciddiye almanız komiğime geldi Big Grin

O kodda karaktere ölene kadar sürekli eşya veriyor. ve eşyaları yazdırıyor. Anlamanız için daha basit bir örnek veriyorum.

oyunOynanıyor = doğru değerini alsın
can = 3 olsun
a x elemanlı bir ("string") dizi olsun

while(oyunOyananıyor)
{
     grafikleriCiz();
     eğer canavar  karaktere vurursa canı bir azalt  yani -> can--;
     eğer oyuncu canavar öldürürse a dizisine kılıç ekle
     eğer can 0 ' a eşit olursa oyunOynanıyor = yanlış değerini alsın
}

bir boolean değişkenine bağlı oyun döngüsü devam ediyor. ve belirli durumlara göre belirlediğimiz değişkenin değeri değişiyor. (toplama ve çıkarma). C++ ile örnek vermek doğru olmazdı. vektörleri ve yineliyicileri kullanmak daha karmaşık gözükürdü.
- Ali Kubur, İletişim: alikubur35@gmail.com
Cevapla
#9
(04-02-2017, Saat: 05:38)Khubur Adlı Kullanıcıdan Alıntı:  Bunu pseudo olarak örnek vermek amaçla verdim ve yazarken gerçekten umursamadım sizin bu kadar ciddiye almanız komiğime geldi Big Grin

O kodda karaktere ölene kadar sürekli eşya veriyor. ve eşyaları yazdırıyor. Anlamanız için daha basit bir örnek veriyorum.

oyunOynanıyor = doğru değerini alsın
can = 3 olsun
a x elemanlı bir ("string") dizi olsun

while(oyunOyananıyor)
{
     grafikleriCiz();
     eğer canavar  karaktere vurursa canı bir azalt  yani -> can--;
     eğer oyuncu canavar öldürürse a dizisine kılıç ekle
     eğer can 0 ' a eşit olursa oyunOynanıyor = yanlış değerini alsın
}

bir boolean değişkenine bağlı oyun döngüsü devam ediyor. ve belirli durumlara göre belirlediğimiz değişkenin değeri değişiyor. (toplama ve çıkarma). C++ ile örnek vermek doğru olmazdı. vektörleri ve yineliyicileri kullanmak daha karmaşık gözükürdü.

Anlamadığım için sormadım da nedir bu örnek yani amaç ne, matematikle ilgili, algoritma ile ilgili ne öğretiyor? Yani basitliğine birşey demiyorum neden "ölene kadar eşya vermek"? "Ölene kadar yemek yedirmek gibi...

Bir yandan:

Bu tamam:
(04-02-2017, Saat: 05:38)Khubur Adlı Kullanıcıdan Alıntı:  while(oyunOyananıyor)
{
     grafikleriCiz();
     ...
}
Burada frame kilitlenmesi var:
(04-02-2017, Saat: 05:38)Khubur Adlı Kullanıcıdan Alıntı:  while(oyunOyananıyor)
{
     grafikleriCiz();
     while(x>0);
}

Özetle: Ben sosyal bilimlerden anlamam. Sosyal bilimler üzerine bilgim zorunlu olarak aldığım eğitimim ve genel kültürüm kadardır. Bu, örneğin felsefe yapamayacağım anlamına gelmez ama ne kadar felsefe yaparsam yapayım felsefi akımları öğrenmeden, felsefe çalışmalarını incelemeden iyi felsefe yapamam.

Ama asıl problem şu ki matematik fizik gibi konuları biliyorken, bu disiplinlere yatkınken neden felsefe yapayım? Bu da onun gibi. Matematik bilmiyorsanız da öğrenebilirsiniz. Oyun programlamada bu bahsettiğiniz temel şeylerden fazla birşey kullanmıyorsunuz elbette(en azından hazır oyun motoru kullanıyorken) ama bu iş yine de bir fen bilimi. Ben diyorum ki ressamsanız resim yapın, grafik tasarımcı olun. Müzisyenseniz müzik yapın. Yazarsanız, kitap yazın, oyun senaryosu yazın. Aksi ve istisnaları mümkün ama böylesi daha kolay ve daha etkili.
Cevapla
#10
(04-02-2017, Saat: 12:21)cahitburak Adlı Kullanıcıdan Alıntı:  
(04-02-2017, Saat: 05:38)Khubur Adlı Kullanıcıdan Alıntı:  Bunu pseudo olarak örnek vermek amaçla verdim ve yazarken gerçekten umursamadım sizin bu kadar ciddiye almanız komiğime geldi Big Grin

O kodda karaktere ölene kadar sürekli eşya veriyor. ve eşyaları yazdırıyor. Anlamanız için daha basit bir örnek veriyorum.

oyunOynanıyor = doğru değerini alsın
can = 3 olsun
a x elemanlı bir ("string") dizi olsun

while(oyunOyananıyor)
{
     grafikleriCiz();
     eğer canavar  karaktere vurursa canı bir azalt  yani -> can--;
     eğer oyuncu canavar öldürürse a dizisine kılıç ekle
     eğer can 0 ' a eşit olursa oyunOynanıyor = yanlış değerini alsın
}

bir boolean değişkenine bağlı oyun döngüsü devam ediyor. ve belirli durumlara göre belirlediğimiz değişkenin değeri değişiyor. (toplama ve çıkarma). C++ ile örnek vermek doğru olmazdı. vektörleri ve yineliyicileri kullanmak daha karmaşık gözükürdü.

Anlamadığım için sormadım da nedir bu örnek yani amaç ne, matematikle ilgili, algoritma ile ilgili ne öğretiyor? Yani basitliğine birşey demiyorum neden "ölene kadar eşya vermek"? "Ölene kadar yemek yedirmek gibi...

Bir yandan:

Bu tamam:
(04-02-2017, Saat: 05:38)Khubur Adlı Kullanıcıdan Alıntı:  while(oyunOyananıyor)
{
     grafikleriCiz();
     ...
}
Burada frame kilitlenmesi var:
(04-02-2017, Saat: 05:38)Khubur Adlı Kullanıcıdan Alıntı:  while(oyunOyananıyor)
{
     grafikleriCiz();
     while(x>0);
}

Özetle: Ben sosyal bilimlerden anlamam. Sosyal bilimler üzerine bilgim zorunlu olarak aldığım eğitimim ve genel kültürüm kadardır. Bu, örneğin felsefe yapamayacağım anlamına gelmez ama ne kadar felsefe yaparsam yapayım felsefi akımları öğrenmeden, felsefe çalışmalarını incelemeden iyi felsefe yapamam.

Ama asıl problem şu ki matematik fizik gibi konuları biliyorken, bu disiplinlere yatkınken neden felsefe yapayım? Bu da onun gibi. Matematik bilmiyorsanız da öğrenebilirsiniz. Oyun programlamada bu bahsettiğiniz temel şeylerden fazla birşey kullanmıyorsunuz elbette(en azından hazır oyun motoru kullanıyorken) ama bu iş yine de bir fen bilimi. Ben diyorum ki ressamsanız resim yapın, grafik tasarımcı olun. Müzisyenseniz müzik yapın. Yazarsanız, kitap yazın, oyun senaryosu yazın. Aksi ve istisnaları mümkün ama böylesi daha kolay ve daha etkili.

frame kilitlenmesi ne demek bilmiyorum. bu absürd koda basitçe bir döngü içerisinde devam ederken sağlığa +20 eklemek ya da diziler ile belirli işlemleri yapmak için anılan birkaç koddan başka bir şey değildir. 
öğretilen:
1-> can, sağlık ya da bir başka değişkenleri ekleme, toplamak veya çıkartmak ve bunu döngü içerisinde kullanmak ki (bize lineer interpolasyon bilip formülünü uygulamayı veya bir sayının türevini almaktan işimize yaramıyor.
2-> dizileri kullanmayı bilmek, matematik bilgisi yok. 
3-> şartları koyarak matematiği kullanmayı bilmek  (x<0 yani basitçe)

Oyun programcılarının çoğu basit derece matematik kullanır. Geriye kalanla, grafiklerin şekil alması üzerinde yoğunlaşır.
- Ali Kubur, İletişim: alikubur35@gmail.com
Cevapla
 


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
Wink [ACEMİ SORUSU] Oyun yapmak hobi olabilir mi? seffabullut 4 251 14-07-2023, Saat: 15:00
Son Yorum: serhatwxe

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi

Unreal Engine Türkiye

This forum is community driven and supported by voluntary community members. It has nothing to do with Epic Games.

Bu site sadece destek amaçlıdır. Epic Games ile bir ilgisi yoktur.