👉 AI ile Oyun Geliştirme #5 | Unreal Engine’i Neden Seçiyoruz?

Digital Universe Lab5,354 words

Full Transcript

Selam arkadaşlar. Digital univers

kanalına hepiniz hoş geldiniz. 1. deneyimimizin 5. bölümü ile bugün

birlikte devam ediyoruz. Neler yapacağız bu bölümde? Önce onlardan bahsedeyim.

Bir oyun projesi yapacağımızdan eee konuşmuştuk. Bu oyun projesi için

gerekli mimari dosyalarını, GDG docum'ı ve eee planlamayı yapacağız. Ve bu

planlamayı neye göre yapacağız, nasıl yapacağız, nasıl yapmalıyız? Buna kafa

patlattığımız, bunları konuştuğumuz, bunları tartıştığımız bir yayın olacak. Eee, önce oyun motorunu seçeceğiz. Oyun

motorunu seçtikten sonra daha önce ilk videoda bahsettiğim o ücretsiz asetleri

uygun oyun motoruna istinaden aramasını yapacağız. Eee, kullanabileceğimiz

projemiz için uygun olan asetleri tespit ettikten sonra eee, oyunda nasıl

mekanikler olacak ve bu asetleri e nasıl aslında günün sonunda kullanacağız?

Aslında burada biraz mühendislik tartışmış olacağız. Bunların kararını

vereceğiz. Sonrasında da bir planlama yapacağız. Eee, gerek mekanikler olsun,

gerek kullanacağımız asetler olsun, e, bunların nasıl birleştirileceği, nasıl

bir mimaride birleştirileceği ve oyunun e genel olarak çapının ne olacağı

aslında belli olacak. Bu plana istinaden de komple bir implementation plan yani

bunu hayata geçirme planı oluşturacağız. Bir tanesi mimari bir plan olacak.

Diğeri de bu mimarinin hayata geçirildiği kısım olacak aslında var.

Bunlardan birisini de seçebiliriz. Burada tamamen ekibinize, yapmak

istediğiniz oyun projesine ve aslında sizin limitlerinize bağlı. Şu an biz tek

kişilik bir kadro olduğumuz için aslında Unity'i de seçebiliriz, Unreal Engine de

seçebiliriz. E ama benim tercihim muhtemelen Unreal Engine'den yana

olacak. Çünkü ikisini de aslında kendi içerisinde karşılaştırdım. Kendi

açımdan, kendi backgroundumla alakalı da düşündüm açıkçası. Ne gibi? Mesela benim

aslında profesyonel iş hayatında kullandığım e backendeki yazılım dili

C#arp. Yani Unity tarafında çok daha rahat aslında. Hem kod yazabilirim, kodu

debaklayabilirim. E oradaki sisteme ve yapıya daha hakimim. Eee ama dil

kesinlikle size bir yazılımcı olarak engel değil. Bunu da göstermek istediğim

için bu videolarda. E Unreal Engine'in yani 5 ve üzeri olan versiyonlarından

bahsediyorum. bugünün şartlarında Unreal Engine'nin 5 ve üzeri versiyonlarında

biz C++ ve e Blueprint'ile birlikte bu ikisini harmanladığımız hibrit bir

şekilde bir şekilde bu oyunu geliştirmeye çalışacağımız bir senaryoya

gireceğiz. Aslında ben en azından kafamda o şekilde kurguladım. Şimdi

Unreal Engine'i seçtik. Neden seçtik? Dediğim gibi birincisi C++ ve blueprint

e kısmı. Kendimi C++ tarafına da geliştirmek

istiyorum. Aynı zamanda dilinde bir bariyer olmadığını anlatmak istiyorum.

İki, eee, görsel ve, eee, efektif olarak evet optimizasyon konularında biraz daha

hala zaman ihtiyacı olabilir Unreal Engine'in ama bence geleceğin ben Unreal

Engine'de olduğunu düşünüyorum. Yani, eee, hem görsel hem sinematik açıdan

oyunları ben eee, hem oyuncuyu hem ortama hem de yaşanan hikayeye daha

fazla katkı sağladığını düşünüyorum. Bu yüzden Unreal Engine'i tercih ettim.

Eee, şimdi FEB diye bir website var. Aslında şöyle aslında önce orayı bir

göstermek isterim. Şimdi siz bu işe başlayacağınız zaman

yani ilk setup'larda şöyle bir şey yapmanız gerekecek. Epic Games'e

gidiyorsunuz. Epic Games'in bir launcherı var. Şu an ekranda gördüğünüz

launcher. E önce Epic Games'in launcher'ını size bir göstermek

istiyorum. Epic Games'in launcher'ında ne var? Eee burada siz aslında tam

olarak hangi motorları yani hangi versiyonları hangi şekilde

kullanacaksınız? Buradan manage ediyorsunuz. veya işte halihazırda

geliştirdiğiniz, geliştirmekte olduğunuz projeleriniz varsa bu arayüz sayesinde

Unreal Engine üzerinde yaptığınız çalışmaları buradan yürütebiliyorsunuz.

Öyle söyleyeyim. Hatta eee FB tarafında az önce website tarafında gezeceğiz.

Şimdi oradan eee asset'lara bakacağız. O assetlerle ilgili e baktığınız,

beğendiğiniz, favorileri eklediğiniz bir şey varsa da oradaki aset listesini

burada görebiliyorsunuz. Direkt olarak bir projeyi ekleyebiliyorsunuz.

bazılarından create proje yani yeni proje oluşturabiliyorsunuz. Şimdi orada

bir fark var. Ben de bu arada Unreal Engine tarafında yeniyim. Yani sadece

size de daha iyi içerikler çıkarabilmek hem de kendi mimariye kendi kafamda daha

iyi sağlıklı oturtabilmek ve yayınların süresini daha da azaltmak adına sizden

ben genel olarak bir tık önde gidiyor olacağım. Eee o yüzden şöyle şu anda ben

bir tık aslında ufak da olsa junior seviyesinde Unreal Engine tarafında

bilgi sahibiyim. Şimdi iki şekilde asetleri kullanabiliyorsunuz.

Ya sıfırdan bir proje size generate ettiriyor. O projenin içerisinde komple

işte o animasyonlar, o blueprint'ler, o meshler yani mesh dediğimizde görsel

anlamda mesela bir iskelet düşünün. Bir oyuncunun yürüyebilmesi için bir

body'ye, bir kafaya, ayaklara ve kollara ihtiyacı var. Oyun içerisinde

konuşuyorum. Bunun eee rig dediğimiz yani kemiklerinin önce bonların

birbirine bağlandığı, eklem yerlerinin bulunduğu yerler var. Bu ayrı bir katman

aslında. Layer deniyor buna. Eee, ayrı bir katman olarak da siz bu

kemikleri işte animasyon blueprintini o kemikleri eklemlere göre yazdıktan sonra

eee, sonrasında ona şey de yapabiliyorsunuz. Mesela human da

giydirebiliyorsunuz. İşte ne bileyim monster canavar da giydirebiliyorsunuz.

Onun işte o yürüme eklemleri falan eğer okeyse üzerine oturuyorsa onun

istediğiniz şeyi kullanabiliyorsunuz. Bunlara da mesh deniyor. Skeletle mesh.

Eee, şimdi burada fark şu. Sıfırdan proje oluşturduğu zaman siz kendi

projenize bunu dahil edemiyorsunuz. Mesela şu an halihazırda bir projeniz

varsa bunun içerisine city'yi entegre etmek istiyorsanız burada city sample

dediği yerde mecburen create proje diyorsunuz. Önce City Sample kendi

projesini create ediyor. O proje create edildikten sonra onun içerisinden

kullanmak istediğiniz assetler, build'ler artık neyse neyi kullanmak

istiyorsanız onları migrate ediyorsunuz kendi projenize sonradan. Daha

sonrasında o projeyi isterseniz siliyorsunuz, istemezseniz kalıyor. Eee

ama add the proje dediği zaman da bu sıfırdan kendine bir proje generate

etmiyor demek. Sen buradan var olan bir projeye bunu mesela seçip tüm projeleri

göster dediğin zaman burada şu anda bizim projemiz yok da olsaydı açılmış

olacaktı ve işte bunu seçtik girelim yani buna yükleyelim gibi bir şey.

Eee şimdi şu engine versiyonlarından bahsedeceğim.

Engine version da şöyle önemli. Eee buraya değinmek istiyorum. Şimdi şöyle

bir şey var. Siz bir asete' bakıyorsunuz. Asetin altında bizim

gitaptaki projelerin ritmisi gibi nasıl kullanacağınız, hangi versiyonlarda

çalıştığı, demo videosu var mı yok mu, asetle alakalı bir tık daha eee

sistemsel bilgiler. Mesela bazı asetler var. Eee örnek projeler mesela Unreal

Engine'in yayınlamış olduğu proje 90 GB civarında ve 16 GB üzerinde mesela ekran

kartınız olmadan o projeyi çalıştıramazsınız diyor. Bu bilgi oraya

yazılmış. Ona göre siz hem hangi oyunculara, hangi sorsa sahip daha

doğrusu bilgisayara sahip oyunculara hitap edeceksiniz. Hem bilgisayara yani

bilgisayar derken Windows, Macintos, Linux biliyorsunuz birden fazla işletim

sistemi var ve yazdığınız oyunun çıktısını yani build alırken ona göre

almanız gerekiyor. E ayrıca işte sadece Steam'e mi e yayın alacaksınız, çıktı

alacaksınız, orada yayınlayacaksınız yoksa aynı zamanda işte Epic Games gibi

farklı Steam'e benzer platformlarda da yayın alacak mı bu oyun? E sonrasında e

bildiğiniz üzere sadece PC bazında oyunlar oynanmıyor. İşte e Xbox'lar var,

e PlayStation'lar var. Efendime söyleyeyim işte eee Nintendol'arın eee

bazı oyunları var. Sony'nin bazı oyun konsolları var. Bunlara çıkacak mı bu

oyun? eee bunların hepsinin kararının verilmesi, mimari olarak da buna göre

bir tasarım yapılması, oyun çıktısı alınacağı zaman da buna göre eee bu

plana dahil çıktı alınması gerekiyor. Eee, o yüzden siz o, eee, asetleri

seçerken mesela 10 tane aset seçtiniz kullanmak için ama bir tanesi 53'e kadar

kullanılabiliyorsa, bir tanesi 54'ten itibaren kullanılabiliyorsa doğal olarak

ya projenizi 54'e çekip 53'ten vazgeçmek zorunda kalacaksınız ya projenizi 53'e

çekip 54'ten vazgeçmek zorunda kalacaksınız. Yani iki asetten birini

seçmeniz gerekebildiği durumlar çakışıyor, konfliktler oluyor. Şimdi biz

bu asetleri seçerken buradaki versionları da dikkate alacağız. Neye

göre seçeceğiz? Yani elimizden geldiği kadar projeyi stabil bir versiona

asetleri de bu versionlarda çalışabilecek şekilde seçeceğiz. Eee,

şöyle bunu aşağıya alıyorum. Şimdi bunları sizin de kendi bilgisayarınızda

indirdiğinizi varsayıyorum bu arada. O yüzden burayı geçiyorum.

Engine version'lara gelip buradan versiyonunu, istediğiniz versiyonu seçip

sonrasında da install diyebilirsiniz. Şimdi bunu aşağıya aldım.

Şimdi okey oyun motorumuzu seçtik. Hangi asetleri kullanabiliriz?

Kullanabilir miyiz? Şimdi buradan Unreal Engine'i seçiyorum. Şimdi Unreal

Engine'i seçtikten sonra en önemli kriterimiz tabii ki de biliyorsunuz

arkadaşlar price. Price'ı buradan ücretsiz olarak free product'lara

bakacağız. Yani ücretsiz asetleri kullanacağız sadece.

Şimdi açıkçasını söylemek gerekirse tamamını bu videoda gezmeyeceğiz.

Eee şöyle bir şey yapacağız. Ben dediğim gibi daha önceden bir yere kadar aslında

projeyi çalıştım. Eee bazı asetlerin üzerinden geçeceğim sizin için. Neler

düşündüm, neler yapmayı hedefledim, neden vazgeçtim kısmını da kısaca

anlatmak istiyorum. Eee çünkü bir sebepleri var. Yani bir proje aslında

