Retro Arena

XxXRichiXxX

Mitglied
xheyk7tm.png


Hallo,

ich möchte euch heute mein Projekt "Retro Arena" vorstellen. Ich würde mich sehr freuen, wenn ihr es mal runterladet und eure Meinung/konstruktive Kritik mir mitteilt.
Wenn ihr Idee habt, dann könnt ihr die auch gerne äußern.

Infos

Name: Retro Arena
Genre: Battle Arena/Action
Sprache: Deutsch
Größe: 8MB (14MB wegen Source Code)


Spielidee

Die Idee hinter Retro Arena ist im Prinzip sowas wie Gladiatoren, diese kämpfen auch mit Schwert und Schild in einer Arena um ihr Leben. So ist es auch bei Retro Arena, der einzige Unterschied ist, dass man gegen allerhand Monster kämpft.


Spielziel

Das Ziel von Retro Arena ist es, einen besonders mächtigen Spielstand/Charakter zu haben.
Später soll es noch Möglich sein, gegen andere Spieler lokal und übers Internet gegeneinander zu kämpfen und viele Coins für einen Sieg einzusahnen um noch besser zu werden.


Screenshots

Hautpmenü


Charakter/Spielstand statsmenü


Wüsten Arena



Download & Mindmap

Download: Retro Arena + Source Code
Virustotal: http://tinyurl.com/lx9z6p9
Mindmap: Retro Arena - Mind Map


Mfg Richi

PS: Ich möchte hier keine Diskussion, warum ich schon wieder was neues mache!
 
Zuletzt bearbeitet:

MrClave

Bekanntes Mitglied
Atmosphäre ist definitiv vorhanden, allerdings gibt's da so einige Dinge, die ich ändern würde.

  1. Musik fängt schon vor dem Bildschirm an. Fühlt sich merkwürdig an als Nutzer.
  2. Die Schriften (Farben, Schriftart) sind teilweise unschön. Man sollte sich an ein gewisses Farbschema halten.
  3. Schriftschatten eher nervig, als schön.
  4. "Welle X" zu weit rechts. Ragt aus dem Bild heraus.
  5. Speichern drücken zum anwenden der Upgrades. Ich will, dass ein Spiel so etwas sofort übernimmt.
  6. Speichern Button zeigt nur "Speicher" an, statt "Speichern"
  7. Lange Wartezeiten nach tot.
  8. ESC zum fortführen nach dem tot eher ungewöhnlich. Space, Enter oder ein Mausklick erscheinen logischer.
  9. Maustaste gedrückt halten zum angreifen. Sehr nervig auf Dauer. Ich will einen Angriff pro Mausklick.
  10. Ingame Zeit läuft manchmal in doppelter Geschwindigkeit.
  11. Bei klicken auf Neu wird keine Sicherheits-Abfrage gestartet. Man könnte sich ja mal verklicken.
  12. Popup-Menü im Metal-LookAndFeel beim kauf eines zu teuren Upgrades -> unschön & zerstört Atmosphäre.
  13. Maps/Level. Sind es easy, medium und hardcore? Kam mir zumindest so vor.

Ich denke, das sind erst mal genug Punkte ;)
Trotzdem schönes Leveldesign. Richtiges retro-feeling kommt da auf.
 

XxXRichiXxX

Mitglied
Atmosphäre ist definitiv vorhanden, allerdings gibt's da so einige Dinge, die ich ändern würde.

  1. Musik fängt schon vor dem Bildschirm an. Fühlt sich merkwürdig an als Nutzer.
  2. Die Schriften (Farben, Schriftart) sind teilweise unschön. Man sollte sich an ein gewisses Farbschema halten.
  3. Schriftschatten eher nervig, als schön.
  4. "Welle X" zu weit rechts. Ragt aus dem Bild heraus.
  5. Speichern drücken zum anwenden der Upgrades. Ich will, dass ein Spiel so etwas sofort übernimmt.
  6. Speichern Button zeigt nur "Speicher" an, statt "Speichern"
  7. Lange Wartezeiten nach tot.
  8. ESC zum fortführen nach dem tot eher ungewöhnlich. Space, Enter oder ein Mausklick erscheinen logischer.
  9. Maustaste gedrückt halten zum angreifen. Sehr nervig auf Dauer. Ich will einen Angriff pro Mausklick.
  10. Ingame Zeit läuft manchmal in doppelter Geschwindigkeit.
  11. Bei klicken auf Neu wird keine Sicherheits-Abfrage gestartet. Man könnte sich ja mal verklicken.
  12. Popup-Menü im Metal-LookAndFeel beim kauf eines zu teuren Upgrades -> unschön & zerstört Atmosphäre.
  13. Maps/Level. Sind es easy, medium und hardcore? Kam mir zumindest so vor.

Ich denke, das sind erst mal genug Punkte ;)
Trotzdem schönes Leveldesign. Richtiges retro-feeling kommt da auf.

Vielen dank für dein Feedback.

  1. Hab die Schatten weitestgehend weggemacht (gefällt mir auch besser)
  2. Du meinst unten rechts in der Ecke? Bei mir nicht, hab es dennoch etwas weiter nach links gerückt.
  3. Der "Speichern"-Button bleibt, da ich sonst "Rückgängig"-Button machen müsste.
  4. Danke für den Hinweis, ist geändert.
  5. Hab die Zeit verkürzt.
  6. Hab die Taste auf Space geändert.
  7. Geändert, man muss nun nur einmal klicken.
  8. Die Ingame Zeit läuft fast mit der echten, habs gerade überprüft.
  9. Sicherheitsfrage eingefügt.
  10. Ist geändert.
  11. Ja, die Schwierigkeit ist so eingeteilt.

Vielen dank, ich stecke viel Arbeit in die Level.

Mfg Richi
 
Zuletzt bearbeitet:

jonas.r

Mitglied
Bekomme auf meinem Mac leider ne Exception:
Java:
Exception in thread "main" java.lang.NullPointerException
	at org.xxxrichixxx.player.MusicPlayer.loop(MusicPlayer.java:21)
	at org.xxxrichixxx.menu.Menu.main(Menu.java:115)

Beim Doppelklick auf die Jar kommt immerhin noch kurz die Marschmusik, danach stürzt es leider ab. In der Konsole kommt nichtmal die Musik und die Exception wird ausgespuckt.

Würds mir gerne ansehen.

Liebe Grüße,
Jonas
 

mavinatic

Bekanntes Mitglied
Hallo XxXRichiXxX,

ich habe dein Spiel nicht gespielt, war aber an der SourceCode-Analyse interessiert.

Kritik:
- In der Package "org.xxxrichixxx.entities" & "org.xxxrichixxx.arenas" würde ich mit Vererbung arbeiten! Denn viele Klassen implementieren den gleichen oder ähnlichen Code!
- Bezüglich der Images wäre es sicherlich möglich ein großes Image zu verwenden anstatt von 9 einzelenen Animationsbilder und diese dann gerecht anzeigen zu lassen.
- Ich persöhnlich vermeide Variablennamen mit underscores.
- An verschiedenen Stellen hast du dich wiederholt - Bei der Softwareentwicklung gibt es einen "Grundsatz" -> Dont repeat yourself!
- Warum hat die Class "Frame" eine extra package -> Ich würde sie auch unter GUI einlagern
- In der Klasse ImageLoadere gibt es die Methode "loadImageIcon" dort hast du das ExceptionHandling Semi-Professionell durchgezogen. Aus großen Softwareprojekten kann ich dir nur empfehlen Logger wie log4j oder ähnliches zu nutzen, auch wenn das für dein Projekt vllt etwas überdimensioniert klingt, finde ich Logging-Frameworks klasse, so kann man einfacher debuggen, falls ein Fehler im SourceCode ist.

Diese Kritik ist teilweise hohes Niveau! Das sind alles nur Verbesserungsvorschläge, welche ich persöhnlich einbauen würde um mit wachsener Menge an SourceCode noch die Übersicht zu bewahren!

Beste Grüße
 

XxXRichiXxX

Mitglied
Bekomme auf meinem Mac leider ne Exception:
Java:
Exception in thread "main" java.lang.NullPointerException
	at org.xxxrichixxx.player.MusicPlayer.loop(MusicPlayer.java:21)
	at org.xxxrichixxx.menu.Menu.main(Menu.java:115)

Beim Doppelklick auf die Jar kommt immerhin noch kurz die Marschmusik, danach stürzt es leider ab. In der Konsole kommt nichtmal die Musik und die Exception wird ausgespuckt.

Würds mir gerne ansehen.

Liebe Grüße,
Jonas

Da konnte wahrscheinlich das Menülied nicht geladen werden.
Ich schicke dir demnächst per Pn eine Version, bei ich das Debug in meinem Audioloader verbessert habe.

Hallo XxXRichiXxX,

ich habe dein Spiel nicht gespielt, war aber an der SourceCode-Analyse interessiert.

Kritik:
- In der Package "org.xxxrichixxx.entities" & "org.xxxrichixxx.arenas" würde ich mit Vererbung arbeiten! Denn viele Klassen implementieren den gleichen oder ähnlichen Code!
- Bezüglich der Images wäre es sicherlich möglich ein großes Image zu verwenden anstatt von 9 einzelenen Animationsbilder und diese dann gerecht anzeigen zu lassen.
- Ich persöhnlich vermeide Variablennamen mit underscores.
- An verschiedenen Stellen hast du dich wiederholt - Bei der Softwareentwicklung gibt es einen "Grundsatz" -> Dont repeat yourself!
- Warum hat die Class "Frame" eine extra package -> Ich würde sie auch unter GUI einlagern
- In der Klasse ImageLoadere gibt es die Methode "loadImageIcon" dort hast du das ExceptionHandling Semi-Professionell durchgezogen. Aus großen Softwareprojekten kann ich dir nur empfehlen Logger wie log4j oder ähnliches zu nutzen, auch wenn das für dein Projekt vllt etwas überdimensioniert klingt, finde ich Logging-Frameworks klasse, so kann man einfacher debuggen, falls ein Fehler im SourceCode ist.

Diese Kritik ist teilweise hohes Niveau! Das sind alles nur Verbesserungsvorschläge, welche ich persöhnlich einbauen würde um mit wachsener Menge an SourceCode noch die Übersicht zu bewahren!

Beste Grüße

Vielen dank für dein Feedback.

  1. Vererbungen werde ich demnächst noch einbauen.
  2. Es ist sicherlich besser ein großes Img zu haben, hab damit aber noch keine Erfahrung gesammelt und das ist mir jetzt zu viel Aufwand, 80+ Bilder pro Entity in ein Bild zsm. zu fassen.
  3. Ich habe variablennamen mit underscrores nur, damit man diese besser lesen kann (z.B. kann man a_image besser lesen als aimage)
  4. "An verschiedenen Stellen hast du dich wiederholt - Bei der Softwareentwicklung gibt es einen "Grundsatz" -> Dont repeat yourself!" Was meinst du damit?
  5. werde ich noch verschieben, hatte aber am anfang noch kein package gui.
  6. Ich bleibe jetzt erstmal bei meinem ExceptionHandling und werde mir bei meinem nächsten Projekt mal ein Logging-Framework anschauen.

Mfg Richi
 

MrClave

Bekanntes Mitglied
Don't repeat yourself hab' ich noch nicht gehört (eher "Don't repeat mistakes"), allerdings gibt es in der Informatik den Grundsatz, Redundanzen zu vermeiden. (Oder auch "Only Enter Once" für professionelle Anwendungen).

