Rehber Oyun Nasıl Yapılır? #1

Evet daha önce oyun nasıl yapılır diye bir rehber hazırlamıştım ama bu rehberleri oyun yapmaya meraklı olan arkadaşlar için seri haline getirmek istedim. (Öncekini giriş kabul ettiğim için buna #1 dedim)

Oyun Nasıl Yapılır #1: Kullanılacak Oyun Motorunu Seçmek​

Önceki rehberde de oyun motorlarının ne olduğunu ve nasıl çalıştığını anlatmıştık bu rehberde ise oyun yapmak için hangi oyun motorunu kullanmalısınız, hangi oyun motoru hangi konularda iyidir... Bunlara değineceğiz.

En İyi Oyun Motoru Nedir?​

Önceki rehberde de söylemiştim en iyi oyun motoru diye bir şey yoktur, her oyun motorunun iyi ve kötü yaptığı şeyler vardır. Her oyun motorunun artı ve eksileri vardır dolayısıyla en iyi oyun motoru yoktur. (Örnek: Unreal mesela çok iyi 3B oyunlar yapabilirsiniz ancak 2B oyun yapmaya gelince kim neden Unreal ile 2B bir oyun yapsın ki? Elbet de yapabilirsiniz ama ne kadar kaliteli olacağı tartışma konusudur.)

Hangi Oyun Motorunun Ne Gibi Artı ve Eksileri Vardır?​

O zaman gelelim asıl mevzuya hangi oyun motorlarının ne gibi artı ve eksileri vardır, neye göre seçim yapmalıyız? Bunun için ilk yapmanız gereken şey ihtiyaçlarınızı belirlemektir. Amacınızı belirleyin neden ve nasıl bir oyun yapmak istiyorsunuz buna karar verin. Ben araştırmalarım sonucu çok kullanılan kimi oyun motorlarının kabaca artı ve eksilerinin neler olduğunu aşağıya bırakıyorum ama bununla yetinmeyip daha detaylı araştırmak isterseniz sizin yararınıza olur tabii.

Unreal Engine'i günümüzde özellikle büyük çaplı yapımlarda görüyoruz ve oldukça da yaygın bir oyun motoru. Oyun motoruna bakacak olursak C++ diliyle yazıldığını görüyoruz. Ancak Unreal'da kod yazmak için illaki C++ bilmek zorunda değilsiniz çoğunuz biliyorsunuzdur zaten Şablon sistemini, uzun uzun açıklamaya gerek yok diye düşünüyorum. Şunu da belirtelim şablon sistemi elbette ki yeni başlayanlar için gayet güzel bir seçenektir, şablon sistemi ile güzel oyunlar da yapabilirsiniz ama bu alanda iş bulmayı düşünüyorsanız kod yazmayı da bilmenizde fayda vardır. Unreal Oyun Motoru yeni başlayanlar için gayet uygun ama Unreal'ın en büyük eksisi ise sadece 3B oyunlar yapılabilmesi (aslında 2B oyun da yapabilirsiniz ancak ne kadar kaliteli olacağı tartışılır). Unreal Oyun Motoru özellikle güzel görselliğe sahip 3B oyun yapmak isteyenler için uygun bir oyun motorudur. Yeni başlayanlara güzel artılar sağlar.(Not: Evet Unreal görsellik konusunda gayet yardımcı oluyor (çıkan oyunlardan belli zaten) ancak bu Unreal ile yapılmış her oyun muazzam görselliğe sahip olacak demek değildir (Oyun motorları görselliğin iyi olmasına yardımcı olabilir belki ama görselliği asıl iyi yapan kişinin yeteneğidir))

Unity biliyorsunuz zaten. Unity ile hem 2B hem 3B oyunlar yapabilirsiniz, güzel görsellik elde edebilirsiniz... Ama en önemlisi Unity'nin topluluğu Unity piyasada yıllardır bulunan, kendisini kanıtlamış ve bu yüzden en büyük kullanıcı kitlesine sahip olan oyun motoru. Unity'yi Unity yapan 2 temel neden var; birincisi bahsettiğim o dev topluluğu, ikincisi de Unity'nin serbestliği serbestlikten kastım şu; Unity'de 2B, 2.5B, 3B oyunlar, strateji, aksiyon... Aklınıza gelen fikirlerin büyük çoğunluğunu Unity ile yapabilirsiniz (not: Aklınıza gelen fikirlerin çoğunu yapabilirsiniz demek hepsini yapabilirsiniz demek değildir, her motorun ve yazılım dilinin belli sınırları vardır) bu da Unity'yi bu kadar değerli kılan şeylerden birisi. Ve son olarak, Unity'nin kullandığı yazılım dili? Sonuçta bir oyun motorunu değerli kılan en temel şey kullandığı dildir. Unity çoğunuzun bildiği gibi C# yazılım dilini kullanıyor. C# dili oyun yapımı için en uygun dillerden birisi hatta belki de en iyisi Unity ile istediğiniz neredeyse her tür oyunu yapabilecek olmanızın sebeplerinden birisi de C# kullanmasıdır. Sonuç olarak Unity ile istediğiniz çoğu fikri hayata geçirebilirsiniz, Topluluğundan yararlanabilirsiniz, internetteki istemeyeceğiniz kadar çok kaynaktan kullanımını öğrenebilirsiniz ve oyun geliştiricisi olmak istiyorsanız Unity'deki tecrübeleriniz ile daha ileri gidebilirsiniz.

Şu makalemde Godot Oyun Motorundan çok daha detaylı biçimde bahsetmiştim.
Godot oyun motoru ücretsiz, açık kaynak kodlu ve kaliteli bir oyun motorudur (açık kaynak kodlu). Hem 2B hem 3B destekleyen bir oyun motoru. GDScript dilini kullanıyor Python'dan geliştirilmiş bir dil ve eğer Python bilirseniz öğrenmeniz gayet kolay olacaktır (gerçi Python bilmiyorsanız da o kadar zor değil). Godot Motoru özellikle 2B oyunlar konusunda oldukça başarılı. 3B oyunlar konusunda ise görsellik açısından çok bir şey katmıyor size (en azından şimdiki sürümünde(3.2) yakında çıkması beklenen 4.0 sürümünde gösterdikleri videolara bakacak olursak 3B kısmını bayağı ilerletmişler). Bu oyun motorunun muazzam yaptığı şeylerin başında ise optimizasyon geliyor (optimizasyon: Bir programın daha az sistem kullanarak ve akıcı şekilde çalışması programın optimizasyonudur) hem oyun motorunun hem de oyun motorunda yapılan oyunların optimizasyonu çok iyi. Bu motor açık kaynak kodlu olduğu için arkasında duran bir firma yok tamamen gönüllü bir ekip tarafından insanların yaptığı bağışlarla geliştiriliyor. Bu yüzden oyun motoru tamamen ücretsiz ve açık kaynak kodlu bu güzel bir durum ancak eğer siz bir oyun geliştiricisi olup da bir oyun şirketinde iş bulmak istiyorsanız işin rengi değişiyor. Oyun firmaları oyunlarında Godot'un geliştirildiği Python gibi diller yerine C# ve C++ gibi diller tercih ediyorlar (bunun sebebi de oyun yapımında daha iyi olmaları ama bu demek değil ki Python ile oyun yapamazsınız (zaten yapılamayacak olsaydı oyun motorunu geliştiren adamlar kullanmazdı) ve aynı zamanda C# veya C++ın Python'dan dah iyi olduğu anlamına falan da gelmiyor ki ben hem oyun motorları hem yazılım dilleri için daha iyi ya da en iyi yoktur diye hepsinin yapılış amacı farklıdır ve farklı konularda çeşitli artı veya eksileri vardır diye) ve siz bir iş görüşmesinde bakın ben Godot ile şöyle bir oyun yaptım derseniz elbette bu güzel bir şeydir ama o kadar da umursayacaklarını zannetmiyorum nedeni de söylediğim gibi oyun firmaları C# ve C++ gibi dilleri kullanan oyun motorlarını tercih ettikleri için Python ya da Python tabanlı başka bir dille yapılmış oyunlar temel mantığı anlamak dışında size pek katkı sağlamaz. Aslında Godot halihazırda piyasada bulunan en kaliteli oyun motorlarından birisi fakat Godot'un iki büyük eksiği var bir, arkasında duracak ve onun sürekli hem reklamını hem savunuculuğunu yapacak bir şirket; iki, kalitesini kanıtlamak için gerekli süre. Godot nispeten yeni bir motor olduğu için henüz oyun motorunun kalitesini kanıtlayacak türden bir oyun çıkmadı ve her ne kadar oldukça yukarılara tırmanmış olsa da hala geliştirilen bir motor ve alacağı çok yol var.(Yakında 4.0 sürümü çıkacak, zaten kaliteli olan motorun 3B kısmı başta olmak üzere birçok kısmını geliştirmişler bu oyun motoru 4.0 ile daha da yükselebilir)

Game Maker Studio (GMS) kullanması gayet kolay bir oyun motorudur ancak paralıdır ve fiyatı biraz tuzludur (sonradan öğrendim ücretsiz bir deneme sürümü de varmış). GMS Game Maker Language (GML) denilen kendine özgü dilini kullanır ve kullananların dediğine göre öğrenmesi ve kullanması gayet basit ve pratik ancak kimi konularda yetersiz bir dilmiş. Game Maker Studio basitliği ile bilinse de Game Maker Studio ile yapılmış güzel oyunlar var (örnek: Undertale, Hotline Miami).
Game Maker Studio eğer paranız varsa ve şöyle basit bir 2B oyun geliştireyim sonra kendimi geliştirir oyun motorunda uzmanlaşınca daha üst seviye işlere girişirim derseniz iyi bir seçenek olabilir fakat oyun motoru artık biraz eskimeye başladı. Oyun motoru artık rakiplerinin gerisinde kalmaya başladı. Biraz araştırırsanız görürsünüz Game Maker Studio 2 artık eskidi ve geliştiriciler başka oyun motorlarına yönelmeye başladı. (Tabii bizim ülke maalesef gelişmeleri geriden takip ettiği için henüz bizim ülkede henüz pek etkisi olmuyor)

RPG Maker ücretli bir oyun motorudur. Adından da anlaşılacağı üzere RYO türünde oyunlar yapmak için geliştirilmiştir. RPG Maker eğer ki bir RYO oyun yapmak istiyorsanız gayet güzel bir seçenek olabilir. Fakat burada eğer bir başka türde bir oyun yapmak istiyorsanız bu çok zordur çünkü oyun motoru buna göre geliştirilmemiş ve farklı türdeki oyunlar için birden çok oyun motorunu aynı anda kullanmak o kadar da mantıklı bir hareket olmaz bir oyun motorunu seçtikten sonra o oyun motorunda uzmanlaşmak en iyisidir ki burada Unity, Godot ve Game Maker Studio gibi oyun motorları ile de RYO geliştirebilirsiniz. Son olarak da evet RYO oyun yapmak konusunda iyi olabilir ancak günümüzde artık eskimiş olduğu da bir gerçek.

Ve son olarak CryEngine. CryEngine Crytek firmasının bunu zaten biliyorsunuzdur ve bunu biliyorsanız firmanın oyunlarını ve görüntü kalitesini de biliyorsunuzdur. Oyun motoruna görsellik konusunda diyecek bir şey yok. Peki alıp kullanmak ne kadar mantıklı? CryEngine'i öğrenmek vakit alır ve yeni başladıysanız zor olabilir. Şu anda CryEngine 5.6 sürümünde ve benim gördüğüm kadarıyla hem yeni hem eski sürümü öğrenmek için yeterince Türkçe kaynak var ama en çok kaynak CryEngine 3 üzerine olan kaynaklar biraz daha fazla. Günümüzde ise CryEngine eskisi kadar tercih edilmiyor bağımsız geliştiriciler arasında onun yerine Unreal'a yöneliyorlar. İsterseniz alıp, öğrenip kullanabilirsiniz. CryEngine'in görselliğinden bahsetmiştim ya işte o görselliği oluşturabilmek için sizin sadece yeteneğe değil kaliteli bir bilgisayara da ihtiyacınız var. Bunların dışında CryEngine'de tıpkı Unreal gibi C++ kullanıyor ayrıca şu anda kullanılan güncel sürümünde Unreal benzeri bir şablon sistemi de var. Yeni sürümü de gayet iyi anlayacağınız.

Çok uzun açıklama yapmaya gerek yok. Blender'a bağlı bir 3B oyun motoru. Şablon sistemi kullanıyor. Daha yeni yeni gelişiyor ama yine de buraya eklemek istedim.

Sonuç:​

Ben şimdi buraya sadece birkaç tane oyun motoru yazdım ama bunların dışında da daha bir sürü oyun motoru var ve hepsini yazmam pek mümkün değil ama zaten size tavsiyem burada yazanlar ile yetinmeyip daha detaylı araştırma yapmanızdır. Oyun motoru seçmeye gelince başta da belirttiğim gibi hiçbir oyun motoru ötekinden daha iyi değildir, her oyun motorunun kendisine göre artı ve eksileri vardır. İhtiyaçlarınızı göz önünde bulundurarak size en uygun oyun motorunu seçin.


Not: Son bir tavsiye oyun yapmaya başlamadan önce İngilizce öğrenin.
 
Son düzenleyen: Moderatör:

HarKo

Zeptopat
Katılım
10 Şubat 2021
Mesajlar
14
Yer
C:/Dünya/Türkiye/Bursa
Hocam Lenovo ideapad100s

2gb ram
240 gb ssd
Intel(R) Celeron(R) CPU N3060 @ 1.60GHz 1.60 GHz

kullanıyorum. 2d oyun yapmaya girişeceğim. Önce biraz c++ bildiğimden Unreal Engine kullanayım dedim ama malum ram düşük olduğndan olmadı. Sizce hangi oyun motorunu kullanmalıyım, araştırmaya çalışıyorum da size de sorayım dedim.
 
KS
900

900

Picopat
Katılım
24 Kasım 2020
Mesajlar
739
Makaleler
5
Hocam Lenovo ideapad100s

2gb ram
240 gb ssd
Intel(R) Celeron(R) CPU N3060 @ 1.60GHz 1.60 GHz

kullanıyorum. 2d oyun yapmaya girişeceğim. Önce biraz c++ bildiğimden Unreal Engine kullanayım dedim ama malum ram düşük olduğndan olmadı. Sizce hangi oyun motorunu kullanmalıyım, araştırmaya çalışıyorum da size de sorayım dedim.
İlk başta RAM'i 4 gb yapmanızı öneririm. 2 GB RAM ile biraz zor.
Oyun motoru olarak Godot Engine deneyin derim. RAM'i de 4GB yaparsanız belki birkaç donma yaşarsınız ama büyük bir sorun yaşamazsınız muhtemelen. GDNative yardımı ile C++ da kullanmanıza izin verir. 2B oyunlar konusunda da iyidir.
 
Yukarı