nasıl kafamda kulklanıyor, şekilleniyor, e pişiriliyor öyle söyleyeyim. Belli bir

seviyeye getiriliyor. E hangi aşamalardan geçiriyorum, hangi

beklentilerim oluyor? Onunla alakalı infolar vermek istiyorum bu kısımda.

Şimdi en çok beni eee ilk başta zorlayan şey şu olmuştu. Eee tek kişilik

bir eee geliştirme ekibi olarak daha önce ben eee birçok proje çıkarttım.

Öyle söyleyeyim. Oyun projesi haricinde. E oyun projesinde fark ne? Oyun

projesindeki fark şu. Normalde web sitelerinde veya SAS productlarında yani

business to business to business olabilir, business to e customer

olabilir. Yani hem e iş yeri seviyesinde hem de bizim gibi end userlar, insanlar

için yapılan projeler seviyesinde işlerde çalıştı. Bu işlerin en önemli

kolaylığı e UI tarafının yani user interface yani aslında kullanıcının

programı kullanırken etkileşime geçtiği ekranlar. Bu oyunlar için ne oluyor?

klavye, mouse ve eee önündeki ekran oluyor. Eee websit yani bir web sitesi

içerisinde de yine klavye, mouse ve önündeki ekran oluyor. Ama ekranların

oyun ve web sesi farkı var. Oyun içerisinde eee bazen e iki bazen üç

boyutlu dünyalar oluşturuyorsunuz ve bu dünyanın normalde web sitesinde maksimum

uyumluluk beklenti uyumluluğunuz işte orada girilen inputlar, onların

büyüklükleri, sıralaması, rengi, eee, title uzunlukları, eee, butonların

rengi, eee, kaç button olacağı, ne kadar az click yaparak bu işi

hallettirebiliyoruz bu usera gibi gibi metrikler var. Ama oyun için

konuştuğunuz zaman üç boyutlu bir dünya bu işin içerisine girdiği zaman birçok

şeyin bir kere tutarlı olması gerekiyor. Yani renkler, ışıklandırma, eee

kameralar, kameraların açıları, eee içerisindeki kameraların çekmiş olduğu

sahneler ve sahnelerin, eee hangi açılardan çekildiği, eee doğru açılardan

çekilen içeriklerin ne kadar doğru olup olmadığı yani günün sonunda o asetleri

çekiyorsunuz. o asetlerin birbirleriyle olan uyumu gibi birçok parametre var

aslında. Bir ben bunların eee birçoğunu eee bu süreçte öğrendim aslında. Yani

yanlış asetleri seçip birleştirmeye çalışarak ve birleştirdiğimde yanlış

sonuç olduğunu görerek, fark ederek sonrasında da eeein gidişatında eee

yönelimi ona göre değiştirerek, doğru şekle çevirerek aslında. Şimdi en önemli

şey şudur. Siz çok büyük çaplı bir projeyi çok ileri seviyede bir ekibe,

işçiliğe işte elinizde para kaynakları bile olsa size ben bunun %8090 ihtimalle

kendi tecrübelerime dayanarak garantisini verebilirim ki ne kadar

planlarsanız planlayın, ne kadar eee detaylı olursa olsun eee mutlaka yolda

değiştirmeniz gereken eee yollar oluyor, virajlar oluyor, almanız gereken,

açmanız gereken ufak tefek tepeler oluyor. Sizin mesela kağıt üzerinde

mükemmel şekilde birleştirdiğiniz ve mimari olarak ayarladığınız şeyler bazen

eee gerçek hayatta bunu uygulamaya çalıştığınızda e backend için de

geçerli. Mesela şöyle düşünün. Eee C#ARP'ta bir proje yazmak sadece dil

seçimi. C#ARP üzerinde yazmış olduğunuz projede kullanacağınız projenin

ihtiyaçları ve yapabilecekleri, yapmak istedikleriniz, yaptırmak istedikleriniz

doğrultusunda içerisine farklı teknolojiler seçiyorsunuz. Yani buradaki

asetler gibi aslında. Ne gibi? Mesela PDF generate etmek istiyorsanız hazır

bir PDF PDF package'ı alıyorsunuz. Projenizin içerisine dahil ediyorsunuz.

Hazır olan metotları çağırıyorsunuz. İhtiyacınız olan yerde kullanıyorsunuz

ve o PDF generate ediliyor. İşte ne amaçla generate ettiniz? Email

göndereceksiniz. Sallıyorum. Kimlere gidecek? İşte e GM'lere gidecek. Yani

general managerlara gidecek. Eee yönetici raporu sallıyorum işletmelerle

alakalı. ayda bir kere gitmesi gerekiyor. Şimdi böyle bir storyniz

varsa yani projenizin böyle bir ihtiyacı varsa buna uygun email paketlerini

araştırıyorsunuz. PDF paketlerini araştırıyorsunuz. İşte bunu calculate

etmek için servisler, hangi tabloları kullanacaksınız vesaire vesaire. Şimdi

burada da en önemli kısım aslında benim düşündüğüm, birleştirdiğim ve üstesinden

gelemediğim kısımlar bunlarla alakalı olacak. Şimdi önce isterseniz burada

birçok aset var bu arada. Siz girip eee kontrol edebilirsiniz.

Ben e ilk seçtiğim yani Library'ye yüklediğim yerlerden itibaren eee

göstermek istiyorum. Şimdi öncelikle eee çok basit bir oyun projesi yapmak

istemedim. Yani bir Tetris efendime söyleyeyim eee basit bir futbol oyunu

tarzı bir şey yapmak istemedim. Eee biraz komplike bir şey yapmak istedim.

Çünkü aslında yani EA ile oyun yapmak var. EA ile oyun yapmak var. Eee, evet

bir Triple A seviyesinde, çok büyük takımlar seviyesinde bir iş

çıkaramayacağım. Çünkü tek kişiyim her anlamda. Ama tek kişi olarak da yani bir

ind developer olarak da kayda değer oyunlar çıkarabildiğini zaten benden

önce birçok insan göstermiş, yapmış. Ama ben de eee bunu kendi dilimde, kendi

insanlarıma hem yapılabildiğini kendime ispatlamak ve size ispatlamak hem de

nasıl yapılabildiğini bir şekilde insanlara yayıp göstermek istiyorum.

