Oyun Sektörü: Kim Ne Yapar?

Günümüz oyun stüdyoları işe alımlarda yeteneği ön planda tutuyor. Oyun sektörüne girmek için can atanlardan mısınız? Muhtemelen bir sonraki Call of Duty serisinin yapımında yer almak isteyen oyunculardan birisiniz. Hayalinizdeki işe ulaşmanın ilk adımı, ilgili birimlerin ne iş yaptığını bilmekten geçer. Bu makalede, günümüz AAA oyun geliştiren stüdyolarda hangi birimler mevcut, bu birimler ne iş yapar vb. ile ilgili genel bilgi edinebileceğiniz bir liste hazırladık.

Konsept Sanatçı
Her sanatçının da bildiği üzere bir projenin öncelikle 2D ortamda sunulması (storyboard), ardından geçilecek olan 3D ortamda (previsualization-previz) sunulmasından önce gelir. Bu daha hızlı ve caziptir. Dolayısıyla konsept sanatçılar oyun hakkında genel görünüm çıkarmak için sanat yönetmenleriyle yakın çalışırlar.
Konsept sanatçılar genel olarak neyin nasıl görüneceğine dair özet çıkarırlar. Mesela bir oyunda uzay gemisine gidecek olan karakterleri belirlemek gibi…
Halo veya Call of Duty‘ ye (Infinity War-Black Ops 3 vb.) bakacak olursanız her iki oyunun da kendine has benzersiz uzay gemisi tasarımları mevcut. Peki karakterler tam olarak neye benziyor? Hikaye nasıl bir ortamda geçiyor? Bu unsurların tümü konsept sanatçılar sayesinde ortaya çıkar.
Konsept sanatçı olmak için, Photoshop veya Sketchbook Pro gibi çizim ve boyama programlarına hakim olmanız gerek. Ayrıca, çoğu AAA konsept sanatçı iş akışının hızlanması için konseptlerini 3D ile birleştirirler. Bu yüzden isteğe bağlı 3D de öğrenilebilir.
Bu konuda öğrenilmesi önerilen programlar…
Photoshop, Sketchbook veya Corel Painter (Herhangi birini öğrenmek yeterli olacaktır)
Maya (veya eşdeğer başka bir 3D program)

Hikâye Tasarımcısı
Hikâye tasarımcısı olmak istiyorsanız oyun hikâyeleri konusunda tecrübeli olmanız gerekir. Başlıca stüdyolarda hikaye tasarımcılarının yanı sıra, hikâye tecrübesi olan yönetmen ve senaristler de bulunur.
Bir oyunun hikâyesi film gibi tek bir doğrultuda ilerlemez. Hikâye konusunda geniş bilgiye sahip olmaktan ziyade, hikâyeyi oyuncuya göre uyarlamak önemlidir. İstenilen hikâyenin oluşması için takım arkadaşlarıyla birlikte çalışmak gerekir. Örneğin, oyunda hikâyeyi anlatan ara video (cutscene) nerede devreye girecek vb…
Hikâye tasarımcısı olmak için profesyonel yazar olmalısınız. Bir çok stüdyo kendi hikâye tasarımcılarından bazı beklenmedik isteklerde bulunur. Örneğin, Bungie gibi stüdyolar sizden hata ayıklama işi için script yazmanızı isterken; Ubisoft gibi stüdyolar hikâye boyunca gerekli cast ve ses kaydı denetlemeleri yapmanızı isteyebilir.

Çevre Sanatçısı
Eğer bir çevre sanatçısı olmak istiyorsanız, konsept sanatçılar tarafından oluşturulan çevre konseptlerini, 3D programlarda görselleştirdikten sonra ilgili sahneyi oyun motoruna hazır hale getirmelisiniz. Etkileşimli oyunların doğuşuyla birlikte oyuncular, çevredeki hemen her yere ulaşabilir hale geldi. Yani artık yapımda daha çok özen gösteriliyor.
Çoğu stüdyo, sizden ilgili konseptte yer alan her şeyi yapmanızı ister. Yani çevrenin modellenmesi-kaplanması gibi, çalışmanın son halinin oyun motoruna hazır hale getirilmesi istenir.
Her oyun (3D) poly ve kaplama (texture) unsurlarından ibarettir. Bu unsurlarla çalışmayı bilmeniz gerek. Bu da yüksek çözünürlüklü (high res) modellerin düşük çözünürlüğe (low res) indirgenmesi (retopology) ve yine high res kaplamaların çeşitli maplerle optimize hale getirilmesi gerektiği anlamına gelir.
Bu konuda öğrenilmesi tavsiye edilen programlar…
Photoshop
Maya veya 3ds Max
Zbrush veya Mudbox

Karakter Sanatçısı
Karakter sanatçıları da yine konsept sanatçıların oluşturduğu karakter konseptlerini 3D görselleştirerek oyuna hazır (game ready) hale getirirler.
Karakter sanatçılarının da modelleme ve kaplama konusunda optimizasyon tecrübesine sahip olması gerekir. Ne tür karakter modelliyor olursanız olun, bilgi ve yetenek konusunda esnek olmalısınız. Bu da, geniş bir modelleme tekniği deneyimine sahip olmak ve ortaya sağlam bir topoloji çıkarmaktan geçer.
Bu konuda, sektöre ait bir programa çok iyi hakim olmanız ve ilgili programı güncel bir şekilde takip etmeniz gerekir.
Bu konuda öğrenilmesi tavsiye edilen programlar…
Photoshop
Maya veya 3ds Max
Zbrush veya Mudbox

Oyun Tasarımcısı
Oyun tasarımcısı, bir oyunun kurallarıyla ilgilenir ve bu kuralların geliştirilmesinde yardımcı rol oynar. Tahmin edebileceğiniz üzere bu kişiler başarılı bir oyunun yapımında hayli büyük bir bilgi ve deneyime sahip olmalı. Kısaca oyunun ne denli kaliteli olacağı (oynanılabilirlik açısından) bu kişilerin elindedir.
Özelliklerin oluşturulması ve script görevlerinden tutun, dengeli bir oynanış imkânı sunmak üzere neredeyse her türlü sorumluluğa sahip olmalısınız.
Yine de tek başınıza çoğu şeyin üstesinden gelemezsiniz. Başlıca stüdyolar, aldığınız kararları uygulamadan önce sanatçılar ve programcıların da görüşünü alarak hareket etmenizi ister. Ayrıca fikrinizin diğer birimler tarafından gözlemlenmesi için ayrıca bir prototip oluşturmanızı isterler.
Bu konuda öğrenilmesi tavsiye edilen programlar…
Python veya Lua (vb.)
Unreal Engine veya Unity (vb.)

Bölüm Tasarımcısı
Bölüm tasarımcısı, sanat takımının oluşturduğu assetleri kullanarak oyundaki bölümleri oluşturur. Örneğin, bir çevre sanatçısı bölüm için gerekli assetleri oluşturur; fakat bölümü, oyuncunun zevkine göre tasarlayacak olan birine ihtiyaç vardır.
Bölüm tasarımcısının yaptığı iş, oyun tasarımcısının görüşüyle uyuşmalıdır. Bu nedenle onunla yakın çalışması gerekir.
Assassin’s Creed, bölüm tasarımı konusunda güzel bir örnek. Oyuncuya bir yapıdan diğerine atlayıp-tırmanma imkânı vererek kendi gidişatını oluşturmasına imkân sağlayan bir oyun. Mesela oyunda pencereden girerek ulaşılacak bir nesne olduğunu varsayalım. Girişi bir ağaç engelliyor olsaydı işin eğlenceli bir yanı kalmazdı. Bunun gibi…
Başarılı bir oyun tasarımcısı olmak için oynanış mekaniklerini, oyun tasarım kurallarını iyi bilmek gerekir. Ayrıca bu unsurları stüdyoda kullanılan oyun motorunda uygulayabilmek önemli. Bu da biraz script ve programlama bilmekten geçer.
Bu konuda öğrenilmesi tavsiye edilen programlar…
3ds Max veya Maya (vb. oyun 3D ise…)
Python veya Lua (vb. script yazma dili)
C++ veya C# (vb. programlama dili)
Unreal Engine veya Unity (vb.)

Teknik Sanatçı
Teknik sanatçı olabilmek için stüdyoda birden fazla şeyle ilişkili olmak gerekir. Sizden karakter riglemeniz istenebilir, dinamik oluşturmak için efekt sanatçısı olarak çalışabilirsiniz veya programcılar ve sanatçılar arasında pipeline araçlar oluşturmak için köprü görevi görebilirsiniz.
Tüm bunlar stüdyoya göre değişebilir; lâkin isimden de anlaşılacağı üzere teknik sanatçı, teknik ve sanatsal konuda dengeli bir tutum sergilemelidir.
Oyun motorunda tam zamanlı programcı olarak çalışmak zorunda değilsiniz. Sanatçıların oluşturduğu assetleri alıp, bunları oyun motorunda çalışır hale getirmek yeterli. Tahmin edeceğiniz üzere bu, güçlü bir script ve programlama mantığı gerektirir. Bu da işin teknik kısmıdır.
Sanatsal kısmı, sanat takımlarının oluşturduğu assetleri oyunda kullanışlı hale getirmekten ibarettir. Bu da genellikle mevcut assetlerin istenilen şekilde düzenlenmesi gerektiği anlamına gelir.
Örneğin, bir çevre sanatçısı bir asseti en iyi şekilde oyuna hazır (game ready) hale getirebilmelidir. Lâkin bölüm tasarımcısı başka… Belli bir bölümde bu assetten yüz adet kullanılacağına karar verse, birisi çıkıp bu eklemelerin kare hızına olumsuz etki etmeden nasıl işleyeceğine dair görüş belirtir. Teknik sanatçı, sanatçılarla çalışarak bu tür sorunlara çözüm getirebilmeli.
Bu nedenle stüdyonun kullandığı 3D (Max, Maya vb.) ve 2D (Photoshop gibi) yaratıcı programlarla çalışabilmek gerekir.
Bu konuda öğrenilmesi tavsiye edilen programlar…
Python veya MEL/MAXScript (3D programa göre…)
C++ veya C#
HSLS (vb. shading programlama dili)

Animatör
Karakter sanatçısının oluşturduğu bir karakteri ele alalım. Bu model sabit-hareketsiz obje konumundadır. Animatör, bu hareketsiz modele hareket kabiliyeti veren kişidir. Animasyon oyuna has bir şey değildir. Film için de geçerlidir ve iki sektör arasında farklar vardır.
Bu konuda, Maya gibi 3D program ve animasyonun 12 prensibi hakkında bilgi sahibi olmak gerekli. Bazı stüdyolar, animatörlere, daha çok teknik görevler konusunda danışırlar. Örneğin, eğer teknik animatörseniz sizden karakter riglemeniz veya animasyon araçlarının geliştirilmesinde yer almanız istenebilir.
Bir stüdyo için çalışıyor olabilirsiniz. Bu, rigleme ve teknik beceriler konusunda çalışmanız gerektiği anlamına gelmez. Yine de becerinizi katlamak için rigleme ve temel modelleme bilgisine sahip olmak iyidir. Böylece sorunları tespit ederek çözüm üretir, takımdaki en iyi oyuncu haline gelirsiniz.
Bu konuda öğrenilmesi tavsiye edilen programlar…
Maya veya 3ds Max
Python veya MEL/MAXScript

Sanat Yönetmeni
Sanat yönetmeni olarak çalışacaksanız, muhtemelen işin neler gerektirdiğini bilirsiniz. Özellikle AAA oyunlar için çalışan çoğu sanat yönetmeni deneyim olmadan bu işe atılmaz.
Bir sanat yönetmeni olarak, ilgili sanatın, oyunun ihtiyaçlarını, görüşünü ve amacını kaliteli bir şekilde karşıladığından emin olmanız gerekir.
Yani iş, oyunun sadece sanatsal tarzını belirlemekten ibaret değildir. Sanat takımlarıyla yakın çalışarak çalışmaların bu tarzı karşılamasından emin olmak gerekir.
Ayrıca oyunla birlikte oluşan sanatın, oyunun sanatsal yönüyle uyumlu olduğundan emin olmak için teknik ekiplerle de çalışmak gerekir.
Bu konuda öğrenilmesi tavsiye edilen programlar…
Maya veya 3ds Max
Photoshop
Unreal Engine veya Unity (stüdyoya göre..)

Arayüz (UI/UX/UE) Sanatçısı
Bu konuda iki temel unsur vardır. Kullanıcı arayüzü sanatçısı (user interface-UI) ve kullanıcı deneyimi sanatçısı (user experience-user UX-UE). UI artist, HUD (Head Up Display) gibi işlevsel ekran unsurlarını oyunla uyumlu hale getirmekle yükümlüdür.
Öte yandan UX artist, bu kullanıcı arayüzünü temel bilgiler doğrultusunda temiz ve iş görür hale getirmelidir. UX artist daha çok motion designer a benzer. Bu tasarıma (UI) hareket vererek kullanışlı hale getirirler.
Her iki iş arasında fark olsa da, aslında birbirine yakın-benzer işlerdir. Bazı stüdyolar bu iki konuyu tek bir konuda toplar, işe alınacak olan çalışanda buna göre özellik ararlar.
Sonuç olarak UI/UX artist oyunun bu yönünü içgüdüsel-temel bilgilerle geliştirerek oyuncunun deneyimine sunar.
Bu konuda öğrenilmesi tavsiye edilen programlar…
Photoshop
Illustrator
After Effects veya Flash
Maya veya 3ds Max
Unreal Engine veya Unity

