AA ve AAA oyunu geliştirme de bazı temel kavramlardan bahsetmek istiyorum.
Öncelikle bu tip bir oyun geliştirmeye giriştiğiniz de ekibiniz de olması gerekenler;
Oyun Programcısı ve Programcı;
Animasyonları, hareketleri, ışıklandırmaları, sesleri entegre etme, efektleri, oyunun fiziğini, grafiğini ve temel kaynak kodlarını oluşturur. 3B sanatçısı ile bağlantılı çalışır.
Ve yine yukarıda saydığım özelliklere göre bir çok farklı programcı vardır. Hepsini tek kişi yapmaz herkesin alanı ve bilgisi farklıdır bu yüzden bir ekipte bir çok programcı olur. Yani motor programcısı, fizik programcısı, grafik programcısı, yapay zeka programcısı gibi gibi. Profesyonel oyun yapımlarında işler bu şekilde ilerler. Zaten diğer türlü 1 aylık iş 1 yıllık olur. Tabi yapılan iş ve o işin kalitesine göre değişir.
Modelleme;
3D Artist Türkçe deyimi ile 3B sanatçı. Öncelikle Senarist ve Programcı ile bağlantılı çalışır. Oyunun hikayesine göre tasarlanan veya oluşturulan görüntüleri modeller. Modelleme yine kendi içinde bir çok dala ayrılır. Çevreyi veya ortamı modelleyen, karakterleri modelleyen ve konseptleri modelleyen bunların her biri farklı alandır her birini farklı 3B sanatçılar yapar. Oyun yapımında en uzun süreçlerden birisidir.
Geliştirici;
Developer olarak da bilinen temel olarak yazılımı yanında programlama bilen kişilere denir. Yoğunluk olarak oyun motoruna odaklıdır. Yapılan işleri kontrol eder ve hataları bulur. Ekip ile iletişim halinde olur ve oyunun çalışması ve yayınlamasını sağlar. Profesyonel ekiplerde bir çok geliştirici olur. Çünkü her geliştiricinin alanı ve bilgisi aynı değil.
NOT: Bir oyunun modellerini, programlamasını, tasarımlarını ve kodlamalarını yapan tek kişi olmadığı sürece yani ekipte bu işleri yapan birileri varsa geliştirici çıkıp tek başıma geliştirdim diyemez. Bu yüzden tek başıma oyun yaptım yada geliştirdim diyenlerin %99'u yalandır. Sırf ekipte tek geliştirici olduğu için yapılan işi ön plana atma amacıyla yapılan bir PR çalışmasıdır. Genellikle bu tip oyunlarda kritik hatalar, denge sorunları ve optimize sorunları olur. Çünkü kendisi yapmıyor. Amatör bir ekip kuruyorlar ekibi geri plana atıyorlar. Arka planda modelleri yapan başkası, oyunu programlayan başkası bunu geç hazır model bile alınsa kimse bunu tek başıma yaptım diyemez. Sonra emeklerinizi çöp edersiniz.
Amatör bir ekip kurularak işte yukarıda saydığım temel kavramları ortalama olarak bilen kişiler toplanıp iletişim halinde oyun çıkartabilir. Ekip çalışması çok çok önemlidir. Türkiye de başlangıç olarak 5-10 kişilik ekipler kurup deneyenler oluyor ama ekip çalışmasını başaramıyorlar. Sonra oyun çıkmadan ya telife takılıyor yada yarı yolda pes ediyorlar. Bazen daha başlamadan ekip dağılıyor :d.
NOT2: AAA oyun yapımı diğer oyun yapımları gibi değildir. Mobil oyunlar, 2D veya basit 3D oyun yapımları ile kesinlikle kıyaslanamaz. Çünkü onlardan kat, kat ve kat daha zordur.
AAA oyun yapımları. Daha fazla bilgi, daha fazla zaman, daha fazla ekip ve daha fazla ekipman ister.
NOT3: Programcılık bir bölümdür. Ve bir sürü mesleği vardır. Bunların hepsinin içeriği farklıdır.
Örneğin;
Grafik/Görsel programlama:
Oyunun görsel veya grafik kalitesini yükseltmek oyunu görsel açıdan daha gerçekçi hâle getirmek için kullanılan bir programlama tekniğidir. Görsel programlama modelleme programlarının kendi editörleri ile yapılır tabi bu görsel programlama çeşidi oyun yapımlarına özel olduğu için bunu öğrenmesi biraz uzun sürebilir o yüzden örneğin Blender programı ile bir model üzerine Python dilinde de görsel veya grafik programlama yapılabilir. Yani modelleme programının editörü ile eklediğin materyali Python dilini kullanarak da ekleyebilirsin. Python programlama okuyanların temel olarak gördüğü bir konu tabi diğerini bilemedin bunu bilirsin diye bir şey söz konusu değil. Yine oyun programlama üzerine bir temel ve bilgi şart çünkü kelimeler aynı olsa da kullanımları farklı :d. Kullanmasam da göz atmışlığım ve denemişliğim var.
Fizik Programlama;
Yine oyunu oynanış açısından oyuncuya hissetirmek gerçekçiliği sağlamak için kullanılan bir programlama teknğidir. Modelleme programlarında ki Fizik veya Animasyon özellikleri kullanılarak yapılabilir lakin aynı şekilde Python dilini kullanarak da yine bir modele fizik programlama yapılabilir. Örneğin hareketli yani rüzgar değmiş gibi sallanan bir perde veya darbe ile kırılan veya yıkılan bir duvar bu oyunun fiziğidir. Oyuna realistik katar.
Yapay Zeka (Al) Programlama;
Oyunda ki karakterlerin hareketlerini oluşturur. Kemik ve animasyonlar ile oyunda ki karakterlerin davranışlarını simüle eder. Yine modelleme programlarında ki özellikler ile yapılabilir aynı zamanda yine Python dili ile de bir karaktere animasyon yapılabilir.
Scripter/Programcı;
Kaynak kodlarını hazırlar.
Ses Programcısı;
Oyunu oyuncuya yaşatan şeylerden biride kuşkusuz oyunda ki arka fonlardır. Yapılan mekana uygun müziği ses programcıları oluşturur.
Şu anlık verebileceğim bilgi bu kadar.
Öncelikle bu tip bir oyun geliştirmeye giriştiğiniz de ekibiniz de olması gerekenler;
- Programlama(Oyun Programcısı, Programcı),
- Modelleme(3D Artist),
- Geliştirici (Yazılımcı-Programcı),
- Tasarım (Grafiker),
- Hikaye (Senarist),
- Sesler (Müzisyen).
Oyun Programcısı ve Programcı;
Animasyonları, hareketleri, ışıklandırmaları, sesleri entegre etme, efektleri, oyunun fiziğini, grafiğini ve temel kaynak kodlarını oluşturur. 3B sanatçısı ile bağlantılı çalışır.
Ve yine yukarıda saydığım özelliklere göre bir çok farklı programcı vardır. Hepsini tek kişi yapmaz herkesin alanı ve bilgisi farklıdır bu yüzden bir ekipte bir çok programcı olur. Yani motor programcısı, fizik programcısı, grafik programcısı, yapay zeka programcısı gibi gibi. Profesyonel oyun yapımlarında işler bu şekilde ilerler. Zaten diğer türlü 1 aylık iş 1 yıllık olur. Tabi yapılan iş ve o işin kalitesine göre değişir.
Modelleme;
3D Artist Türkçe deyimi ile 3B sanatçı. Öncelikle Senarist ve Programcı ile bağlantılı çalışır. Oyunun hikayesine göre tasarlanan veya oluşturulan görüntüleri modeller. Modelleme yine kendi içinde bir çok dala ayrılır. Çevreyi veya ortamı modelleyen, karakterleri modelleyen ve konseptleri modelleyen bunların her biri farklı alandır her birini farklı 3B sanatçılar yapar. Oyun yapımında en uzun süreçlerden birisidir.
Geliştirici;
Developer olarak da bilinen temel olarak yazılımı yanında programlama bilen kişilere denir. Yoğunluk olarak oyun motoruna odaklıdır. Yapılan işleri kontrol eder ve hataları bulur. Ekip ile iletişim halinde olur ve oyunun çalışması ve yayınlamasını sağlar. Profesyonel ekiplerde bir çok geliştirici olur. Çünkü her geliştiricinin alanı ve bilgisi aynı değil.
NOT: Bir oyunun modellerini, programlamasını, tasarımlarını ve kodlamalarını yapan tek kişi olmadığı sürece yani ekipte bu işleri yapan birileri varsa geliştirici çıkıp tek başıma geliştirdim diyemez. Bu yüzden tek başıma oyun yaptım yada geliştirdim diyenlerin %99'u yalandır. Sırf ekipte tek geliştirici olduğu için yapılan işi ön plana atma amacıyla yapılan bir PR çalışmasıdır. Genellikle bu tip oyunlarda kritik hatalar, denge sorunları ve optimize sorunları olur. Çünkü kendisi yapmıyor. Amatör bir ekip kuruyorlar ekibi geri plana atıyorlar. Arka planda modelleri yapan başkası, oyunu programlayan başkası bunu geç hazır model bile alınsa kimse bunu tek başıma yaptım diyemez. Sonra emeklerinizi çöp edersiniz.
Amatör bir ekip kurularak işte yukarıda saydığım temel kavramları ortalama olarak bilen kişiler toplanıp iletişim halinde oyun çıkartabilir. Ekip çalışması çok çok önemlidir. Türkiye de başlangıç olarak 5-10 kişilik ekipler kurup deneyenler oluyor ama ekip çalışmasını başaramıyorlar. Sonra oyun çıkmadan ya telife takılıyor yada yarı yolda pes ediyorlar. Bazen daha başlamadan ekip dağılıyor :d.
NOT2: AAA oyun yapımı diğer oyun yapımları gibi değildir. Mobil oyunlar, 2D veya basit 3D oyun yapımları ile kesinlikle kıyaslanamaz. Çünkü onlardan kat, kat ve kat daha zordur.
AAA oyun yapımları. Daha fazla bilgi, daha fazla zaman, daha fazla ekip ve daha fazla ekipman ister.
NOT3: Programcılık bir bölümdür. Ve bir sürü mesleği vardır. Bunların hepsinin içeriği farklıdır.
Örneğin;
- Web Programcısı,
- Oyun Programcısı,
- Veri Tabanı Programcısı,
- Ağ Programcısı,
- Ses Programcısı...
- Çevre ve ortam modelleme,
- Konsept Modelleme,
- Karakter Modelleme,
- İç-dış mimari modelleme...
Grafik/Görsel programlama:
Oyunun görsel veya grafik kalitesini yükseltmek oyunu görsel açıdan daha gerçekçi hâle getirmek için kullanılan bir programlama tekniğidir. Görsel programlama modelleme programlarının kendi editörleri ile yapılır tabi bu görsel programlama çeşidi oyun yapımlarına özel olduğu için bunu öğrenmesi biraz uzun sürebilir o yüzden örneğin Blender programı ile bir model üzerine Python dilinde de görsel veya grafik programlama yapılabilir. Yani modelleme programının editörü ile eklediğin materyali Python dilini kullanarak da ekleyebilirsin. Python programlama okuyanların temel olarak gördüğü bir konu tabi diğerini bilemedin bunu bilirsin diye bir şey söz konusu değil. Yine oyun programlama üzerine bir temel ve bilgi şart çünkü kelimeler aynı olsa da kullanımları farklı :d. Kullanmasam da göz atmışlığım ve denemişliğim var.
Fizik Programlama;
Yine oyunu oynanış açısından oyuncuya hissetirmek gerçekçiliği sağlamak için kullanılan bir programlama teknğidir. Modelleme programlarında ki Fizik veya Animasyon özellikleri kullanılarak yapılabilir lakin aynı şekilde Python dilini kullanarak da yine bir modele fizik programlama yapılabilir. Örneğin hareketli yani rüzgar değmiş gibi sallanan bir perde veya darbe ile kırılan veya yıkılan bir duvar bu oyunun fiziğidir. Oyuna realistik katar.
Yapay Zeka (Al) Programlama;
Oyunda ki karakterlerin hareketlerini oluşturur. Kemik ve animasyonlar ile oyunda ki karakterlerin davranışlarını simüle eder. Yine modelleme programlarında ki özellikler ile yapılabilir aynı zamanda yine Python dili ile de bir karaktere animasyon yapılabilir.
Scripter/Programcı;
Kaynak kodlarını hazırlar.
Ses Programcısı;
Oyunu oyuncuya yaşatan şeylerden biride kuşkusuz oyunda ki arka fonlardır. Yapılan mekana uygun müziği ses programcıları oluşturur.
Şu anlık verebileceğim bilgi bu kadar.
Son düzenleyen: Moderatör: