Gönderen Konu: NativeSDL  (Okunma sayısı 23429 defa)

NativeSDL

« : 02.07.2008 18:11:08 »
Hızlı düğmeleri aç

deneme

İleti: 14

Çevrimdışı
  • *
  • Newbie
    • Profili Görüntüle
Selam,

 SDL kütüphanesinin yapılarına,fonksiyonlarına Java'dan ulaşılmasını sağlayan bir kütüphane yazmayı planlıyorum.

 şimdilik "SDL_video.h" ve "SDL_image.h" başlık dosyasına ait fonksiyonları ve yapıları yazmaktayım. Tek kişi olarak bu projeyi yürütmem zor görünüyor.

 Ancak http://sdljava.sourceforge.net/ kütüphanesi mevcut diyeceksiniz.

 NativeSDL'nin sdljava'dan farkı, sdljava'nın 2005 yılından itibaren artık güncellenmediği ve geliştirilmediğidir. SDL kütüphanesi sürekli güncellenmektedir.   Java,C ve JNI'de deneyim sahibi olanlar projeye katılabilir.

http://sourceforge.net/projects/nativesdl/

Sevgiler

NativeSDL

« Yanıtla #1 : 02.07.2008 18:35:51 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Java hakim olmadığım bir dil. Bu yüzden bu projeye istesem de destek veremem. Ancak aklıma takılan ilk soru SDL'in Java'nın built-in grafik fonksiyonlarına göre ne avantajı olduğu? Bu soruyu gerçekten bilmediğim için soruyorum, yoksa projenin gerekliliğini sorgulamıyorum.
 
SDL'in ek libraryleri onun asıl gücünü ortaya koyar ancak sanırım her birini tek tek port etmek gerekecektir. Kısacası SDL'in coreunu port etsek de TTF, müzik v.b. extensionlarını kullanamayacağız. Eğer amaç SDL tabanlı geliştirilmiş projeleri kolayca Java'ya port etmekse SDL core'u bu konuda yeterli olmayabilir düşüncesindeyim. Yani SDL ve sıkça kullanılan librarylerinin tamamını port etmek gerekiyor gibi gözüküyor. Projenin ulaşması hedeflenen nokta bu mu?

NativeSDL

« Yanıtla #2 : 02.07.2008 19:11:54 »
Hızlı düğmeleri aç

deneme

İleti: 14

Çevrimdışı
  • *
  • Newbie
    • Profili Görüntüle
