27 Mart 2017 Pazartesi

VR Teknolojileri için Yazılım Geliştirin

Günümüzde pekçok farklı ürün ile kendisini sürekli olarak geliştiren VR (Virtual Realisation - Sanal Gerçeklik) teknolojileri; her bütçeye uygun birbirinden farklı araçlara sahiptir. Bu gelişen teknolojinin imkanlarını ve geliştirilen başlıca ürünlere baktığımızda temel olarak VR gözlüklerini ve VR platformlarını görmekteyiz.

VR Gözlükleri

Google Cardboard, oldukça basit bir kuruluma sahip ve ekonomik bir çözümdür Cardboard 5TL ila 20TL gibi bir fiyatla alınabilmektedir. Google Cardboard'un üzerinde bulunan barkod okutularak sanal gerçeklik deneyimine giriş yapılabilir. 6" telefonların bile takılabildiği Google Cardboard için geliştirici olarak (https://developers.google.com/vr/) uygulamalar oluşturabilir. Ürünün dezavantajları Motion sickness (baş dönmesi ve mide bulantısı) yapma riski yüksektir.


Case 4u vr box 3.0 Türkiye'de ençok satan ve Çin'den ithal edilen bir sanal gerçeklik gözlüğüdür. Yanında bulunan ufak kumanda ile temel haraketler gerçekleştirilebilir. 25TL ila 35TL gibi bir fiyata internetten temin edilebilir Ürünün dezavantajları Motion sickness (baş dönmesi ve mide bulantısı) yapma riski yüksektir.



Samsung cep telefonu kullananlar için uygun bir alternatif olan Samsung VR 119TL gibi bir fiyattan satın alınabilir. Daha önceki ürünlere göre daha profesyonel bir üründür. Ürünün dezavantajlarına baktığımızda, uygulamaların ve araçların oldukça pahalı ve içerik sayısının yetersiz olduğu görülmektedir. Motion sickness dediğimiz baş dönmesi ve mide bulantısı yapma riski diğer araçlara göre daha az olsada yinede 10 dakika ve üzeri kullanımlarda bu sorunlar oluşabilmektedir.


Microsoft Hololens oldukça gelişmiş bir VR gözlüğüdür. 3000$ gibi bir fiyattan yurt dışında satışı başlamıştır. Pek çok alanda kullanıma uygun bir yapıya sahiptir. Ürün ile ilgili uygulamalar geliştirmek için detaylı bilgi https://www.microsoft.com/microsoft-hololens/  sitesinde bulunmaktadır.





VR Platformları


HTC vive tarafından üretilen bir teknolojidir. Sistemin kullanımı için güçlü bir oyun bilgisayarına ve boş bir odaya ihtiyaç duyulmaktadır. 3000$ gibi bir fiyata satın alınan bir ürünün internet adresi https://www.vive.com/eu/




Virtuix Omni gerçek bir VR platformudur. Omni sanal gerçeklik için geliştirdiği pek çok ürünle rakiplerinden farklı bir yerde konumlanmaktadır. Türkiye'de 10.000$ gibi bir fiyatla satılan platform için uygulamalar geliştirilebilir (http://www.virtuix.com/resource-center/)




Bulanık Mantık

Tarihsel Geçmişi:
Bulanık küme teorisi türetilen
1965 yılında University of California, Berkeley Prof Lotfi Zadeh tarafından geliştirilmiştir.
Bulanık küme teorisi geleneksel ("net") küme teorisininden farklıdır.
Geleneksel küme teorisi: Bir nesne ya bir dizi ya da aittir.
Bulanık küme teorisi: bir nesne bir dizi "kısmen ait" olabilir
Örnek: Uzun ve Kısa: iki takım insanları sınıflandırmak için
Orta uzunlukta olan biri kısmen o gruba ait olarak sayilır.


Bulanık Küme Üyeleri

Geleneksel Küme Teorisi: Bir nesne dizi üyesidir.
Bulanık Küme Teorisi: Bir nesne kısmen bir dizi üyesidir.


