Kayıt: Feb 14, 2003 Mesajlar: 94 Nereden: İstanbul
Tarih: Tue Sep 13, 2005 6:29 pm Mesaj konusu: .NET framework ve oyun yapımı
Selamlar;
Şu aralar microsoft'un yeni .NET API'si ile ilgili genel kültür olsun babında bir kaç araştırma yapıyordum. .NET'in ne halta yaradığını bayağı geç farketmiş biri olduğum için üç aşağı beş yukarı nasıl çalıştığını falan anlamak bir parça zor geliyor tabii.
Şimdi benim okuduklarımdan,gördüklerimden anladığım kadarıyla bu API ile microsoft, windows programları yazanların kaderlerini baştan sona değiştirmek istiyor,ilerleyen yıllarda mesela win32 api'yi sadece çok detaylı,kıllı yünlü windows uygulamaları yazmak isteyen ileri seviyede programcıların başvuracağı bir araca dönüştürmek benzeri niyetleri var.API'nin kendisi de şöyle kısaca bir göz gezdirdiğim kadarıyla gerçekten windows uygulamarını oluşturmayı kolaylaştırmış gibi.Atıyorum;mesela Win32 kullanıp pencere oluşturup,çizdirmek için bir sürü komplike fonksiyon çağırmak,Handle'lar ile uğraşmak gerekliyken .NET'in getirdiği enteresan Object Oriented yaklaşımla System.Hede.Hodo.Cart.Curt benzeri komutlarla,belirli classlar kullanılarak aynı işlemler daha rahat hallediliyor.
Bu .NET programları yazılırken Microsoftun yeni managed dilleri kullanılıyor bir de zorunlu olarak,mesela C++ .NET(managed C++).Tabii kullanımı kolay ama okuduğum kadarıyla bu yeni altyapının performans dezavantajları var galiba,mesela Managed C++ da,normal C++ da olmayan garbage collector mevzusu var, hafızanın istediğimiz yerlerine ulaşmayı sağlayan,bellek yönetimini programcıya bırakan,gücünün büyük kısmı da buradan kaynaklanan C++'ın önemli bir özelliği budanmış,belleği ayırma,boşaltma işlerinin tamamını .NET'in Common Language Runtime'ı üstlenmiş falan,bu kadar aktif ona buna karışan kütüphaneler performans için eksidir tabii.Ayrıca .NET programları java programlarının çalışmasına benzer şekilde çalışıyorlar yine anladığım kadarıyla; yani VB. NET,C++ .NET,C# falan hepsi Common Intermediate Language diye bir ara dile dönüşüyor,bu ara dil oluşan .EXE dosyasında saklanıyor,daha sonra kullanıcı programı çalıştırmak istediği zaman, CLR kütüphanesi bu ara kodu makine diline çevirip çalıştırıyor.(Buna da Just-In-Time Compilation deniyormuş,gerçi hiç bir anlam veremedim bu sisteme,niye programı bir kere makine diline derleyip kullanmak varken her kullanımda tekrar tekrar derleyesiniz ki? Kesin kafamın almadığı çok müthiş yararları vardır elbet, neyse...)Nerde kaldı şimdi C++'ın VBasic'e avantajları ?
Benim anladığım, .NET altyapısı genelde internet,network,server uygulamaları oluşturmak için kullanılıyor gibi.Yani weble falan haşır neşir olmadan, paşa paşa kendi halinde çalışan windows uygulamaları için hala pek tercih edilmiyor sanki. Bilgisayarımda .NET framework kurulu değil mesela,ama ".NET yok sende çalışmam ağa" diyen bir programa hiç rastlamadım şimdiye kadar.
Benim burada merak ettiğim,.NET'in oyun yapımı için kullanılıp kullanılmadığı.Forumda üzerinde bayağı yazıp çizilen "3D Oyun Programlamaya Giriş" kitabında mesela C# kullanılmış.(Zaten bu dil sadece .NET framework için mi geliştirilmiş ne)Managed DirectX geliştirilmiş yine .NET için.Ama yazar daha en başta .NET'in performans sorunları olduğunu kabul ediyor.Kısaca .NET'in managed zımbırtıları oyun yapımı alanında yaygın mı? Yoksa hakikaten web uygulamaları falan haricinde pek kullanılmıyor mu,java tadında birşey mi? Bu altyapının geleceği hakkında düşünceleriniz neler?
Kayıt: Mar 06, 2004 Mesajlar: 351 Nereden: Eskişehir
Tarih: Tue Sep 13, 2005 7:14 pm Mesaj konusu:
CLR'nin Java'dan ayrıldığı bir yer var. Java'daki code (bytecode) her seferinde yorumlanıyor ama CLR, sadece ilk çalışmada derleniyor. Yani kodunun içinde memory manager ve .NET disiplinindeki güvenlik önlemleri (en basitinden bufferlar için) var, fakat derlenmiş. O yüzden ilk çalışma çok uzun zaman alıyor. Yani derleme her seferinde olmuyor.
.NET'in kullanım alanları konusunda haklısın. Şimdilik sadece iş, web benzeri platformlarda kullanılıyor. Ben de bu zamana kadar sadece bir tane piyasa masaüstü uygulaması gördüm (flashget, winrar gibi uygulamalar diyelim) .NET Framework isteyen.
Bill Gates eskiden herkes benim işletim sistemimi kullansın diyordu. Şimdi de benim işletim sistemime program yazanlar benim programlama dilimi kullansın diyor. C#'nin tasarımına Borland'dan ayrılan Delphi'nin köklerinde olan biri tarafından önderlik ediliyor. MS için 2010'a kadar yayılması ve Linux hariç populer sistemlerin çoğuna uyarlanması düşünülen bir altyapı. C#, ECMA tarafından standart kabul ediliyor (ANSI/ISO'nun C/C++'yı kabul ettiği gibi)
Ayrıca diğer bazı dillerin syntaxlarını da destekliyor. Fakat hepsini C#'ya (yani Java'ya) benzetir bir halde (Managed C++ ve VB .NET)
Kayıt: Mar 06, 2004 Mesajlar: 351 Nereden: Eskişehir
Tarih: Tue Sep 13, 2005 7:30 pm Mesaj konusu:
"...ve oyun yapımı" kısmında
Büyük firmalar hala ASM ile kod yazıyor ve C->C++ geçişinin üstünden çok zaman geçmedi. Yani kendi istekleriyle bu kadar düşük performanslı bir platform için uygulama yazmayacaklardır diye düşünüyorum.
Yalnız bir şey var ki Managed DirectX, hiç DX gibi değil. OOP'nin gücünü tamamen kullanıyor (DX bu konuda biraz sancılı, C desteği yüzünden encapsulation ve optional parameters gibi olaylar yara alıyor. Bir sürü gereksiz angarya ile uğraşıyorsun. Etraf NULL'dan geçilmiyor) Ve initilization çok sancısız (ileri düzeyi hakkındaki bilgim sıfır, sadece küp döndürdüm ve class yapılarına bir göz gezdirdim)
Sağdan soldan okuduğuma göre de; performans düşük (haliyle)
Kayıt: Mar 13, 2003 Mesajlar: 188 Nereden: İstanbul
Tarih: Wed Sep 14, 2005 7:51 am Mesaj konusu: Re: .NET framework ve oyun yapımı
The_Cuisinart demiş ki:
Nerde kaldı şimdi C++'ın VBasic'e avantajları ?
Tabi burda karşılıklı bir durum söz konusu. c++'yi managed yaotıkları gibi, vb'yi de object oriented yaptılar. bu da kullanım, yapı ve yazım olarak vb'yi zorlaştırdı. Aslında standardizasyon açısından bu güzel bir şey. vb.net kullanan c#'ı, c# kullanan vb.net kodunu rahatça okuyor. Ama performans ve dil ailesinin geleceği açısından ne ifade eder bunu pek bilemiyorum.
Oyun yapımı konusunda ise benim aklıma gelen şöyle bir güzellik oldu. zaten hali hazırda Windows Mobile kullanan el cihazları(PocketPC, Smartphone) .NET programlarını çalıştırabiliyor. Yeni WM 2005 versiyonu ile birlikte bu mobil aygıtlara da directX'in kırpılmış bir versiyonunun yüklenmiş geleceği de söylenenler arasında. Bu taa javanın çıkışından beri ağzımıza yapışan "bir yerde yaz her yerde çalışsın" kavramının gerçekleşmesi olabilir. kodun platformdan platforma aktarılırken hemen hemen hiç modifiye edilmeyecek olması insanın hakkaten ağzını sulandırıyor. bir de özellikle Everquest, Ultima Online, EVE gibi oyunları sabah işinize giderken ya da gece yatağınızda oynayabildiğinizi düşünsenize...
Bu forumda yeni konular açamazsınız Bu forumdaki mesajlara cevap veremezsiniz Bu forumdaki mesajlarınızı değiştiremezsiniz Bu forumdaki mesajlarınızı silemezsiniz Bu forumdaki anketlerde oy kullanamazsınız