Hunlu

Yeni üye
6 Eyl 2016
3
0
0
(55) Samsun
Merhaba arkadaşlar, Foruma yeni üye oldum Bayağı bilgili hocalarımız var. Problemime bir çare arıyorum yardımcı olabilirseniz çok sevinirim arkadaşlar.

Geçen hafta c++ a başladım. Web yazılımdan php bildiğim için öğrenmekte pek zorlanmadım. Daha doğrusu en baştan fonksiyonlara kadar nerdeyse tamamen öğrendim. Class muhabbetini felan pek kapamadım ama problem şu ki izlediğim dersler console application üzerineydi. Codeblock dan yapıyorduk. Sonra dedim yav bunu ben unreal engine de nasıl kullanıcam veya bunda nasıl form application oluşturucam ? 
Sonra bi araştırdım Kütüphaneye göre bütün kodlar değişebiliyormuş galiba Mesela console applicationda çalıştığımızla visual c++ da olan kodların hiç bir alakası yoktu nerdeyse. Ben hangisini öğrenmem gerekiyor Visual c++ mı normal c++ mı yoksa unreal engine için farklı kütüphane kodları olan bir c++ mı var ? Ne yapmalıyım inanın hiç bilmiyorum.
 
Hunlu' Alıntı:
Merhaba arkadaşlar, Foruma yeni üye oldum Bayağı bilgili hocalarımız var. Problemime bir çare arıyorum yardımcı olabilirseniz çok sevinirim arkadaşlar.

Geçen hafta c++ a başladım. Web yazılımdan php bildiğim için öğrenmekte pek zorlanmadım. Daha doğrusu en baştan fonksiyonlara kadar nerdeyse tamamen öğrendim. Class muhabbetini felan pek kapamadım ama problem şu ki izlediğim dersler console application üzerineydi. Codeblock dan yapıyorduk. Sonra dedim yav bunu ben unreal engine de nasıl kullanıcam veya bunda nasıl form application oluşturucam ? 
Sonra bi araştırdım Kütüphaneye göre bütün kodlar değişebiliyormuş galiba Mesela console applicationda çalıştığımızla visual c++ da olan kodların hiç bir alakası yoktu nerdeyse. Ben hangisini öğrenmem gerekiyor Visual c++ mı normal c++ mı yoksa unreal engine için farklı kütüphane kodları olan bir c++ mı var ? Ne yapmalıyım inanın hiç bilmiyorum.

Console basit, Form görsel uygulamaların çıktısıdır. PHPde durum biraz farklı. Aslında PHP için yaygın olarak programlama dili denilse de bir betik(script) dilidir. Sunucuların, HTTP isteklerine cevap vermesini kontrol etmeyi kolaylaştırmak için yazılmıştır. PHP dilinde program çıktısı da bir anlamda HTML cevaplarıdır. Tarayıcı(browser) tarafından yorumlanıp web sayfalarına dönüştürülebilir. Bir uygulama için farklı girdiler ve çıktılar olabilir. Neredeyse her dil her amaç için kullanılabilir. C++'da web sayfaları üretmek için kullanılabilir. Çoğunlukla performans gerektiren işlerde HTTP isteklerini karşılamak için yine C++ kullanılmaktadır.

UE4 için ise C++ çıktısı, form benzeri bir pencereye 3 boyutlu donanım destekli bilgisayar grafiklerinin çizilmesidir. Standart form uygulamalarından farklı olarak, düşük seviyeli, donamım destekli, yüksek performanslı bir render yüzeyi oluşturma amacı taşır. Aslında daha bir çok şey çıktı olarak nitelendirilebilir ve her çıktının görsel bir karşılığı olmak zorunda değildir. Uygulamaların amacı iş yapmaktır zaten.

Oyun motorlarının amacı, oyun yapımı ile doğrudan ilgisi bulunmayan tüm programlama işlerini yerine getirmektir. Örneğin sıfırdan bir oyun yazmanız gerekse; işletim sistemi üzerinde çizim yapabileceğiniz bir form oluşturmak, temel matematik ve lineer cebir(vektör, matris) kütüphaneleri oluşturmak, alt seviye grafik kütüphanelerini(OpenGL, DirectX...) kullanmak, bellek yönetimi yapmak...vb gibi bir sürü temel faaliyeti kendiniz yazmanız gerekecekti.

UE4 gibi bir oyun motorunda programlama bakımından neredeyse herşey düşünülmüş ve oyun geliştiricilerinin hizmetine sunulmuştur. Dolayısı ile kodlamaya form oluşturarak başlamazsınız.

Yapmanız gereken mevcut olan C++ taslak projelerini oluşturup yine mevcut sınıflar üzerinde kodlama değişiklikleri yaparak UE4e adapte olmaya çalışmaktır. Ayrıca UE4, VC++ değildir. UE4 Native C++(bildiğiniz C++)dır. Elbette ki kendi kütüphaneleri ile doludur. Temel bir çok C++ kütüphanesinin(STL) yerine kendi kütüphanelerini ve yapılarını(FString, TArray, FMath...vb) oluşturmuştur. Bu yüzden doğal bir C++da Epic tarafından oluşturulmuş kütüphaneleri kullanacaksınız. UE4 üzerinde gördüğünüz C++ size biraz farklı görünebilir. Bu durum C++ın esnek bir yapıya sahip olmasından ve UE4 üzerinde başta makroların ve önişlemci komutlarının yaygın bir biçimde kullanılmasından kaynaklanmaktadır.
 
