Love is

Das war blöd das ich das überhaupt erwähnt hatte. Das ist wie bei Skribblio, ähnliche Idee, und die Fantasie explodiert förmlich wenn man von dem Spielprinzip das erste mal hört. Bis man es dann spielt und merkt wie
A: Einfallslos man doch ist :smiley: und
B: Wie limitiert das ganze System dann doch ist - wobei einen das nicht überraschen sollte, aber die Hoffnung stirbt halt immer zuletzt.

Ich fand es etwas irritierend das bei dem auseinander schieben von You ein Game Over kommt. Das war für mich nicht nachvollziehbar und ich kam zu dem Schluss das man die 3 nicht bewegen darf, weil bei allen drei Teilen ein Game Over kam und damit wurde ich demotiviert weiter damit zu hantieren.

Allgemein wäre es vielleicht besser wenn man nicht immer Neustarten müsste. Manche Level sind dann doch relativ lang und die Steuerung über die Pfeiltasten doch etwas frickelig. Mir ist die Figur mehrmals ins Wasser gefallen weil sie einfach weitergelaufen ist.

So eine neue Version ist online: https://www.apo-games.de/love/

Jetzt gibt es ein neues Verb “sticky”. Wenn etwas geschoben werden kann und sticky ist, dann behält es seine Form. Also kann sich nur bewegen, wenn sich alle Teile davon bewegen können.
Durch dieses Verb konnte ich nun alle Levels von ApoTreasure übernehmen. :smiley: Habe ich aber natürlich nicht gemacht, aber 3 Stück habe ich mal exemplarisch mit reingenommen und dazu noch ein Level gebastelt, was das Potential des Spiels theoretisch zeigt. Ich sage nur Level 18. Bin schon etwas stolz darauf, dass man mit etwas Kreativität Spiele im Spiel basteln kann. (auch wenn derzeit nur einfache Puzzlespiele).

FRAGE:
Eigentlich hatte ich dies schon vor über 2 Tagen alles fertig, aber es war unendlich langsam (Faktor 10) geworden und ich wusste nicht warum. Wenn ich ehrlich bin, weiß ich es immer noch nicht, aber vielleicht könnt ihr mir helfen. Ich hatte die Logik etwas abstrahiert. Das bedeutet, vorher wurde knallhart überprüft, wenn der Text “YOU” ist, dann mache das und das.
Da ich das Spiel gerne immer weiter erweitern möchte, wollte ich es nicht x-Stellen pflegen und habe mir ein Enum erstellt, was Informationen zu allem hat, siehe

HERO(“HERO”, “y”, Entity.LAYER_KNIGHT, 0, 1, LoveGame.COLOR_BLUE_DARK)
also der Held hat den Text HERO, im kodierten Levelstring ist er ein y, besitzt den Layer xyz, ist im Asset an der Stelle 0, 1 zu finden und soll in der Farbe y dargestellt werden.

