krigun Skrevet 7. september 2007 Del Skrevet 7. september 2007 Nok en gang, I beg to differ. OpenGL er orginalt skrevet for C, og bare det i seg selv er et kjempeproblem for java. At OpenGL er et C API, er iallefal ikke et "kjempeproblem". Hva får deg til å tro det? Spillutvikleren skriver koden sin i Java, og holder ikke på med JNI selv. Fins flere JNI wrappere for OpenGL ( http://lwjgl.org/ -- https://jogl.dev.java.net/ ) Er nok en eller flere veldig gode grunner til at java ikke er en akseptert spillutviklingsplatform, at bedrifter heller vil bruke tusenvis av ekstra timer for å skrive det i c++ isteden har nok sine grunner... Akkurat som at Windows har mye større markedsandeler fordi det det er et så mye bedre OS? Java har heller ikke noen direkte måter å kjøre operativsystemkall, noe som kan være kjekt å ha... Forklar gjerne hva det har med spillutvikling å gjøre.. Når det gjelder spillutvikling i 4. generasjonsspråk, har jeg mye mer tro på C# enn Java (MS XNA Game Studio er faktisk veldig brukendes). 9438504[/snapback] Jeg snakker om spillutvikling for flere platformer, ikke bare Windows. .NET kjører også i sin egen runtime. De eneste Javaspillene jeg har sett er av laber kvalitet og lav fps (med unntak av en Raycaster, men det er litt for oldschool til at det er noe imponerende) Biased. Lenke til kommentar
Peter Skrevet 9. september 2007 Del Skrevet 9. september 2007 Akkurat som at Windows har mye større markedsandeler fordi det det er et så mye bedre OS? Har vært det veldig lenge, det er først nå linux begynner å tenke brukervennlighet istedenfor frihet og nerder. OS X er jo også på vei, men med helt motsatt tankegang av linux, nemlig at brukeren skal sitte på en boks der det ikke er mulig å gjøre noe galt. Java har heller ikke noen direkte måter å kjøre operativsystemkall, noe som kan være kjekt å ha... Forklar gjerne hva det har med spillutvikling å gjøre.. Fordi OS ofte inneholder optimaliserte funksjoner for spesielle oppgaver som gjerne går igjen ofte. Disse er optmialisert på OS-nivå, og finnes nødvendig vis ikke i andre OS. Når det gjelder spillutvikling i 4. generasjonsspråk, har jeg mye mer tro på C# enn Java (MS XNA Game Studio er faktisk veldig brukendes). 9438504[/snapback] Jeg snakker om spillutvikling for flere platformer, ikke bare Windows. .NET kjører også i sin egen runtime. Enig, men jeg har også mer tro på C#, og dersom Mono får bedre fotfest støtter C# plutselig linux og os x også. De eneste Javaspillene jeg har sett er av laber kvalitet og lav fps (med unntak av en Raycaster, men det er litt for oldschool til at det er noe imponerende) Biased. 9445593[/snapback] Utifra signaturen din tør jeg påstå at du er den som er mest biased her. Lenke til kommentar
krigun Skrevet 9. september 2007 Del Skrevet 9. september 2007 (endret) Utifra signaturen din tør jeg påstå at du er den som er mest biased her. Akkurat; jeg vet nøyaktig hva det innebærer å skrive 3D grafikk i Java og hvilke fordeler/ulemper det har kontra det å skrive lignende i C/C++. Og utifra kommentarene deres å dømme så er jeg rimelig sikker på at verken du Nazgul eller andre C++/C# fanboys som poster i denne tråden ikke har tilsvarende erfaring. Jeg er ferdig med denne tråden. Endret 9. september 2007 av krigun Lenke til kommentar
CronoMan Skrevet 11. september 2007 Del Skrevet 11. september 2007 Nok en gang, I beg to differ. OpenGL er orginalt skrevet for C, og bare det i seg selv er et kjempeproblem for java. At OpenGL er et C API, er iallefal ikke et "kjempeproblem". Hva får deg til å tro det? Spillutvikleren skriver koden sin i Java, og holder ikke på med JNI selv. Fins flere JNI wrappere for OpenGL ( http://lwjgl.org/ -- https://jogl.dev.java.net/ ) Er nok en eller flere veldig gode grunner til at java ikke er en akseptert spillutviklingsplatform, at bedrifter heller vil bruke tusenvis av ekstra timer for å skrive det i c++ isteden har nok sine grunner... Akkurat som at Windows har mye større markedsandeler fordi det det er et så mye bedre OS? Java har heller ikke noen direkte måter å kjøre operativsystemkall, noe som kan være kjekt å ha... Forklar gjerne hva det har med spillutvikling å gjøre.. Når det gjelder spillutvikling i 4. generasjonsspråk, har jeg mye mer tro på C# enn Java (MS XNA Game Studio er faktisk veldig brukendes). 9438504[/snapback] Jeg snakker om spillutvikling for flere platformer, ikke bare Windows. .NET kjører også i sin egen runtime. De eneste Javaspillene jeg har sett er av laber kvalitet og lav fps (med unntak av en Raycaster, men det er litt for oldschool til at det er noe imponerende) Biased. 9445593[/snapback] Hva er poenget med å utvikle spill for flere platformer? Såvidt jeg vet er det bare MacOS og Windows de blir utviklet til, og den beste måten å gjøre det på (uten å måtte gi avkall på en hel del annet) er å skrive det i C++ og kompilere det for hver platform. Ved å velge Java, må du nødvendigvis senke på en del ting (si ifra om du finner noen velegnede spillutviklere med god erfaring som har lyst til å ta på java). Den dagen blizzard søker etter "Experienced Java developers for our next-generation of game-engines" har allerede apokalypsen falt. Operativsystemkall fra en platform er mye viktigere enn du tror. Hva om man trenger noe som ikke er innebygd i java fra før? Om man for eksempel har lyst til å bruke Geometry shaders f.eks? MMX? Legge spillet til firewallen automatisk? Det er litt praktisk å ihvertfall ha muligheten. Et spill dreier seg ikke bare om å få noe fram på skjermen, det skal også være behagelig. Angående windows : Grunnen til at spill blir utviklet tin windows, er ikke bare fordi de kapitalistisk sett er overlegne. Windows er et mye bedre operativsystem en det folk gir det credit for. Det er heller ikke helt uten grunn at det er så mange som bruker det. Du må tenke på at tidligere, er det bedrifter som bygger pcer, servere etc. som faktisk har gjort et konkret valg på at "vi kjører windows" som har gjort det så populært idag. Tror du virkelig at privatpersoner velger det mest populære operativsystemet? Folk flest vet ikke forskjell på en skjerm og en harddisk. Windows er forøvrig det operativsystemet som er mest lagt opp for utvikling og videreutvikling. Det har tilogmed en innebygd debugger. Så istedenfor å få "Segmentation fault" får du den beryktede "This program has caused an illegal operation" som også gir informasjon om feilen; hvor det er, hvilken peker, hvor pekeren pekte, hva som står i registrene etc. Dette er jo selvsagt med på å fortelle hvilket operativsystem et spillutviklingsfirma helst vil velge; det er enklere å utvikle til windows = det tar kortere tid = det er billigere. Logikk. Det er også fullt mulig å skrive cross-platform spill i noe annet enn Java. World Of Warcraft funker like fint til Mac som til PC. Quake3/4 funker like greit på Mac, Windows og Linux (linux er litt verre, men det er mulig) Du sier du har god erfaring på OpenGL til Java (JGL?), har du mye erfaring innen OpenGL til C++? Jeg har ingen tro på Java spillutvikling overhodet. Det har vært i lufta så lenge, men hittil har jeg ikke sett ett eneste vellykket forsøk. Lenke til kommentar
LostOblivion Skrevet 11. september 2007 Del Skrevet 11. september 2007 (endret) Java er bra til det Java er bra til, det vil si lightweight småprogrammer som ikke trenger forferdelig mye prosessorytelse (LimeWire f eks) og det er relativt lett å utvikle i.C/ C++ er god til alt Java er god til, pluss mer, men det er mer tricky på mange måter og vanskeligere å lære seg. C/C++ er mer close to the metal, mens Java jobber gjennom et annet program. Uten at jeg skal kreve at jeg har veldig mye peiling på begge deler. Endret 11. september 2007 av LostOblivion Lenke til kommentar
Peter Skrevet 11. september 2007 Del Skrevet 11. september 2007 Java er bra til det Java er bra til, det vil si lightweight småprogrammer som ikke trenger forferdelig mye prosessorytelse (LimeWire f eks) og det er relativt lett å utvikle i.C/ C++ er god til alt Java er god til, pluss mer, men det er mer tricky på mange måter og vanskeligere å lære seg. C/C++ er mer close to the metal, mens Java jobber gjennom et annet program. Uten at jeg skal kreve at jeg har veldig mye peiling på begge deler. 9473641[/snapback] Poeng, bare se på Azureus. Kneler så det synger etter, og det burde ikke være SÅ heavy. Lenke til kommentar
Zerd Skrevet 11. september 2007 Del Skrevet 11. september 2007 Så hvis man finner ett program skrevet i et språk som kneler, så er språket dårlig? Lenke til kommentar
Peter Skrevet 11. september 2007 Del Skrevet 11. september 2007 Så hvis man finner ett program skrevet i et språk som kneler, så er språket dårlig? 9475470[/snapback] Selvsagt ikke, det viser bare at noen språk er bedre egnet enn andre til visse oppgaver. Lenke til kommentar
Zerd Skrevet 11. september 2007 Del Skrevet 11. september 2007 Eller at programmet er dårlig kodet. Lenke til kommentar
LostOblivion Skrevet 11. september 2007 Del Skrevet 11. september 2007 Eller at programmet er dårlig kodet. 9475602[/snapback] Det er jeg helt enig i. Hvis man virkelig er interessert i å finne ut av om hvilket språk som er bedre til en gitt oppgave, er det jo bare å skrive tilsvarende kommandoer i begge og se hvem som kjører raskest... Lenke til kommentar
CronoMan Skrevet 12. september 2007 Del Skrevet 12. september 2007 Java er bra til det Java er bra til, det vil si lightweight småprogrammer som ikke trenger forferdelig mye prosessorytelse (LimeWire f eks) og det er relativt lett å utvikle i.C/ C++ er god til alt Java er god til, pluss mer, men det er mer tricky på mange måter og vanskeligere å lære seg. C/C++ er mer close to the metal, mens Java jobber gjennom et annet program. Uten at jeg skal kreve at jeg har veldig mye peiling på begge deler. 9473641[/snapback] Poeng, bare se på Azureus. Kneler så det synger etter, og det burde ikke være SÅ heavy. 9474370[/snapback] Azureus tror jeg må være det beste javaprogrammet jeg noensinne har sett Lenke til kommentar
aC Skrevet 14. september 2007 Del Skrevet 14. september 2007 Denne tråden har blitt en elendig flamewar. Ser ikke poeng å komme personlige meninger om hva spill bør lages i, særlig ikke når alt som blir skrevet mer går på å hakke på hva den andre skrev. Foreslår at denne tråden stenges Lenke til kommentar
LostOblivion Skrevet 14. september 2007 Del Skrevet 14. september 2007 For å si det sånn. La Java være et språk til å lære i og gå "videre" til C/C++ når du føler du er god nok i det (om spill). Det er det jeg har tenkt til. Lenke til kommentar
zulo Skrevet 14. september 2007 Del Skrevet 14. september 2007 Noen som har sett jmonkeyengine for java basert på lwjgl? Spirits techdemo Lenke til kommentar
GeirGrusom Skrevet 16. september 2007 Del Skrevet 16. september 2007 (endret) [System.Runtime.InteropServices.DllImport("OpenGL32.dll")] public static extern unsafe void glVertexPointer(int size, uint type, int stride, void* pointer); I C/C++ eller C# trenger man ikke skrive en OpenGL Wrapper, dessuten kan man, som man ser her, bruke pekere i begge språkene, noe som gjør dette mulig: public class DescribedVertexBuffer<T> : Buffer<T>, IVertexBufferInfo { *snipp* } public unsafe void AssignVertexBuffer<T>(Generic.DescribedVertexBuffer<T> vb) { // Disable all arrays, if any arrays are enabled, OpenGL will fail OpenGL.NativeOpenGL.glDisableClientState(OpenGL.NativeOpenGL.GL_NORMAL_ARRAY); OpenGL.NativeOpenGL.glDisableClientState(OpenGL.NativeOpenGL.GL_VERTEX_ARRAY); OpenGL.NativeOpenGL.glDisableClientState(OpenGL.NativeOpenGL.GL_TEXTURE_COORD_ARRAY); OpenGL.NativeOpenGL.glDisableClientState(OpenGL.NativeOpenGL.GL_COLOR_ARRAY); m_vb_info = (Generic.IVertexBufferInfo)vb; int x; int size = (int)VertexDescriptor.GetElementSizeFromDescriptor(vb.Description.Elements[0]); Descriptor desc; byte* ptr = (byte*)vb.Address.ToPointer(); // Run through the vertex description. for (x = 0; x < vb.Description.Elements.Length; x++) { desc = vb.Description.Elements[x]; switch (desc & Descriptor.Type) { case Descriptor.Vertex: AssignVertex(new IntPtr(ptr), desc, (int)vb.GetStride()); break; case Descriptor.TexCoord: AssignTexCoord(new IntPtr(ptr), desc, (int)vb.GetStride()); break; case Descriptor.Normal: AssignNormals(new IntPtr(ptr), desc, (int)vb.GetStride()); break; case Descriptor.Color: AssignColors(new IntPtr(ptr), desc, (int)vb.GetStride()); break; } ptr += VertexDescriptor.GetElementSizeFromDescriptor(desc); } } Dette er litt C# kode fra Glorg (Grafikkmotoren min) Hva skjer her? Jo, man skriver først noe som kalles en vertex descriptor, som rett og slett forteller glorg hvilken rekkefølge ting ligger i vertex bufferet, deretter tar glorg og lager en byte peker til vertex array minneområdet, og gir først f.eks. VertexPointer, og normalpointer etc. til OpenGL Pekere er VELDIG hendig når det kommer til grafikk, men Java har ikke denne muligheten, som både C# og C/C++ har, dermed må man først skrive en wrapper i et annet språk, fortrinnsvis C++. Uansett så blir java delen av spillet bare brukt i det øverset laget, og mye kode må nødvendigvis skrives i C++ uansett. Jeg sier ikke at Java er uegnet til å lage spill i, men det kan bare bli brukt i det aller øverste laget, og ikke i selve grafikkmotoren, dermed er det som regel brukt til scripting av spillet i etterkant (Chrome) I wow, og veldig mange andre spill, blir Lua brukt til dette. Altså konklusjonen er at spillmotorer ikke kan skrives fullt og helt i Java, men må nødvendigvis skrives i C++, dermed faller Java naturlig bort som alternativ. Endret 16. september 2007 av GeirGrusom Lenke til kommentar
zulo Skrevet 22. september 2007 Del Skrevet 22. september 2007 Har ikke LWJGL blitt en del av java nå offisielt? Altså bruker du java 6 så ligger lwjgl der. Og da kan du lage spill med opengl som kan kjøres på linux,mac og windows uten å distribuere lwjgl. [System.Runtime.InteropServices.DllImport("OpenGL32.dll")] public static extern unsafe void glVertexPointer(int size, uint type, int stride, void* pointer); I C/C++ eller C# trenger man ikke skrive en OpenGL Wrapper, dessuten kan man, som man ser her, bruke pekere i begge språkene, noe som gjør dette mulig: public class DescribedVertexBuffer<T> : Buffer<T>, IVertexBufferInfo { *snipp* } public unsafe void AssignVertexBuffer<T>(Generic.DescribedVertexBuffer<T> vb) { // Disable all arrays, if any arrays are enabled, OpenGL will fail OpenGL.NativeOpenGL.glDisableClientState(OpenGL.NativeOpenGL.GL_NORMAL_ARRAY); OpenGL.NativeOpenGL.glDisableClientState(OpenGL.NativeOpenGL.GL_VERTEX_ARRAY); OpenGL.NativeOpenGL.glDisableClientState(OpenGL.NativeOpenGL.GL_TEXTURE_COORD_ARRAY); OpenGL.NativeOpenGL.glDisableClientState(OpenGL.NativeOpenGL.GL_COLOR_ARRAY); m_vb_info = (Generic.IVertexBufferInfo)vb; int x; int size = (int)VertexDescriptor.GetElementSizeFromDescriptor(vb.Description.Elements[0]); Descriptor desc; byte* ptr = (byte*)vb.Address.ToPointer(); // Run through the vertex description. for (x = 0; x < vb.Description.Elements.Length; x++) { desc = vb.Description.Elements[x]; switch (desc & Descriptor.Type) { case Descriptor.Vertex: AssignVertex(new IntPtr(ptr), desc, (int)vb.GetStride()); break; case Descriptor.TexCoord: AssignTexCoord(new IntPtr(ptr), desc, (int)vb.GetStride()); break; case Descriptor.Normal: AssignNormals(new IntPtr(ptr), desc, (int)vb.GetStride()); break; case Descriptor.Color: AssignColors(new IntPtr(ptr), desc, (int)vb.GetStride()); break; } ptr += VertexDescriptor.GetElementSizeFromDescriptor(desc); } } Dette er litt C# kode fra Glorg (Grafikkmotoren min) Hva skjer her? Jo, man skriver først noe som kalles en vertex descriptor, som rett og slett forteller glorg hvilken rekkefølge ting ligger i vertex bufferet, deretter tar glorg og lager en byte peker til vertex array minneområdet, og gir først f.eks. VertexPointer, og normalpointer etc. til OpenGL Pekere er VELDIG hendig når det kommer til grafikk, men Java har ikke denne muligheten, som både C# og C/C++ har, dermed må man først skrive en wrapper i et annet språk, fortrinnsvis C++. Uansett så blir java delen av spillet bare brukt i det øverset laget, og mye kode må nødvendigvis skrives i C++ uansett. Jeg sier ikke at Java er uegnet til å lage spill i, men det kan bare bli brukt i det aller øverste laget, og ikke i selve grafikkmotoren, dermed er det som regel brukt til scripting av spillet i etterkant (Chrome) I wow, og veldig mange andre spill, blir Lua brukt til dette. Altså konklusjonen er at spillmotorer ikke kan skrives fullt og helt i Java, men må nødvendigvis skrives i C++, dermed faller Java naturlig bort som alternativ. 9504585[/snapback] Lenke til kommentar
GeirGrusom Skrevet 23. september 2007 Del Skrevet 23. september 2007 Det hadde jo vært bra Men siden Java mangler delegates, får man ikke brukt extensions da Lenke til kommentar
jemartinsen81 Skrevet 25. september 2007 Del Skrevet 25. september 2007 (endret) Sorry, feel free to slette denne posten. Endret 25. september 2007 av jemartinsen81 Lenke til kommentar
rex8 Skrevet 24. desember 2008 Del Skrevet 24. desember 2008 Har funnet en side der du kan skaffe deg det du trenger for å lage et onlinespill. søk: www.garagegames.com PS: Du kan downloade prøven, medn du må kjøpe hele pakka. Du kan også kjøpe oppgraderinger feks. spesialefekter osv. spessialefektene koster over 100 dollar. Så tror det der programmet er knallbra Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå