ÖZGÜR YILMAZ İLE PİPELİNE ÜZERİNE RÖPORTAJ

Özgür Yılmaz ile Pipeline Üzerine Röportaj

Sizi yakından tanıyabilir miyiz?

Adım Erkan Özgür Yılmaz, 1977 yılında Berlin Almanya'da doğdum. 1984 yılında ailemle birlikte Türkiye dönüş yaptık. İTÜ Makine Mühendiliği Bölümü mezunuyum, evliyim ve çok yakışıklı 5 yaşında bir erkek çocuğu babasıyım. 1993 yılında Antalya Lisesi'nde öğrenciyken, benim için bir hobi olarak başlayan 3D animasyon ve görselleştirme işi, 1997 yılında para kazandığım bir iş oldu.

2004 yılında benim için uzun süredir bir hayal olan Anima'da çalışmaya başladım. Arada 4 sene İmaj Post Prodüksiyon’da çalışıp 2012 yılında tekrar Anima'ya döndüm. Şimdi eşimle beraber Anima'da çalışıyoruz ve hem "Kötü Kedi Şerafettin" filminin süpervizörlüğü hem Anima'nın Pipeline'ından sorumluyum.

Son zamanlarda Amerika ve Avrupa ülkelerinde kod eğitiminin ilkokul müfredatlarına dahil edildiği biliniyor. Sizce kod eğitimini küçük yaşlarda almanın faydaları nelerdir?

İlk programcılık eğitimimi, çok kapsamlı ve kaliteli olmamakla beraber, ortaokul 1. sınıfta aldım. Benim için paha biçilmez bir deneyimdi. Bu ders beni, 12 yaşında ortaokullu bir öğrenci olarak evimdeki bilgisayarımda oynadığım oyunların nasıl yapıldığını düşünüp sonunda kendi oyunumu yaptığım bir noktaya getirdi.

Geliştirici denilen insan, bir problemi, elindeki kaynakları en etkin şekilde kullanarak nasıl çözeceğini bulan insandır ve bu genel olarak etrafınızdakilerden farklı düşünmenizi gerektirir. Küçük yaşlarda problemlere kendi çözümünü getirme oyunları oynayan bir çocuğun bu konuda ileride daha rahat olacağını düşünüyorum. Dolayısıyla, erken yaşta programlama ya da algoritma geliştirme ile tanışmanın faydası kesinlikle yadsınamaz.

Öte yandan, Amerika'nın durumu biraz ilginç, yıllarca yaşanan beyin göçü tersine dönmüş durumda ve 2020 yılı sonrasında özellikle yazılım konusunda kaynak bulmakta büyük sıkıntılar yaşayacaklarını öngörmüş durumdalar. Dolayısıyla nüfuslarının genç kısmına yazılım işini tanıtmak ve sevdirmek için viral reklamlardan okul müfredatlarına kadar geniş bir alanda çalışarak ileride yaşayacakları bu sıkıntının üstesinden gelmeye çalışıyorlar.

Bu sektöre ilk adımı attığınızda ne düşünmüştünüz?

Benim için tutku olan hobimi yaparken birilerinin gelip avucuma para tutuşturması çok hoşuma gitmişti. Gelecek için çok da planım olabilecek bir yaşta değildim. Yapmaktan hoşlandığım, eğlendiğim işi yapmaya çalışıyordum.

En büyük sıkıntım, hayalim ve yapmak istediklerim konusunda ailemden destek alamamış olmamdı. Makine mühendisliği okuyan bir öğrenci olarak babamın benimle ilgili başka planları vardı. Kendi mesleklerinde başarılı olmuş birçok akrabamın da beni çıktığım yoldan vazgeçirmeye çalışmaları da cabası. Onların bu tavrı daha inatçı olmamı ve hayalime dört elle sarılmama neden oldu. Sonunda doğru yolda olduğumu onlarak kanıtladığım bir anda artık onların da içi rahat etti.




