Teknolojix Haber
OYUN YAZILIM

Unity Nedir? Unity 3D İle Oyun Yapımı

unity

Unity nedir? Unity aslında oyunları PC’ye yüklemeden internet üzerinden oynanabilmesini sağlamak üzere tasarlamış bir oyun motoruydu. Ama gelişime karşı koyamadı ve 3 boyutlu oyun yapabilmeyi sağlayan bir oyun motoru oldu. Bu oyun motoru, Unity Engines eliyle C/C++ programlama dilleri kullanılarak geliştirilmiştir. Unity4.0 sürümünde ise C#, Java, DirectX ve Boo programlama dilleri sayesinde oyun geliştirilmesine destek olur. Unity arayüzü ise aşağıdaki resimde olduğu şekildedir.

unity

Neden Unity Kullanmalısınız?

Çünkü Unity kullanımı çok basit olan bir oyun motorudur. Kullanımı küçük bir çocuğun ya da 60 yaşında bir teknoloji meraklısının dahi kolayca algılayabileceği şekilde tasarlanmıştır.

Girişimci oyun yapıcılar ve acemi oyun yapıcılar için biçilmiş kaftandır.

Diğer oyun motorlarına kıyasla bilgisayardan 8 adet farklı, Wii, PS3 ve İOS gibi platformlarda aynı anda kullanılabilir.

CryEngine ve ya Uneral Engine tarzında olan oyun motorlarına geçişi kolaylaştırmak adına iyi bir antrenman sahasıdır.

Eğer bir oyun geliştirirseniz ve tutulursa 100.000 indirme ve ya kullanıcıya kadar herhangi bir gelir paylaşımı talep etmez.

Web Player sayesinde yükleme ihtiyacını en aza indirir.

C# ve JavaScript programlama dilleri oldukça yaygın olarak kullanıldığı için bu dilleri bilenlere pek yabancılık çektirmez.

Unity Mobilde Oyun Yapma

Teknoloji, kodlama bu kadar yaygın kullanıma sahipken oyun geliştirmenin de hobi haline gelmiş olması şaşırtıcı olmaz. Önceden programlama dilleri bu kadar yaygın olarak bilinmezken yazılım şirketleri ve mühendisler oyun geliştirmekle uğraşırlardı. Ama artık bu işi seven ve meraklı olan herkes oyun yapabilir. Peki, bir oyun programı yapma basamakları nelerdir?

  • Senaryo
  • Araçlar
  • Programlama dili
  • API arayüz yardımcıları
  • Yapay zekâ
  • Yapılış

Senaryo

unity

Senaryo, değişken bir yapıda ve sürekli esnek olmalıdır. Şimdi bir oyun taslağı ele alınacak olursa;

  • Tasarlayacağımız oyundaki karakterlerin ana hatları ile belirlenmesi gerekmektedir.
  • Oyundaki karakterlerin yaşları, mahiyetleri( canavar mı, robot mu, insan mı, syborg mu, araç mı?)
  • Karakterler başka bir düşman karakterle karşılaşınca ne yapacaklar?
  • Karşı karakterlerin hareketleri neye göre olacak?
  • Oyun alanı ne kadar büyüklükte olacak?
  • Grafikler 3 boyutlu mu olacak?
  • Oyun kontrolü klavye ile mi Mouse ile mi sağlanacak?
  • Oyundaki leveller nasıl olacak
  • Oyun puanlaması nasıl olmalı
  • Karakterlerin hızları nasıl
  • Oyunun ismi ne olacak
  • Oyunda kullanılacak olan yapay zekâ nasıl olacak (yapay zekâ direk olarak oyuncuyu zorlayan bir faktör olduğu için oyunun oynanabilirlik seviyesini doğru ayarlamak gerekmektedir.)

Bunlar Unity üzerinden henüz oyun kurma sürecinin planlama aşamalarıdır. Bu planlama ile oyundaki çalışmalar çok isabetli şekilde ilerleyecektir. Örnek üzerinden bunları açıklamak çok daha anlaşılır olabilir. Diyelim ki; ormanda ilerlemeyi ve hayatta kalmayı gerektiren bir oyun tasarlamak istiyoruz. Burada oyunumuzun başkarakteri için belirlediğimiz karakterler olacaktır. Rambo, Hulk, Tarzan, Ninja, Kızılderili, Aborjin, Sonya, Lara, Freya olarak karakterleri belirledik. Karakterlerin her birinin yapabileceği işleri de belirlemeliyiz. Her bir oyuncunun kendine has yetenekleri ve silahları olmalı. Oyun sırasında karakterin karşısına çıkabilecek düşmanlar ve tehlikeleri belirlemeliyiz. Oyunun 3 boyutlu mu yoksa 2 boyutlu mu olacağını mutlaka belirlememiz gerekir. Oyun süreli mi olacak yoksa canımız bitene kadar mı oynayacağız? Canımızı şarj edebilmek için aralara bazı ödüller eklemeliyiz. Oyunu kontrol ederken ve hamle yaparken klavye mi Mouse mu kullanılacak? Bu detaylardan başka pek çok detaya yer vermeli ve bunların hepsini önceden planlamalıyız.

Ekran Ayrıntıları ve Oyun Kontrol

unity

