Benim Blogum!

Evet arkadaşlar kişisel bloguma hoşgeldiniz! :)
Spor, Programlama, C#, Javascript, Adobe Illustrator&Photoshop, Unity3D... başlıklarını bu blogumda ele alacağım.
Ve kişisel spor günlüğümü tutacağım. Takipte kalın!

29 Haziran 2014 Pazar

Unity3D ile Oyun Yapmaya Nasıl Başlayabilirim? Oyun Programlamaya Nasıl Başlamalıyım?

 Merhaba arkadaşlar. Bugün sizlerle "Unity3D ile oyun programlamaya nasıl başlanır?" hakkında konuşacağım.
 Arkadaşlar diyelim ki platformunuzu belirlediniz ve en uygun oyun motoru olarak Unity3D'yi seçtiniz. Pekâlâ. Fakat ne programlama biliyorsunuz ne de başka bir şey. Bu durumda nasıl başlanmalı?
 Bana göre önce bir fikriniz olsun, bir proje! Ona göre ders eğitimi alırsınız. Mesela 2d platform oyunu ya da fps oyunu yapacaksınız fakat oturmuş araba oyunu dersi izliyorsunuz. Saçma ve zaman kaybı. Tamam biraz katkısı olabilir ama zaman kaybı beyler.
 2.adım öncelikle "Algoritma nedir?" onu öğrenmekle başlamalısınız.
 Ardından temel seviye C dersi almanız sizin yararınıza! Yani fonksiyon ve döngülere kadar gelseniz yeterli.
Ardından UnityScript dili karşımıza çıkacak. Bu dil C# ve JS kullanır. Ve size tercih hakkı verir. Burada kendiniz dil seçersiniz. Eğer pek yetenekli değilseniz öncelikle JS çözmenizde yarar vardır. Çünkü daha basit bir dildir. Ardından C# öğrenebilirsiniz.
 P
ekâlâ, programlama ve Unity3Dyi öğrendik diyelim. Sıra geldi oyunu yavaştan yapmaya. Bu adımdan sonrası size ait. Önce bi' ortamı çizin bir kağıda. Ardından karakterleri,müzikleri,sesleri,grafikleri,animasyonları vs vs yazın ve not alın. Ardından sırayla hallediniz :).
 Evet arkadaşlar bir sonraki yazımızda görüşmek üzere! Takipte kalın!

17 Haziran 2014 Salı

Ders 04: Javascriptte Diziler(Array)

Merhaba arkadaşlar. Bugün sizlerle Javascriptte Array'ları yani dizileri işleyeceğiz :) .

DİZİLER
Diziler, bir değişken adı altında birden çok veri saklamak için kullanılır.Programlama yaparken birbirleriyle bağlantılı olan  birden fazla veriyi tekbir değişken adı altında toplayıp o değişkeni kullanmak işimizi çok kolaylaştırır.

 Özetle dizi içerisinde birden fazla veri saklayan değişkenlerdir. Dizi değişkenlerinin içerisindeki her bir ayrı veriye element veya eleman denir. Bu elemanlara ulaşmak için indeks numarası (sıra numarası) kullanılır.

NOT: Javascriptte indeks numaraları 0'dan başlar.

  Yeni bir dizi oluşturmak için new operatörü kullanılır.
var gunler=new Array();
Yukarıda gunler isimli bir dizi oluşturdum. Oluşturmuş olduğum dizi, 0 boyutlu bir dizii. Yani içerisinde hiç eleman bulunmamaktadır. Boyut, dizinin içerdiği yani sahip olduğu eleman sayısıdır.
  Dizi tanımlamak için başka bir yöntem de new operatörünü kullanmadan direk dizi değişkeni içerisine değerleri atamaktır.
var gunler=[];

 DİZİ DEĞİŞKENİNE ELEMAN(DEĞER) GİRME
   1.Dizi değişkenine eleman girmek için dizi değişkeni oluşturduğumuz sırada değer girebiliriz. Genelde dizi sabit olduğunda kulllanılır.

