Önce C# mı yoksa C++ öğrenilmeli?

Merhaba 2D oyun yapmak istiyorum önce hangisi öğrenilmeli ve bir tanesini öğrensem yeter mi?
Unity ya da Godot'a bak, tavsiyem unity olur. Unity C#'ı öğrenebilirsin. Bunun haricinde kendin direkt oyun motorsuz oyun tasarlamayı deneyebilirsin, C++ kütüphaneleri ile yapabilirsin.
 
Temel ve daha düşük seviye (makine diline daha yakın) bir dil olmasından dolayı öncelikli olarak C++ öneririm. Diğer dillere göre biraz daha karmaşık ancak daha temel bir dil olduğundan bunu öğrenmen hem programcılık temellerine hakim olmanda, hem de gelecekte öğreneceğin diğer teknolojileri algılama ve yorumlama noktasında sana inanılmaz farklar katacaktır.
C, C++, C# (veya Python, Java vb. farklı bir nesne tabanlı yüksek seviye dil) şeklinde bir yol haritası çizmeni tavsiye ederim.

Amacın sadece 2D oyun yapmak ise ve Unity motorunu kullanacaksan, daha ileriye dönük bir programcılık becerisine ihtiyacın olmayacaksa direkt C# ile başlayıp, doğrudan oyun geliştirme odaklı bir şekilde dili öğrenmende de hiçbir sakınca yoktur.
 
C# daha çok pencere tabanlı uygulamalar yani görsel bir arayüzü olan uygulamalar geliştirmek için kullanılır. Frontend gibi düşünülebilir. C++ ile geliştirilen uygulamalar ise daha çok siyah ekranda komut satırı tarzında arayüzle çalışmak ve çoğunlukla arka planda çalışması planlanan ya da kullanıcıdan gelecek girdi çıktı olarak daha basit datalarla çalışan çok da grafik arayüz olmayan uygulamalar için tercih edilir. Bunun içinde backend gibi diyebiliriz.

C# ile ekranda var olan birçok farklı kutucuktan farklı datalar girilmesini farklı seçimler yapılmasını isteyebilir ya da verilen girdilere sonucunda grafik temelli çıktılar, hesaplamalara dayalı animasyonlar vs. gibi şeyler yapabilirsin. Yani görselliği ön planda tutan kullanıcı dostu bir arayüz tasarımıyla birlikte tam anlamıyla bir paket program hazırlayabilirsin.

C++ ile arkada çalışacak kütüphane dosyalarını APIları yazabilir ya da APIlar üzerinden, databaseden farklı veri setlerini çekip arka planda işlemler gerçekleştirip sonuçları yazılı olarak listeleyebilisin. Elbette C++ ile de aynı şekilde farklı birçok girdiyi alabilirsin ama C# da olduğu gibi bir arayüzde kutucukları doldurak değil de komut satırı metoduyla her bir girdi için tek tek sorgu ekranı göndererek kullanıcının sorgulara sırasıyla gerekli cevapları vermesi gerekli.

Öğrenmesi, uygulama geliştirmesi biraz daha kolay olduğu için C# ile başlayabilirsin. Öğrenme sürecini biraz ilerlettikten programlamaya kod yazmaya biraz alışmaya başladıktan sonra C++ öğrenmeye başlayıp ikisini bir arada götürebilirsin. Oyun motorları genelde C++, C# ya da farklı diller arasından birini baz alan ama tamamen aynı olmayan kendilerine özgü bir programlama dili kullanır. Eğer kullanmayı hedeflediğin bir oyun motoru varsa doğrudan ona yönelik olarak öğrenmeye de başlayabilirsin. Oyun motoru kullanmayacaksan C# ile arayüz üzerindeki resimleri, grafikleri hesaplamalarla, klavye/mouse girdileriyle hareketlendirerek bir oyun yapabilirsin.
 
C# daha çok pencere tabanlı uygulamalar yani görsel bir arayüzü olan uygulamalar geliştirmek için kullanılır. Frontend gibi düşünülebilir. C++ ile geliştirilen uygulamalar ise daha çok siyah ekranda komut satırı tarzında arayüzle çalışmak ve çoğunlukla arka planda çalışması planlanan ya da kullanıcıdan gelecek girdi çıktı olarak daha basit datalarla çalışan çok da grafik arayüz olmayan uygulamalar için tercih edilir. Bunun içinde backend gibi diyebiliriz.

C# ile ekranda var olan birçok farklı kutucuktan farklı datalar girilmesini farklı seçimler yapılmasını isteyebilir ya da verilen girdilere sonucunda grafik temelli çıktılar, hesaplamalara dayalı animasyonlar vs. gibi şeyler yapabilirsin. Yani görselliği ön planda tutan kullanıcı dostu bir arayüz tasarımıyla birlikte tam anlamıyla bir paket program hazırlayabilirsin.

C++ ile arkada çalışacak kütüphane dosyalarını APIları yazabilir ya da APIlar üzerinden, databaseden farklı veri setlerini çekip arka planda işlemler gerçekleştirip sonuçları yazılı olarak listeleyebilisin. Elbette C++ ile de aynı şekilde farklı birçok girdiyi alabilirsin ama C# da olduğu gibi bir arayüzde kutucukları doldurak değil de komut satırı metoduyla her bir girdi için tek tek sorgu ekranı göndererek kullanıcının sorgulara sırasıyla gerekli cevapları vermesi gerekli.

Öğrenmesi, uygulama geliştirmesi biraz daha kolay olduğu için C# ile başlayabilirsin. Öğrenme sürecini biraz ilerlettikten programlamaya kod yazmaya biraz alışmaya başladıktan sonra C++ öğrenmeye başlayıp ikisini bir arada götürebilirsin. Oyun motorları genelde C++, C# ya da farklı diller arasından birini baz alan ama tamamen aynı olmayan kendilerine özgü bir programlama dili kullanır. Eğer kullanmayı hedeflediğin bir oyun motoru varsa doğrudan ona yönelik olarak öğrenmeye de başlayabilirsin. Oyun motoru kullanmayacaksan C# ile arayüz üzerindeki resimleri, grafikleri hesaplamalarla, klavye/mouse girdileriyle hareketlendirerek bir oyun yapabilirsin.
Öğreticilerden ziyade gerçek bir proje geliştirdiniz mi bu dillerle? İki dil de pek çok fonksiyonu yerine getirebilir. C++ altyapılı birçok yazılım ve işletim sistemi mevcut. C# yalnızca VS tabanlı WinForms uygulamalarından, C++ ise tutoriallardaki konsol tabanlı hesap makinelerinden ibaret değil.
 

Technopat Haberler

Geri
Yukarı