Aslında SDL'nin, Java'nın built-in grafik fonksiyonlarına ne gibi bir fazlalığı ya da eksikliği olduğunu araştırmadım.

 Core SDL kütüphanesinin ve ek kütüphanelerinin(SDL_mixer,SDL_net vb.) ve sdljava'nın desktelemediği kütüphanelerin eklenmesi ile birlikte çözüm sunmayı planlıyorum.

 http://sdljava.sourceforge.net/features.html  sdljava'nin desteklemediği kütüphanelerinden birkaçı SDL_thread ve SDL_net kütüphaneleri.

 Projenin bir sonraki aşaması SDL kütüphanesi ile yazılmış oyunların NativeSDL'ye port edilmesi.

 Proje deskek alırsa ilerleyecektir. Destek alma ihtimali düşük olursa projeyi bitirmem zor görünüyor.

 Not: Aslında NativeSDL kütüphanesine başlamamın sebebi sdljava'da YUV desteğinin olmaması idi. FFmpeg(NativeFFmpeg) kütüphanesini tasarlıyordum o zamanlar ekranda FFmpeg kütüphanesi ile video çizimlerini gerçekleştirmek için NativeSDL kütüphanesini yazmaya başlamıştım. NativeFFmpeg'de proje göründüğü gibi gitmeyince NativeFFmpeg rafa kaldırıldı. NativeSDL ile ilerliyorum şu an.(NativeFFmpeg, FFmpeg kütüphanesinin Java'dan fonksiyonlarına ve yapılarına ulaşılması)

 Sevgiler

NativeSDL

« Yanıtla #3 : 03.07.2008 00:02:29 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
Sana başarılar diliyorum. Umarım projen başka "Native" prefixli projelere vesile olmaz da muaffak olursun. Özellikle sdl_mixer gibi libraryler epey bir çaba ister gibi geldi bana. Java'dan hep uzak durmuş biri olarak sadece iyi dileklerde bulunabiliyorum.

NativeSDL

« Yanıtla #4 : 03.07.2008 00:12:56 »
Hızlı düğmeleri aç

spritus

İleti: 933

Çevrimdışı
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://resident.tr-demoscene.info
skate hakkaten biz scener tayfasının yıldızı bir türlü barışamadı şu java ile. bildiğim tek javacı scener tesla'dır. ama java ona da 7d5'te bi kazık atmıştı. bkz javabird

NativeSDL

« Yanıtla #5 : 03.07.2008 00:34:50 »
Hızlı düğmeleri aç

deneme

İleti: 14

Çevrimdışı
  • *
  • Newbie
    • Profili Görüntüle
Java Bird'i download ettim ancak Native kütüphaneler kullanılmamış. Java Bird'in kaynak koduna ulaşmamız mümkün mü?

   Native kütüphanelerden bir tanesi olan, lwjgl kütüphanesi ile yazılmış birkaç projeyi sizlerle paylaşmak istiyorum:

 http://lwjgl.org/

  http://lwjgl.org/projects.php

 @skate
 teşekkürler.

NativeSDL

« Yanıtla #6 : 03.07.2008 00:39:41 »
Hızlı düğmeleri aç

spritus

İleti: 933

Çevrimdışı
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://resident.tr-demoscene.info
kaynak kodlar bende yok. tesla'da vardır herhalde. ona bu isteğini iletirim.
bu arada başka bir java projemiz bir mobile demo idi (code yine tesla) : wasted
 
Alıntı yapılan: deneme;18348
Java Bird'i download ettim ancak Native kütüphaneler kullanılmamış. Java Bird'in kaynak koduna ulaşmamız mümkün mü?
« Son Düzenleme: 03.07.2008 00:42:10 Gönderen: spritus »

NativeSDL

« Yanıtla #7 : 03.07.2008 02:04:40 »
Hızlı düğmeleri aç

deneme

İleti: 14

Çevrimdışı
  • *
  • Newbie
    • Profili Görüntüle
Alıntı
kaynak kodlar bende yok. tesla'da vardır herhalde. ona bu isteğini iletirim. bu arada başka bir java projemiz bir mobile demo idi (code yine tesla)
    şimdilik emulatör kurulu değil sistemde bu sebeple jar dosyasını download etmeme rağmen çalıştıramadım. video dosyasını(*.mov) maalesef download yapamıyoruz.

Video dosyası(*.mov) siteden kaldırılmış mı?  http://ftp://www.untergrund.net/users/nightshift/releases/wild_compo/20060304103811_wasted.MOV

Not:En kısa zamanda emulatör yükleyip demo'ya bakacağım.

 Hmm, private system diyor sadece üyeler mi download yapabiliyor videoları?

 Sevgiler
« Son Düzenleme: 03.07.2008 02:37:11 Gönderen: deneme »

NativeSDL

« Yanıtla #8 : 03.07.2008 03:54:51 »
Hızlı düğmeleri aç

nightlord

İleti: 1.085

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.nightnetwork.org
@deneme: Foruma hosgeldin. Oncelikle biraz problemli bir nickname secmissin. Cok gecici bir goruntusu var :) Neyse sen bilirsin
 
Projenin form faktoru ile ilgili Skate'in sorguladigi noktalara ben de takilmadan edemiyorum. Sonucta zevk olsun diye veya sirf ogrenmek amacli yapmak isteyebilirsin elbette ve buna scene kulturunde de buyuk saygi duyulur zaten. Fakat pratik anlamda cok faydali bir fikirmis gibi gorunmuyor. Yaniliyor olabilirim tabii, ama Open source bir projeye developer attract edebilmek icin projenin iyi bir "faydalilik hikayesi" olmasi gerekir (belki de zaten open source projelerde deneyimlisindir ve bunlari biliyorsundur ve ben kafani utuluyorumdur :) o durumda kusura bakma)
 
Java zaten platformdan bagimsiz bir ortam ve cok iyi bilmemekle beraber eminim ki kendi kutuphanelerinde SDL'in yapabildigi hersey vardir. SDL Native dilleri kullananlar icin platform bagimsizlik saglamaya calisan baska bir kutuphane. Onu Java classlari ile wrap etmek nasil bir "avantaj" getiriyor onu goremiyorum. Eger ihtiyacin olan tek sey YUV destegi ise ihtimalen ilgili bir Java classini alip ondan kendi YUV destekli class'ini inherit edip implement etsen daha hizli bir cozum olabilir gibi geliyor bana. Ayrica native sdl arayuzlerini javada wrap etmenin mevcut SDL yazilimlarinin Javaya port edilmesini nasil kolaylastiracagini da tam goremiyorum. Sonucta o yazilimlar C/C++ ile yazilmis olacak. Syntax benzese bile yine de bir ton fark var gidip elle degistirilmesi gereken, arti komple memory management modeli farkli.
 