Üyelik Fonksiyonu

Örneğin, Kısa, Orta ve Uzun üç grup için üyelik fonksiyonları tanımlayabilir. Kişinin boyuna göre hangi grupta olacağı belirlenir.
Kimi oyunlarda anlık yapılan yer tespiti gibi.



Mantıksal Operatörler

Programlar içerisinde sürekli olarak kullanılan mantıksal operatörlerin doğru ve yerinde kullanılması. Ara değer ve eşittlik değerlerine bakılarak sistemin test edilmesi önemlidir.

 Bulanık Mantık Operatörleri

Gelen veriye göre program içerisinde kullanılan mantıksal operatörlerin kullanımları farklı olabilir.
NOT:
AND:
OR:


Kurallar

Örnek olarak mavi olarak tanımlanan bir grupta bulunan bir nesne diğer mavi nesnelerine saldırmaması gerekmektedir.
Diğer nesnelerden biri kırmızıya döndüğünde saldırı yapılacak şekilde kuralın tekrardan tanımlanması gerekmektedir.
Anlık olarak durum kendi ile tutarsız olarak görünsede kendi içinde belli bir bulanık mantık sorusu olarak karşımıza çıkmaktadır.
Burada anlık duruma göre karar değişecektir. Bunun kolay bir şekilde yapılması için bir karar tablosu içeriinde bu kuralların yazıldığı bir tablo oluşturmak yararlı olacaktır.


Bulanık Mantığın Bir Oyuna Uygulanması
Kullanılan Bulanık Mantık Yöntemi ile oyuncunun yapacağı hareketleri belirleyip ona karşı bir karşı duruşun tanımlanması gerkmektedir.
Yanda Hareket İle İlgili Tablo örneği verilmiştir.
Eğer ilk hareket yumruk,İkinci Hareket yumruksa üçüncü hareketin aşağıdan gelen bir tekme  olma ihtimali daha çoktur.

Kullanıcıların Hareketlerinin Tahmini


Nasıl Karar Tablosu Oluşuturulacak
İlk ve ikinci Tablo sutununa olası bütün sonuçlar yazılır.
Kullanıcı oyun sırasında yaptığı hareketler kaydedilir.
Örnek olarak kullanıcı yumruk, yüksek tekme hareketlerini yaptıktan sonra yumruk atma ihtimali ve yüksek tekme ihtimali daha fazladır.
Daha önce yaptığı hareketlere bakılarak.

Kullanıcının Hareketini Tahmin Et!

3. Hamlede hangi hareketi yapacaktır?



Olasılık

Eğer gelecek hareketi bilsek okuncu kanaza bilirmi?
Peki olasılı nasıl belirleyeceğiz!
Örnek: 100 hareketten 30 hareket yumruksa yumruk yani punch yüzdesi P(punch) = 0.3
Matematik Nerelerde ?

P(AuB) = P(A) + P(B) – P(AnB)
Son 100 günün; 70 günü hava kapalı ve 35 günü yağmurlu oldu başka hava koşulun da bir günde olmadı!
Kaç gün hem kapalı hemde yağmurlu oldu?



AI nedir?

Oyun programlamadaki yapay zeka; oyun içierisindeki kullanıcı dışındaki bütün objelerin insana özgü bazı davranışları oluşturmasını sağlamaktır.
Örnek Olaraak
Araba oyunundaki diğer arabalar.
Ateş ettiğiniz canavarlar
RTS oyunlarındaki rakip nişancı

AI Kullanımı

Yapay Zeka Kullanıcının Herbir yeni hareketine göre tekrar kendini çalıştırarak yeni bir konum belirlemelidir.
Her Yerde Kullanılmalımıdır?


Yapay Zekanın Amacı
Amaç Temelli Ne Yapacağı sıkı kurallarla verilmiş. Bu hareketi yap şu hareketi yapma.
Hemen değişen durumlara yanıt verme.
Knowledge intensive - the AI knows a lot about the world and how it behaves, and embodies knowledge in its own behavior
Karakteristik olarak sadece bazı olaylara yanıt verme.
Ayrıca AI sayesinde
AI hızlı ve kolay geliştirmeye yardımcı olur.
CPU ve RAM kullanımını azaltır.


