BatuhanKZ adlı üyeden alıntı
Çok iyi bir şekilde demek istediğinizi anladım teşekkürler , gidip piyasayı gezeyim





k.b yın çok fazla soru soruyorum ama araştırırken aklıma sizin " keske C++ deseydiniz belki biraz daha geniş anlatım yapabilirdim " demeniz geldi ve forumu hemen açıp sorayım dedim, bu C++'de de OpenGL var , Java'da da var, bunlar farklı kodlarla kodlanıyor filan ama aynı kapıya çıktığını biliyorum tabiki , şey soracaktım; java da opengl kodlamak ile c++ de opengl ile birşeyler kodlamak arasında fark varmıdır? mesela javada eğer opengl kodlarsanız bir pencereye şunu ekleme, veya bu opengl nin şu şu özelliklerini kullanamazsınız fakat c++ de kullanabilirsiniz veya yazması daha kolaydır denebilecek kadar fark varmıdır?

Mesela java ile kodlama denilince aklıma direk .jar tipi dosyalar, flash tipi dosyalar geliyor ama c++ denilince direk .exe dosyasını düşünüyorum, ikisindede yeni pencere oluşturup bir buton koyduğumuzda ve yanyana getirdiğimizde gözle gözükebilir veya gözükmeyen arkaplandaki sistem işleyişiyle alakalı büyük farklar olduğunu düşünürmüsünüz? Mesela crysis gibi bir oyunun yapılmasında aklıma asla java gelmez direk C++ Derim, java denilince daha çok flash tipi butonlar,menüler,dosya tipleri gelir aklıma; daha çok mario gibi oyunlar filan, bu algım doğrumudur yoksa java benim sandığım gibi değil de crysis gibi grafiksel,işlevsel olarak basit değil de profesyonel alanlarda opengl kullanılabilecek bir platform olabilir mi?

java ile yapılan oyun denilince aklıma ilk gelenler;





c++ ile yapılmış oyun denilince aklıma gelen örnek oyun;


kendim hakkında yazasım geldi .d
* benim amacım basitce java ,vs. her neyse öğrenip basit ama kullanışlı güzel şeyler yapmak, oyun olarak sanalika mesela; adamlar java ile sade güzel oyun yapmış, program olarakta not hesaplama programları, siteye giriş yapma, sunucu bağlantısı gibi şeyleri öğrenmek ve asıl amacım aslında bunları yapabilecek kapasitede olmak, 3,4 yıl önce bu işlere html vs. diyip başlayıp sonra bi ara c++ sardıydım, sonra javaya ve python a baktım azar azar ama elimde yapabildiğimi görebilcek bir şey olmadığından c++ ve javayı bıraktıydım öğrenmeye çalışmaktan (kodladığımız konsolda kalıyor diye, bu pencere oluşturma vs. vs. haberim yoktu tabi), sonra visual c# duydum ve baktım ki tam istediğim şey, zamanında baya onunla uğraştım, sonra php öğrenip (orta derece) site alanında işler yapmaya başladım ki tüm dillerden azar azar görmüş oldum ve algoritmaların nasıl bir şey olduğunu artık tamamen biliyorum yapılar,değer atamalar,değer tanımlamalar,vs. vs. ve bugün elimde sadece algoritma bilgisi var ve sadece java yönelip (veya c++ a da kayabilirim) bir alanda bu dediğim en azından basit oyunlar yapma, socket mantıklarını öğrenme, masaüstü,android programları yapabilme potansiyeline sahip olup piyasaya bir şeyler sunmak isterim. Zamanında arkadaşla gaza gelip unity 3d ile gta tarzı oyun planlamıştık ki daha sonra programı açınca yapabildiğimiz tek şey küp oluşturmak olmuştu .d , bugün ise unity 3d tarzı şeylerden , hazır programlardan tiksinir gibiyim çünkü amacım oyun,vs. yapmak ama yazılım bilgimle yapmak, herkesin yapabileceği platformlarda tut sürükle benim ileride işime yarasa bile ne kadar yarayabilir ki, önemli olan benim için not defteri açıp kafadan class, void vs. ne varsa tanımlayıp derleyip çalıştırmak, yani bu yöntemle çok büyük şeyler yapamiyacağımı biliyorum fakat ama ufak şeyler bile yapsam, bir bilgim olsun yeter. Yani hazır programların sadece algoritma bilgisini güçlendirdiğine inanıyorum. elimizle class atayıp yapmak gerçekten bence bilgimiz olduğunu gösterir (bence)...

