alper sarikaya: gravity project

41

Upload: gamedevelopersturkey

Post on 18-Jan-2015

719 views

Category:

Education


8 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Alper Sarikaya: Gravity Project
Page 2: Alper Sarikaya: Gravity Project

GRAVITY PROJECT

Page 3: Alper Sarikaya: Gravity Project

Alper SARIKAYA 3B Model-Animasyon ve Kodlama

Burç PULATHANELİ 2B Grafik Tasarım

Page 4: Alper Sarikaya: Gravity Project

• Neden oyun yapıyoruz? • Elimizde ne var? • Elimizde ne yok? • Neden böyle bir oyun?

• 3 Ayda mobil platformlarda oynanabilecek bir oyun yapmak

• Grafik kalitesini olabildiğince korumak

HEDEF

SORULARIMIZ

Page 5: Alper Sarikaya: Gravity Project

• Maya ile olan benzerliği • Kısayollar ve sahne düzeninin önemi • Genel hatları ile öğrenme süresinin kısa olması • Çoklu Platform desteği olması • Fiyat-Performans olarak uygunluğu

Neden

OYUN MOTORU SEÇİMİ

Page 6: Alper Sarikaya: Gravity Project

KONSEPT ÇALIŞMALARI

Page 7: Alper Sarikaya: Gravity Project

KARAKTER MODEL

Page 8: Alper Sarikaya: Gravity Project

EKLEMLEME ve ANİMASYON

Page 9: Alper Sarikaya: Gravity Project

• 60’den fazla kemik sayısı

PROBLEM:

ÇÖZÜM:

• Düşük sayıda bir iskelet daha yapıp animasyonları aktarmak (MEL)

AVANTAJLARI:

• Yapılan animasyonları koruyabildik • Varolan bilgiyi kullanarak zaman kazandık

Page 10: Alper Sarikaya: Gravity Project

İLK ANİMASYON TESTLERİ

• İlk kez hareketli olarak karakterimizi gördük

Page 11: Alper Sarikaya: Gravity Project

OYUNUMUZA FARKLI BİR AÇIDAN BAKIŞ

Page 12: Alper Sarikaya: Gravity Project

ANİMASYONLAR ve EXPORT

• Tüm Animasyonlar 30 FPS çalışıldı

• Animasyonların transferi için, tüm bone’lar bake edildi. (Rig’deki aktarma bizi zorunlu bıraktı)

Page 13: Alper Sarikaya: Gravity Project

LOWPOLY MODELLER

• Hedef : 2.000 Polygon sınırını geçmemek • Polygon Sayısı için Performans-Kalite tercihi

Page 14: Alper Sarikaya: Gravity Project

• Unity – Maya arasındaki birim sorunu • Unity içindeki FBX Scale Factor parametresini

değiştirme tedirginliği

PROBLEM:

ALIŞKANLIKLAR:

• Görsel Efekt’ten gelme alışkanlık : Herşeyi gerçek ölçüsünde modelle!

• Maya’da birimi cm’den farklı bir şey yapma!

SONUÇ:

• Unity’ye herşey gerçek ölçüsünde geldi • FBX Scale Factor 0.01 kaldı.

Page 15: Alper Sarikaya: Gravity Project

LOWPOLY MEKANLAR

Page 16: Alper Sarikaya: Gravity Project

• 40m’lik birimler

Page 17: Alper Sarikaya: Gravity Project

AVANTAJLARI:

• Birbiri ardına eklemelerde kolaylık sağladı • Tasarım aşamasında varyasyon yapmak kolay oldu • Oyun kamerası açısından bakıldığında, en fazla iki

modul yüklenmiş oldu

Page 18: Alper Sarikaya: Gravity Project

KAPLAMALAR

UV lerin yerleşimi

Page 19: Alper Sarikaya: Gravity Project

Kaplama yerleştirmesi

Kaplanmış model

Page 20: Alper Sarikaya: Gravity Project

Kaplanmış model

Kaplama yerleştirmesi

Page 21: Alper Sarikaya: Gravity Project

Kaplanmış model

Kaplama yerleştirmesi

Page 22: Alper Sarikaya: Gravity Project

KAPLAMLAR

• Maksimum kaplama boyutu 1024 x 1024 • Neredeyse tüm kaplamalar için Atlas üretildi, UV alanı

olabildiğince iyi kullanıldı • Bazı sektorlerde Karakter de dahil olmak üzere 3 texture

kullanıldı • Tüm kaplamları için Mip-map oluşturuldu.

Page 23: Alper Sarikaya: Gravity Project

KAPLAMA SIKIŞTIRMA ORANLARI

• Kaplama Sıkıştırmaları ve kapladıkları yer (Mb) • Iphone-Android arasındaki format farklılıkları • Android için Alphalı sıkıştırma • Geçişli kaplamalarda 16-bit RGB yeterli olmadı(Arayüz)

PROBLEM:

ÇÖZÜM:

• İki farklı platform için en Optimize olanı seçmek • Android için Alphalı kaplamaları 16-bit RGB sıkıştırdık • Geçişli kaplamaları 32-bit RGB yaptık

Page 24: Alper Sarikaya: Gravity Project

İLK TESTLER

v.0.01 v.0.08

v.0.13 v.0.18

Page 25: Alper Sarikaya: Gravity Project

UNITY REMOTE

• Engellerin sıklığını ve zorluk derecesini klavye ile test etmek yeterli olmadı

• Touch-pad ‘i gerçek zamanlı test etmek önemli • Kazandırdığı zaman ile kalite artışı oldu

Page 26: Alper Sarikaya: Gravity Project