var bilgi=new Array("ahmet",1,2,3,4);                                                     /*                                                                                  ya da                                                                              var bilgi=["ahmet",1,2,3,4];                                                                                    */
Dikkat ederseniz dizi değişkeni ile aynı satırda yani diz değişkeni oluşturulduğunda değerler atanıyor.
  
2. Dizi değişkenlerine indeks numaralarını kullanarak değer atayabiliriz. Javascriptte indeks numaraları 0'dan başlar.
_____________
var bilgi=new Array();
//0 boyutlu bir dizi oluşturduk.
bilgi[0]="ahmet";
bilgi[1]=1;
bilgi[2]=3
bilgi[3]=true;
__________________________________
* Bir dizi değişkeni içerisinde farklı veri türlerine sahip elemanlar içerebilir(string,int,boolean gibi)
___________________________________
var bilgi=new Array("bilgisayar",3,4,true);
_______________________________________
   Dizi değişkeninin veri türü belirtilmemiş, bu dizi içerisinde farklı veri türlerine sahip veriler saklayabilir. Javascript bu konuda çok gevşektir. Javascript dizi değişkenleri içerisinde , bir değişken ya da operatörler kullanabiliriz.
---------------------------------
var sayi=5;
var bilgi=new Array("bilgisayar",3+4,sayi,true);
---------------------------------
Dizi değişkeni içerisinde + operatörü ve sayi isimli değişkenler kullanılmıştır. + operatörünü stringleri de birleştirirken kullanabiliriz.

Evet arkadaşlar bir dersin sonuna daha geldik.
Sonraki derste görüşmek üzere, esen kalın!


16 Haziran 2014 Pazartesi

Ders 03: Javascriptte Operatörler

Ders 03: Değişkenlerin İşlem Operatörleri ile Kullanımı
Operatörler: Aritmetik, Karşılaştırma, Mantıksal, Özel Operatörler

Aritmetik Operatörler:(+,-,*,/,%)
+ -> Toplama
- -> Çıkarma
* -> Çarpma
/ -> Bölme
% -> Mod

Örnek:
var i=10;
var j=11;
var k=12;
var m,n;
m=i*j+k;
n=i*(i+k);


Bir de Js'nin bize kolaylık sağladığı operatörler var. Bunlar: -=; +=; *=; /=; %=; ++; --;
Bu ooperatörlerin uzun halleri:
x+=y -> x=x+y
x-=y -> x=x-y
x*= ->x=x*y
x/=y ->x=x/y
x%=y ->x=x%y
x++ ->x=x+1
x-- ->x=x-1 

KARŞILAŞTIRMA OPERATÖRLERİ: 
Değişkenlerin birbirleri ile karşılaştırmak istenildiğinde kullanılır. 
== operatörü iki değişkenin birbirine eşitliğini kontrol eder. 
!= operatörü iki değişkenin birbirine eşit olmadığı durumlarda kullanılır. 
< operatörü küçüktür operatörüdür. 
> operatörü büyüktür operatörüdür. 
<= operatörü değişkenin sağdaki değişkene göre küçük eşitliğini kontrol eder. 
>= operatörü değişkenin sağdaki değişkene göre büyüklük eşitliğini kontrol eder. 

MANTIKSAL OPERATÖRLER: 
iki değişkene bağlı karşılaştırılmaların yapılmak istendiği durumlarda kullanılır. Operatörler &&, ||(ctrl+alt+* tuşu),! operatörleridir. 
&& And(ve) operatörü iki değişkenin değeri doğru olması istendiğinde kullanılır. 
|| Or (veya) operatörü iki değişkenden birinin doğru olması durumunda kullanılır. 
! Not(değil) operatörü değişkenin değeri doğru ise yanlış, yanlış ise doğru olması istendiği durumlarda kullanılır. 

