chrome_nickel Son Forum Mesajları

    oyun yapmak oyun yapmak...oyun

    chrome_nickelkadir ilkimen

    oyun yapmak oyun yapmak...

    oyun yapmak isteyen amatör arkadaşların yaptığı ilk ve en büyük yanlış, işe yanlış noktadan başlamak....

    şöyle ki, bir oyun motorunu çok iyi öğrenip onunla harika bir oyun yapabilirsiniz... ama bir oyunu harika yapan şey oyunun motoru değildir.

    mesela son zamanlarda iphone android ve pc ortamında çılgınlar gibi oynanan "angry birds" oyununu örnek vermek isterim.

    herhangi bir 2d motoru ile yapılabilecek bir oyun... ama olay oyunun nasıl yapıldığında değil. oyunun hikayesi, oyunun etkileşimi...

    oyunun teknik çözümleri ikinci plandır aslında.
    ....

    farklı bir sektörden örnek vereyim, gene içinde motor olan bir sektör...

    otomobilleri düşünün. hiçbir otomobil firması, hadi bakalım elimizde 4 silindir 120 beygir bir motor var bununla bir araba yapalım demez.

    önce tasarımcılar amacına uygun bir araba tasarlar. tasarım bittikten ve detayları belirlendikten sonra buna nasıl bir motor gerekir diye yola çıkarlar.

    evet, unity çok kolay kullanımlı ve epey desteği olan bir oyun motoru.

    evet udk çok gelişmiş bir oyun motoru :).... ama udk ile fps tarzının dışında bir oyun yapmak çok zor. unity ile de yüksek performanslı karmaşık bir oyun yapmak çok zor...

    oturup sıfırdan kendi oyun sisteminizi de geliştirebilirsiniz. hazır bir oyun motoru da geliştirebilirsiniz. zilyon tane oyun geliştirme yolu var. bundan 5 yıl önce düzgün bir oyun motoru bulmak çok zordu. var olanlar da üzerine zilyon tane kod yazmadan birşeye benzemiyordu.

    günümüzde programlama dilleri de, oyun motorları da çok gelişti. bu yüzden şu oyun motoru bu oyun motoru diye seçmek yada bu daha iyidir demek yanılgıya götürür bizi.

    bana göre bir oyun geliştiricisinin etkileyici hikaye bulma ve bunu oyun senaryosuna dökebilme yönünü geliştirmesi gerekir.

     

    elinizde oynaması keyif verecek bir oyun senaryosu olduktan sonra, iki türlü yol izleyebilirsiniz.

    1- senaryonuza en uygun hazır motor bulmak.

    2-kendi motorunu kendin yazmak.

     

    birinci seçenek, daha amatör yada gayet ticari amaçla tercih edilebilir. mesela ben bir proje için udk kullanmaya karar vermiştim. ama projenin bütçesine onay çıkmayınca kaldı. udk ile pek programlaya bulaşmadan güzel bir fps geliştirilebilir.

     

    ikinci seçenek daha hobi amaçlı, yada daha spesifik ticari amaçlar için tercih edilebilir.

    özellikle uzun vadeli oyun sektöründe yer edinmek isteyecek arkadaşların ikinci seçenek tercihi olmalı.

     

    Çalıştığım sektörde arada interaktif çalışmalar yapıyorum. dokunmatik ekranlarda insan etkileşimli basit oyunlar yada bazen oldukça karmaşık grafikler yapmam gerekiyor.

    bunun için benim takım çantamda şunlar var.

    içerik üretmek için:

    -3ds max.

    -photoshop

    -flash

    -after effects / premiere

    scripting ve programlama için :

    -c++

    -python

    -actionscript

     

    bunların yanında sık kullandığım c++ ve python kütüphaneleri var.

    -gtk, cairo, gtkglext

    -pygame, python image library

     

     

    programlamayla yeni tanışacak arkadaşların python dilini tercih etmesini tavsiye ederim. zilyon tane modül ve kütüphanesi var. bir çok konuda uzman olmanıza çok gerek olmadan kütüphaneler sayesinde pek çok şeyi kolayca yapabilirsiniz.

    ----------------------------------------------------------------------------

    şimdi de teknik açıdan iyi bir oyunun nelere ihtiyacı olduğuna bir bakalım.

    oyunun türüne göre performans ihtiyacı...

    bir oyunu yapmaya başladığınızda, senaryodan sonra belirlemeniz gereken ikinci kriter performans gerekliliğidir.

     

    örneğin çok hareketli grafikleri olmayan, çok hızlı akmayan, çok hızlı tepki ve yoğun efekt içermeyen 2 boyutlu bir oyun çok ciddi bir işlem performansı gerektirmeyecektir.

    dolayısı ile böyle bir oyunu hangi programlama dili ile hazırladığınızın yada hangi script dili kullandığınızın veyahutta hangi oyun motorunu seçtiğinizin bir önemi olmayacaktır. işinize geleni seçip yolunuza devam edebilirsiniz.

    ancak yoğun efektler içeren üç boyutlu ve yer yer ağır poligon yükü gerektirecek bir oyun tasarlamışsanız iş biraz daha karmaşıklaşacaktır.

    bu şartlar altında rastgele bir programlama dili yada oyun motoru tercih edemezsiniz.

    örneğin unity çok iyi bir motor olabilir. ama insanların yürüdüğü yoğun bir hareketli şehirde ölüm yarışı oyunu yapmak isterseniz muhtemelen unity apışıp kalır :)

    -----------------------------------------------

    oyunun ihtiyaçlarını iyi belirlemelisiniz.

    - yoğun efekt ve grafikler var mı?

    - yoğun fizik simülasyonları ve ciddi fizik hesapları gerekecek mi?

    - yapay zeka gerekiyor mu? ne kadar ciddi bir yapay zeka gerekiyor?

    mesela super mario gibi bir oyun tasarladınız.

    - yoğun grafikler ve efektler yok...

    - yoğun fizik simülasyonları ve ciddi fizik hesapları yok.

    -yapay zeka neredeyse yok bile değil :)

    unity biliyorsunuz ama, bu oyunu unity ile yapmak saçma olur...

    temel grafikleri yapabilen ve en az bir programlama dilinde yeterli olan birisi, bir oyun motoruna yada yeni bir geliştirme ortamına adapte olmakta zaten çok zorluk çekmez.

     

    senaryonuzu belirleyin. ihtiyaçlarınızı belirleyin. bu ihtiyaçları karşılayan geliştirme ortamını belirleyin. bolca kahve stoğu ve uykusuz geceleri sırtınıza yüklenip tekme tokat dalın :)

     

    valla yazdım yazdım okumadan kaydet'e basıyorum. bakalım nolcak :D

     

    2011-08-17 21:23:53

    normal bi ekran kartının

    chrome_nickelkadir ilkimen

    normal bi ekran kartının milyonlarca poligonu 1 saniyede işlediği günümüzde 9000 poligon pek önemsiz sayılır. iyi bir 3d motoru bana göre en az 200 - 300 bin poligonu evirip çevirebilmesi icab eder :)

    2011-08-15 11:58:13