İlginize ve cevabınıza teşekkür ederim. Fakat tam olarak kafamdaki soruya cevap alamadım. UE4'un formla bir işi yok yani kısaca VC++ ile işi yok. Normal C++ ile UE4 de çalışabilirim. Fakat dediğiniz gibi kütüphane oluşturma veya UE4 ün kendi kütüphanesindeki kodlara göre normal öğrendiğimiz C++ çok farklı olmuyor mu ?
Ben normal c++ ı öğrenirken iostream veya stdafx.h kütüphanesine göre öğrenebiliyorum. Php den kastım if else while for array ve fonksiyonlar gibi terimlere yabancı değilim demek istedim bunları rahatlıkla tamamladım derslerden. 
Kısaca ben UE4 de C++ kodlamam için ne öğrenmem gerekiyor tam olarak hocam ? c++ derslerini tamamen bitirmedim bitirdiğimde farklı kütüphanelerde rahatlıkla işlem yapabilecek miyim ?
 
Hunlu' Alıntı:
İlginize ve cevabınıza teşekkür ederim. Fakat tam olarak kafamdaki soruya cevap alamadım. UE4'un formla bir işi yok yani kısaca VC++ ile işi yok. Normal C++ ile UE4 de çalışabilirim. Fakat dediğiniz gibi kütüphane oluşturma veya UE4 ün kendi kütüphanesindeki kodlara göre normal öğrendiğimiz C++ çok farklı olmuyor mu ?
Ben normal c++ ı öğrenirken iostream veya stdafx.h kütüphanesine göre öğrenebiliyorum. Php den kastım if else while for array ve fonksiyonlar gibi terimlere yabancı değilim demek istedim bunları rahatlıkla tamamladım derslerden. 
Kısaca ben UE4 de C++ kodlamam için ne öğrenmem gerekiyor tam olarak hocam ? c++ derslerini tamamen bitirmedim bitirdiğimde farklı kütüphanelerde rahatlıkla işlem yapabilecek miyim ?

C++ işin temelidir. Önce C++ sonra Unreal öğrenirsin.
Edit: Pointer(işaretçi) leri anlayabilirsen C++'ın geri kalanını da çözersin.
 
Hunlu' Alıntı:
İlginize ve cevabınıza teşekkür ederim. Fakat tam olarak kafamdaki soruya cevap alamadım. UE4'un formla bir işi yok yani kısaca VC++ ile işi yok. Normal C++ ile UE4 de çalışabilirim. Fakat dediğiniz gibi kütüphane oluşturma veya UE4 ün kendi kütüphanesindeki kodlara göre normal öğrendiğimiz C++ çok farklı olmuyor mu ?
Ben normal c++ ı öğrenirken iostream veya stdafx.h kütüphanesine göre öğrenebiliyorum. Php den kastım if else while for array ve fonksiyonlar gibi terimlere yabancı değilim demek istedim bunları rahatlıkla tamamladım derslerden. 
Kısaca ben UE4 de C++ kodlamam için ne öğrenmem gerekiyor tam olarak hocam ? c++ derslerini tamamen bitirmedim bitirdiğimde farklı kütüphanelerde rahatlıkla işlem yapabilecek miyim ?

VC++ ile işi yok evet. VC++, C++dan farklı bir olarak bile nitelendirilir. C++ın Microsoft tarafından kendi platformlarına uyarlanmış halidir diyebiliriz. Normal C++ ile kastettiğiniz nedir bilmiyorum. Native C++ dersek daha doğru olur. Farklı kütüphaneler göreceğiniz için farklı görünebilir ama Native C++dır. Daha önce de belirttiğim gibi özellikle Macro ve Preprocessor ifadeler ve Reflection gibi sistemler buna sebep oluyor olabilir.

Birkaç yerde daha söyledim yine tekrar etmekte fayda var. Programlama hayatınız boyunca pek uğraşacağınız bir konu olmayacaksa yani mesleki profesyonelliğinizi bu alanda seçmeyecekseniz(en azından ilgi kurabilen başka meslekler de olmayacaksa), programlama öğrenmekle zaman kaybetmeyin derim. Özellikle de C++ öğrenmek zordur. Ancak bir şekilde programlama ile doğrudan yada dolaylı olacaksa C++ önemli bir dildir, öğrenmekte fayda vardır. UE4ün C++ API yapısı size Native C++dan farklı gözükür mü gözükmez mi bunu bilemem ama şunu bilmekte fayda var ki gerçekten öok önemli ve profesyonel projelerde bir uygulamanın çoğunluğu Native C++ ile başlanıp geliştirilir. UE4 buna bir örnek olarak gösterilebilir. 15-20 adet Third Party kütüphaneyi saymazsak, UE4ün tamamı Native C++ ile sıfırdan kodlanmıştır. Bunu ancak böylesi profesyonel, yüksek bütçeli, iyi ekip ve donanıma sahip işlerde görebilirsiniz. Bunun dışında ağırlıklı olarak C++ kullanılarak geliştirilen uygulama ve sistemler Native C++ ile sıfırdan yazılmazlar. Çoğunlukla başka kütüphaneleri doğru bir biçimde bir araya getirerek oluşturulurlar. Belki de en yaygın kullanılanlardan bir tanesi de boosttur.

Kısacası C++ kullanacaksanız zaten büyük ihtimalle Native C++ ile herşeyi sıfırdan yazmak yerine sürekli başka kütüphanelere ihtiyacınız olacak. Zaten UE4 kütüphanelerini kullanmayacaksanız oyun motoru kullanmanın hiçbir anlamı yok. UE4 Editor, oyun motorunun daha az önemli bir kısmı. Asıl önemli kısmı bu kütüphaneler zaten.

PHP öğrendiğiniz gibi C++da temel birkaç alıştırma yapıp, temel işlemleri öğrenin. Sonra biraz derine dalıp C++ ile Object Oriented tüm işlemleri derinlemesine öğrenin. Sonra da UE4 C++ örneklerini inceleyin.