ÖZEL KARŞILAŞTIRMA OPERATÖRLERİ 
Bu operatör iki değişken arasında karşılaştırma yapmanın en sade ve kısa yoludur. Kullanım biçimi: 
değişken_1 [Karşılaştırma Operatörü] değişken_2 ? değişken_3: değişken_4 
Bunu bir örnekle açıklayalım:(Değişkenlerin tanımladığımızı farz ediyorum.) 
a<b?c:d 
Yukarıdaki satırda yapılması istenen işlem: a değişkeninin b değişkeninden küçük olup olmadığı karşılaştırılıyor. Buna göre cevap doğruysa işlemin sonucu c değişkenin değeri; değilse d değişkeni oluyor. Şimdi örnekte inceleyelim: 

var i=1; var j=2;
var k=3; var m=4;
var n=5;
var p=6;
var q=7;
i=+j;
j++;
k--;
m=m+k;
n=*j;
i<j?3:1;
//Dikkat edin. 3Den sonra iki nokta var; noktalı virgül değil.
k>=n?0:1;
k=2 && j=5?p:q;
i=2 || j=3?m:n;
p!=2?k:10;


İlk 7 satırda değişken tanımlayıp değer atadık. İşlem satırlarına geçelim: 
Bu işlem i=i+j işlemini yapmamızı söyler. i'nin değeri 3 olacaktır. 
j++; satırıyla j'nin değeri j'yi 1 arttırarak 3 olur. Diğer işlemde k--; işlemi ile k 2 değerini alır. 
Diğer satırdaki m=m+k işelmi ile m(m=4) değişkenini k(k=2) değişkenini toplayarak 6 değerini alır. n=*j işlemi ile n(n=5) değişkeni 3*5=15 değerini alıcaktır. 
Şimdi diğer karşılaştırma işlemlerine geçmeden önce değişkenlerimizin işlem sonrası aldığı değerleri yazalım. 
i=3,j=3,k=2,m=6,n=15,p=6,q=7. 
i<j?3:1; 
Bu satırın 3>3 işlemin cevabı doğru ise 3 değilse 1 değerini alacağını görebiliyoruz. 
k>=n?0:1; 
Bu satırda ise 2>=15 işlemi gerçekleşir ki bunun cevabı yanlıştır ve ikinci değer işlem satırının cevabıdır yani 1'dir. 
k=2&&j=5?p:q; 
İşlem bize ne söylüyor? k değişkeni ve j değişkeninin kesin olarak bir değere eşit olup olmadığını karşılaştırmamızı da söylüyor. Bu iki değer de doğruysa çünkü &&(and) mantıksal operatörünün anlamı bu işlem doğru değilse yanlıştır. Buna göre k=2'dir. Fakat buna karşılık 1'in değeri 5 değildir.Bu yüzden karşılaştırmanın değeri yanlıştır. Dolayısıyla işlem q yani 7 değerini alır. 
p!?2?k:10; 
İşlemde istenilen p değişkeninin değerinin ikiden farklı olması durumdur. Yani 6!=2 bunun anlamı doğrudur. Gerçekten de 6=2 değildir. Biz de bu satırda bunu istiyorduk. O halde cevap doğrudur. Böylelikle işlem k yani 2 değerini alır. 

Evet arkadaşlar bir dersin daha sonuna geldik. Bizi takip etmeyi bırakmayın, esen kalın!

Ders 02: Javascripte Giriş

2.DERS :)
JAVASCRİPTE GİRİŞ VE DEĞİŞKENLER

Nesne ve buna uygulanan olaylar ile ilgili bir takım görevleri vardır. Javascript kullandığı her unsuru nesne olarak algılar.
-İyi bir programcı kod satırlarında açıklamalar yapar.
AÇIKLAMA SATIRLARI: Eğer kodlarınız arasına küçük notlar düşmek isterseniz --> Tek satırlık ise -> //......
Birden fazla satırlık ise -> /* ....
........
...*/
VERİ TÜRLERİ:
NUMBER

Sayısal bir veri türüdür. Ondalıklı ve tam sayıları tanımlamak için kullanılır.
* 8 tabanlı sayıları tanımlamak için başına “0″
* 16 tabanlı sayıları tanımlamak için başına “0x” yazılır.
ÖRNEK:
var a = 55 // tamsayı
var a = 055 // 8 tabanlı sayı
var a = 0x55 // 16 tabanlı sayı
 