bu işleri hobi olarak öğrenmeyi seviyorum ve yazdıklarım bu kadar
Hocam ne yaptın sennn Bunlar ne böyle? Ben fazla master değilim bu arada onu söyliyim, yani en fazla giriş ile orta ya kadar yardımcı olabilirim. Ama eğer c++ ile başlarsanız. Gerçi orta konusunda da emin değilim ama deneriz, bilmiyorum demekten çekinmemişimdir.

Şimdi, Java hakkında dediklerini katılıyorum. .exe paket çıkarabilmek için .NET Framework kullanan, temelinde, bu yatan bir program yapmanız gerekir. Java ya .NET İnclude edip, dediğim gibi .exe program yapabilirsiniz. Yapılmayacak değil. .jar da çıkarılabilir fakat kullanılacak bildisayarda haliyle java kurulu olması lazım. Java nin da kendi .NET'i bu.


Onun dışında, benim önerim. Eğer muhakkak oyun yapacaksanız C++ öğrenin derim, verdiğiniz örnekler bile başlı başına kaynak. Sonuçta ufak bir araştırma ile "Neden?" sorusuna cevap bulabilirsiniz. Eğer oyun motorlarına bakarsanız, birçoğu yaklaşık %80-90 kısmı C++ tabanlıdır. Fakat Java ile olsa olsa 10 tane filan vardır 300-500 tanesinin arasından. Bu nedenle niçin başta bu adamlar oyun motoru yaparken Java değil de C++ seçmiş iyice anlarız. l


Daha sonra, öğrenemenizin nedeni,.bir şeyleri nereden öğrenmeye başlamanız gerektiğini bilmiyor olmanızdan kaynaklı. Toplulukları sık sık kullanmanızı öneririm, eğer öğrenmek istediğiniz şeyin kendi forumları vesaire varsa bunlarda zaman harcayıp, sorularınızı sorun. Eğer getting started veya tutorial kısımları varsa, bunları deneyin. Daha sonra da tüm Dokümantasyonu avcunuzda tutmaya çalışın, dokümantasyonu ezberleyin demiyoruk, kodları deneyin yapabiliceklerinizi görün böylece o dokümantasyona aşina olursunuz. Yarın bir gün sıkıntı yaşamazsınız. Kaldı ki Unity 3D nin cok güzel bir kullanıcı dokümantasyonu, forumları ve tutoriallari var en az 50 tane.


Ekstra olarak dediklerinize nispeten, benim size önerim. Her zamanki gibi, sıfırdan oyun yapmak demek sıfırdan oyun motoru yazmak demektir. Ciddi diyorum, çok canınız yanar. Kullandığınız dilin masteri değilseniz hele, hiç denemeyin derim. Ama o konuda bir şeyler yapabilip, bir yol katederseniz tabi ki bu güzel bir başarıdır. Ama bence, gidip güzel oyun motorlarına bakın onları öğrenin derim. Veya Udemy'de kurslar alın derim. Varsa sorularınız sorun hocam

Edit: C++ veya Java gibi diller, low level programming dillerdir. Yani, çok alt seviye dillerdir. Eğer high level veya medium level programlama dillerini kullanırsanız onlar sızın yerimize penceler, animasyonlar vesaire oluşturur veya oluşturmak için low level programlama dillerinde olduğu gibi onlrca satir kod yazmanız gerekmez. Eğer low level bir Programlama dilini kullanıyorsanız, umun ki yapmak istediğiniz şeyin bir kütüphanesi olsun. OpenGL olmadan pencere oluşturmanız mesela zor olur C++ veya Javada, bunun gibi