Aslında bu tecrübelerimi paylaşmak istiyorum. Benim için de eee

biriktirdiğim tatlı şeyler olacak. Neler olacak? Bunu

kesebilirim. Söyleyemedim onun ne olacağını arkadaşlar. Kesmeye debilirim

bilmiyorum. E ama böyle bir storyye eşlik edeceksiniz. Şimdi önce eee şu kısımdan bahsetmek

istiyorum. Unreal Engine'in kendisinin yayınlamış olduğu hem light hem dark

modunun olduğu ya böyle bir vadi teması var. Çok ciddi bir eee proje. Çok büyük

bir proje. Kendi bossu var. Kendi içerisinde kahramanı eee böyle mistik

eee dark bir eee böyle sanki dünyanın sonuymuş gibi bir havası var. Eee önce

bunu kestirdim gözüme açıkçası. eee bence çok güzel şeyler yapılabilir diye

düşündüm. Yani daha öncesinde bir gün oyun yapsam şöyle bir hikaye yapardım

diye düşündüğüm birkaç bir şey var. Eee onu belki ilerleyen zamanlarda detaylı

olarak konuşabiliriz isterseniz ama yani animasyonlarından tutun e hareketleri

eee efektleri, sesleri, ışıkları her şeyiyle bence çok okey bir projeydi. Ama

eee az önce bahsettiğim gibi mesela burada source kısıtına takıldım. Yani

benim 64 GB bir eee RAM'de bu oyunu hem geliştirip hem aynı anda yayına alıp eee

size aynı anda içerik çıkarıp hem de eee bunu insanlara oynatabilmem de çok

mümkün değildi. Çünkü bu oyunu ben bu kaynakla geliştireceğim ama ben bu oyunu

build aldıktan sonra da birilerinin bu oyunu belli bir seviyede oynayabilmesi

gerekiyor. Yani bu kaynaklar şu an dünya genelinde çok gerçekçi kaynaklar değil

açık konuşmak gerekirse. O yüzden bunun yani çok niş bir kitleye, dar bir

kitleye ben eee hitap edeceğini düşündüğüm için eee bu projeyi şimdilik

şimdilik askıya aldım. Eee ama eee belki ilerleyen dönemlerde daha optimize,

belki bunun daha küçük bir versiyonu, belki ben üzerinde çalışabileceğim daha

farklı bir mimari oluşturabilirim. O yüzden bunu bu yüzden eledim. İlk

kafamdaki proje buydu açıkçası. Bunu geçiyorum şu anda. Sonra

eee birden fazla şeyi olmayan aslında eee görüntü olarak

da map olarak da çok fazla içeriye sahip olmayan herkesin oynayabileceği mapler

araştırmaya başladım. Sonrasında şöyle bir asete denk geldim.

Şöyle yukarıdan göstereyim size. E şimdi burada gördüğünüz gibi ufak adacıklar

var. Böyle uzayın böyle tepesindeymiş gibi, bulutların tepesindeymiş gibi bir

mimari var. iki farklı üs var. Bir tanesi burada, bir tanesi de şu kısımda.

Yani bu haritada en çok sevdiğim şey aslında az önce bahsettiğim gibi böyle

bulutların üzerinde hissi vermesi ve küçük adalardan oluşuyor olması. Böyle

küçük adalar, farklı adalar bunları biraz daha büyüterek ve birbiriyle

bağlantılı hale getirerek aslında farklı storyleri bu adalar üzerinde

yedirebileceğimiz farklı chapterlardan oluşan bir oyun yapabilir miyim diye

düşündüm. Sonra aklıma Among Us geldi. Among Usas hem çok oyunculu hem

içerisinde böyle eee lobileşerek eee strateji geliştirilen yani vampir

köylüye benzer. Eee içerisindeki bu haini bulmaya yönelik. Aynı zamanda eee

yayıncıların da rahatlıkla oynayabileceği ve e insanların da

izlerken keyif alabileceği bir oyun olsun istiyorum bir taraftan. Yani böyle

bir şey olsa, üç boyutlusu olsa bunu storyler olarak, hikaye olarak bir tık

daha değiştirsek diye düşündüm. Eee, burada da, eee, aslında mimari belli bir

seviyeye kadar kurguladım. Yapılabilir mi? Kesinlikle yapılabilir. Bence hala

tek kişiyle bu işin yapılabilir olacağını düşünüyorum. Sadece uzun

soluklu bir iş olur. Neden böyle söylüyorum? Eee, son geldiğim noktayla

değerlendirdiğim zaman yani ikisini yan yana koyduğumuz zaman ikisi arasında iki

katlık bir geliştirme maliyeti var. Geliştirme maliyeti şey dediğimiz ne?

benim harcadığım zaman her anlamda. Eee, ben çok uzun süreli bir şey olsun

istemiyorum. İlk baştaki projelerim. Yani 3 aylık, 5 ayda, 6 ayda, maksimum 8

ayda çok büyük aksilikler çıkmazsa bir an önce bu işi e halledip yayına almayı

hedefliyorum. Hatta ilk yarısında eee MVP seviyesine getirip MVP'den

kastığında ilk oynanabilir ürünün açığa çıkması ve eee Early Access'te yani

erken erişimde Steam'de hızlıca ana sayfasını eee belli mekaniklerini

halledip yayına alıp sonrasında da eee bir %70'in ilk kısmından sonra kalan %30

%40'lık zamanda da e oyunun alfa versiyonunu yazıp o kısımda da wishlist

toplayıp wishlist'i topladıktan sonra da hızlıca oyunculara oynanabilir. son

versiyonunu çıkarmayı hedefliyorum. Yani şu anki planım o yönde. En azından eee

bir taraftan da şunu da belirtmek istiyorum. Amacım sadece eee oyun

yapılabiliyor munun içeriğini üretmek değil. Bu bunu bir product olarak

düşünüp eee gerekirse publisher'la konuşup veya kendim publish edeceğim eee

marketingini bir şekilde kendim yapmaya çalışacağım. Eee belki Kick'te canlı

yayınlara başlayabilirim. belki e YouTube'da da canlı yayınlar ve veya

işte multistream birden fazla çapraz canlı yayınla yani oyunun oynanışını,

nasıl oynandığını, geliştirme aşamasını veya canlı yayında gelen feedbackler