Efekt (FX) Sanatçısı
Efekt sanatçısı olarak çalışacaksanız, partikül sistemleri vb. simülasyon oluşturmayı bilmeniz gerek. VFX artist olarak da adlandırılan bu birim film sektöründe de vardır. Oyun efektini filmden ayıran özellik, oyundakinin oyun motorunda gerçek zamanlı (real time) olarak çalışmasıdır.
Real time FX = karmaşık işler. Oyunlarda compositing yoktur ve çoğu oyun, oyuncuya çevrede özgürce dolaşma imkânı verir. Bu yüzden ilgili efektin her açıdan iyi görünmesi gerekir.
Bu zorlukları sınırlamak runtime efektlerle mümkündür. Bir efekt sanatçısı olarak partikül sistemler konusunda sağlam bilgiye ve çözüm becerilerine ihtiyacınız vardır.
Bu konuda öğrenilmesi tavsiye edilen programlar…
Maya veya 3ds Max
Houdini
Photoshop
Python
Unreal Engine veya Unity

Oyun Programcısı
Kod satırlarıyla uğraşmayı seviyorsanız, oyun programlama tam sizlik bir iş. Oyun programcısı olarak yapmanız gereken, mevcut asset ve tasarımları oyun motorunda çalışır hale getirmektir.
Bazı stüdyolar bu işi oyun içi programlama olarak da vurgular. Çünkü yapmanız gereken ilk iş oyun içi işlevselliğe odaklanmaktır. Ek olarak, bazı stüdyolar da bu iş konusunda belli bir motorda çalışırlar. Unity üzerinde programcı olarak uzmanlaşabilirsiniz mesela.
Tahmin ettiğiniz üzere bu, kullandığınız oyun motorunun gerektirdiği programlama dili konusunda, matematik gibi arkaplandaki unsurlar üzerinde güçlü bir hakimiyet sahibi olmanız gerektiği anlamına gelir. Ayrıca fizik, yapay zeka (AI) ve oyun içi mekanikleri konusunda bilgi sahibi olmalı, kod konusunda hata ayıklama (debug) yapabilmelisiniz.
Bu konuda öğrenilmesi tavsiye edilen programlar…
Not: Bilgi sahibi olmanız gereken diller stüdyoda kullanılan motora bağlı olarak değişiklik gösterebilir.
C++, C#, Perl, Python, Java vb.
Unreal Engine veya Unity

Yapay Zekâ (AI) Programlama
Oyuncunun mücadele içinde olabilmesi için çoğu oyunun yapay zekâya ihtiyacı vardır. Yapay zekâ programcısının işi, oyuncunun kontrol etmediği herhangi bir unsuru işlevsel olarak geliştirmektir. NPC ve düşman hareketleri gibi…
Daha önce de belirttiğimiz üzere, programcı olarak hangi pozisyonda olursanız olun matematik ve fizik konularında bilgi sahibi olmalı, bunları kodlarınızla optimize hale getirebilmelisiniz. Ayrıca yapay zekâ hakkında muhtemel hataların (bug vb.) giderilmesi hususunda kalite kontrol (QA) birimiyle ilişkili olarak çalışmak gerekir.
Bu konuda öğrenilmesi tavsiye edilen programlar…
Not: Bu konuda da bilgi sahibi olmanız gereken diller stüdyoda kullanılan motora bağlı olarak değişiklik gösterebilir.
C++, C#, Perl, Python, Java vb.
Unreal Engine veya Unity

Pipeline Araçlar Programcısı
Bir oyun stüdyosunda pipeline (irtibat halinde) çalışmak, zorlukların üstesinden gelmek demektir. Pipeline araçlar programcısının işi, ekipteki sanatçılara daha etkili ve hızlı bir çalışma imkanı sunmaktır. Mesela günde beş dakikada bu işleri kaydeden bir araç geliştirebilirseniz bu, oyunun gelişim sürecine katkı sağlar.
Pipeline araçlar oluşturmak, bunların baştan sona nasıl çalıştığına dair geniş bir bilgi sahibi olmayı gerektirir. Bu, Maya, Photoshop, oyun motoru gibi pipeline da kullanılan bir çok yazılımı barındırır. Bununla birlikte, pipeline araçlar düzgün çalışmadığı zaman bildirilmeli ve bu araçların düzgün çalışması için ne tür araçlar oluşturulması gerektiği gibi tecrübeye sahip olmak gerekir.
Özgün pipeline konusunda kişi sayısı çoğaldıkça, pipeline boyunca çeşitli sanatçılardan sık sık bildirim ve yorumlama yapılması ihtiyacı da artmış oldu.
Bu konuda öğrenilmesi tavsiye edilen programlar…
Python
C# veya C++
Stüdyonun kullandığı yazılıma göre (Maya, PS vb.) API