Yapay Zekaların Video Oyunlarında Kullanımı

5-10% CPU Gerçek Zamanlı
25-50% CPU for Durum Temelli

Takip /Kaçış davranışları
Grup davranışları
Sonlu durum makineleri
Adaptasyon / Öğrenme


Takip Kaçma

En kısa yol algoritması bu durumlar için kullanınıla bilir. Canavarın oyuncuyu en kısa yoldan yakalaması. Araba yarışında diğer arabanın oyuncuyu en kısa yolu bularak geçmesi.


Örnek Kod

Oyunu oynayan ile Oyundaki canavarın konumlarının alınıp
en kısa yoldan canavarın kullannıcı üzerine saldırması

Predator is at coordinates (predatorX,predatorY).

Prey is at coordinates (preyX,preyY).

if (predatorX > preyX) {
   predatorX--;
} else if (predatorX == preyX) {
   // do nothing
} else {
   predatorX++;
}

if (predatorY > preyY) {
   predatorY--;
} else if (predatorY == preyY) {
   // do nothing
} else {
   predatorY++;
}

Algoritmayı Geliştirmek

En Kısa Yolun Bulunması

Algoritmayı Geliştirmek

Bresenham’s algoritması ile En Kısa yolun farklı bir şekilde bulunması


Ekran ile Bu işin bulunması

Ekrandaki Pixel ilede bu işler gerçekleştirilebilir.

 Örnek Bir Kaçma Algoritması


Terimleri Tanımlama:

Closing velocity, Vc = Vprey – Vpredator

Range to close, Sc = Pprey – Ppredator

Time to close, Tc = | Sc | / | Vc |


Intercept position hesaplaması

Intercept position = Pprey + Vprey x Tc


Yol Bulma


Problem Oyuncu verilen yollar içerisinden en kıza olan yolu bulması gerekmektedir.
Yol Bulma Algoritması
En etkin şekilde en az maliyetle en güzel yolu bulma
Etkinlik
Yolun Durumuna Bak
Çevrenin Durumuna Bak
Noktaları Kullan.




Pseudocode


Add starting node to open_list

while (not_empty(open_list)) {
    current_node := node from open_list with lowest cost
    if (current_node==goal_node) {
        path complete
    } else {
        move current_node to closed_list
        for each node adjacent to current_node {
            if ((node is not in open_list) && (node is not in closed_list)) {
                move node to open_list
                assign cost to node
            }
        }
   }
}




Yolu Nasıl Kat Edeceğiz


Add starting node to open_list

while (not_empty(open_list)) {
    current_node := node from open_list with lowest cost
    if (current_node==goal_node) {
        path complete
    } else {
        move current_node to closed_list
        for each node adjacent to current_node {
            if ((node is not in open_list) && (node is not in closed_list)) {
                move node to open_list
                assign cost to node
            }
        }
   }
}

Yolun Tamamlanması yada yolda bir yer katedildiğinde hangi kodların çalışacağı liste içerisinde nasıl kullanılacağı verilmiştir.


Maliyeti Nasıl Belirleyeceğiz?


Maliiyet = Başlangıç Maliyeti + Sezgisel

Başlangıç Maliyeti= Başlangıç Noktasında olan maliyet

Sezgisel = Hedef Düz bir çizgi gibi ulaşılabiliyormu?


Örnek-1

Örnek Devam

Örnek  2


 Graph Yol Bulma


Maze tarzı Bir oyunda Yolbulma.




 Bir Graf oluştur.
Düyümler Sistem İçerisinde Tanımanmış Olmalı

 Her Birinin Belli Bir Maliyet Hesabı Olmalı.



Graph En Kısa Yol (En Kısa Yolu Bulma Algoritması)

Kordinat Sistemi