doğrultusunda yeni update'leri, yeni güncellemeleri almayı hedefliyorum. Şu

an için kafamdaki plan bu şekilde olacak. Eee bu da ilk kısa oyunum belli

bir seviyeye geldikten sonra belki ik kişilik, 3 kişilik bir ekiple 6 ayda

rahatlıkla çıkabilecek bir iş. E şu anda bunu da daha sonra kooklamak için rafa

kaldırdım diyebilirim. Komple bırakmadım bu arada şu ana kadar bahsettiğim hiçbir

projeyi. Şimdi eee son oyunumdan bir önceki

oyunuma geliyorum. Aslında burada neler araştırdım? birden fazla map olmayan az

önceki e projenin de aslında en büyük problemi oydu. Birden fazla map olsun,

farklı odalar olsun, farklı odalarda işte farklı historiler olsun dediğiniz

zaman asetleri ona göre, hikayeyi ona göre, mekanikleri ona göre ayarlamanız

gerekiyor. Benim amacım daha böyle tek mekanda eee ama insanların böyle çok

mekansal olarak da eğlenebileceği belki coop belki multiplayer bir oyun eee tek

mekanda bunu nasıl yapabilirim diye düşünmek oldu. Eee birçok aslında city

ve e cafe sha efendime söyleyeyim dealer efendime söyleyeyim işte iç mekan

tasarımları, dış mekan tasarımları ve human falan buldum aslında. Mesela en

basitinden şöyle bir city parkım vardı. Şuraya yazabilirim.

Şimdi bu çok güzel bir park.

Şu eee şimdi bu parkla alakalı da konuşmak

gerekirse şöyle asetlerini de hızlıca göstereyim. Parkın en güzel kısımları

işte içerisinde sulu alanlar var. e insanları koyup içerisinde E'la

buralarda yürütebilirim ve burada bir simülasyon oyunu yapabilirim diye

düşündüm aslında. İşte içerisinde tenis sahaları, basketbol sahaları, eee burada

ufak ufak büyüyebileceği insanların işte önce eee tezgahtan böyle ufak bir şeyler

satmayla başlayabilir. Sonra işte bir coffee shop olabilir, bir pizza shop

olabilir. Bir store'a geçecek. storean sonra ne bileyim işte birkaç tane saha

satın alıp işte tenis oynatabilir. Oraları saatlik kiraya verebilir. İşte

bu şekilde roadları var. E belki araçlar koyabilirim farklı şekilde. İşte lüks

araçlar, orta seviye araçlar, giriş seviyesi araçlar. Bu araçları satın

aldırabilirim, yatırım yaptırabilirim, sonrasında sattırabilirim diye düşündüm.

Eee yürüme alanları var. eee, çok güzel banklar ve, eee, farklı storyler

oluşturabileceğiniz, işte fizikle insanlara çok farklı şeyler

yaptırabileceğiniz coop veya multiplayer bir oyun yapabilir miyim diye düşündüm.

Eee, bundan neden vazgeçtim? Ondan da bahsetmek isterim. Şimdi bu projede de

şöyle bir şey söz konusu. Bu, eee, aset çok güzel ve ciddi bir aset. Ama asetin

en büyük problemi, bir numaralı problemi bir kere eee, şu anda henüz optimize

edilmemiş durumda. Zaten bu aset eee büyük çaplı bir ekip tarafından büyük

bir proje için belli bir seviyeye kadar geliştirilmiş. Şu e şeyi

görebiliyorsunuz şurada bu arada Silver Team diye şey var. Yani kim tarafından?

Bir stüdyo mu bir indie geliştirici mi? Kim tarafından bu aset generate edilmiş?

E bunu görebiliyorsunuz. hikayesinde de zaten dokümantasyonunda ve video

previewa şeyden bahsediyor. Yani bu bizim başka bir oyun projemizdi. Biz

bunu stüdyo olarak bir yere kadar geliştirdik, getirdik ama sonrasında

farklı sebeplerden dolayı vazgeçtik. Şu an henüz geliştirme aşamasında bitmedi

ve optimize edilmesi gerekiyor. İşte ışık anlamında ağaçların eee bazı rüzgar

ve eee bilim titreşimleriyle, fizikleriyle alakalı problemler var ve

çok yüksek seviyede RAM tüketiyor şu anda. Onların optimizasyonu falan. Yani

buna ayrı vakit harcamak gerekiyordu. Dediğim gibi benim önceliğim şu an zaman

olduğu için e ve o insanlar işte farklı araçlar, farklı senaryolar bunlar da

geliştirme maliyeti olarak gördüğüm için eee buna da bu yüzden karar verim

aslında. Yani bu yüzden vazgeçtim diyebilirim.

Eee bu belki optimize edilebilir, kaynak harcanabilir ama tartışılır günün

sonunda bu da kenara aldığım asetlerden bir tanesi. Bu arada bunların her biri

yaklaşık ikişer üçer gün sürdü. Yani bunları işte düşünmem neyle

birleştirebilirim diye ana aseti bulup yan asetleri eee araştırmam ve

versiyonları bunların çakışıyor mu çakışmıyor mu birleştirdiğim zaman eee

nasıl bir eee sonuç elde ediyorum falan. Bunların üzerinde çalışıp kafa

patlattıktan sonra eee sadece bunlar bunlara karar verdim. Şimdi son olarak şöyle bir şey var.

Şimdi ben eee özellikle son dönemlerde bir fizibilite de yaptım. Yani bir oyun

yapıyorum ama belli bir kitleye hitap etsin istiyorum. Birileri bu oyunu

oynarken keyif alsın istiyorum. Yayıncılar bu oyunu oynasın istiyorum.

Eee bu oyunu oynayan yayıncının seyircisi izlerken bundan kesinlikle

keyif alsın istiyorum. eee, çok basit anlamda, eee, en çok

yayıncıların hangi oyunları oynamaya, eee, daha çok kendilerini teşvik

ettikleri veya izleyicilerinin onları hangi konuda teşvik ettiklerine bakmaya

çalıştım. Ve genel olarak böyle viral anları dediğimiz yani yayıncının kendi

Discord grubu veya işte kendi arkadaş çevresiyle yayına multiplayer ve coop

