# Spielvorstellung: GravoBlocks 3



## babuschka (10. Jul 2011)

Hallo,

nachdem die Vorgängerversion sehr verbesserungswürdig war, habe ich das Spiel komplett neu geschrieben. Als Ergebnis kam GravoBlocks 3 heraus, welches ich nun gerne zum Abschuss freigeben würde 

Das Programm wird per WebStart ausgeliefert, die aktuellste Version könnt Ihr hier herunterladen:
gravoblocksiii - Falling blocks game written in Java - Google Project Hosting

Eine genauere Beschreibung findet ihr auf meiner Homepage: KrawallMann's Website - Startseite bzw. http://www.krawallmann.de.tc.

Hinweis: Das Programm legt in eurem user.home-Verzeichnis einen Ordner namens KMSoftware an, um dort eure Scores zu speichern.

Also: Her mit den Bugs 

JohnMcLane [KrawallMann]


----------



## Volvagia (10. Jul 2011)

```
BadFieldException[ Für die Unterstützung von nativelib oder installer-desc muss der Cache aktiviert sein.,http://lwjgl.org/webstart/2.6/native_windows.jar]
```

Das solltest du eventuell vorher erwähnen.


Ansich schön. Ich finde nur, dass das Spielfeld, der Hintergrund und die Infos auf den Seiten grafisch nicht wirklich harmonieren. Aber da ich bei Grafiken eine 0 bin, kannst du das ignorieren. ^^
Imho erhöht sich die Gravitation zu langsam. Damit wird es eigendlich schnell langweilig, weil es keine Herausforderung bietet. Ich hab bis 10 gespielt und eigendlich keine Steigerung des Schwierigkeitsgrad bemerkt. Außerdem kann man einen gehaltenen Stein mit einen identen austauschen. Das ist kein Fehler, ich finde es aber irgendwie unlogisch. Außerdem bilde ich mir ein, dass es für 3 und 4 Blöcke 500 Punkte (100, 300, 500, 500) gibt. Ich achte da normalerweiße nicht drauf und nehme es nur aus den Augenwinkel war. Wenn ich mich nicht irre denke ich das die Punkte so nicht gut aufgeteilt sind, Bonus erhöht sich normaler weiße ja recht stark. Hier ist der Bonus aber nur sehr gering. Es gibt fast keinen Unterschied ob 2 3er-Reihen oder 3 2er-Reihen gemacht wurden, obwohl die 3er ja wesentlich mehr wert sind und deshalb mehr belohnt werden sollten. Nur meine Meinung. ^^


----------



## babuschka (10. Jul 2011)

Hallo,

danke für Deine Kritik!

In der Tat, die Schwierigkeit war doch etwas langsam. Habe das Ganze etwas beschleunigt.
Auch die Boni wurden angepasst, es gibt jetzt 100,300,2000,7000 sowie einen Bonus von 100 pro Gravitationseinheit ab Gravitation 2.

Das mit dem Austausch gleicher Steine ist durchaus gewollt, hier kann man sich etwas Zeit verschaffen 

Edit: Bis jetzt wusste ich nicht mal, dass man den Cache deaktivieren kann.


----------



## Evil-Devil (11. Jul 2011)

Das erste was mir noch vor dem Spielstart aufgefallen ist, ist die fehlerhafte, falsche Zuordnung für den Download. Normalerweise sagt der Download bei JNPLs auch was über Java, nur XML Editor hatte ich bisher nicht wirklich oft als Programm Vorschlag ^^

Falls möglich überarbeiten 

Hab jetzt noch nicht weit gespielt, aber ich vermisse die Möglichkeit Steine fallen zu lassen wie man es vom Ur-Tetris her kennt.


----------



## babuschka (11. Jul 2011)

Hallo,

habe die Fall-Funktion nun integriert, die standardmäßige Tastenbelegung hierfür ist Space.



> Normalerweise sagt der Download bei JNPLs auch was über Java, nur XML Editor hatte ich bisher nicht wirklich oft als Programm Vorschlag ^^



Wo genau trat das auf? Bisher konnte ich es nirgends finden...


----------



## Evil-Devil (11. Jul 2011)

JohnMcLane hat gesagt.:


> Hallo,
> 
> habe die Fall-Funktion nun integriert, die standardmäßige Tastenbelegung hierfür ist Space.
> 
> ...



Ich hab den JNPL Link geklickt, kam auf die Google Seite und dann fragt mich mein FF für gewöhnlich mit welchem Programm er die JNPL Datei öffnen soll. Hier hat er mir meinen XML Editor vorgeschlagen, anstatt Java.


----------



## Volvagia (11. Jul 2011)

Hast du die Datei auf Googlecode noch nicht geupdatet? Fallen funktioniert bei mir nicht.
Wenn man das Blinken der Geister deaktiviert, zeigt er die der grauen Steine gar nicht mehr an.
Und ich finde, beim Eintragen in die Bestenliste sollte der voreingestellt Name (letzten Namen merken?) sofort markiert werden, damit man ihm direkt überschreiben kann.


----------



## Apo (11. Jul 2011)

Gleiches Phänomen wie bei Evil-Devil. Mit Oxygen wollte ich die Jnlp nicht öffnen. 
Habe sie mir nicht genau angeschaut, aber auf cokeandcode.com ist eine schöne Anleitung.


----------



## babuschka (11. Jul 2011)

Hallo,

doch, die Dateien habe ich hochgeladen. Aber anscheinend lädt er die Datei nicht sofort.
Werde mich darum kümmern, sobald ich wiede Zeit habe :rtfm:

Edit: Habe die genannten Probleme jetzt (hoffentlich) behoben. Jetzt sollte auch endlich der MINE-Type stimmen.


----------



## tuttle64 (12. Jul 2011)

Etwas unschön, dass man das Spiel unter Windows über "Programme ändern oder entfernen" löschen muss.


----------



## Apo (12. Jul 2011)

Habs ausprobiert.

Gefällt mir sehr gut. Ich würde nur die Vorschau der Blöcke wo sie landen werden wesentlich durchsichtiger machen. Die haben mich echt eher verwirrt als dass es mir geholfen hat.
Ansonsten sehr schickes stylisches Tetris-Game. *thumbsup*


----------



## Volvagia (12. Jul 2011)

Ja, nicht schlecht. Aber Webstart aktualisiert immer noch nicht automatisch.


----------



## Kr0e (12. Jul 2011)

Mal ne Frage:

Wie hast du die GUI gemacht ? 

Spiel ist wirklich gelungen 

Gruß,

Chris


----------



## babuschka (12. Jul 2011)

Hallo,

nochmal Danke für die Rückmeldungen!



> Etwas unschön, dass man das Spiel unter Windows über "Programme ändern oder entfernen" löschen muss


Das scheint mir bei WebStart leider so zu sein...



> Aber Webstart aktualisiert immer noch nicht automatisch.


Das finde ich seltsam, da das eigentlich durch
[XML]<update check="always" policy="always">[/XML] erledigt werden sollte... Nutzt Du auch wirklich die neuste Version von der Site?



> Wie hast du die GUI gemacht


Hier kommt eine veränderte Version von Matthias Mann's TWL LibLink zum Einsatz. Leider musste ich ganz schön an Slick rumbasteln, um das so zu integrieren wie ich wollte


----------



## Kr0e (12. Jul 2011)

Gute Lösung! Hab ihc mir bald schon gedacht, dass das TWL ist. Nifty ist schon mit JME ein Horro^^ Wirklich gut gemacht, vlt noch ein paar coole Features, die es beim Klassiker nicht gibt... Vlt verschieden aussehende Maps oder so, oder Achivements  Darauf fahren heutzutage alle voll ab.

Aber schon ziemlich gut.

Mich würde auch der Source interessieren. Aber bei G-Code ist wohl noch nichts hochgeladen ...


----------



## babuschka (12. Jul 2011)

> Mich würde auch der Source interessieren. Aber bei G-Code ist wohl noch nichts hochgeladen ...



Steht ja überall, dass es Open Source ist. Wird es auch, wenn ich SVN mit Eclipse zum Laufen gebracht habe 

Edit: Habe den Code jetzt mit Mercurial hochgeladen


----------



## Volvagia (13. Jul 2011)

Wie wäre es mit eine art Missions-Modus wie bei Nyet III?


----------



## babuschka (15. Jul 2011)

Hallo,

neben einigen Ändeurngen am Quelltext habe ich jetzt eine rudimentäre Erfolge (Achievements)-Funktion eingebaut. Außerdem hoffe ich, das WebStart-Updateproblem behoben zu haben 

Bitte nehmt dazu nun folgende JNLP-Datei:Launch! oder den Launch-Button auf der Website.


----------



## Volvagia (15. Jul 2011)

Schön, da steh ich drauf. :lol:
Update hat funktioniert, in der Erfolgs-Ansicht steht die untere Reihe "auf" dem Rahmen unten. Ich kenn mich mit der Lib nicht aus, aber vielleicht den Rahmen erst nach den Text zeichnen? Vielleicht noch irgendwie erwähnen, welches davon in einen Spiel stattfinden muss und was insgesamt gilt?

Außerdem finde ich, dass die Bewegungsgeschwindigkeit der Steine zur Seite mit der Gravitation auch leicht zunehmen sollte. Ab 13/14 hat man sonst kaum noch Chancen, den Stein zu seinen Zielort zu bewegen. Dann wird es mehr Glückssache als Geschicklichkeit.


----------



## babuschka (15. Jul 2011)

Hallo,

habe die Bugs behoben und die Bewegungsgeschwindigkeit der Steine etwas erhöht.


----------



## Volvagia (17. Jul 2011)

Ich weiß nicht, wie das mit dem momentanen Spiel vereinbar wäre, aber was würdest du von einen Puzzle-Modus halten? Hab ich mir so gedacht: Man sieht gleich mehrere der nächsten Steine. Es gibt kein Zeitlimit, die Steine fallen also erst auf Komando. Man muss jede Reihe abbauen. Also wenn irgendwo eine eingeschlossene Lücke bleibt, wird die Reihe z. B. Steinig oder Metallisch und kann garnicht mehr entfernt werden. Dabei wären auch "unknovensionelle" Steine wie z. B. ein +-Förmiger interessant werden, die mit der Zeit auftrehten könnten.

btw. wo lernt man eigendlich so gut zu zeichnen?


----------



## babuschka (17. Jul 2011)

Hallo,

das klingt nach einer guten Idee und wäre wohl auch mit ein paar Ändeurngen am Quelltext machbar. Ich wollte die Spielregeln eigentlich sowieso austauschbar machen.
Allerdings stehen diese Woche leider erst zwei Klausuren an, daher könnte ich erst danach damit beginnen 



> btw. wo lernt man eigendlich so gut zu zeichnen?


Zeichnen habe ich eigentlich nie wirklich gelernt, aber mit Programmen wie Gimp bekommt man nach dem Lesen einiger Tutorials schon etwas hin, was man einigermaßen ansehen kann


----------



## babuschka (21. Jul 2011)

Neues von der Baustelle:

Neben Bugfixes gibt es einen neuen, weniger überladenen Hintergrund sowie drei neue Steine: Plus, U und V, die den Spielverlauf etwas erschweren (oder erleichtern  )
Der Puzzle-Modus ist in Arbeit.


----------



## Volvagia (21. Jul 2011)

Wow, die Steine sind echt heftig und machen das Spiel sehr viel interessanter. Sollten aber imho deaktivierbar sein.


----------



## Apo (21. Jul 2011)

Sehr schön!

Die neuen Steine finde ich auch sehr gelungen, zerstören aber das gut ausbalancierte Original-Spielsystem. Deshalb würde ich vorschlagen sie in den Optionen an/ausschaltbar zu machen. Die Erfolge sind eine schöne Idee aber das geht doch noch mehr. Sowas wie drei 4er Blöcke gelöscht in einem Spiel. Länger als 10 Minuten ein Spiel gespielt und und und

Ich bleibe dabei das der Ghoststein (als der wo der Stein ankommen wird) noch zu präsent ist. Ich würde ihn schwarz/weiß oder transparenter machen, damit er nicht so ins Auge sticht. Aber das ist für eine subjektive Wahrnehmung.

Ansonsten schickes Spiel! =)


----------



## babuschka (21. Jul 2011)

Danke für die Anregungen, jedoch wird das noch ein bisschen dauern.



> Sollten aber imho deaktivierbar sein


Okay, kann ich machen. Natürlich wird es mit Sondersteinen mehr Punkte geben (~500 Punkte pro verbautem Stein?), damit ein Anreiz besteht, mit ihnen zu spielen 


> Die Erfolge sind eine schöne Idee aber das geht doch noch mehr


Gerne.


> Ghoststein (als der wo der Stein ankommen wird) noch zu präsent


Mit deaktivierter "Geister blinken"-Option? Im Moment haben sie einen Alphawert von 120 (von 255), kann da aber gerne noch etwas experimentieren.


----------



## babuschka (25. Jul 2011)

So, es gibt wieder Neues!

Die Geister-Steine werden fortan allesamt in weiß dargestellt, dafür wird der T-Block fortan in Lila gezeichnet. Außerdem hat das Spiel jetzt einen Sound, wenn man eine Reihe komplettiert 

Weiterhin habe ich auch eine erste Version des Puzzle-Modus implementiert 
Der Unterschied zum normalen Spielmodus besteht darin, dass die Steine nicht mehr automatisch, sondern nur noch manuell fallen. Schließt man dabei eine Lücke ein, so kann die gesamte Reihe mit der eingeschlossenen Lücke nie wieder entfernt werden. Das kann gut passieren, denn die Sondersteine sind hier nicht abschaltbar! Als Ausgleich dafür ist die Hold-Funktion weiterhin nutzbar.


----------



## Volvagia (25. Jul 2011)

Sehr schön. :applaus::applaus::applaus:
Die Bestenlisten sollten natürlich getrennt und die Graivation/Level deaktiviert werden. ^^ Bringt ja nichts. Und ich finde, bei der Zurück-Taste gehört eine zusätzliche Abfrage, wie z. B. "Sind Sie sicher, dass Sie das Spiel verlassen wollen?". Ist einfach Standart.


----------



## babuschka (4. Aug 2011)

Sodele,



> Und ich finde, bei der Zurück-Taste gehört eine zusätzliche Abfrage, wie z. B. "Sind Sie sicher, dass Sie das Spiel verlassen wollen?"


Ist erledigt!



> Die Bestenlisten sollten natürlich getrennt und die Graivation/Level deaktiviert werden


Das auch!

Ausserdem habe ich noch ein paar kleinere Bugs behoben.


----------



## Volvagia (4. Aug 2011)

Ich habe den Classic-Modus per Escape verlassen, da ist mir eine NPE geflogen:


```
java.lang.NullPointerException
	at tc.de.krawallmann.gravoblocks.score.Highscores.contains(Highscores.java:39)
	at tc.de.krawallmann.extension.HighscoresExtension.contains(HighscoresExtension.java:57)
	at tc.de.krawallmann.gravoblocks.game.NormalGameplayState.okPressed(NormalGameplayState.java:267)
	at tc.de.krawallmann.twl.widgets.YesNoDialog$1.run(YesNoDialog.java:48)
	at de.matthiasmann.twl.utils.CallbackSupport.fireCallbacks(CallbackSupport.java:100)
	at de.matthiasmann.twl.model.SimpleButtonModel.fireActionCallback(SimpleButtonModel.java:124)
	at de.matthiasmann.twl.model.SimpleButtonModel.buttonAction(SimpleButtonModel.java:108)
	at de.matthiasmann.twl.model.SimpleButtonModel.setPressed(SimpleButtonModel.java:81)
	at de.matthiasmann.twl.Button.handleEvent(Button.java:285)
	at de.matthiasmann.twl.GUI.sendMouseEvent(GUI.java:1017)
	at de.matthiasmann.twl.GUI.handleMouse(GUI.java:801)
	at tc.de.krawallmann.twl.AbstractTWLStateBasedGame.mouseReleased(AbstractTWLStateBasedGame.java:211)
	at tc.de.krawallmann.slick.game.AbstractExtendableGame.mouseReleased(AbstractExtendableGame.java:331)
	at org.newdawn.slick.Input.poll(Input.java:1240)
	at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:641)
	at org.newdawn.slick.AppGameContainer.gameLoop(AppGameContainer.java:411)
	at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:321)
	at tc.de.krawallmann.gravoblocks.game.GravoBlocksGame.start(GravoBlocksGame.java:312)
	at tc.de.krawallmann.gravoblocks.game.GravoBlocksGame.start(GravoBlocksGame.java:272)
	at tc.de.krawallmann.gravoblocks.game.GravoBlocksGame.main(GravoBlocksGame.java:81)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at com.sun.javaws.Launcher.executeApplication(Unknown Source)
	at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
	at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
```

Außerdem fragt er wenn das Spiel aus ist auch nach, ob das Spiel verlassen werden soll. Das würde ich dort deaktivieren. Außerdem wird im Puzzle-Modus, wenn eine Lücke blockiert wurde auch alle unteren Reihen deaktiviert, wenn diese davon eigendlich nicht betroffen sind, weil sie immer noch geschlossen werden können. Keine Ahnung ob das ein Bug ist.


----------



## babuschka (4. Aug 2011)

Vielen dank für's Testen!

Die NPE flog vermutlich deswegen, weil ich noch ein Stückchen Testcode drin hatte... Sollte jetzt behoben sein!



> Außerdem wird im Puzzle-Modus, wenn eine Lücke blockiert wurde auch alle unteren Reihen deaktiviert, wenn diese davon eigendlich nicht betroffen sind, weil sie immer noch geschlossen werden können. Keine Ahnung ob das ein Bug ist


Ist so gewollt


----------



## Dit_ (5. Aug 2011)

Hi schönes Spiel  :toll:

mal ne Frage.

Werden die Steiene zufällig generiert? Falls ja, mann könnte durch analyse die "unpassende" Steine generieren, so könnte man an Schwierigkeitslevel schrauben.


----------



## babuschka (6. Aug 2011)

Hallo,

Ja, die Steine werden bisher zufällig generiert.
Die Idee mit dem worst-fit-Algorithmus ist nicht schlecht, werde mich dazu mal im Netz umschauen und das Ganze vielleicht umsetzen


----------



## pro2 (6. Aug 2011)

Ich hatte gerade das Problem, dass sich das Spiel geschlossen hat, nachdem ich im Optionsmenü den Haken bei "Sondersteine" gesetzt habe und danach auf Bestätigen geklickt habe. Außerdem schließt sich das Spiel jetzt immer, wenn ich auf Optionen klicke nach einem Neustart! Ich weiß nicht, ob das an mir liegt, vermute mal aber nicht. 

Gruß


----------



## babuschka (6. Aug 2011)

Hm, das ist seltsam... Vermutlich ist etwas mit der Settings-Datei nicht korrekt...

Ist der Ordner "KMSoftware/GravoBlocks3" in Deinem Benutzerverzeichnis denn vorhanden?  Hoffentlich lässt sich das Problem lösen, indem Du die Datei "Settings.xml" löschst...


----------