3-D grafikler için kordinat sisteminin iyi algılanması gerekmektedir. Her bir  noktonın 3-D sistemde x, y ve z kordinatlarına sahiptir.
O noktasının kordinatının gösterimi (0,0,0)
Çizgi

Bir çizgi uzayda 2 nokta arasındaki düz bir şerit ile ifade edilir.
İki temel noktası vardır.
Sonuç noktasına vertex adı verilir.
Her bir vertex noktasınında 3-D  bir kordinatı vardır. 3 Boyutlu sistemlerde kullanılan.


Poligonlar

Poligonlar ise 2D şekillerdir vektörlerden oluşuturlar.
Bir dizi vektörün farklı açılarla birleşmesi ile poligonlar ortaya çıkar.




Küp


3D bir obje oluşturmak için 2D olan objeleri bir araya getirmek gerekmektedir.
Örnek olarak bir (3D) Küp oluşturmak için. 6 tane kare (2D) kullanmak gerekmektedir.



Renkler

Bilgisayarda bulunan renkler RGB kırmızı, yeşil  ve mavinin birleşimi ile RGB kodları kullanılarak oluşturulur.
RGB formatı Red, Green and Blue şeklindedi.
Aşağıda bazı temel renk örnekleri gösterilmiştir.
(0,1,0) is green
(1,1,1) is white
(0,0,0) is black
(1,1,0) is yellow




Kamera


Bir resim olması için bazı temel yapıların sistem içerisinde olması gerekmektedir.
Sonrasında kameranın hangi noktada olacağı ve nereye odaklanacağı belirlenmelidir.
Sonrasında ise kullanılan yapılar ile objeler sistem içerisinde oluşturulması gerekmektedir.


Oyun Motorları

Bazı Ücretsiz Oyun Motorları Aşağıdaki Listede verilmiştir.
irrLicht: http://irrlicht.sourceforge.net/
Bu oyun motoru ücretsiz olup. Microsoft Visual C++ ile geliştirilmiştir.
Cube: http://www.cubeengine.com/cube.php4
Ogre: http://www.ogre3d.org/


Oyun Nedir?

Oyun: Bir faliyete ilişkin düşünce ve duyguları ortaya çıkartan eylence odaklı aktivitedir.
Oyunun Temeli
Kurallar bütünü içinde tanımlanmış bir obje olmalıdır.
Gerçek : İnsanlar oyunları oynamayı sever
Nedenmi?Bununla ilgili pek çok teori ortaya atılmıştır fakat hiç biri tam olarak bu olayı açıklayamamıştır. 
Kısa cevap: İnsanlar oyun oynamayı sever çünkü bu eylencelidir.


Oyun Oynamanın Amacı
 
Oyun oynamak duygusal bir tepki uyandırır ve insanlar bu duygusal tepkileri severler bundan dolayı oyun oynarlar
Örneğin: gerginlik, sürpriz, korku, merak, macera, meydan, fantezi
Güvenli bir ortam
Oyuncuların sonuçları gerçek  değildir. Buda bize güvenli bir ortam sağlar (neredeyse)
Oyun içindeki bir karakter 100m den atlaya bilir  ama siz? Buda bize güvenli bir ortamın oluşmasını sağlar.

Oyun geliştiricisin hedefi: insanlar oynarken o oyundan zevk aldıklarında ortaya çıkan mutluluk ve maddi kazanç olacaktır.

Ama Nasıl?

İşte sizin için amaca giden bazı temel ipuçları.

İnsanlar  genellikle hoşlandığı oyunlara bakarar nasıl olduğunu biraz anlayabiliriz
İç deneyimi: Oyunun tarafından sağlanan fantezi, görsel ve deneyimler.
Sabit eğlenceli: Strateji ve zorlu problem çözme keyfi
Kolay eğlenceli: Bazı kolay keşif ve macera keyfi
Sosyal deneyim: Bu ??takım çalışması, rekabet, tanıma, manipülasyon gibi sosyal deneyimler.