olarak girdiği ve bir şekilde birbirlerini manipüle ettikleri veya

işte ittikleri kalktıkları bir tanesinin üzerine oynayıp onu kışkırttıkları eee

falan böyle yayınlar olduğunu ve bunların da aslında birçoğunun ufak

maplerde ve hızlıca böyle daha dinamik, daha natif şekilde hareket ettiğini

gördüm. Mesela şöyle bir oyun var. Herkes kartopu ve e bir platform

yapmışlar. Doğal olarak kartopu olduğunuzda ne oluyor? Siz bir alanda

kaldığınızda ne kadar çok yuvarlanırsanız o kadar e snowball

oluyorsunuz ve büyüyorsunuz. O platformdan amacınız işte diğer

arkadaşlarınızı atmak veya onlar sizi iterek atmaya çalışıyor veya işte 2iü

kişi birlik oluyorsunuz. Bir arkadaşınızın üzerine gidiyorsunuz. onu

dışarıya itmeye çalışıyorsunuz gibi. Amaçta kim daha çok aslında platformun

üzerinde kalırsa o kadar snowball oluyor ve büyüyor. Şimdi buradaki mantık çok

harika. Neden? 67 kişiyi bir platformun üzerine koyuyorsunuz. Ekstra hikaye

yazmanıza gerek kalmıyor. Farklı ortamlar, farklı senaryolar yazmanıza

gerek kalmıyor. Aslında siz eee yayıncıya veya oyuncuya kendisinin

generate etmesi gereken anlar, eee storyler veya e viral içerikler fırsatı

veriyorsunuz. O insanlar kendi hikayelerini kendisi yazmış oluyor.

Böylelikle evergreen dediğimiz bir yere geliyor. Yani tekrarlanabilir,

tekrar edilebilir. Çünkü şöyle düşünün bugün Assassin Creed'i oynamaya

başlarsanız işte hangi versiyonla oynadığınızı bilmiyorum. Sallıyorum. Red

flag olsun. Şimdi red flag versiyonunun en güzel özelliği gemileri

kullanabiliyor olmanız, gemilerde korsanlık yapabiliyor olmanız. İşte eee

bu korsanlığı yaptıktan sonra işte adalara gidiyorsunuz, ülkelere

gidiyorsunuz. Oradaki işte orduları eee keşfediyorsunuz, adaları

keşfediyorsunuz, hikayeyi keşfediyorsunuz ama bir başlangıç

noktası var ve bir bitiş noktası var. Atıyorum 80 saatlik bir hikaye. Ha

sonrasında siz bunu tabii ki de dönüp dönüp tekrar oynayabilirsiniz ama eee

bugün ben zannetmiyorum yani 5 defa 6 defa Assassin Creed'in herhangi bir

versiyonunu bitireniniz yoktur. Çünkü sonuçta hikaye o spoilerı yedikten sonra

o oyuna bir bilemediniz, 2 bilemediniz, üç defa oynarsınız yani. Ama burada bu

platform oyununda hikayeyi oyuncular kendileri yazdığı yönettiği için doğal

olarak bu iş daha farklı bir yöne evriliyor. Bu yüzden ben de tek bir

platform olmasın ama tek bir mekanda birden fazla oyuncuyu multiplayer olarak

nasıl oynatabilirim, nerede oynatabilirim, ne şekilde oynatabilirim

diye düşünmeye başladım. Ve ardından şöyle bir aset buldum

mekan olarak bulamıyorum.

Yazayım. Şimdi Inferno World'u sadece bir mekan

olarak kullanacağız. Oyuncular burada bizim istediğimiz mekaniklerle ve bizim

istediğimiz animasyonlarla hareket edecekler. Peki burada hangi animasyonu

veya mekaniği kullanacağız? Bunu elimizle mi yazacağız? Bunun

araştırmasını yaptım. Hazır kullanabileceğiniz mekanikler, hazır

kullanabileceğiniz animasyonlar kesinlikle var mevcut. Belki daha farklı

şeyler yapılabilirdi ama bence eee belli bir seviyede tutarlı olabilmesi ve şey

olabilmesi açısından eee benim için hızlı olabilmesi açısından e hazır bir

paket buldum. Onu da size göstereceğim. O nedir? O da ücretsiz. Bu arada Visual

Sandbox diye bir paket. Şimdi burada da olay şu aslında. PUBG

tarzında işte araç kullanabildiğiniz, işte füze atabildiğiniz, e ne bileyim şo

yapabildiğiniz yani shooting yapabildiğiniz, silah kullanabildiğiniz,

insanlara hasar verebildiğiniz, öldürebildiğiniz falan mekanikler,

yapılar işte eee inventory management sistemi var. Yani şöyle bir şey hayal

ediyorum. Mesela

MMR RPG oyunu oynayanınız birçok vardır. Ne bileyim Metin 2 oynamışsınızdır,

Night Online oynamışsınızdır, efendime söyleyeyim Silcat Online

oynamışsınızdır. Şimdi bu oyunların hepsi role play üzerine oyunlar. Ne

bileyim eee her oyunun kendine göre belli dinamikleri var ve bu dinamikler

aslında oyunun imzası oluyor günün sonunda. Ne gibi? Mesela Night Online

oynuyorsanız PK'ya çıkmak bambaşka bir şeydir. Yani bunu herkes bilir. Eee,

Silcat Online oynuyorsanız işte oradaki o TF mantığı çok geçerlidir. Yani, eee,

bir kervan kurulur. Bu kervanın koruyucuları olur. Guardları, işte

priesleri olur, efendime söyleyeyim buff verirler, warriorları olur, savaşçıları,

eee, bir de TF'ler olur. O kervana saldırıp o kervandan bir şeyler çalmaya

çalışan. Şimdi bu kervan bir A noktasından bir B noktasına yola çıkar

ve bu yola çıktığı zaman bir ekip bunu korumaya çalışır. Diğer ekip de bu

korunan maldan bir şeyler çalmaya çalışır. Şimdi

orada en önemli olay şuydu. Mesela Silcroat Online'da bir oyuncu bir

oyuncuyu kestiği zaman adamın itemini düşürme ihtimali vardı. Bu çok

değerliydi. Neden? Çünkü amaç sadece orada o kervana saldırmak olmaktan

