Amaca Yönelik Prog.Dili Seçimi
-
SELAMLAR
Programcılık hakkında birkaç soru sormak istiyorum.. Konu hakkında bilgisi olan arkadaşlar cevap yazarsa memnun olurum
Öncelikle programlama konusunda yeni olduğumu belirtmek istiyorum ve bu konuda "hobi olarak" tek bir dil üzerine yoğunlaşmak istiyorum..
Sebebi ise sadece aklımdaki uygulamları yapabilmek.
1: Öncelikli olan amacım 2d ve 3d oyunlar geliştirmek, hem desktop hemde mobil cihazlarda android, ios ve diğerlerinde oyun yazmak
platform, dövüş oyunu,futbol oyunu, target ve CPA tarzı oyunlar yapmak.
(java için bu konuda doküman yeterliliği ne boyuttadır ? destek var mı ? yoksa çok ağır mı çalışır ? kod yapısı uygun mu ?
jMonkeyEngine" adındaki java oyun motorunu buldum yapılan oyunlar güzel ama tam emin olamıyor insan..
ayrıca bildiğimiz tarzda piyasada 3D bir java oyunu göremedim
c# nin artısı windows üzerinde hızlı ve XNA desteği ile yüksek performans veriyor ve tutorialler de mevcut)
ama c# microsoft ürünü olmasından dolayı olumsuz anlamda her an herşey olabilir..
2: Öncelikli amacım değil ama desktop üzerinde programlar geliştirmek istiyorum. mp3 player, kelime işlem,resim gösterim,sözlük, web browser, multimedia araçları...vs
(c#'ın mono projesi ne aşamada BİLGİM YOK galiba sadece linux üstünde çalışıyor diye biliyorum. macos için yok ama java her platformda tek kod değiştirmeden çalıştırılabiliyor..)
3: underground tarzda programlar geliştirmek, web e yönelik uzaktan yönetim, keylogger, bruteforce, cracker gibi yazılmlar
(bu konuda java network gücü sayesinde ileri bir adımda.. ama c# windowsun üstünde tam bir hakimiyet kurduğu için daha fazla yetki elde ediyor..)
bu istediğim şeyleri yapmak için Java ve C# arasında kaldım.. bu ikisi arasında birini seçmek istiyorum
c#'ta yazılan programın kaynak kodları da birebir çıkarabilen bir program duydum.. böyle birşey doğru mu acaba ?
eğer öyleyse c# benim için bitmiştir..
c++ , ruby, python öğren diyecekler olacaktır ama ben java veya c# tan birini seçmek istiyorum
temel amacım oyun yapmak ve yanında hem desktop hemde mobil cihazlarda uygulamalar geliştirmek ..İşin ticari kısmını ön planda tutmyorum
basitlik/zorluk derecesi
doküman yeterliliği
geriye dönüklük ve gelecekte kullanılması..
sağlamlık
hız
mobil cihazlarda programlama (android-ios-symbian-win7 )
konularında hangi dil bunları sağlıyor acaba ..
-
1- farklı platformlarda çalışmaksa amacın javayı seçmelisin.3d java oyunu görememenin sebebi ise oyunlar performanstan kazanmak amacıyla native dillerde yapılır.javada ve .nette ara katmanlar mevcuttur.
2-dediğini C# ile yapabilirsin.mono project ve onun gibi bir iki proje daha var.gerçek iyiler hoşlar fakat daha önlerinde banak alırsa oldukca uzun yol var.basit çaplı programlarda sorun olmaz fakat biraz geniş çaplı programalrda istediğin verimi alman çok zor.
3- keylogger vs.. programlar .net dilleriyle yapılabilir(c#.vb.net) fakat tercih sebebi değildir.Neden dersen .net dilinde derlenmiş bir programın çalışabilmesi için sistemde framework kurulu olması gerekir.windows7 lerde olsada hala günümüzde xp kullananların ve framework kurulu olmayanların sayısı bir hayli fazla.oyüzden bu tarz programlarda genelde delphi ve vb.6.0 kullanırlar.
decompile yani derlendikten sonra kodları görme olayına gelirsek.bu çoğu programlama dilinde olabilir ve çoğu için decompilerlar mevcuttur. .net te resource dosyalarını exede bulundurdugu için .net reflector tarzı programlarla kaynak kod görülebiliniyor fakat önlemleri mevcut. kayna kod şifreliyiceler,kaynak kod karıştırıcılar veya farklı farklı packleme çeşitleri ile.
edit: ek olarak oyun larda oaly sadece kod kısmıyla bitmiyor. 3D modelleme,Sound gibi kısımlarıda var bunlarada hakim olman lazım,oynadığımız tarzda kaliteli oyunları yapmak tek kişinin harcı değil.
-
http://www.chip.com.tr/galeri/en-cilgin-10-programlama-dili_2141.html
-
cevaplar için teşekkür ediyorum FCN
mümkünse cevaplanmasını istediğim birkaç sorum daha olacak..
c#' ın diğer windows sürümlerinde framework gerektirme meselesi java içinde söz konusu galiba.. sanal makine yüklü olmayan yerde çalışmaz.. bu noktada c# 'tan bir adım geride... çünkü windows sürümlerinin
çoğunda dahili framework, componentler var ama dahili java sanal makine yok. sonradan kurulum gerektiriyor.. macos ve linux'ta ise java bir adım önde...
javanın c#'a göre artısı, en eski java kodunu bile java sanal makine derleyebiliyor..
c# ta framework 2.0 ile yazılan uygulama galiba, framework 4.0 la çalışmıyor.. böyle duydum.
c# ile java'nın kod yapısı %80 aynı olduğunu yazıyorlar ama programlama yapmak c# ta daha kolaymış .... bu fark tam olarak nedir ?
internette java oyun yapımı için sadece telefonlar için kaynak var... desktop oyun için anlatım yapan kitap yok.. piyasada sadece c# için türkçe kaynak 4-5 adet oyun yapım kitabı var..
bu kod decompile olma özelliği dediğiniz gibi bir çok dilde mevcuttur .. kriptolayarak ancak önüne geçilebilir..
günümüzde ve gelecekte taşınabilir aytıglarda uygulama yapmak daha avantajlı olacak.. örneğin, tablet android PC 'ler windows'un satışlarını birhayli azalttığını duydum..
çok basit uygulamalar bile çok satılabiliyor..
durum böyle olunca, mobil aygıtlara da el atmak gerekiyor..android ve diğer sistemler için java veya c# ile uygulama yazılabiliyor mu ?
oyun yapımı konusunda 10 yıla yakın teorik bilgiye sahibim.. 3D modelleme animasyon bilgim var ses konusunda da bilgim varama en önemli ayağı olan programlamaya geçemedim... eskiden VB.6.0 ile uğraştım ama Mİkrosoft desteğini çektiği için vazgeçtim
adam akıllı bir dil seçmek istedim...
c# 'a biraz mesafeli kalmamın nedeni de mikrosoftun geriye doğru uyumluluk konusunda sınıfta kaldığıdır... tam dili öğrenecekken
tarihin tozlu raflarında yer edinmesi kaçınılmaz oluyor...
java da ağır bir oyun yapmak istediğimde javanın programlama yapısı bunu kaldırır mı ? çökme donma, çok ağır işleme gibi....
yapmak istediğim oyun türleri örnek olarak şunlardır;
-mortal kombat trilogy gibi dövüş oyunu (2D oyun)
-mummy ve Journey center of the world oyunu ( nokta tıklamalı bilmece & macera oyunu)
-basit bir futbol oyunu.. kompleks olmayan 2d
-platform oyunları (satranç- tavla-dama) internet tabanlı olabilir..
-mario gibi macera oyunları (3d karakter, 2d sahneye sahip )sorularım çok kopuk oldu..
bağışlayın lütfen. aydınlatıcı cevaplarınız için şimdiden teşekkürler
saygılar..
-
mungabunga bunu yazdı:
-----------------------------bu istediğim şeyleri yapmak için Java ve C# arasında kaldım.. bu ikisi arasında birini seçmek istiyorum
c#'ta yazılan programın kaynak kodları da birebir çıkarabilen bir program duydum.. böyle birşey doğru mu acaba ?
eğer öyleyse c# benim için bitmiştir..
-----------------------------
Dediğin şeye önlem olarak "obfuscator" kullanabilirsin. Böylece dis assembly edilemez.
-
-
C# ta framework 2.0 da derlenen proje 4.0 çalışır ama 4.0 da derlenen proje 2.0 da çalışmaz.
----
javada olay nasıl işler bilmiyorum fakat C# oop bir dildir ve güncel olduğu için bir çok dilin harmanlaştırılıp geliştirildiği bir dil diyebiliriz microsoft tarafından.ayrıca visualstudio gibi güzel bir editöre sahip.hazır nesneleri sürükle bırak yardımıyla yerleştirip işlemini yapabildigin gibi aynı şekilde manuel olarakta müdahale edebilirsin.
ayrıca C# ile webuygulaması(asp.net),console application(dos üzerinden),windows form application,mobile application vs.. geliştirebilirsin.
----
mobil programlama olayına gelirsek microsoftunda mobil desteği tabiki var. windows mobile 6.0 - 6.5 şimdi windows 7 mobile çıkıcak. bunlara program yazabilirsin.
---
ne oyun programlama ile uğraştım ne javayla oyüzden son sölediğine nedesem sallamış olurum :)