Oyunumuzun ekran çözünürlüğü hakkında kararlar vermeliyiz. Önceden mi ayarlanacak yoksa oyun esnasında da ayarlanabilir mi? Giriş Menüleri hakkında bir şablon çıkarmalıyız. Oyun esnasında ekran butonu olmalı mı? Hızlı çıkış, kayıt gibi tuşların kullanımı aktif mi olacak? Oyun çoklu girişe izin verecek mi? Yani birden fazla kişiyle oynanabilecek mi? Bunun gibi konular üzerinde de düşünüp her biriyle teker teker ilgilenmek gerekiyor.

Araçlar

Unity ile oyun yapım aşamasında pek çok araç kullanmamız gerekebilir.

  • Photoshop: desen ve nesnelerin tasarımı oyuna yerleştirilmesi için bu çeşit programlara ihtiyaç vardır.
  • 3D çizim aracı: Oyundaki modelleri ve mekânları yapabilmek için Maya, Blender, XSI, 3D MAX Studio… Gibi modelleme araçları kullanmak gereklidir. Oyundaki mekânlar, nesneler, mağaralar, nehirler, köprüler vs. gibi pek çok görsel bu programlar sayesinde gerçekleştirilir.
  • Müzik ve ses efektleri için de gerekli olan araçlardan yararlanmak gerekledir.

Programlama Dili

unity

Oyunun yapımında kullanılacak olan programlama dili de önemlidir. Bu dillerden en fazla hâkim olunan dil seçilirse çok daha başarılı bir oyun kurgulanabilir. Bu diller:

  • Visual BASIC
  • Delphi/ Pascal
  • Java
  • C/ C++
  • C#
  • CSS3
  • SQL
  • Diğerleri…..

Oyun programlamak için seçilecek dil önem taşır. Güç, OOP( nesneler için kullanılır), Hız, kullanışlılık, İngilizce, Türkçe dokümanlar ve taşınıla bilirlik önem vermemiz gereken özelliklerdir.

Bugün gördüğümüz ve oynadığımız pek çok oyunun yapımında C++ kullanılmaktadır. Bunun nedenleri arasında güçlü bir dil olması ve büyük bir kütüphaneye sahip olması ile birlikte bol miktarda İngilizce Türkçe dokümana sahip olması sayılabilir.

Programlama dili seçiminde oyun yapımında kullanılacak olan platform da önem taşımaktadır. Örneğin DirectX API Microsoft uygulaması olduğu için sadece Windows ortamında çalışmaktadır.

API Arayüz Yardımcılar

API, programda otomatikleştirmek istediğimiz olayları ve hareketleri, hava durumunu vs. argümanları otomatikleştirmeyi sağlamaktadır. Birçok alanda bağlı API bulunabilir.

Grafik API

unity

Grafik API ler programlamanın içinde gömülü olarak kullanılır. API üzerinden yapılan ya da araçlarla yapılan modellemeleri ekran çıktısı haline getiren bir kütüphane olarak tarif edilebilir. DırectX ve OpenGL gibi iki adet güçlü API bulunmaktadır. OpenGL Windows ve Unix’te çalışabiliyorken DirectX sadece Windows’ta çalışır. Görsel açıdan en iyi olan DirectX olsa da OpenGL de kullanıcısı oldukça fazla olan bir grafik API dir.

Yapay Zekâ

unity

Bu kullanıcının dışındaki karakterlerin ve olayların nasıl gelişeceği hakkında karar veren perde arkasındaki yönetmendir. Gelişen teknolojilerle birlikte yapay zekâ kütüphaneleri de oluşturulmuştur. Acemi oyun yapıcılar eğer oyunlarına entegre edebilecekleri bir durum ve ya karakter davranışı varsa sıfırdan kurgulamak yerine bu kütüphanelerden yararlanabilirler.

Oyunun Yapılma Süresi

Unity ile profesyonel anlamda bir oyun tasarlanıyorsa oyunun tüm aşamaları ve test aşamaları da düşünüldüğünde bu süre 2 ile 4 yıl arasında bir zaman olabilir. Hobi amaçlı oyun yapmak ise 3 gün ile 1 yıllık bir zaman aralığında gerçekleştirilebilmektedir. Tetris gibi 2 boyutlu, basit bir oyun için 3 gün yeterliyken bir mücadele oyunu 1 yılı bulabilir. Oyunun yapılış süresi senaryo ile bağlantılıdır.

Related posts

Android Güncellemesinde İki Güvenlik Açığı Bulundu!

Fatih Akgün

Lego Legacy ile Lego RPG Arenasında

GÜLİN DİNÇ KÖYLÜ

Koronavirus Nedeniyle PUBG Mobile Turnuvası Online Yapılacak!

Fatih Akgün

3 Yorumlar

Berke 22 Kasım 2020 at 2:30 pm

Bence unity nin en büyük artısı , ucretsiz personal editionin sürümünün unreal engine nazaran daha fazla şey barındırması. Ayrıca her platformda oyun yapmak için de ideal bir motordur. Ama profesyonel sürümün aylık ücretli olmasi tek sorunu.

Cevaplayın
ahilez 22 Kasım 2020 at 9:16 pm

elinize sağlık etkileyici bir yazı olmuş aslında elimde bir senaryom var ama birtürlü hayata geçiremiyordum ama yazınız sayesinde harekete geçmeye ve senaryoyu hayata geçirmeye karar verdim yazı çok iyi olmuş tebrikler

Cevaplayın
Orhan 22 Kasım 2020 at 9:41 pm

Merhaba,
Yazınız özellikle bir oyun geliştirmeden önce neleri planlamamız gerektiği anlamında bayağı farkındalık kattı. Teşekkürler

Cevaplayın

Yorum Yap