Sizce görsel efekt programcılığında en önemli programlama dili hangisidir?

Aslında bu soruyu biraz daha geniş bir perspektiften bakarak cevaplamak isterim. Daha önce de belirttiğim gibi geliştirici dediğiniz insanın görevi, bir problemi eldeki kaynakları en doğru şekilde kullanarak çözmektir. Bunun için bazen bir script (betim) yazmanız ya da yazılımın var olan özelliklerini kullanarak yeni bir "şey" geliştirmeniz gerekebiliyor.

Biz genelde ölçeklenebilir bir çözüm olması açısından geliştirdiğimiz bütün çözümleri bir yazılım dili kullanarak otomatikleştirmeye ve bu problem karşımıza bir daha çıktığında (ki iyi pipeline developer'ı problemi bir daha karşılaşmamak üzere çözer) en az çabayı sarf ederek çözmek isteriz. Yaklaşık olarak son 8 senedir bunu "Python" dilini kullanarak yapıyoruz. Birçok 3D animasyon ve efekt programının da desteği ile şimdilik bu böyle devam edecek gibi görünüyor.

Ancak hem Python'un bazı konulardaki limitleri hem yeni dillerin gelmesi ile ileride bu değişebilir. Ayrıca ağır matematik hesaplar yapan ve hızlı çalışması gereken yazılımları C/C++ dillerinde yazarız, ancak Anima için konuşursak, bu yazdığımız kodun %1'ine falan karşılık geliyor, geriye kalanın %85'i Python, %15'i de HTML ve JavaScript. Artık hemen hemen hiç MEL kodu yazmıyoruz, inatçı bir iki arkadaşı saymazsak tabii.

Pipeline, post prodüksiyon başlamadan önce mi oluşturuluyor? Bu prodüksiyon sürecinin sonuna kadar pipeline aşaması devam ediyor mu?

Pipeline, yani toplu halde nasıl çalışacağımızı, kimin neyi nasıl imal edeceğini ve ondan sonra işi kime vereceğini işin en başında belirliyoruz, ancak "Kötü Kedi Şerafettin" için işin başında yaptığımız pipeline ile sonunda ki pipeline birbirinden alakasız olacak gibi görünüyor.

Özellikle Kötü Kedi Şerafettin projesi için konuşmak gerekirse, projenin başında olabildiğince çok problemi daha ortaya çıkmadan bulup yok etmeye çalıştık. Ancak o noktada tahmin etmemizin pek de mümkün olmadığı tonla başka problemi çözmek durumunda kaldık.

Dolayısıyla, evet pipeline projenin başında oluşturuluyor, ancak projenin sonuna kadar geliştirilmeye devam ediyor olacak.



"Pipeline Developer" olmaya nasıl karar verdiniz? Bu işi başarılı bir şekilde yapmak için nasıl bir birikime, eğitime sahip olmak gereklidir?

Pipeline developer olmaya aslında karar vermiyorsunuz, yani şöyle bir kariyer fikri ile yola çıkmıyorsunuz: "Evet, ben ‘pipeline developer’ olmalıyım, bu tam bana göre". İşler tam olarak şöyle işliyor; ortada bitirilmesi gereken bir proje ve yığınla iş var. Etrafınızdaki insanların, aslında sizin belki de ufak bir script yazarak onların harcadığı zaman ve çabanın %10'unu harcayarak bitirebileceğiniz işlerle uğraştıklarını görüyorsunuz ve onlara yardım ediyorsunuz. Sonra bu ufak script'ler elinizde birikmeye başlıyor ve bir süre sonra bunları düzenleyip birbirlerini destekleyen daha büyük bir yapı haline getirmeye başlıyorsunuz.

Sonra bunların hepsini silip, her şeyi daha geniş bir perspektiften görerek, daha önce yazdıklarını en baştan yazıyorsunuz işte bunun adına da "Pipeline" deniyor. Bunu yapabilmek için bir kere en önemli özellik, problemlerini asıl kaynağına inebilmek. Belki de benim bu yazıyı okuyan insanlara verebileceğim en önemli öğüt şu: anlık çözümlerle uğraşmayın, karşılaştığınız problemi kökten çözün, ölçeklenebilir düşünün. Yani getirdiğiniz çözüm 1 kişi için de 1000 kişi için de çalışmalı ve sadece o problemi çözen izole bir çözüm olmamalı.

Nasıl bir bilgi birikimi olması gerektiği konusuna gelince şunları söyelebilirim; iyi bir pipeline developer'ının bir kere neyi geliştireceğinden haberdar olması gerekiyor. Yani, tıpkı en iyi Rigger'ların animasyon da yapan ve animatörün neye ihtiyaç duyduğunu bilen insanlar olması gibi, pipeline developer'ının da stüdyonun her departmanının neye ihtiyaç duyduğunu biliyor ve anlayabiliyor olması gerekiyor. Her departmanın nasıl çalıştığını bilirseniz, birbirini destekleyen bir pipeline'ı nasıl geliştireceğinizi de bilebilirsiniz.

Dolayısıyla, iyi bir pipeline developer'ının, animasyon ve görsel efekt stüdyosunun her departmanında çalışmış olması gerekiyor.

Kendi kariyerimden örnek vermek gerekirse, ilk önce modelleme ile başladım. Organik ya da mekanik olarak ayrım yapmadım, neden keyif alıyorsam onu yaptım. Ardından rig ve animasyon ve ondan sonra da ışık ve compositing yapmaya başladım. Daha sonra da efekt ve set extension işleri ile uğraştım. Yaptığım her işi yaparken en iyisini yapmaya çalıştım.

Yinelemek istiyorum, pipeline developer'ı problem çözer, hatta iyi pipeline developer'ı problemlerı daha ortaya çıkmadan çözer. Herhangi bir şeyle uğraşırken, etrafınızdaki insanlardan daha inatçı olun. Bir problemi çözerken harcadığınız zamandan dolayı çıktığınız yoldan vazgeçmeyin, eninde sonunda bir çözüme ulaşacaksınız. Bu en iyi çözüm olmayabilir. Ardından varsa başka ve daha kolay çözüm yollarını görmeye başlayacaksınız. Çözmeye çalıştığınız her şey size deneyim olarak geri dönecek, hiçbir çabanız boşa gitmeyecek ve ileride bütünü göreceksiniz.


3D ve görsel efekt sektörünü tanımayan ama bu sektöre girmek isteyen yazılımcı arkadaşlara önerileriniz nelerdir? 

Herhangi bir programlama dili biliyor olmak hiçbir şey demek değildir. Yani tıpkı benim İngilizce konuşabiliyor olmam güzel bir İngilizce roman yazabileceğim anlamına gelmeyeceği gibi herhangi bir programlama dili biliyor olmam da iyi bir scripter ya da developer olacağım anlamına gelmez. Ancak daha önce kod yazmış ve algoritma geliştirebilen insanlar oldukları için bu işe görsel tarafından girip, kod yazmaya daha sonra başlayan insanlara göre bir pipeline developer'ı olarak daha avantajlı olacaklar.

Bu sektöre girmek isteyen ve halen yazılımcı olarak çalışan arkadaşlara tavsiyem, hiç bir programlama dili bilmeyen ve daha önce hiç bir yazılım yazmamış birine yapacağım tavsiyeden farklı değil; yaptığınız iş hakkında olabildiğince çok şey öğrenin, yeniliklerden kaçmayın her zaman her şey konusunda yeni adımlar atmaya hevesli olun, inatçı olun, yazacağınız her kod parçası diğerini desteklesin, geniş perspektiften bakın, anlık çözümlerle uğraşmayın, ölçeklenebilir çözümler getirin ve son olarak en önemli şey şu bildiğiniz her şeyi herkesle paylaşın.