ubuntuusers.de

Problem mit Java Spiel

Status: Gelöst | Ubuntu-Version: Ubuntu 11.04 (Natty Narwhal)
Antworten |

Fleckdalm

Anmeldungsdatum:
4. Februar 2011

Beiträge: 122

Ich weiß das das hier kein Programmierforum ist, aber ich habe schon in einem solchen nachgefragt und dort kann mir keiner weiterhelfen bzw. benutzt keiner Ubuntu. Ich habe ein kleines Spiel in Java programmiert(ist mein erstes Spiel also nichts großes erwarten). Unter Windows läuft es super flüssig, aber auf dem gleichen Computer unter Ubuntu 11.04 ruckelt und laggt es ohne ende, und ist somit unspielbar. Ich habe keine Ahnung ob das nur bei mir oder allgemein so ist, und auch nicht an was es liegt. Jetzt wollte ich euch einfach mal fragen ob ihr diesbezüglich erfahrungen usw. habt. Laufen java programme unter Ubuntu generell schlechter, habe ich es schlecht programmiert... Es würde mich sowieso freuen wenn sich mal ein paar Leute mein spiel anschauen und vielleicht feedback und so geben würden;-) hier der Link zum ausprobieren: http://dl.dropbox.com/u/13384015/Jump%27nRoll.jar

Vielleicht wisst ihr ja wieso es unter Ubuntu nicht gut geht oder könnt es zumindest mal unter windows ausprobieren! mfg Fleckdalm

Moderiert von primus pilus:

Thema in das richtige Forum verschoben.

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

Also ich würde mir keine dubiose jar-Datei einfach runterladen und ausführen. Das gilt sicherlich auch noch für viele andere hier.

Ich hätte erwartet:

  • dass es eine Projektseite gibt,

  • die Sourcen offen verfügbar sind,

  • Screenshots / Videos im Web einsehbar sind, die das Spiel zeigen.

Zudem hättest Du ja ein wenig auf die genutzten Technologien eingehen können. Nutzt Du 3D-Grafik? Ein Framework dazu? Ggf. kann das ja bereits dazu führen, dass es auf Linuxsystemen ohne guten Grafiktreiber zu Problemen kommt.

Speziell, dass Du auf solche Dinge nicht eingehst, macht mich persönlich noch misstrauischer.

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2510

Moin,

generell sollte die Aussage „Java ist unter GNU/Linux langsamer“ nicht zutreffen. Auf jeden Fall nicht in derartigem Ausmaß wie du es beschreibst.

Ob du es schlecht programmiert hast, kann dir so keiner sagen – da müsste man den Quellcode sehen. ☺ Und einfach so mal ausprobieren möchte zumindest ich das jedenfalls nicht, ohne vorher den Code gesehen zu haben. Paranoia und so, wissenschon. 😉 Abgesehen davon hätte das sowieso keine Aussagekraft. Denn vielleicht nutzt dein Spiel ja OpenGL und du hast unter Ubuntu schlichtweg deinen Grafiktreiber nicht richtig eingerichtet?

Will sagen: Kläre einerseits mal, ob 3D-Beschleunigung bei dir läuft. Dazu gibt es hier im Wiki bestimmt eine Menge an Hilfestellung, ansonsten frag’ mal im entsprechenden Forum hier nach. Andererseits müsstest du den Quellcode zugänglich machen, wenn du möchtest, dass sich das jemand im Detail anschaut. ☺

– edit: Huch. ☺

Fleckdalm

(Themenstarter)

Anmeldungsdatum:
4. Februar 2011

Beiträge: 122

Es ist wirklich nur ein ganz einfaches 2D spiel ohne OpenGL oder sonst was. Es ist auch noch nicht fertig und wie gesagt sowieso nur mein 1. spieleprogrammierversuch(soll also im Grunde nie was wirklich großes werden)! Deshalb gibt es auch keine Website oder sonst was. Es geht mir nur darum wieso es eben mit Ubuntu solche Probleme gibt, und vielleicht auch ein bisschen Feedback zu meinem Spiel. Es ist garantiert kein Virus oder sonst was! Mehr als euch das sagen kann ich nicht machen. Ich habe jetzt aber noch schnell einen Screenshot vom Spielmenü und einen vom Spiel selbst gemacht und hier angehängt! Vielleicht wollt ihr es euch ja doch noch anschauen z.B. völlig gefahrlos in einer VM wenn ihr mir nicht traut;-) mfg Fleckdalm

Bilder

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

Fleckdalm schrieb:

Deshalb gibt es auch keine Website oder sonst was.

Naja, nutzt Du kein CVS und damit ein Repo wie github oder bitbucket? Wenn nein, solltest Du Dir das mal ernsthaft überlegen!

Es geht mir nur darum wieso es eben mit Ubuntu solche Probleme gibt, und vielleicht auch ein bisschen Feedback zu meinem Spiel. Es ist garantiert kein Virus oder sonst was! Mehr als euch das sagen kann ich nicht machen.

Doch, uns den Quellcode zugänglich machen 😉

Mal im Ernst: Was nützt es Dir, wenn jemand Dir bestätigt, dass es lahmt? Du kennst weder sein System, noch seine Konfiguration usw. Außerdem kommt man dadurch ja auch keinem Programmier- / Designfehler auf die Spur. Dazu braucht man Code! Auch wenn Du sagst, es nutzt kein OpenGL - wir wissen dann ja immer noch nicht, ob nicht irgend ein Paket dann doch auf 3D-Beschleunigung angewiesen ist, welches Du nutzt.

Vielleicht wollt ihr es euch ja doch noch anschauen z.B. völlig gefahrlos in einer VM wenn ihr mir nicht traut;-)

Oder es einfach sein lassen 😈

Fleckdalm

(Themenstarter)

Anmeldungsdatum:
4. Februar 2011

Beiträge: 122

Naja, nutzt Du kein CVS und damit ein Repo wie github oder bitbucket? Wenn nein, solltest Du Dir das mal ernsthaft überlegen!

Ich habe leider keine Ahnung was das ist...

Den Quellcode könnt ihr euch hier downloaden: http://dl.dropbox.com/u/13384015/src.zip Die Bilder, und der sound sind da nicht enthalten die könnt ihr euch aus der .jar holen.

Ich hoffe das euer Misstrauen jetzt verflogen ist und ihr es euch mal anschaut! Ich würde mich übrigens auch über programmiertechnische hinweise und Tipps freuen! Wie gesagt ist mein 1. spiel hab noch nicht so viel erfahrung und so. mfg Fleckdalm

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

Fleckdalm schrieb:

Naja, nutzt Du kein CVS und damit ein Repo wie github oder bitbucket? Wenn nein, solltest Du Dir das mal ernsthaft überlegen!

Ich habe leider keine Ahnung was das ist...

Dann betrachte das als ersten Hinweis in Sachen Programmierung 😉

Den Quellcode könnt ihr euch hier downloaden: http://dl.dropbox.com/u/13384015/src.zip

Ok, ich schau es mir mal an.

Schugy

Anmeldungsdatum:
4. Dezember 2004

Beiträge: 265

Wohnort: Lägerdorf

Also mein Antivir hat nichts gefunden. Das Spiel laeuft bei 800MHz und mit lausiger x1250 Radeon Grafik wohl recht fluesig. Ich habe die Sun JRE in 64 bit. Allerdings bin ich immer nur nach 3 Sekunden tot.

Fleckdalm

(Themenstarter)

Anmeldungsdatum:
4. Februar 2011

Beiträge: 122

Echt bei dir läuft es unter ubuntu flüssig? Dann muss es wirklich an meinem Computer liegen... Mrinst du das das spiel zu schwer ist weil du immer schon nach 3 sek tod bist? Eventuell könntest du die Gegnerzahl in den Optionen auf 4 (minimum) stellen, und die blöcke einschalten dann sollte es leichter sein;-)

@lysander danke das du es dir mal anschaust ich wollte sowieso schon länger mal die meinung und ein paar tipps von einem guten programmierer(der du ja anscheinend bist) hören! Mfg fleckdalm

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

Läuft auf meinem alten Laptop auch flüssig.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17620

Wohnort: Berlin

Bei mir läuft es flüssig, aber das Highscorespeichern scheitert.

1
2
3
4
thread sleep in gameloop unterbrochen
23.05.2011 19:32:23 Highscore a
SCHWERWIEGEND: null
java.io.FileNotFoundException: /home/stefan/daten (Is a directory)

Der Text paßt auch nicht auf den Anleitungsschirm, und wird rechts abgeschnitten.

Fleckdalm

(Themenstarter)

Anmeldungsdatum:
4. Februar 2011

Beiträge: 122

Wenn es bei euch allen flüssig läuft muss es wohl wirklich an meinen einstellungen unter ubuntu liegen! Hat jemand eine idee was ich da machen kann? Inter windows läufts bei mir mit 92 unter ubuntu jedoch nur mit 19 FPS! @ user unknown Das mit dem Highscore geht anscheinend nicht weil du elin deinem userordner einen ordner daten hast, das spiel aber den highscore in einer datei mit dem namen daten speichert was somit nicht möglich ist da der namr schon vergeben ist.... Das mit dem Anleitujgstext ist mir auch aufgefallen, und tritt ebenfalls nur unter ubuntu auf! Unter windows wo ich die Anleitung geschrieben habe ist alles sichtbar! mfg Fleckdalm

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

