Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

C++ Oyun Yapma

Konu, 'Oyun Geliştirme' kısmında cgnkyc123 tarafından paylaşıldı.

  1. cgnkyc123

    cgnkyc123 Üye

    Kayıt:
    25 Ekim 2013
    Mesajlar:
    71
    Beğenilen Mesajlar:
    0
    Merhaba arkadaşlar foruma yeni katıldım. Öncelikle aklımdaki soruları sormak istiyorum. Evet arkadaşlar her yerde görüyorum oyun yapmak için c++ ya ihtiyaç var diye fakat c++'nın oyunlarda ne işe yaradığını bilmiyorum. Mesela biz 100 satır kod yazıyoruz sonra bu kodlar ekrana bir masa resmi falan mı çıkarıyor? Bazı kişiler tetris oyunu yapmış fakat anlamadığım nokta şu tamam tetris oyunu olmuş ama sadece console denen siyah küçük ekranda oynanıyor. Bu bana biraz ilginç geldi yani normalde tetris dediğimiz renkli ekranlardan oluşur. Ayrıca c++ öğrenmenin oyun programlamaya katkısının da ne olduğunu bilmiyorum örneğin şu anki oyun motorlarında zaten her türlü nesnenin programlanmış hali var. Ha tamam belki oyun motorlarında masa, ateş dolap, bardak falan vardır ama biz uzay mekiği istiyoruzdur sanırım bu gibi durumlar için c++ bilmek gerekiyor. Yani hayal gücümüze sınırlama getirmemek için. Öyle değil mi? Ayrıca son bir şey daha c++ öğrenmeye çalışırken if-else yapısı do-else yapısı falan filan bir sürü şeyler var ama bunlar ne işe yarayacak oyun programlarken? Anlatabildim mi? Yani oyun programlamayla c++ da yazılan programlar çok uzak geliyor bana örneğin adam 1 den 5 e kadar olan sayıların ekranda yazılmasını istiyorum diyor. Oyunda ise Adamı tırmandırmamız sonra yemek yedirmemiz falan gerekiyor ne alakası var ki şimdi... Lütfen yazıma cevap veriniz size çok ihtiyacım var şu an karnım ağrıyor ve başım dönüyor hiç başaramayacağımdan dolayı çok korkuyorum.
     
  2. KSV7R

    KSV7R Yeni Üye

    Kayıt:
    31 Ağustos 2013
    Mesajlar:
    19
    Beğenilen Mesajlar:
    0
    Meslek:
    Öğrenci
    Şehir:
    KOCAELİ
    Bırak bir oyun programlama işini aslında Dünya'da gördüğün her şey if-else yapısından olmuşmakta değil midir?Yemek yediysen acıkmazsın,doyana kadar yemek yersin,kullandığın browserda tıkladığın yere yönlendirilirsin...Örnek uzatılabilir gördüğün gibi her şey bir koşuldan oluşmaktadır.Yazdığın kodların birde GUI(grafiksel kullanıcı arayüzü) kısmı vardır.Oyun motorlarını kütüphanelerden oluşmuş bir bütün düşünebilirsin.Daha önceden başka kişilerin oluşturduğu hazır verileri kullanırsın.
     
  3. acehreli

    acehreli Ali Çehreli

    Kayıt:
    19 Ekim 2002
    Mesajlar:
    4,973
    Beğenilen Mesajlar:
    2
    Hoşgeldin cgnkyc123! :)

    Önemli firma ortamlarında C++'ın kullanıldığını biliyorum. Bunu Manu Evans'ın DConf 2013 konuşmasında ayrıntısıyla dinlemiştik:

    http://dconf.org/2013/talks/evans_1.html

    C++'ın kullanılmasının nedeni, onun bir sistem dili olması. Remedy Games gibi firmaların oyunlarının gerektirdiği performansa erişebilmek için verinin bellekte ne biçimde oturduğuna bitlere kadar hükmedebilmek şart.

    Buna rağmen, Manu'nun konuşmasının özü C++'ın nasıl belalı bir dil olarak görüldüğü ve oyun endüstrisinin bir arayış içinde olduğu idi. Remedy Games bazı işlerinde D'yi kullanmış ve çok memnun kalmış.

    Programlama dilleri ne işe yarıyorsan aynen o işe yarıyor: Şunu yap, şöyle olana kadar şunu yap, vs.

    Hiç oyun programlama bilmiyorum ama o tek satır olabilir:

    Kod:
        resimGoster("masa.jpg", su_nokta);
    Tetris oyununun mantığı ile onun gösterimi kavramlarının birbirlerinden ayrı düşünmeye çalış. Senin de dediğin gibi, konsolda da gösterilebilir, köşeleri pırıltılı renkli bir ekranda da. Ama perde arkasında işleyen algoritmalar ve oyun mantığı hep aynıdır.

    Örneğin, kendim için yaptığım aşağıdaki iki oyun bütünüyle konsolda işliyor ama nasıl görüntülenecekleri istenirse değiştirilebilir de:

    https://code.google.com/p/super-zeka/

    https://code.google.com/p/kutuyu-kapat/

    Programlama dili sana bilgisayarda herhangi bir şey yapmayı sağlıyor mu? (Sağlar! :) ) İşte oyun programcılığında da programcının oyunda yaptırmak istediklerini sağlar.

    Ama o motorlarda tetrisOynat() diye bir işlev yok. Oyunun mantığını sen programlıyorsun.

    Aslında hayal gücüne gelene kadar en basit işlemler için bile programlama dili gerekiyor. Kullanıcının adının okunacağı ekranı göster, aldığı puana şimdiye kadarkilerden fazla ise bir kenara yaz, savaşan kahramanlardan gücü yüksek olan diğerini dövsün, vs. :p

    Kod:
        if (kullanici_puani > en_yuksek_puan) {
            // ...
        }
    
        while (!oyun_bitti_mi()) {
            // ...
        }
    O öğretme ile ilgili bir konu. O örnek döngü kavramını öğretme amacıyla programı başka kavramlardan arındırmaya yönelik. Ben de aynı yöntemi uyguluyorum. Örneğin şu bölümdeki örnekler ve programlar çok basit:

    http://ddili.org/ders/d/while_dongusu.html

    Kod:
        for (size_t i = 0; i < toplam_basamak; ++i) {
            bir_ust_basamaga_gecir(adam);
        }
    
        if (ac_ise(adam)) {
            yemek_yedir(adam);
        }
    Ali
     
  4. cgnkyc123

    cgnkyc123 Üye

    Kayıt:
    25 Ekim 2013
    Mesajlar:
    71
    Beğenilen Mesajlar:
    0
    Teşekkürler, beni aydınlattınız. Zaten bu foruma girerken aydınlanmayı bekliyordum. Konuya gelecek olursak belki çok basit bir şey olacak ama yinede sorayım. Örneğin basamak atlatma kodunu yazarken aklıma takılan bir şey var: orada bir üst basamaga gecir deyince mi adam bir üst basamağa geçiyor yoksa bir üst basamağa geçirmek için kod mu yazmamız gerekiyor? Ya da orada yazan bir üst basamaga gecir yazısı merdivenin yanına gittiğimizde uyarı olarak ekranın ortasında mı çıkıyor?
     
  5. acehreli

    acehreli Ali Çehreli

    Kayıt:
    19 Ekim 2002
    Mesajlar:
    4,973
    Beğenilen Mesajlar:
    2
    Önce bir rica: Eğer özellikle belirli bir yerine yanıt yazmıyorsan yanıt yazdığının yazıyı bütünüyle alıntılamaya gerek olmuyor. Hatta, çoğu zaman alıntı yapmaya da hiç gerek olmuyor. O zaman en iyisi aşağıdaki "Hızlı Cevap" kutusunu kullanmak... Teşekkürler...

    Ben öyle hayal etmiştim. Oyunun kurallarına göre örneğin belki de belirli bir yüksekliğe çıkınca başı dönmeye başlıyordur filan. Dolayısıyla, adamın durumuna göre bir üst basamağa nasıl çıkıldığını senin programın halleder.

    Evet, o da...

    Ali
     
  6. cgnkyc123

    cgnkyc123 Üye

    Kayıt:
    25 Ekim 2013
    Mesajlar:
    71
    Beğenilen Mesajlar:
    0
    Teşekkürler.