Ein Enum halt für alle Möglichkeiten erstellt und auf dieser Basis habe ich dann die Level erstellt und auch die Logik überprüft. Nur hat die Logiküberprüfung mind. 10 mal so lange benötigt hat und es somit echt unspielbar wurde … WARUM? Ich verstehe es nicht!
Was der Unterschied zwischen
if (third.getText().equals(“HERO”)) {
und
if (third.getText().equals(Enum.HERO.getText())) {
?
In der Logik habe ich das Enum wieder entfernt und siehe da es ist wieder spielbar. Kennt jemand den Grund? Sind Enums performancetechnisch schlecht, wenn man eigene Methoden hinzufügt? Aber das ergibt doch keinen Sinn … oder könnte libgdx schuld sein? Es ist auch in der Desktop Variante langsamer gewesen und somit kann es auch GWT nicht sein… ich gebe zu ich bin überfragt. Aber trotzdem glücklich über die neue Version.

So nun habe ich das Spiel wieder etwas erweitert und nun könnte auch Sokoban gespielt werden und ich habe andere weitere Levels hinzugefügt.
Ganz ehrlich … das macht echt Spaß und genau mein Stil von Kreativität der mir schon lange gefehlt hat. =)

https://www.apo-games.de/love/

So nun habe ich den Vorschlag von TMII umgesetzt und man kann nicht mehr verlieren. Stattdessen kommt ein Hinweis, dass man ‘u’ drücken soll, um den letzten Schritt rückgängig zu machen. Gerade bei schmalen Wegen oder langen Levels sehr praktisch. Vielen Dank für den Hinweis.
Außerdem habe ich weitere Levels erstellt und suche nun nach Sounds.

https://www.apo-games.de/love/

ich finds richtig gut. habe gerade die letzte halbe Stunde vor meiner Mittagspause damit vertrödelt. Super Sache ^^

1 Like

Lustiges Spiel :slight_smile: Bin gerade bei Level 11, aber das ist ziemlich tricky

1 Like

Das freut mich natürlich zu hören, dass es Spaß macht.

Habe das Spiel nun auch im google play store veröffentlicht - https://play.google.com/store/apps/details?id=org.apogames.love . Es spielt sich auf einem Tablet >=9 Zoll echt angenehm und sehr gut. Habe es mit dem galaxy tab 4 10.1 und mit einem Medion Gerät ausprobiert. Bei Smartphones spielt es sich sehr gut, aber der Editor ist nicht so gut bedienbar. Mal schauen ob ich da noch was machen werde. Die letzten Userlevel habe ich aber alle auch im Smartphone erstellt. Geht schon :wink:

Jetzt kommen noch Kleinigkeiten wie Levelauswahl auch im Spiel, Sounds etc.

Vielleicht fallen mir aber noch tolle “Wörter” ein, dann erweitere ich es noch weiter. Überlege schon, wie ich es schaffe auch Spiele mit Maus usw. mit reinzubringen, ohne das es zu aufgesetzt wirkt :smiley: und sich halt gut einfügt. Weil dann kriege ich fast alle Spiele von mir unter in dem Spiel. :smiley:

https://www.apo-games.de/love/

Dank einiges Tester konnte ich ein paar Bugs entdecken und habe sie gleich entfernt.
Außerdem habe ich es etwas sichtbarer gestaltet, ob die Befehl/eine Regel funktioniert oder nicht.

Außerdem gibt es nun eine Desktopversion, welche im Fullscreen läuft und wesentlich performanter als die HTML Version ist: https://www.apo-games.de/love/Love.jar

Aber auch die schicke HTML Version gibt es noch: https://www.apo-games.de/love/ :slight_smile:

Oder aber die Playstore Variante: https://play.google.com/store/apps/details?id=org.apogames.love
Gerade da würde ich mich über ein paar Downloads und nette Bewertungen freuen. =)

Nun gibt es ein neues Verb “ghost” und außerdem das Wort “and” zum Verbinden der Objekte oder Prädikate :wink: :smiley:

Außerdem viel mehr Levels und durch die neuen Wörter habe ich gleich weitere “kleinere” Bugs in der Logik gefixt und wahrscheinlich neue eingebaut …

https://www.apo-games.de/love/

Hab ich da ein bug gefunden?


Es gilt “Hero is you”, “Empty is Goal” und Hero ist auf Empty. :thinking:

Oh stimmt. Scheinbar funktioniert empty is Goal generell nicht mehr. Da muss ich schauen, was da kaputt gegangen ist. Vielen Dank dafür.

Und schöne Lösungsmöglichkeit für das Level, auf die bin ich noch gar nicht gekommen.

Vielen Dank noch einmal für den Fehler.

Nun funktioniert auch “EMPTY IS GOAL” wieder.
Habe nebenbei noch einen Fehler beim Undo beseitigt.

https://www.apo-games.de/love/

1 Like

Kurz eine persönliche Sache:

