C++ İle 2D Oyun Yapmak

Katılım
20 Şubat 2017
Mesajlar
8
Daha fazla  
Cinsiyet
Erkek
Merhaba herkese;
Ben lise öğrencisiyim ve yazılım veya bilgisayar mühendisliği istiyorum. Derslerim iyi sayılır. Kodlama mantığını biliyorum başlangıç seviye Python bilgim var. HTML5 ve CSS3 bilgim de orta seviyelerde. Bu aralar C dilini öğreniyorum. Temel olarak C'yi orta seviyeye kadar ilerletip C++'a geçiş yapacağım. C#'ta biraz form uygulaması bilgim var o kadar.

Tek başıma çok bir şey yapamayacağımın bilincindeyim, bu iş tecrübe gerektirir ancak en azından tek başıma bir 2D oyun yapabilmek istiyorum. Bu sektördeki arkadaşlardan ricam biraz anlatabilirler mi nasıl yapılıyor oyunlar?
Cevap veren herkese şimdiden teşekkürler.
 
Son düzenleyen: Moderatör:
Oyun sektörü sanıldığından daha farklıdır. Benim amatörce çalışmalarım olmuştu ama iyi bir proje hazırlayabilmek için çok yol katetmek gerekir. C dilinde orta seviye bir bilgim var ve ilk onunla başlamıştım. Unity 3D ile bir şeyler yapmaya çalışabilirsiniz. Ben de 2D platform oyunu yapmaya çalışmıştım ama düşmanların yapay zekası kısmında çok yetersiz kalmıştım. Zaten bazı kısımları taklitle yapmıştım. Size tavsiyem, ilk önce herhangi bir programlama dilinde dikey olarak gelişim göstermeniz. Şahsen bilgisayar mühendisliği programındayım. Bu yüzden uzun zamandır bilişim dünyasındayım, tabi ki araştırma olarak.
Ama tabi ki daha stratejik düşünülebilir. Örneğin üniversitede zaten illa ki bir programlama dili eğitimi verilecektir. Bu yüzden İngilizce, matematik-fizik, teknolojik gündem takibi, algoritma mantığı gibi konularda da lisede çalışmalar yapılabilir.
 
Cevaplayan herkese çok teşekkürler.

Oyun sektörü sanıldığından daha farklıdır. Benim amatörce çalışmalarım olmuştu ama iyi bir proje hazırlayabilmek için çok yol katetmek gerekir. C dilinde orta seviye bir bilgim var ve ilk onunla başlamıştım. Unity 3D ile bir şeyler yapmaya çalışabilirsiniz. Ben de 2D platform oyunu yapmaya çalışmıştım ama düşmanların yapay zekası kısmında çok yetersiz kalmıştım. Zaten bazı kısımları taklitle yapmıştım. Size tavsiyem, ilk önce herhangi bir programlama dilinde dikey olarak gelişim göstermeniz. Şahsen bilgisayar mühendisliği programındayım. Bu yüzden uzun zamandır bilişim dünyasındayım, tabi ki araştırma olarak.
Ama tabi ki daha stratejik düşünülebilir. Örneğin üniversitede zaten illa ki bir programlama dili eğitimi verilecektir. Bu yüzden İngilizce, matematik-fizik, teknolojik gündem takibi, algoritma mantığı gibi konularda da lisede çalışmalar yapılabilir.
Unity de C# kullanılıyor diye biliyorum. C# console uygulaması yaparken kullandığımız kodların benzerini mi kullanıyoruz yoksa Unity de kullanılan C# tamamen farklı bir dil mi ?
 
Unity'yi uzun zaman önce kullanmıştım bu yüzden C# farklı mıydı emin değilim. Çok hakim değildim zaten. Nesne yönelimli bir dile yakın zamanda başlayacağım. Şunu eklemek istiyorum "a dilini biliyorum, b dilini biliyorum" demekten ziyade o konuda "ne kadar iyiyim", "tamamdır öğrendim" diyebiliyor mu kişi, önemli nokta bu. O yüzden iyi araştırıp ne yapıp yapmamanız gerektiğini iyi öğrenmelisiniz. Hevesli ve meraklı olabilirsiniz ama stratejik düşünmek sizi bir adım daha öne çıkarır. Her şeyi yaptıktan sonra yine de isterseniz, uğraşmakta, öğrenmekte zarar yoktur.
 
Daha önce hiç oyun geliştirmediysen C# Form kullanarak geliştirmeyi deneyebilirsin.
O da 2 boyutlu bir panel aslında bakarsan.

Matematik bazlı işlemler yaptırarak nesnelerin hareketini yönetebilirsin. Mario tarzı bir oyun yapmayı deneyebilirsin mesela. En temelde matematik ile yapılıyor bu oyunlar.
Kutularla, piksellerle, rakamlar ve algoritmalarla biraz cebelleş. Amatör de olsa bir oyun kolaylıkla çıkarabilirsin.
 
C++'la 2D oyun yapılabilir hem de çok basit bir yerden sonra. C++ geçtikten sonra OOP programlamayı anlaman yeterli. Senden Crysis yapmanı beklemiyoruz. Basit bir oyun olarak tetris, kutuları ittirerek yol bulma, XOX , SOS, santranç gibi oyunlar yapabilirsin. Yapay zeka eklemene gerek yok çünkü bunları oynayacak kişiler yok, o yüzden kendini geliştirmek için iyi bir yol.
 
2D aslında çok karmaşık değil, mantığını anlamak için direkt terminal ekranında yapabilirsin. Genel olarak 3 işlem var ana döngünde:

Girdi almak
İşlemek
Çıktı vermek

Bundan sonrası bu kodunu istediğin bir teknoloji ile kullanmana bakıyor. Unity olur SFML olur... En profesyoneli olmayabilir tabiiki ama oyun mu? Bence oyun.
 
Uyarı! Bu konu 7 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.

Yeni konular

Geri
Yukarı