Dedigim gibi komple yaniliyor olabilirim ama umarim bu yazdiklarimi kendi kendine cevaplarken, ya "dogru ya boyle biseye hakkaten gerek yok", ya da "hayir ama falanca konfigurasyonda cok avantajli" gibi bir sonuca varirsin. Iki sonuc da isine yarayacaktir :)
 
Kolay gelsin

NativeSDL

« Yanıtla #9 : 03.07.2008 05:09:09 »
Hızlı düğmeleri aç

deneme

İleti: 14

Çevrimdışı
  • *
  • Newbie
    • Profili Görüntüle
@nightlord:

 Internette dolaşırken, SDL kütüphanesinin hem yapısı olsun hem de yan projeleri olsun araştırma yapıyordum. SDL.NET kütüphanesi ile karşılaşmıştım. SDL'nin, .Net binding kütüphanesi.(http://cs-sdl.sourceforge.net/index.php/Main_Page)

Gerçekten, "nightlord" gibi düşünerek içimden şöyle demiştim: "C/C++ ile yazılacak bir projeye neden C# diline gerek duyulsun? Hem de C# dili Java'ya nazaran platforma daha bağımlı ve her ne kadar Linux için mono projesi devam etsede" şeklinde düşünmüştüm. SDL.Net binding yazarak libSDL'yi platforma bağımlı hale getiriliyordu.(win32 için)

 sdljava için projelerin pek tutulmadığını gördüm.(SDL.Net ile yazılan projelerin listesi için http://cs-sdl.sourceforge.net/index.php/Projects_using_SDL.NET) Gerçekten, Ivan Ganza'ya(sdljava'nın yazarına) birkaç kere mail gönderdim(sdljava desteklemeye devam edecek mi?) ancak cevap alamadım.

 ıstatistiklere bakarak belki bir sonuca varabileceğimizi düşünüyorum: SDL.Net için: http://sourceforge.net/project/showfiles.php?group_id=52340 Proje başladığından itibaren: Dosyalar 53255 kere download yapılmış sdljava için: http://sourceforge.net/project/showfiles.php?group_id=124821 Proje başladığından itibaren: Dosyalar 12042 kere download yapılmış

 Bu istatistiklere baktıktan sonra Birkaç sonuç beliriyor aklımda: "1) Java için SDL wrapper kütüphanesine gerek yoktur çünkü Java'nın kütüphaneleri yeterlidir. Bu sebeple download rakamları azdır ?" "2) SDL.NET binding'e gerek vardır çünkü .Net kütüphaneleri yetersizdir. ?" (Burada gerçekten, .Net ile ilgilenen arkadaşlarımızdan düşüncelerini öğrenmek istiyorum SDL.NET hakkında)

 Nightlord, iki düşünce arasında kaldım ancak düşüncelerini öğrenmek ile belki de doğru seçimi bulmamı sağlayacaktır. (NativeSDL'ye devam etmek veya etmemek gibi. ıkisi arasında seçim yapacağım ve doğru seçimi yapmalıyım)

Sevgiler

NativeSDL

« Yanıtla #10 : 03.07.2008 09:32:40 »
Hızlı düğmeleri aç

spritus

İleti: 933

Çevrimdışı
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://resident.tr-demoscene.info

NativeSDL

« Yanıtla #11 : 03.07.2008 10:20:10 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
@deneme: .NET'de genellikle GDI/GDI+ kullanılıyor. Ancak eğer daha üst seviye bir proje, örneğin bir oyun v.s. yapılacaksa Direct3D'den faydalanılıyor. Yani benim tahminim Java'nın grafik özelliklerinin .NET'deki karşılığı (tam olarak frameworkün bir parçası olmasa da) GDI+, Java3D'nin karşılığı ise Direct3D. GDI+ ile Java'nın grafik librarysini kıyaslayabilmek için öncelikle Java hakkında bilgi sahibi olmam lazım. Ancak GDI+ ekranda basit bir animasyon göstermek için bile yeterince güçlü değil. Örneğin Java ile ilk uğraştığımda yaptığım örneklerden biri hareket eden ve animasyonlu bir spritedı ve Java Applet olarak gayet temiz, smooth bir biçimde çalışmıştı. Aynısını GDI+'da aynı kalitede yapmak biraz daha zor oluyor. Aslında double buffering birçok problemin önüne geçilebiliyor ancak performans tatmin etmiyor. Hem Java'nın grafik librarysi, hem de GDI+ ekran kartının özelliklerini pek kullanmadığı için bence kıyaslanabilirler ve tahmin ediyorum Java'nın üstünlükleri gözlenebilir. Ancak iş Java3D ve Direct3D'yi kıyaslamaya gelirse Java3D'ye pek şans tanımam. Gerçi bildiğim kadarıyla Java OpenGL kullanabiliyor. Belki Direct3D de kullanılıyordur Windows'a özel olarak. Bu durumda kıyaslamak çok anlamlı olmaz.

NativeSDL

« Yanıtla #12 : 03.07.2008 12:37:23 »
Hızlı düğmeleri aç

tesla

İleti: 426

Çevrimdışı
  • ****
  • Sr. Member
    • Profili Görüntüle
    • http://
Alıntı yapılan: deneme;18348
Java Bird'i download ettim ancak Native kütüphaneler kullanılmamış. Java Bird'in kaynak koduna ulaşmamız mümkün mü?

Tabi mümkün. Java Bird Source .  Evet Java Bird'ün her bilgisayarda farklı çalışma gibi bir huyu var. Burda hata %50 benimse %50 Java'nın bence. Eğer Linux'ta çalıştırmayı denediysen oyuna başlarken ekran modunu 1024x768 , 16 bit yapıyor, ama Linux'ta buna izin vermiyor. Kodun o kısmını silip, yerine 1024x786'lik bir pencere açsan yeterli olur. Okuldaki bilgisayarda düzeltilmiş bir hali vardı, onu da bulursam eklerim buraya. Evet Java görüldüğü üzere oldukça cross platform! :) .. Hem o ekran açma kod kısmını java.sun.com'dan almıştım yani kendi uydurmam da değil.

Java Bird'ü yaparken o zaman java 1.4 vardı tamamen onun kütüphanelerini kullanmıştım. Sonra java 1.5 çıkınca en son halini 1.5 ile derlemiştim. Yani ek bir kütüphane kullanmadım.

Bir de bu versiyon değişiklikleri Java'da problem olabiliyor. Mesela Java 1.5 ile "double buffering" yapan applet'lerim. Java 1.6 virtual machine ile artık titreme yapıyor yani "double buffering" yapmaz olmuş. şimdi hepsinin kodunu açıp, Java 1.6 ya göre nası yapılıyormuş ona göre düzenlemek lazım. Java hoş, bi nebze kolay ama böyle de bela işte.

Wasted youtube'da var. keywords: "J2ME Wasted"

NativeSDL

« Yanıtla #13 : 03.07.2008 15:17:00 »
Hızlı düğmeleri aç

Ragnor

İleti: 901

Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://ozanemirhan.blogspot.com
Ya .Net'te durum Skate'in söylediği gibiyse SDL için bir yer var demektir. Sonuçta SDL kullanımı basit ve 2d işler için gayet yeterli, zaten sanırım 2d için bile direct3d kullanıyor windowsta. Düzgün bir grafik uygulama için Direct3d ile uğraşacağına aynı işi kolayca sdl'de halledebilmek tabi yararlı.
Java'yı pek bilmiyorum ama sdl'sizde bolca oyun vs.si var zaten. Pek faydalı olur mu emin değilim. Yine de bir incelemek lazım tabi, java coder'larının ihtiyaçlarını vs. yi.

NativeSDL

« Yanıtla #14 : 03.07.2008 21:05:41 »
Hızlı düğmeleri aç

skate

İleti: 5.245

A Sinner Scener
Çevrimdışı
  • Administrator
  • *****
  • Hero Member
    • Profili Görüntüle
    • http://www.akaydin.com/
.NET ile ilgili bir bilgi vereyim, evet C# gibi standart win32 dll'lerinin pointer türü yapılarını "unsafe" olarak nitelendiren diller bir nebze problem yaratıyor ancak C++.NET kullanarak hem .NET'in tüm özelliklerini kullanabilirsiniz, hem de SDL gibi libraryleri zahmetsizce, port etmeden doğrudan kullanabilirsiniz. Yani "SDL'in .NET versiyonu" biraz yanlış bir algı. Ancak SDL'in C# ya da VB.NET'de rahat kullanımı için hazırlanmış bir paket anlam taşıyor. Bu sebepten dolayı artık C++.NET'e geçmiş bulunuyorum zaten. Yeni projelerimde VB.NET ya da C#'ı kullanmamayı tercih ediyorum. Ancak C#'a da sempatim var hala. VB.NET ise .NET platformunda ilk göz ağrımdır. Platformun yapısını hızlıca öğrenmeme faydası olmuştur.