çıkıyordu. Neden? Çünkü artık itemlar düşürülebilir, kullanılabilir, artı

basılabilir ve çok değerli. Bunun bir piyasası oluşmuş durumda. Her item'ın

bir eee GB karşılığı, M karşılığı var. M'in bir satış rakamı var. Bunun bir

piyasası, pazar sistemi var. Yani burada bir ekonomi oluşmuş. Artık bu bir

sisteme dönüşmüş. Şimdi adam bunu artık iş olarak yapmaya

başlıyor. Bu oyunun dışına çıkmaya başlıyor. Artık oyun artık e kendi

habitatını oluşturmaya başlıyor. Mesela bu işin babası Wov'dur. World of

Warcraft. Yani, eee, meslek sistemini birçok oyun oradan almıştır. Sınıf

sistemini birçok oyun oradan almıştır. Eee, buff sistemini birçok oyun yani

skill set sistemini birçok oyun oradan almıştır. Eee, yani bizim oyunda da

amacımız bu şekilde tekrar edilebilir şeyleri, birçok başarılı olmuş şeyi

entegre edebildiğimiz kadar entegre etmek. Burada amacımız yani, e,

shooting'e entegre edip insanlar birbirlerini öldürsün. Bizim için sadece

okey olan bir şey değil. Bu, eee, bir amaç.

Pardon bir araç bunu yapmasının bir amacı olmalı. Burada da şöyle bir şey

düşünüyorum. Yani kumar gibi düşünmeyin de mesela LOL'deki LP mantığı gibi

düşünün. Rütbe mantığı gibi düşünün. Ne gibi? Mesela LOL'de bir puanınız var,

bir rütbeniz var, bir liginiz var, değil mi? E bir oyuna giriyorsunuz. Oyunu

oynuyorsunuz. 5 kişi, karşıda da 5 kişi var. Bu oyunu bir takım kazanıyor. Bir 5

kişi bu oyunu kazanıyor. Yani bu oyunu kazanan 5 kişi artı puan alıyor. Oyunu

kaybeden 5 kişi eksi puan alıyor. Ne gibi?

Birisi + 20 puan alıyor, birisi -15 puan alıyor. Şimdi burada bir ticaret var.

Oyunu kazanırsanız kara geçiyorsunuz. Kaybederseniz zarara giriyorsunuz. Bizim

oyunumuzu oynarken de böyle bir yapı olması gerekiyor. Bu rütbe olmayacak. Bu

ne olacak mesela? Gold olabilir. Eee, gold olabilir. Neden gold olabilir?

Şimdi az önce bahsettiğim mesela şu Inferno World'a bakın. Şimdi şuradaki

asetlerden mesela şurada gold asetlerini görüyorsunuz. Altınları. Bunların her

biri bir tane aslında. Ben bunları işte 1e 10, 1 bire 100 m cinsinden eee bir

eee şeye getirmeyi hedefliyorum. Rakama getirmeyi hedefliyorum. Bir oyuncu bir

oyuncuyu atıyorum lava'a attığı zaman anladın mı? O oyuncu lav'da öldüğünde o

oyuncunun kendi envanterinde yani oyuna girmek için envanterinde belli bir

gold'a sahip olması gerekecek bir oyuncunun.

Bu gold'la oyuna dahil olacak. Bu gold'u oyuna dahil olurken riske atacak ve bu

riske atmış olduğu para eğer ölürse parça parça üzerinden dökülecek. Ama

ölmez de hayatta kalırsa yani o az önce bahsettiğim kartopu gibi şeyde kalmaktan

bahsediyorum. eee oyunun içerisinde canlı hayatta kalmaktan bahsediyorum.

Onun da mükafatlandırılması gerekecek. Diğer ölen oyuncuların aslında

öldüklerinden dolayı goldlarını o sahip olacak ve oyunun sonunda eee bu

goldlarla muhtemelen e bir şeyler elde edebiliyor olacak ki bu goldları e

kazanma şeyi olmalı. Eee motivasyonu olmalı. Öyle söyleyeyim. Ama amacımız

burada evergreen tekrar eden heyecanın storynin kendisinin oluşturulduğu

oyuncular tarafından multiplayer şekilde oynanabilen ve iki modlu bir oyun

düşünüyorum. Nasıl iki modlu olacak? Şimdi son dönemlerde görmüşsünüzdür.

Zincirli ve birbirine bağlı yani eşli oyunlar coop olarak geçiyor bunlar. Yani

bu coop oyunlar çok fazla popüler ve eee popüler olmasının sebebi de aslında işin

içerisine bir eğlence katıyor, bir challenge katıyor aslında. Çünkü bir

oyuncuyla siz eee bir şekilde zincirlendiğiniz zaman kaderiniz belli

bir seviyede ona bağlı oluyor. Yani eee LOL'de oynadığınızı düşünün. Şimdi

LOL'de belli eee arealar var değil mi? Eee gittiğiniz araya göre, oynadığınız

areaya göre bir strateji benimsiyorsunuz. stratejinize göre de

oyunu oynama şekliniz değişiyor. Şimdi mesela bir koridor var. Yanınızda bir

support var. İkili oynamak zorundasınız. Mesela özellikle LOL'deki bot koridoru

bu konuda eee Coop'la alakalı çok ciddi insanları geliştiren. Çünkü yanınızdaki

takım arkadaşınız saldırırsa o an siz tepki vermezseniz doğal olarak tek

başına kalıyor karşıda iki kişi olduğu için ve ölüyor. Siz takım arkadaşınızdan

eee bağımsız bir şekilde bir anda atağa çıkarsanız o bu sefer tepki veremezse

siz ölüyorsunuz. Beraber atağa çıkabilirsiniz ama ikiniz beraber atağa

çıktığınızda karşı taraf çok iyi savunma yaparsa gene ölüyorsunuz. Yani işin

içerisine bir iki kişinin karşılıklı stratejisinden ziyade 4 kişinin ikili

aynı anda yapmış olduğu bir strateji devreye giriyor. Bu da işin boyutlarını

ve olasılıklarını çok fazla etkiliyor. Doğal olarak biz iki modlu yapacağız.

Yani insanlar ikişerli gruplar halinde beş takım olarak da girebilecek, tekli

solo olarak da girebilecek. O modu seçerse birbirlerine oyuncular zincirli

olarak map'te spawn olacaklar ve birbirlerine zincirli olacaklar. Yani

biri düşerse diğeri de düşecek doğal olarak. Ama orada şöyle bir şey var.

Risk evet iki katına çıkacak ama eee kazanç da iki katına çıkacak. Neden?

Çünkü siz de bir zincirli oyuncuyu öldürdüğünüzde aslında iki katı gold

almış olacaksınız. Ne yapmak istediğimizi, neler yapmak istediğimizi

konuştuk. Az önce bahsettiğim şu engine'ile alakalı size birkaç bir şey

göstermek istiyorum. Şimdi burada dediğim gibi araç falan kullanılabiliyor

ama biz muhtemelen map'imiz çok küçük olduğu için araç falan kullanmayacağız.

Ama şu inventory management'ı kullanacağız. Yani amacımız hayatta

kaldırmak ya. adamı hayatta kalabilmesi için farklı noktalara mesela bu jump

package'larından koyacağım, mesela bu sargı bezinden koyacağım veya su

şişesinden koyacağım. Tabii ki hepsinin bir karşılığı olacak. Atıyorum canı

aldığı zaman belki canını 150 arttırabiliriz. Suyu veya işte farklı

bir şey içtiği zaman eee ne bileyim 50 arttırabiliriz, 75 arttırabiliriz. Daha

küçük miktarlarda işte bombalar var mesela farklı yerlere tuzak olarak

bombalar yerleştirebiliriz. bomba patladığı zaman bombanın patlamasıyla o

eee orada fiziği kullanabiliriz. Ona gerekirse bir eee fizik klassı yazarız

C++'ta. Yani insanların uçuşunu orada bir şekilde anime ederiz. Yani birçok

şeyi yapmayı düşünüyoruz ama hepsini yapacağız mı? Ne seviyede yapacağız?

Biraz da dediğim gibi yolda karar vereceğimiz şeyler olacak ama genel

olarak bunu kullanacağız. Burada silahlar ve e şeyler var. Az önce

bahsettiğim gibi mesela burada para destesi var. İlla normal gold kullanmak

zorunda değiliz. daha yüksek paralar için böyle kağıt para destesi de dolar

da kullanabiliriz. Şimdi bunun çok kısa bir e video demosu var. Orada şeyi

göstermek istiyorum size. Özellikle umarım ekranımı paylaşıma alıyordur şu

anda. Almıyorsa burayı arada ekleyeceğim artık. Yapacak bir şey yok.

Şunun sesini kapatayım. Bunun sesi çıkmasın. Telif melif yeriz şimdi belki.

Eee, şimdi araç kullanım senaryosu göreceksiniz. Evet. Bu atış mesela bakın

mermilerin arkasından beyaz bir e mermi animasyonu var ve mesela çarptığı zaman

fizik diğer karakteri uçuruyor. Bunu göstermek istiyor aslında burada da.

Hatta karakterin elindeki şeyler uçuyor. Şimdi eee roket atabiliyorsunuz. Şöyle

bir roket var ve patlama animasyonu ve şey animasyonu var.

Böyle yere tuzak az önce bahsettiğim bombalar var ve onun patlama

animasyonları var. Bunun gibi masa ve sandık var. Burada farklı şeyler

yapabiliriz. Belki biz kullanmayız ama dediğim gibi bilmiyorum şu anda store

management'da bunların üzerine ne koyacağız? Eee, içine ne koyacağız?

Bunları ayarlayabiliyoruz. Dediğim gibi inventory management sistemi var. Burada da bahsettiğim gibi tuzakları ve

kutuları atıyor. Kendi arkadaşına da bu arada atabiliyor. Yere atabiliyor,

gönderebiliyor. Yani PUBG'nin daha küçük bir alanda ve daha böyle tuzaklarla

belki daha farklı animasyonlarla böyle daha native, daha dinamik bir şey

yapmayı hedefliyoruz. Yani bu konuda öyle söyleyebilirim.

Şimdi bu ikisini kullanacağız ve geri kalanını eee komple bu ikisi üzerine

bindirmeye çalışacağız. işte bunun multiplayer eee oynanabilmesi için bu

oyunun işte lobide eee oyuncuların birbirleriyle eşleşebilmesi için eee

maçların her birinin kendileri eee belli bir server side'a belli bir işte eee

farklı bir şeyde açılması gerekiyor ve bu maçların eee birbirlerinin kesinlikle

etkilememesi gerekiyor. Bunların altyapılarını mimari olarak işte delay

olmadan sunucuları nerede seçeceğiz? eee Avrupa'daki oyuncular ne kadar delay

alacak bunun testlerini yapacağız. Amerika kıtasındaki sunucu bağlandığı

zaman ne kadar delay alacak bunun testlerini yapacağız. Eee iki yerde

sunucu kiralamamız gerekecek mi? Eee hangilerini eee sunucu içerisinde bir

şekilde eee tutacağız database'lerde hangisi eee user kendi bilgisayarına

install ettiği oyun içerisinde kullanıcının bilgisayarı ve PC'si

üzerinde barınacak ve yaşayacak uygulama için çalışacak. eee bunları falan

tartışıyor olacağız. Eee şu anda asetleri, e oyun motorumuzu ve neleri,

hangi mekanikleri ne seviyede kullanacağımızı tartıştık. Eee bir

sonraki videoda artık eee bir prompt hazırlayacağız. E dokümanlarımızı

hazırlayacağız. Artık bu işi hayata geçirmeye başlayacağız ve projemizi

generate edeceğiz. Eee teşekkür ediyorum bu bölümde bana eşlik ettiğiniz için.

Eğer ilginizi çektiyse ufak bir beğeni bırakmayı ve ekstra düşünceniz varsa

söylemek istediğiniz, sormak istediğiniz alta da yorum olarak bırakmayı

unutmayın. Teşekkür ediyorum. Görüşmek üzere. kendinize dikkat edin.

Need a transcript for another video?

Get free YouTube transcripts with timestamps, translation, and download options.

Transcript content is sourced from YouTube's auto-generated captions or AI transcription. All video content belongs to the original creators. Terms of Service · DMCA Contact

👉 AI ile Oyun Geliştirme #5 | Unreal Engine’i Neden Seçi...