Kurallar

 
Çoğu oyunun kendi içerisinde kuralları vardır.
Kurallar kimi durumlarda belli yada belirsiz olabilir.
Açık kurallar net ve tartışmaya açık olmayan herkes tarafından anlaşılır biçimdedir
Belirsiz kurallar ise çoğu durumda oyuncunun oyuna olan ilgili kaybetmesine neden olur. (Neden Angry Bird Çok tuttu? Kural Belli)
Örnek: Eğer uçurumdan düşerse oyun sona erer.
Belirsiz Kurallar Bağlayıcı Değildir. Bundan dolayı bu kurallar formalde değildirler.
Bazı durumlarda ise gizli kurallar oyuncular arasında rekabetin artmasına yol açaar bu sayede oyunun oynanma isteyini arttırada bilir.
Bazı durumlarda örtülü kurallar oyunun temelini oluşturabilir.
Bu gizli yada örtülü kural oyun içeriğine bağlı olarak oluşturulmalıdır.

Öncül Model
 
Her oyunun bir dayanak noktası vardır.
Oyun kendi içerisinde bir hayal dünyasına sahiptir.
Bir araba yarışının temel dayanak noktası arabayı kullanıp bitişe ilk sırada varmaktır.
Yada bir spor oyununda oyuncuları kontrol edip amaca ulaşmak.
Yada diğer oyunlarda verilen görevi başarmak.
Her oyunun bir modeli vardır ve bir oyun bir model oluşturur.
Model ile konu arasında bazı farklılıklar olsada aralarında derin bağlantılar vardır.
Örneğin bir tuş ile bir oyuncu kontrol edilirken bir oyunda diğer bir oyunun modelinde aynı tuş ile çöp atılabilir.
Normalde bir insan çöp atmayı sevmezken Sims oyununda bu iş ona zevkli gelebilir.


Belirsizlik ve Rasgelelik
 
Belirsizliklerin olmaması için, her zaman aynı giriş ve çıkış durumu göz önüne alındığında, aynı şekilde yanıt veren bir sistem olmamalıdır.
Bir oyun belirleyici(deterministik) olmalı mı?
Belirsizlik çok olursa oyun sıkıcı olurmu?
Cevap: Belirleyicilik bazı durumlarda avantajdır. Genelliklede istenilen bir durumdur.


Oyun Platformları

Oyun Pilatformları:
Kişisel Bilgisayar
Konsol (PlayStation, Nintendo, Xbox)
El Konsolları (Game Boy, PSP, PSPVita)
Mobile Cihazlar (Cell phone)
PC ile Diğer Konsolları Karşılaştırması
PC oyunları konsollarla aynı platformda geliştirilebilmektedir.
Diğer platformlarda oyun geliştirmek için ise özel geliştirme kitleri gerektirebilir.
Konsolların bazı özellikleri pclere kıyasla daha avantajlı olsada konsollar için oyun geliştirmek daha maliyetlidir.

Oyunun Kaydetmek
 
Tüm platformlarda  oyunu kaydetmek önemlidir. Ama bazı konsollarda (Oyun salonları Gibi yeni jeton atmak için) yeni aşamaya geçilmesini zorlaştırmak için oyun kaydetme özelliği yoktur.
Oyun Kaydetmek İçin Farklı Yollar
Otomatik Olarak oyunun belli bir yerindeyken oyunu kaydetmek.
Dezavantajı: Oyuncun sahip olduğu özelliği azaltır.
Heryerde Kayıt: Oyunu oynayan kişiye oyuunun herbir noktasında kayıt özelliği verir.
Dezavantajı: Sistem ihtiyaçları ve global değişkenlerin kaydı zordur. Aynı zamanda oyunun kullanıcı için çok kolaylaştırır.
Oyunun bazı noktolarınında kayıt.
Dezavantajı: Oyunu zorlaştır.
Bir kayıt yöntemi tasarlarken, bunu uygulamak için kaynağa sahip olup olmadığının da oyun için neyin uygun olduğunu belirlemek gerekir.