Kalite Kontrol (QA)
Kalite kontrol biriminde tester olarak çalışmak istiyorsanız, tüm gününüzü oyun oynamakla geçirmelisiniz. Oyun oynamak bu işin bir parçasıdır.
Kalite kontrol oyun oynamakla birlikte bir çok şey barındırır. Oyundaki hataları bulmalı, bunları bildirmeli ve düzelene dek takipte olmalısınız. Oyun sizden sol tarafa gitmenizi istediğinde siz sağ tarafa giderek ne olacağını gözlemlemelisiniz. Eğer bir yerde tekrar eden bir hata bulursanız bunu, düzeltilmek üzere geliştirici takıma bildirmeniz gerekir.
Düzeltildiği zaman, tam olarak düzelmiş mi diye aynı hatayı tekrar tekrar bulmaya çalışarak kontrol etmelisiniz.
Çoğu kişi kalite kontrolün oyun endüstrisindeki diğer birimlere ulaşmak konusunda bir basamak olduğunu düşünür. Bu bazı stüdyolar için geçerli olabilir; ama hepsinde böyle değildir.
Paradox Development Studio‘ nun kıdemli kalite kontrol yöneticisi Anna Jenelius, Hearts Of Iron röportajında “Oyun tasarımcısı olmak istiyorsanız kalite kontrol ile işiniz olmamalı.” demişti. “Kalite kontrol, pek sevmediğim bir adım veya giriş seviyesidir. Eğer kalite kontrol de çalışmak istemiyorsanız muhtemelen bu işten zevk alamayacak, iş konusunda verim sağlayamayacaksınız. İşinizi severek yapmazsanız bu herkesi kötü anlamda etkiler.”

Online Yazılım Mühendisi
Oyunlardaki istatistikler-değerler vb. Xbox Live veya Playstation Network gibi servislerde tutulur. Bir online yazılım mühendisi olarak yapmanız gereken oyunun bulut özelliklerini inşa etmek ve çalışır halde tutmaktır.
Bu günlerde bir çok sunucu Linux tabanlı çalışır. Bu nedenle oyun motoru için Linux’ da hata ayıklama ve programlama dilleri konusunda deneyimli olmak gerekir. Ayrıca teknik ağırlıklı bu pozisyon, veri tabanı bilgisiyle oyun motorundan online veri tabanına veri geçişi konusunda fayda sağlar.
Online oyunlarda sunucuların bazen en olmadık anlarda çöktüğünü bilirsiniz. Online yazılım mühendisi, takımın işlevselliğini düzenlemekten sorumludur. Bu, root tabanlı sorunların izini sürebilmek ve proaktif bir şekilde sorunları meydana gelmeden tespit etmek gerektiği anlamına gelir.
C++, C# veya Java
Linux
MySQL (vb. veri tabanı)
Ağ Protokolleri (TCP, UDP, HTTP, HTTPS vb.)
Ağ Yöneticisi

Online oyun konusunda bir çok sunucu tabanlı çalışmalar vardır. Bu, ilgili işteki kişilerin bu sunucuları inşa etmek ve sürdürmekle sorumlu oldukları anlamına gelir. Ağ yöneticisi olarak göreviniz, sunucuları gözlemleyerek son derece verimli çalışmasını sağlamaktır.
Haliyle, sunucu bazlı script dilleri, veri tabanları ve internet teknolojileri konusunda bilgi sahibi olmanız gerekir. Online yazılım mühendisine benzer bir şekilde, sunucu çökmeleri gibi acil durumlarda sorun giderici vaziyeti görerek takımın kahramanı haline gelebilirsiniz.
Bu listedeki birimler günümüz AAA oyunlarını geliştiren ekipleri kabaca tanımlamak üzere hazırlandı. Bu işlerin çoğu, (özellikler isimleri) stüdyoya bağlı olarak değişiklik gösterebilir. Eğer belirli bir stüdyoda çalışmayı düşünüyorsanız, ilgili stüdyonun resmi sitesinden - gönderilerinden, hangi işler için ne gibi deneyimler gerekli vb. araştırabilirsiniz. Bu makaleyle birlikte, ne öğrenmeniz gerektiğine dair fikir edinmek maksatlı başlangıç yapabilirsiniz.
KAYNAK