BOOLEAN

Mantıksal bir veri türüdür. true (doğru) ya da false (yanlış) değerlerini alabilir.
Örnek: 
var t = true;
var k = false;


STRING

Karakter katarları (metin, metin grupları) string olarak tanımlanabilir. Sayısal değerlerinde string olarak tanımlanabilmesi mümkündür. Fakat matematiksel olarak işlem yapılamaz.
ÖRNEK:
var t = "ali";
var k = "12";


JavaScript'te tür güvenliği
JavaScript tür güvenliği olmayan bir dildir. Aynı değişkende önce string, sonra tam sayı depolayabiliriz:
var a=5;
a="metin";


DEĞİŞKENLER:
GENEL DEĞİŞKEN ÖZELLİKLERİ 

Değişkenler, bilgi depolamak amacıyla kullanılır. Değişkenler var komutu ile oluşturulur. Karakter olarak kullanıldıklarında işlem yapılamaz, numerik olarak kullanıldıklarında ise işlem yapılabilir. Kullanımına bir örnek verelim:
ÖRNEK:
var sayi;
var sayi1 =10;
var sayi2 ="10";

Burada birinci satırdaki "sayi" değişkeni script kodunun herhangi bir yerinde kullanılmak üzere oluşturulmuştur. İkinci satırda "sayi1" adındaki değişkenin değeri hemen o satırda = ifadesinden sonra verilmiştir. Böyle değişken tanımı da yapılabilir. Üçüncü satırda ise değişkenin karakter ifadesi olarak kullanımını görüyoruz. Burada önemli olan karakter değişkenlerinin alıntı " " ifadesi arasında kullanılmasıdır.
Her değişkenden sonra ; konulmalıdır.

Şimdi değişkenlerle ilgili matematik işleminin nasıl olacağını görelim:
ÖRNEK:
var sayi1 = 10;
var sayi2 = 20;
var sayi3 = sayi1+sayi2;

Birinci ve ikinci satırlarda değişkenler oluşturduk. Üçüncü satırda ise sayi3 değişkeni ile diğer değişkeni topladık. Burada önemli olan işlem yapmak istediğimizde değişken değerinin alıntı " " işaretlerinin arasına konmamasıdır. sayi3 'ün değeri 30'dur.

Şimdi de karakter olarak tajnımladığımızda neler olucak bakalım:
ÖRNEK:
var sayi1 = "10";
var sayi2 = "20";
var sayi3 = "sayi1+sayi2";

->sayi3, 1020 olacaktır. DİKKAT:Bu işlem sadece + operatörü için geçerlidir.

DEĞİŞKENLERE AD VERİLİRKEN UYMAMIZ GEREKEN KURALLAR:
1)Değişken isimleri karakter veya _ ile başlayabilir. Değişkenin ilk karakteri rakam olamaz.
2)Değişken tanımlarken bir veya birden fazla boşluk bırakmak tanımlama açısından sorun teşkil etmez.
3)Büyük-küçük harf duyarlılığı vardır. Mesela sayi ile Sayi farklı değişkenlerdir.

Evet arkadaşlar bir dersin sonuna daha geldik. Daha fazla bilgi için takipte kalın :).

15 Haziran 2014 Pazar

Ders 01: Algoritma

DİKKAT: Bütün eğitim temel seviyede algoritma ve C dili bilginiz olduğunu varsayarak vereceğim. Dersler Web Programlamaya YÖNELİK OLMAYACAKTIR. Unityscript'e yönelik olacaktır. 

DERS 01: 
ALGORİTMA 
1. Problem Çözme ve Algoritmalar

1.1 Problem Çözme: 

Problem çözmede, soruna hemen girişmek yerine, dikkatli ve sistematik yaklaşım ilke olmalıdır. Problem iyice anlaşılmalı ve mümkün olduğu kadar küçük parçalara ayırılmaladır. 

Descartes tarafından “Discourse on Method” isimli kitabında anlatılan problem çözme teknikleri; 

1. Doğruluğu kesin olarak kanıtlanmadıkça, hiçbir şeyi doğru olarak kabul etmeyin; tahmin ve önyargılardan kaçının. 
2. Karşılaştığınız her güçlüğü mümkün olduğu kadar çok parçaya bölün. 
3. Düzenli bir biçimde düşünün; anlaşılması en kolay olan şeylerle başlayıp yavaş yavaş daha zor ve karmaşık olanlara doğru ilerleyiniz. 
4. Olaya bakışınız çok genel, hazırladığınız ayrıntılı liste ise hiçbir şeyi dışarıda bırakmayacak kadar kusursuz ve eksiksiz olsun. 

1.2 Algoritmalar: 
Belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir. 
Her algoritma aşağıdaki kriterleri sağlamalıdır. 

1. Girdi: Sıfır veya daha fazla değer dışarıdan verilmeli. 
2. Çıktı: En azından bir değer üretilmeli. 
3. Açıklık: Her işlem (komut) açık olmalı ve farklı anlamlar içermemeli. 
4. Sonluluk: Her türlü olasılık için algoritma sonlu adımda bitmeli. 
5. Etkinlik: Her komut kişinin kalem ve kağıt ile yürütebileceği kadar basit olmalıdır. 

Not: Bir program için 4. özellik geçerli değil. işletim sistemleri gibi program sonsuza dek çalışırlar . 

Örnek 1.2.1 : 1′den 100′e kadar olan sayıların toplamını veren algoritma. 
1. Toplam T, sayılar da i diye çağırılsın. 
2. Başlangıçta T’nin değeri 0 ve i’nin değeri 1 olsun. 
3. i’nin değerini T’ye ekle. 
4. i’nin değerini 1 arttır. 
5. Eğer i’nin değeri 100′den büyük değil ise 3. adıma git. 
6. T’nin değerini yaz. 

Evet arkadaşlar. İlk ders bu kadar. Umarım anlatabilmişimdir :). Bizden ayrılmayın, takipte kalın ! 

14 Haziran 2014 Cumartesi

Oyun Motoru Nedir?

Oyun motoru, kişilerin veya şirketlerin oyun yapmak amacıyla kullandığı ücretli  veya ücretsiz olan programlara verilen isimdir.
 Sizi kod karmaşasından kurtarmada yardımcı olan bu motorlardan bazıları şunlardır:
-Unity3D

-CryEngine
-FrostBite Engine
-Unreal Engine
Bunlar en popüler oyun motorlarıdır. Oyun motorlarından çıkan oyunlara örnek vermek gerekirse:
UNITY3D: Subway Surfers, Temple Run, The Room, Naval Action, Traffic Racer... (
 http://unity3d.com/showcase/gallery )

CryEngine: Crysis yeterli midir :)

FrostBite Engine: Mirros Edge 2 (2016), Battlefield Serisi, Medal of Honor: Warfighter, Plants&Zombies: Garden Warfare, Need for Speed :Rivals , Dragon Age:Inquisition ...

Unreal Engine: Mirror's Edge, Gears of War 1-2 , Mortal Online.

Okuduğunuz için teşekkür ederim :). Bir sonraki yazımda görüşmek üzere, esen kalın!

Kaynaklar: www.oyungezer.com.tr
www.unity3d.com

wikipedia.org

10 Haziran 2014 Salı

Merhaba !

Merhaba millet! Ben Houg Brother. Yeni bloguma hoşgeldiniz :)
Bu blogumda:
Spor
-Supplement
-Beslenme Yöntemleri
-Zayıflama Günlüğüm :)
Programlama
-Algoritma
-Javascript
-C#
-Unity3D
Grafik
-Adobe Illustrator
-Adobe Photoshop
Oyun/Uygulama
-Oyun/Uygulama Yayınlama Süreci
-Oyun/Uygulama İle Para Kazanma
.
.
.
(gibi uzar liste)
Bu başlıklar altında bilgi vereceğim. Umarım devamlı oluruz :)
Takipte kalın!