Oyuncuların Özellikleri

Hedef Kitleniz Nedir?
Yaş,cinsiyet, gelir durumu
Hedef Kitlenizin Bilgi Durumu Nedir?
Hedef Kitlenizin Talepleri Nelerdir?
Oyun Sektöründe İki çeşit oyuncu grupu vardır.
Oyun  Bağımlıları
Uzun Süre ile oyun oynayanlar
Sürekli olarak Oyunlar Hakkında bağsediyorlar
Oyunlar hakkında çok bilgileri var.
Son oyunlara sahipler
Oyunlardaki her bir öğeye dikkat eden.
Bazı oyunların Bağımlıları
Sadece bazı oyunları oynayan ve o oyunlardaki gelişmeleri takip edenler.
Klasik oyuncular:
Boş zamanlarda az sıklıkla oyun oynayanlar. Oyun oynamasada her hangi bir oyun oynama isteği istemeyenler.

Game Oyun Geliştirme Süreci


Iterating: Doğru ve istenilen sonuca ulaşmadan önce yapılması gereken adımları kapsar. Tekrar ve tekrar kodun ve yapının düzenlenmesi.
Prototyping: Ürünün erken aşamada oluşan o anki durumunu kapsayan hali. Bu aşamada performans önemli değildir.
Software testing: Hataların mümkün olan en az seviyeye indirilmeye çalışıldığı testleri kapsamaktadır.
Play-testing: Oyuncuların oyun piyasaya çıkmadan yapılan testtin olduğu kısımdır.



Pisikoloji İle İlgili Durumlar

Oyun tasarımı sırasında akılda tutulması gereken bazı insan ile ilgili psikolojik sorunları kapsamaktadır.
Working memory: İnsanlar genellikle akıllarında 7+ / -2 tane olayı akılllarında tutmaktadırlar bir an içinde.
Artı ve Eksi durumlar: İnsanlara oyun içerisinde verilen bazı ödüllerle kişinin pisikolojik olarak bağlı olmasını sağlar. Eksi durumda ise bu bağ tam olarak sağlanamaz ve sonuç olarak kişinin oyuna bağlılığı azalır.



Mimarinin Birleşenleri

Bazı iyi modüllerin yada işleyen pratiklerin yanında, oyunun mimariside oyunun oluşması önemlidir. Ayrıca mimarinin oluşması için seçilen oyun motoruda sistem için çok önemlidir.
Oyun Motor Kodu:
Birçok oyun tarafından kullanılacak
Grafik işleme, çarpışma algılama kodu, yol bulma vb
Bazen daha fazla grafik motoru, AI motoru, fizik motoru vb bir oyun motoru olabilir
Oyunla ilgili detaylı kodlar:
Sadece bu oyunda kullanacak kodları baarındıran yapılardır.

Oyun Programlama

Temel Bilgiler
 
Francois Dominic Laramee’in Oyun İşletme Sırları
Oyun Geliştirme Pastası Dünyadaki Durumu (Yıllık 20 Milyar Dolar Harcanmaktadır.)
Çok az oyun büyük kazançlar elde etmiştir. Oyunların Kazançlarının %95’i oyunun isminden gelmiştir. (NFS, Fifa, Halo, WoW, Call of Dutf, AgeOfEmpires, TotalWar,vb.)
Sektör büyük oyuncular tarafından domine edilmektedir. Örnek Olarak Electronic Arts gelirlerin 20%  kısmını almaktadır.
Piyasada korsanlık yaygındır. Oyunların çoğu kaçar olarak kullanılmaktadır. Çin ve Kore'de hemen hemen tüm oyun yazılımı korsandır. Bu nedenle online oyun piyasası oluşmuştur. (Diablo3 gibi)
Bir oyun için tipik üretim ücreti: $ 10 milyon dolardır. (CNN rapor, Sep 24, 2005)

Oyun Türleri