Also ich hab mir das nur mal auf die Schnelle angeguckt.

Die Highscoreliste empfinde ich als suboptimal. Wieso trennst Du da den Spielernamen von seinen Punkten? Würde ich zusammen in eine Datei schreiben. Desweiteren würde ich da auf ein Standardformat a la XML, JSON, YAML usw. setzen.

Da quasi keine Doku vorhanden ist, kann man ansonsten nur mit viel Freude am Lesen da ran gehen 😉 Da fehlt mir die Motivation.

Dass Du Generics benutzt, finde ich schon mal gut. Aber wieso nutzt Du diese so schrecklich?

Aus der GamePanel.java:

1
2
3
4
5
6
private ArrayList<Gegner> gegner;
/* ... */
Gegner g;
for (int i = 0; i < gegner.size(); i++) {
    g = gegner.get(i);
}

Wieso nicht foreach?

1
2
3
for(Gegner g: gegner) {
    // g ist hier nun das aktuelle Gegner Objekt
}

Generell würde ich ja eher englische Namen verwenden. Alleine hier sieht man, dass das Wort gegner im Deutschen uneindeutig ist (Singelarutantum). Im Englischen kommt das weniger oft vor und man hätte eine eindeutigere Bedeutung durch die Namen enemies und enemy. Ersteres repräsentiert Deine Liste, letzteres eben ein einzelnen Enemy-Objekt bspw. in eben einer solchen Schleife.

Ich denke in der Hauptlogikschleife könnte man modularer arbeiten. Im Moment machst Du erst alles für die Objekte A, danach alles für die Objekte B, usw. Sinnvoller wäre es, sich da eine Event-Queue zu basteln, in der alle anzufassenden Objekte drin sind.

Generell erkenne ich keine Trennung von Logik und Grafik.

Fleckdalm

(Themenstarter)

Anmeldungsdatum:
4. Februar 2011

Beiträge: 122

Ich weiß leider nicht wie xml und so aufgebaut ist, aber ich schaus mir vielleicht mal an. Dokumentiert habe ich nichts da ich eigentlich nie vorhatte das ganze zu veröffentlichen. Aber mittlerweile merke ich schon das es auch für mich selbst besser gewesen wäre nur ist es jettt zu mühsam noch alles nachträglich zu dokumentieren. Du liest es dir also doch nicht durch? Naja da kann ich nichts machen, aber hätte vielleicht jemand anders lust es genauer anzuschauen? Das wäre echt toll! Achja und kann mir jetzt jemand einen tipp geben was in meinen einstellungen falsch sein könnte das das spiel bei mir nicht läuft? Wegen den schleifen ich habe deshalb keine for each schleife genommen weil dann immer eine concurrent modifikation exception kommt! Kanmst du selbst ausprobieren einfach alles in foreach schleifen umwandeln und ein bisschen spielen irgendwann kommt dann die exception! Ich zwar keine Ahnung wieso das so ist aber es ist so! Vob event queue habe ich leider auch keine ahnung:-( Danke das du es dir wenigstens kurz angeschaut hast, mfg Fleckdalm

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

Fleckdalm schrieb:

Ich weiß leider nicht wie xml und so aufgebaut ist, aber ich schaus mir vielleicht mal an.

Du brauchst über die Formate eigentlich nicht viel wissen - nutze einfach ein gutes Werkzeug zur (De-)Serialisierung, wie etwa XStream.

Dokumentiert habe ich nichts da ich eigentlich nie vorhatte das ganze zu veröffentlichen. Aber mittlerweile merke ich schon das es auch für mich selbst besser gewesen wäre nur ist es jettt zu mühsam noch alles nachträglich zu dokumentieren.

Naja, also wenn Dir das schon zu mühsam ist, wieso sollte sich dann jemand anders das ganze durchlesen?

Du liest es dir also doch nicht durch? Naja da kann ich nichts machen, aber hätte vielleicht jemand anders lust es genauer anzuschauen? Das wäre echt toll!

Na, ich habs ja überflogen. Aber ehrlich gesagt motiviert der Code nicht grad zum kompletten Durchlesen. Alleine die fehlende Doku macht es schwierig, Dein Grundgerüst zu durchblicken. Wir reden hier ja auch nicht über 100 Zeilen, sondern mehrere tausend! Das wird hier sicher niemand rein aus Vergnügen machen 😉

Antworten |