Redundant ist etwas, sobald es unnötigerweise doppelt vorkommt.

Beispiel:
Wenn du eine Gegner und eine Spieler klasse hast, gibt es zwischen beiden ja gewisse Gemeinsamkeiten. Zum Beispiel einen Namen. (Gilt auch für gemeinsame Methoden, wie z.B. bewegung)
Da wäre es doch ratsam, wenn man eine überliegende Entity Klasse hat, von der man bei Klassen wie Gegner und Player ableiten kann, damit diese Dinge wirklich überall 100% identisch sind und man sie nicht tausend mal neu schreiben muss.

Ist eine schöne Baumstruktur.
Code:
                                                  Entity
                               Enemy                               Player
                ConrecteEnemyA        ConrecteEnemyB
So kann man sich dann Stück für Stück an konkrete Klassen nähern.
Macht es auch leichter den Code später zu verändern/erweitern.
 
Zuletzt bearbeitet:

XxXRichiXxX

Mitglied
Don't repeat yourself hab' ich noch nicht gehört (eher "Don't repeat mistakes"), allerdings gibt es in der Informatik den Grundsatz, Redundanzen zu vermeiden. (Oder auch "Only Enter Once" für professionelle Anwendungen).

Redundant ist etwas, sobald es unnötigerweise doppelt vorkommt.

Beispiel:
Wenn du eine Gegner und eine Spieler klasse hast, gibt es zwischen beiden ja gewisse Gemeinsamkeiten. Zum Beispiel einen Namen. (Gilt auch für gemeinsame Methoden, wie z.B. bewegung)
Da wäre es doch ratsam, wenn man eine überliegende Entity Klasse hat, von der man bei Klassen wie Gegner und Player ableiten kann, damit diese Dinge wirklich überall 100% identisch sind und man sie nicht tausend mal neu schreiben muss.

Ist eine schöne Baumstruktur.
Code:
                                                  Entity
                               Enemy                               Player
                ConrecteEnemyA        ConrecteEnemyB
So kann man sich dann Stück für Stück an konkrete Klassen nähern.
Macht es auch leichter den Code später zu verändern/erweitern.

Achso, ok.
Ich werde, wie bereits gesagt, noch Vererbungen machen.

Mfg Richi
 

mavinatic

Bekanntes Mitglied
Hey,

unter WIKIPEDIA findest du auch nach dem DRY-Prinzip: Don?t repeat yourself ? Wikipedia

Zu den Underscores wird bekanntlich nach Java Conventions der sogenannte "CamelCase" benutzt. Sprich wenn ein neues Wort in einer variable beginnt dann startet man mit einem Großbuchstaben.

Beispiel: "aImage" oder "dontRepeatYourself" so kann man variablenNamen besser lesen ;-)

Ich finde gut, dass du von jedem User die Kritik so offen aufnimmst!
 

XxXRichiXxX

Mitglied
Hey,

unter WIKIPEDIA findest du auch nach dem DRY-Prinzip: Don?t repeat yourself ? Wikipedia

Zu den Underscores wird bekanntlich nach Java Conventions der sogenannte "CamelCase" benutzt. Sprich wenn ein neues Wort in einer variable beginnt dann startet man mit einem Großbuchstaben.

Beispiel: "aImage" oder "dontRepeatYourself" so kann man variablenNamen besser lesen ;-)

Ich finde gut, dass du von jedem User die Kritik so offen aufnimmst!

Ah ok, vielen dank.
Ich werde es es beim nächsten Projekt beabsichtigen. Es wäre jetzt zu viel Aufwand, alle Variablen zu ändern.

Es ist mir sehr wichtig, dass Feedback von jemanden auszuwerten.

Hast du noch Verbesserungsvorschläge oder Ideen zu meinem Spiel?
Mfg Richi
 

Neue Themen


Oben