3D Oyun Programlama Kenneth Finney tarafın hazırlanan All-in-One isimli yazıda oyun türleri ve örnekleri kısmında...
Action: Half Life 2, Rainbow Six
Adventure: King’s Quest
Role-Playing Games (RPG): Dungeons and Dragons
Puzzle/Maze: Pac-Man, Tetris
Simulator: Falcon 4, Grand Prix Legends
Sports
Strategy


En Önemli Konular


EĞLENCE!
Eğlenceli nedir?
Survival, tehlike: Ceza, polis, asker
Spor
Kaçış Oyunları (Pac-Man)
Öykü ve sosyal
Iyi bir oyun Esasları:
Kısa vadeli ve uzun vadeli hedefler her zaman farkında Oyuncu
Anlamlı ve ilginç
Açık ve zorlayıcı hedefler
Eğer hayali bir dünyada oyun oluşturma işi varsa: O dünyanın etkileyici olamsı gerekmektedir.


Eğlence ve Anlamlı Çıktılar
Ne olursa olsun aynı şeyi yapmak ve aynı sonuçlara ulaşmak eylenceli değildir. Oyun içindeki çeşitliliği arttırmak gerekir. (Aynı hedef ve aynı silah yerine farklı hedef ve farklı silah kullanımı gibi.)
Bazı oyunlarda belirgin seçenek vardır, ama sonunda aynı sonuca yol açar bu kimi zaman istenmeyen bir durum olabilir. Buda eylence olgusunun azalmasına yol açar
Sınırlı bütçe: Biz kullanıcılar her şeyi keşfetmek ve her şeyi kullanmak istiyoruruz buna izin veren şablonlar program içinde tanımlanmalı.
Her zamanki stratejisi, yol boyunca bazı yakınsamalar oluşturarak oyuncuyu manipüle edilmesi eylenceyi arttırır.

Zorluk Seviyeleri

Yardımcı Kaynaklar

AI Game Engine Programming by Brian Schwab
AI for Game Developers by David M Bourg and Gleen Seemann
Physics for Game Developers by David M Bourg
3D Game Programming All-in-One by Kenneth Finney
Teach Yourself Game Programming in 24 Hours by Michael Morrison


Bir Oyun Nasıl Yapılır?
 
Temel Fikir
Hikaye ve Hikaye Süreci
Garafikler
Sesler ve Kontroller
 
 

20 Mart 2017 Pazartesi

Ionic Framework ile Kolayca Mobil Uygulamalar Geliştirin

Ionic Framework; AngularJs bilenlerin kolayca mobil uygulamalar hazırlaması için geliştirilmiş oldukça yararlı bir frameworktür. Tabi bu uygulamaları geliştirmek için AngularJs'in yanında Html, Css ve Js bilgisinede ihtiyaç vardır. Microsoft'un Studio kullanılarak kurulum yapılabilir. Sublime kullanılarakta kodlar yazılabilir. Framework hakkında daha detaylı dilgiyi edinmek ve ücretsiz olarak framework'ü indirmek için aşağıdaki linki kullanabilirsiniz. https://ionicframework.com/products/

  


 Ionic Eğitim Videoları 21 Adet (ingilizce)
 

Code.io ile Projesyonel Tasarımlı Web Siteleri

Birbirinden farklı, kaliteli ve oldukça değişik özelliklere sahip onlarca Css, Html-5 ve JS projesini içerisinde barındıran Code.io sitesi; web tasarımı yada web programlama ile ilgilenenlerin ziyaret etmesi gereken güzel ve kullanışlı bir web sitesidir. Site içerisinde oluşturulmuş yüzlerce projeyi inceleyebilir, kodlarını kendi bilgisayarınıza keydedebilirsiniz. Kendi yaptığınız projeleride site üzerinden yayınlama imkanıda veren Code.io sitesinin web adresi http://codepen.io

Site üzerinde Html-5 ve Js kullanılarak geliştirilmiş oldukça fazla sayıda oyunda bulunmaktadır.
Örnek : http://codepen.io/coderontheroad/details/Fbfjh 
Örneğin kodları http://codepen.io/anon/pen/vEZOOb