Bilgisayar ve oyun programcılığı

  • Konuyu başlatan sly
  • Başlangıç Tarihi
  • Mesaj 11
  • Görüntüleme 6B

sly

Hectopat
Katılım
5 Nisan 2014
Mesajlar
11
Daha fazla  
Cinsiyet
Erkek
Öncelikle merhaba :)
Arkadaşlar ben ilerde bilgisayar mühendisi olmak istiyorum.Ama hangi üniversiteye veya tam olarak ne kadar gelirimin olucağı hakkında pek bi fikrim yok.
Programlama Dilleri üzerinde biraz uğraşmıştım c++ ,java falan ilerde Üniversiteye gideceğim ve şimdiden başlamalımıyım bilmiyorum. 10. sınıftayım. Yardımcı olursanız sevinirim :)
 
Pek bir bilgim yok ama oyun programcılığı için yurt dışında iş yapmanız gerekiyor diye düşünüyorum. Eğer Flappy Bird'in programcısı gibi bir gecede oyun yapmayacaksanız tabii. :) Mesela Cevat Yerli bile Almanya'da başlamış bu işe. Şimdi İstanbul'da merkezleri sanırım ama üstün hayal gücü ve bilgi gerektiriyor diye düşünüyorum.
 
Sosyal bilimler lisesinde okuduğum için bana liseye başlarken 1 sene ingilizce hazırlık okudum. ingilizcem orta seviye birkaç kursa falan gidersem gayet yeterli olacağını zannediyorum.
 
Mümtaz Turan mı? :) Ben olsam PC ile ilgili bir şey seçmezdim. Tabii bu benim kişisel görüşüm. Ama ODTÜ Bilişim iyidir bence. :)
 
Merak Edilenler
Bu konuda bir çok insanın oyun yapımcılığına başlarken merak ettiği konular değinmeye çalışacam.Tamamen yüzeysel bir konu olacak.Yoksa başladığımda bitiremeyeceğim bir konu haline gelsin istemem.

Nedir?
Oyun programcılığı tamamen bilimsel,büyük bir iştir.Eğer bu işi gerçekten iyi yapıyorsanız kendinizi bir bilim adamı olarak görebilirsiniz.Yıllardır insanlar bilgisayar ve matematik bilimini kullanarak bir çok işler başarmışlardır.Şifreleme algoritmalarının bir çoğu bilgisayar ve matematik bilimcileri sayesinde kırılabilmiştir.
Bilim ve Programlama
Artık bilim insanları matematiği , fiziği oyun dünyasına tam anlamıyla aktarmaya çalışmakta ki oynadığınız çoğu oyunda ki fizik gerçeğe yakın bir görüntü sağlıyor.Aslıda burada yapılan iş tamamen fiziğin formüllerinin bilgisayar diline aktarılması.Şimdi oyun motorlarının ve programlama dillerinin buradaki işlevlerine bakalım.
Programlama Dilleri
Programlama dilleri oyun motorlarının yazılabilmesini sağlayan araçtır.Eskinden insanlar Asm kullanırken sonradan bunları geliştirip B,C,C++,C#,Java gibi diller çıkarttılar.Çünkü bu dili kullanmak gerçekten işleri zorlaştırıyordu ve anlaşılması çok zor dildi.(Daha öncesinde ise tamamen 01 ile işliyordu işler:Makine dili).Günümüz programlama dilleri gerçekten basite indirgenmiş ve kullanımı anlaşılması çok kolay dillerdir.Bu yüzden bu dillerin kaç kat daha zor halinin kullanıldığını unutmayın.Siz en basit halini çok iyi kavrayabilecek ve anlayabilecek şekilde evrildiniz.
Oyun motorları
Oyun motorlarının görevi sizin bu matematik,fizik ve geometri konusundaki eksiklerinizi kapatmaktır.Oyun motoru sizin için 2 obje arasındaki mesafeyi bulan bir kod parçası yazar ve siz lazım oldukça bu kod parçasını sadece bir satır kod yazarak çağırıp kullanırsınız.Veya başka örnekler verelim.Bir küp oluşturup 3 boyutlu evrene aktarabilmek tamamen fiziğin bir konusudur.Bunu sizin için oyun motoru ayarlar ve size sadece pozisyonunu ayarlamak ve ne işe yarayacağını basit komutlar ile kontrol etmek kalır.
Aslında bu bilim dallarında iyi olabilmek sizin herşeyi çok daha iyi anlayabilmenizi hatta artık kendi oyun motorunuzu yazmanızı sağlayabilir.Oyun motoru yazmak düşündüğünüzdende kolay.Aslında bazı oyun motorlarının sadece fonksiyonlardan ibaret olduğunu biraz kullandıktan sonra anlayabilirsiniz(Gamemaker).Bazı oyun motorları ise yazdığınız kodları derleyebilecek kadar kaliteli sistemler kullanırlar (Unreal Engine).

Peki gelin biraz örnekler yapalım.Merak etmeyin bu konu içinde kod yazmayacağız.
2 boyutlu bir evrende 2 nesne arasındaki mesafeyi bulan bir kod parçası yazmak istiyoruz.? Eğer geometri,fizik bilginiz lise düzeyinde ise bu sizin için bebek oyuncağı olacaktır.Çünkü derslerden hatırladığınız kadarıyla kordinat düzleminde 2 nokta arasındaki birim'i bulmanın bir formülü bulunmakta.Eğer 2 nesnenin x ve y lerini biliyorsanız olay bitmiştir.
xANDO7.png

Bu kadar.Size gerekli olan kullandığınız dil yada oyun motorunda kare kök ve kare hesaplayan fonksiyonları bulmak.Genelde programlama dilleri içinde karakök için Math.Sqrt gibi bir fonksiyon bulunur.(Kullandığınız dili "Sqrt" ile aratırsanız mutlaka uygun fonksiyonu bulursunuz") Karesini hesaplamak ise sayıyı kendisi ile çarpmak olduğundan pekte zor bir kod yazmayacaksınız.

Bir çok oyun motoru içinde bu fonksiyon hali hazırda bulunur ve yaptığı işlemde sadece budur.

Şimdi bazı yazılım motorlarını ve oyun motorlarını inceleyelim:

Gamemaker : 2 boyutlu ve 3 boyutlu oyun yapılmak için yaratılmış bir oyun motorudur diyebiliriz.Delphi ile programlanmıştır.Galiba sonraki versiyonlarında C++ kullanmış olabilir.Bunu tek bir kişi yapmaya başlayıp sonrasında kadrosunu artırmıştır.Bu tarz bir oyun motoru yapmak zor değildir çünkü kodları derlemez ve varsayılan bir boş oyun içine kaydeder.Sadece hazır fonksiyonları çağıracağındanda bir problem etmeden yazılan kodları hali hazır olan oyun içindde çalıştırır.Herangi bir derleme işlemi yapmaz.Yani bilgisayar diline çevirme işlemi gamemaker içinde yapılmaz.Siz distance istersiniz size onu verir nesneler object dir ve x y point içinde zaten mevcuttur.Unity3D den eksik yanları ise paketleme işlemi gerçekten iyi değil.Gamemaker'de yaptığım Açık kaynak 50MB oyunu 40-50 arası bir boyuta indiriyor.Şuan studio standart versiyonu anladığım kadarıyla kısıtlamasız ücretsiz.8.1 ve önceki versiyonları ücretsiz versiyonu aşırı saçma şekilde kısıtlıdır.Fakat yinede başka yollardan edinmek oldukça basit.
Android,Windows,W8,HTML5(Web) gibi bir kaç platforma daha paketleme yapabilir.

İndirmek için :
Download | GameMaker: Studio | YoYo Games

Unity3D : 3b amaçlı oyunlar yapılmak için tasarlanmıştır.Son yıllarda 2 boyut içinde aşırı iyi olmasada bir güncelleme geldi.İçinde bir çok fizik hazır olarak bulunmaktadır.Gamemaker kullananlar genelde bu motora hazırcı vs desede Unity3d içinde ki kolaylıklar hatta bazen çok daha fazlası gamemaker içinde sunulmaktadır.Özellikle 2D için gamemaker çok daha iyi bir oyun motorudur diyebiliriz.Unity içinde 1.5GB oyunumun 50 mb ye indirdiğimi biliyorum.
Unity3D Android , iOS , W8 , Windows , Web ortamlarına kolayca export edilebilir.Tamamen ücretsiz olarak bu platformlara çıkarabilir satış yapabilirsiniz.Fakat ücretsiz sürümde oyun ilk girişinde 2-3 saniyelik unity logosu gözükür.Trial versiyonla exe yaptığınızda ise sağ alt kısmında trial versiyon yazar.Unity free olarak kullanılmasında sakınca olmayan aşırı kısıtlama yapmayan(oyun yapmanızı engellemeyecek sadece extraları kısıtlar) iyi bir oyun motorudur.

Unity3D indirmek için : (Üye olmak gerekmektedir.Üye olduktan sonra free seçerek kullanmaya başlayabilirsiniz.)
Unity - Download and Start Creating Games

Unreal Engine ve Cryengine gibi oyun motorları daha ileri düzey olduğundan ve fazla bilgimde olmadığından onlara girmiyorum.Daha bir çok oyun motoru bilinmekte fakat şu 2 saydığım dışında kullanmak yeni başlıyorsanız pekte iyi olmaz.Çünkü yeterli kaynak bulamazsınız.İngilizce seviyeniz yüksek ise belki deneyebilirsiniz.Forumumuzda bir kaç oyun motoru konusuda açılmıştır.Bunlarada bakmanızda fayda var.

Şimdi gelelim oyun motorları dışında oyun yapmak için direkt olarak kullanabileceğimiz dillere.Bunlar Java,C#,C++(Kütüphanesi OpenGL) vs vs olabilir.Aşağı yukarı her dil ile oyun yazabilirsiniz.Fakat her dil ile her platforma oyun yapamazsınız.Örnek olarak C# dili windows tarafından geliştirildiği için windows aygıtlarında çalışacaktır belki ek seçenekler ile mobile yada farklı cihazlara uyarlayabilirsiniz fakat Java tüm platformlarda elektronik cihaz testlerinde bile kullanılabilir.

Ben buradan sonra Javadan bahsetmek istiyorum.Java dilinin temel yapıtaşlarını anlatmaktan çok geliştirmelerden bahsedeyim.Öncelikle Java denilen şey javascript değildir.İkisi aşırı ayrı bir olay.Bunu karıştırmayalım.
Java Oracle tarafından geliştirilen bir programlama dili.Kullanımının yaygın olmasının sebebi ise her platforma direkt olarak aktarılabilmesi.Bunun sebebi ise sanal sunucusudur bu konuya hiç girmiyorum.Araştırma yaparak daha kapsamlı öğrenebilirsiniz.
Java dili ile processing çıkarılmıştır.Bu program çizdirme,elektronik ve oyun yapımı için kullanılan yaygın bir program haline geldi.Tamamen java'nın zorluğunu kolaylaştırma amaçlı çıkmış bir program.Özellikle internette bol kaynağı olmasından dolayıda bir çok kişi tarafından tercih ediliyor.Hatta bildiğim kadarı ile bilimsel bir kaç çalışmada bu program ile yapıldı.Aslında processing java için kütüphane olarak çıkabilirmiş fakat kolaylaştırmaya gitmek için ayrı bir program halinde çıkmış.Web , Makine , Basit elektronik devreler , Android , Windows, Linux aklınıza gelebilecek her ortamda yaptığınız projeyi çalıştırabilirsiniz.2D veya 3D çalışmalar yapabilirsiniz.Java ne ise buda odur.
Processing indirmek ve başlamak için :
Processing.org
Teşekkür ederim :)
 
Son düzenleyen: Moderatör:
Benim sana tavsiyem, Şu durumda okulunda görmüş olduğun Fizik, Matematik ve Kimya derslerine ağırlıklı olarak tüm derslerine çalışmalısın. Daha sonrasında Yazılım müh. bölümünü seçmek zorundasın ve oyun programcılığı opsiyonu sunacak bir üniversite olmalı. C++ öğrensen, Java'da , C#'da askıda öğreneceksin. %100 bilerek bile gitsen bir üniversiteye bu bilgilerin muhtemelen sana 1 yıl yetecek. Hocan öyle bir soru soracak ki ? Fener görmüş tavşan gibi kalacaksın. Şimdiden öğrenirsen iyi yönde etkisi olacak ama bazı yapılarda çok çelişkiye düşeceksin.
 
Son düzenleyen: Moderatör:
Uyarı! Bu konu 11 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Geri
Yukarı