Ich wurde von jemanden aus dem Forum angeschrieben, dass er es schade findet, dass ich nicht erwähnt habe, woher die Grundidee von “Love is …” stammt. Und das ist auch vollkommen richtig und war nicht meine Absicht. In meinem anderen JavaForum ( http://www.java-gaming.org/topics/iconified/38865/view.html ) habe ich es erwähnt, hier leider vergessen. Generell erwähne ich, wenn eine Idee vom wem anders stammt. Dann versuche ich aber auch keinen 1:1 Klon zu erstellen, sondern das Prinzip zu erweitern mit eigenen Ideen und Leveln. Hier hatte ich es vergessen und das ist mein Fehler. Ich wollte und will mich nicht mit fremden Federn schmücken. Das wollte ich bloß sagen.

Die Grundidee von Love is … stammt von Baba is you. Ein Spiel aus dem Nordic Jam 2017 ( https://hempuli.itch.io/baba-is-you ). Ich fand es damals schon super und wollte es ausprobieren, ob ich das Prinzip übernehmen kann und durch eigene Begriffe weitere Spielprinzipien hinzufügen kann. Das habe ich dann auch. Habe gerade gesehen, dass nun eine Vollversion davon auf Steam und für die Switch herausgekommen ist ( http://www.hempuli.com/baba/ ). Da das Spielprinzip immer noch verdammt genial ist, unterstützt gerne das gepolishte Original.

Love is … wird trotzdem noch weiter entwickelt. Habe noch ein paar Ideen, die ich gerne ausprobieren möchte, unabhängig von Original. :wink: Die Bewegung von Objekten möchte ich noch ermöglichen und Touch/Maus unterstützen. Mir schwebt sowas vor wie Match3 Spiele, aber man muss dabei die Regeln verändern, um es zu lösen. Noch fehlen mir aber die richtigen Begriffe, die in meinen Augen eineindeutig dafür sind. Aber ich bleibe dran, da ich das Prinzip nach wie vor genial finde.

Zwecks Ideen klauen möchte ich auch kurz erwähnen, dass @darekkay mich vor ein paar Jahren auch mal gefragt hat, ob ich wüsste, dass mein ApoSimple es auch im Androidstore gab (aber nicht von mir). Wusste ich nicht. :wink: Ich fand es zwar traurig, dass die andere App viel mehr Downloads hatte als meine, aber generell finde ich es richtig schön, wenn das Spiel, auch durch andere, Leute erreicht und Ihnen ein paar schöne Minuten ermöglicht.

1 Like

Ich erinnere mich an ApoSimple. Jemand hat DEINE App hochgeladen, oder eine ähnliche App? Ich frage nur weil das könnte ja auch zum verteilen von Schadcode genutzt worden sein, irgendwelche Scams, oder - die Bewertung von Apps ist auch immer abhängig von der Bewertung der anderen Apps der gleichen Person - um einen Account zu pushen?

Jemand hat eine ähnliche App hochgeladen. Sie sah SEHR ähnlich aus und auch die GUI sehr ähnlich (gleiches Farbschema, gleiche Formen für das Spiel und die Highscoredarstellung), aber doch minimal anders. Da ich für ApoSimple alles mit Bildern gerendert habe und nichts selber gezeichnet, würde ich behaupten, dies ist eine andere App, aber das Spielprinzip komplett kopiert.
Ob die App trotzdem Schadcode hatte, weiß ich natürlich nicht. :wink:

So nun wieder zu “love is …”. Bin leider immer noch nicht wirklich weiter wie ich entweder touch/Mausevents in das Spiel implementiere oder einfach nur Match3 Spiele.

Idee für Match3 Levels/Spiele:
Ein Sprachkonstrukt aus vier anstatt drei Elementen könnte klappen, sodass man die fest “three” + beweglicher Teil + “is” + “empty” hat. Dann könnte man sie durch verschieben erledigen. Aber ich würde ja nur vertikal und horizontal benötigen und nicht zwangsläufig drei irgendwie nebeneinander. Also nicht perfekt logisch, aber ich könnte damit leben.
Jetzt müsste ich es nur noch sinnvoll hinbekommen, dass es auch nach “unten” rutscht, wenn es darunter leer ist. Da fällt mir noch nichts ein … ist doch zum Mäuse melken. Hat jemand eine Idee? Also für die Schwerkraft. Es würde so etwas gehen wie “Tree is heavy” das bedeutet, wenn das Tile drunter frei ist, fällt es herunter, ABER so richtig logisch ist das bei einem 2D-Top down-Spiel nicht. Ich bräuchte kurz und knapp etwas für “if tile under object is empty then move down”. Jemand eine Idee? Oder habe ich euch jetzt verwirrt?

Andere Idee mit “Move”
Falls jemand auch eine Idee hat damit sich Objekte sinnvoll bei einem Schritt bewegen, dann gerne auch her damit, weil “tree is move” ergibt für mich keinen Sinn, da ich nicht weiß in welche Richtung es sich bewegen soll. Auch ein “tree is ‘move horizontal’” ist nicht eineindeutig, da ich nicht weiß ob es sich im nächsten Schritt nach links oder rechts bewegt.

Aber noch gebe ich nicht auf. Mir werden da noch schöne Wörter einfallen, weil die Levels dafür sind schon in meinem Kopf fertig :smiley:

Heute habe ich mich wieder auf die Suche nach der Performance begangen und habe doch viele recht sinnfreie String Vergleiche gefunden. Durch die Beseitigung selbiger sollte es in der HTML Variante jetzt schon einmal schneller laufen. Aber ich suche noch weiter.
Des Weiteren habe ich angefangen if then mit zu implementieren.
Ziel ist es, dass der Spieler dann “if man is you then water is hot” oder ähnliches zusammenschieben kann. Dabei muss natürlich aufgepasst werden, das water is hot nicht schon vorher zusammengeschoben wird, weil es dann natürlich so gilt. In meinem Kopf gehen dann wirklich lustige Levels.

Mal schauen wann ich es umgesetzt bekomme, aber gerade bin ich wirklich wieder Feuer und Flamme für das Spiel. =)

If then hört sich sehr interessant an. Wenn ich das jetzt richtig interpretiere ist das eine Einschränkung in der Praxis für den Spieler?

Das verstehe ich nicht ganz. Ich dachte eher an eine Erweiterung der Möglichkeiten.
Im folgenden ein Beispiel. Wenn der Spieler einen bestimmten Punkt erreicht, dann verändern sich die Regeln. Im Screenshot sieht man das sehr gut. Laufe zum Herz und wenn du drüber stehst, dann passieren verschiedene Dinge und komme danach mit den Regeln klar. :smiley:

Naja kommt auf die Ansichtsweise an. Für das Spiel entstehen neue Möglichkeiten interessantere Level mit mehr Möglichkeiten zu kreieren. Effektiv wird der Spieler aber eingeschränkt, weil eine if-Bedingung ist nun mal eingeschränkter als ein is.

Das erinnert mich gerade an dieses Paradoxon in der Ethik, das man erst die Freiheit hat eine Entscheidung zu treffen, wenn einem ein Stein in den Weg gelegt wird. Ist ja auch egal :smiley: Ich denke wir sind auf dem gleichen Level :sweat_smile:

1 Like

So nun gibt es die neuste Version mit if then auch online im web und für den Desktop. Die Android Version wird noch nachgezogen.
Ich habe erst einmal drei Levels mit if then implementiert, die ich eigentlich für ein eigenes Spiel plane.
Außerdem gibt es außer “is” nun noch “is not” und “is on”.
Ich werde also jetzt noch ein paar Levels bauen. Aber ihr dürft es auch machen, wenn ihr Lust habt. =)

Web: https://www.apo-games.de/love/
Desktop https://www.apo-games.de/love/Love.jar

Screenshot