ARAYÜZ - GRAFİK TASARIMLARI

Page 27: Alper Sarikaya: Gravity Project

ARAYÜZ - GRAFİK TASARIMLARI

• Tüm tasarımları 960 x 640 çözünürlüğünde çalıştık

Yanlışlar:

Sonuçları:

• Android tarafında, farklı çözünürlükten kaynaklanan onlarca sorunla zaman kaybettik

Page 28: Alper Sarikaya: Gravity Project

ARAYÜZ TASARIMI - EZGUI

• Tüm tasarımı grafik olarak kullanacaktık • Tasarladığımız grafik sisteminde çok fazla eleman

olacaktı • OnGUI çalışmak zor ve okuduklarım beni tedirgin

etti

Neden EZ-GUI?

Page 29: Alper Sarikaya: Gravity Project

ARAYÜZ TASARIMI

• Hassas geçişler kullanmak, grafiklerin az yer kaplamasını istemek

PROBLEM

• Daha az geçiş kullanmak ve sıkıştırılmış dosyaları kullanabilmek

ÇÖZÜM

Page 30: Alper Sarikaya: Gravity Project

IŞIKLANDIRMA

Page 31: Alper Sarikaya: Gravity Project

IŞIKLANDIRMA

• FG ve GI taklidi yapan yüzlerce ışık

• Tüm ışıklar sadece «bake mode»da aktif

Page 32: Alper Sarikaya: Gravity Project

GERÇEK ZAMANLI IŞIKLAR

• Gerçek zamanlı ışıklar sadece karakter aydınlatmasında ve hareketli objeler için kullanıldı

• Gerçek zamanlı gölgeler kapalıydı (Unity Basic ile zaten kapalı)

• Gerçek zamanlı ışıklar vertexLight aydınlatması yaptı

Page 33: Alper Sarikaya: Gravity Project

• Windows – Mac arasında Lightmap taşımak

PROBLEM:

• Tüm Levelları tekrar bake etmek

ÇÖZÜM:

Page 34: Alper Sarikaya: Gravity Project

SHADING

• Neredeyse tüm objeler Unity’nin hazırda gelen «MOBILE» shaderları ile kaplandı

• MOBILE olmayan shader tipleri MOBILE için optimize edildi

• Tüm shaderlar ( hazırda olmayanlar) vertexLight tipine çevrildi

Page 35: Alper Sarikaya: Gravity Project

IPHONE - KISITLAMALAR

• Kutu patlamalarındaki partiküller • 3D yapmak zorundayız. Çünkü derinliğe doğru

içinden geçiyoruz. Fake etmek çok iyi çalışmadı • Elektrik panelleri çok fazla ve FPS’i çok etkiliyor

PROBLEM:

• Partikülleri azaltıp, yapısını değiştirdik. Optimize edilmiş shaderlar yazdık

• Elektrik panellerini tek polygonluk objelere dönüştürdük. Sprite animasyonu yaptık

ÇÖZÜM:

Page 36: Alper Sarikaya: Gravity Project

OPTİMİZASYONLAR

• Fizik tabanlı engeller için, rigidbody hesaplamalarını minimuma indirmek için «OnVisibility» ile açma-kapama yaptık.

FİZİK HESAPLAMALARI:

• Kamera Far-clip ile ekrandaki görünen polygon sayısını azaltmak

• Fog kullanarak kesik gözüken ufuk çizgisini kapatmak ve atmosfere destek vermek

KAMERA:

Page 37: Alper Sarikaya: Gravity Project

• Lineer FOG ile Exponantial arasındaki fark • Lineer fog kullanarak 15 fps kazandık

SİS:

• GC.Collect() Çok fazla model giriş çıkışı olduğundan memory seviyeleri arasındaki geçişlerde 1 frame’lik tıklamalar • Çözüm : Elle kontrol etmek

DİĞER:

Page 38: Alper Sarikaya: Gravity Project

SES ve SES EFEKTLERİ

• Ses Sıkıştırmaları ve kapladıkları yer (Mb) • Iphone-Android arasındaki ses oynatma farklılıkları

PROBLEM:

ÇÖZÜM:

• Ana Menüdeki ve oyun içindeki müzikleri kısaltmak (loop edebilecek bir şekilde)

• Android için seslerin sıkıştırma oranlarını arttırmak • Performans arttırmak için sesleri Level başında

«Decompress» etmek

Page 39: Alper Sarikaya: Gravity Project

YAP(A)MADIKLARIMIZ

• Oyunu doğru kişilere test ettirmek önemli • Oyunu yapan kişiler olmak, oyunu analiz etmeye

yetmiyor • Oyunun hikayesini anlatmadık. Atmosferi

güçlendirmek için en önemli silahlardan birini kullanmadık

• Pazarlama ve tanıtım

Page 40: Alper Sarikaya: Gravity Project

İSTATİSTİKLER ( Mart Ayı için)

• IOS : ( $ 0.99)

• ANDROID : ( Free + AdMob)

SATIŞ:

• IOS : 50+

• ANDROID : 2.000+

KULLANICI DERECELENDİRMELERİ

Page 41: Alper Sarikaya: Gravity Project

TEŞEKKÜRLER

• Oyunumuzu oynayan herkese

• Bahçeşehir Üniversitesi

• Elife Sarıkaya • Oya Pulathaneli

• Boğaç Pulathaneli • Ömer Faruk Çolak

• Ekin & Yasemin Arşiray • Yavuz & Nesrin Ünlü

• Umut Ozan • Cenk Şanlıoğlu

• Anıl Abbak

• Emrah Özer