# [Spielvorstellung] The NeverEnding Impulse



## Aomx (12. Okt 2009)

Hi Leute,
ich wollte hier nur mal mein aktuelles Projekt vorstellen und würde das Spiel gerne eurer Experten-Kritik ;-) freigeben.

Die Projektseite: Die Projektseite zu The NeverEnding Impulse - Download und FAQs

Auf der Seite findet sich auch eine kleine Beschreibung, die (bisher) recht kleinen FAQs und die Sources (unter der MIT Lizenz veröffentlicht; macht damit, was ihr wünscht !

Würde mich hier sehr über konstruktives Feedback eurerseits freuen! Macht es euch Spaß? Gibt es Probleme? Findet Ihr etwas im Programm umständlich?

mfg,
Aomx


----------



## tuxedo (12. Okt 2009)

Wie hast du es denn geschafft dir die "Über Top-Level-Domain" localhost zu registrieren?  *scnr*

- Alex


----------



## Aomx (12. Okt 2009)

tuxedo hat gesagt.:


> Wie hast du es denn geschafft dir die "Über Top-Level-Domain" localhost zu registrieren?  *scnr*
> 
> - Alex



Uups  falscher Tab im FF offen gehabt !

Link geht jetzt! sry für den kleinen Fehler


----------



## Marco13 (12. Okt 2009)

Jo, ganz nett - keine Probleme... abgesehen vom leisen Wimmern der Grafikkarte, was auf active rendering hindeutet. Ich finde zwar, dass die Geschwindigkeiten bezüglich der Pfeile, die man malt, gerade verkehrt herum sind, aber das ist vielleicht nur ein Detail.  Wie man über 150 Kollisionen reaukommen soll, ist mir zwar nicht ganz klar, aber ... vielleicht finde ich den cheat ja noch


----------



## Aomx (12. Okt 2009)

Marco13 hat gesagt.:


> Jo, ganz nett - keine Probleme... abgesehen vom leisen Wimmern der Grafikkarte, was auf active rendering hindeutet. Ich finde zwar, dass die Geschwindigkeiten bezüglich der Pfeile, die man malt, gerade verkehrt herum sind, aber das ist vielleicht nur ein Detail.  Wie man über 150 Kollisionen reaukommen soll, ist mir zwar nicht ganz klar, aber ... vielleicht finde ich den cheat ja noch



Joa, das Flimmern ist mir auch schon aufgefallen. Ich Render quasi per Aufruf der repaint() Funktion in einem Thread. Gibts da ne bessere Lösung, mit welcher kein Flimmern entsteht?

Über 150 Kollisionen hab ich bei den Standard Einstellungen auch noch nie geschafft  das war nen Freund von mir, der ne Art Physik Guru is . Der is auch mal auf die Idee gekommen den Chips nur Geschw in x und y Richtung zu geben, wodurch die dann nur noch in 1 Dimension kollidiert sind  da musste ich ne Anti Cheat Abfrage einbauen ^^. Bin über weitere Impressionen / Ideen gespannt. Startet die jar eigentlich auch unter Linux? Bin nicht ganz sicher, ob die MySQL Libs auch darunter gehen und würde auch freuen, wenn unter Linux es mal jemand testen könnte!


----------



## Illuvatar (12. Okt 2009)

Marco13 hat gesagt.:


> Jo, ganz nett - keine Probleme... abgesehen vom leisen Wimmern der Grafikkarte, was auf active rendering hindeutet. Ich finde zwar, dass die Geschwindigkeiten bezüglich der Pfeile, die man malt, gerade verkehrt herum sind, aber das ist vielleicht nur ein Detail.  Wie man über 150 Kollisionen reaukommen soll, ist mir zwar nicht ganz klar, aber ... vielleicht finde ich den cheat ja noch



Wenn ich den Dingern einfach ne möglichst hohe Anfangsgeschwindigkeit geb, dann kollidieren die wie blöde... 
Anhang anzeigen 781

Kann man seine Highscores irgendwo sehen?
Edit: Schon gefunden

Edit2: Wenn man beim Highscore "Abbrechen" macht, hat das nicht ganz die erwünschte Wirkung


----------



## tuxedo (12. Okt 2009)

"Ich wünsche mir Webstart und Linux-Support..."

- Alex


----------



## TheChemist (12. Okt 2009)

Hab grad 181 geschafft 
Spiel gefällt mir ganz gut. 
Immoment ist es noch möglich, chips ausserhalb des Feldes zu plazieren. Beim Starten werden sie dann zwar reingezogen aber vllt kann man das ganze ja schon vorher abfangen.


----------



## Apo (12. Okt 2009)

Naja 310 Kollisionen sind möglich 
Macht kurzzeitig Spaß aber ein paar Goodies würden der "Langzeit"motivation gut tuen =)


----------



## Illuvatar (12. Okt 2009)

Apo, kannst du mal aufhören immer wieder meine Highscores zu schlagen?


----------



## Aomx (12. Okt 2009)

Ihr habt schon recht. Desto mehr Geschw man den einzelnen Chips am Start gibt, desto mehr Kollisionen kommen am Ende raus. Ich baue wahrscheinlich demnächst in einem Update eine Quasi insgesamt verfügbare Gesamtgeschw ein, welche man nicht überschreiten darf. zB nicht mehr als 5px/frame für alle Chips zusammen. Dann wäre es eine größere Kunst die Chips passend zu platzieren, bzw die Geschw so zu setzen, dass möglichst viele Kollisionen entstehen.

Darf der eine Post so gedeutet werden, dass die jar nicht unter Linux startet? Man kann die Eingabe der Highscore nicht abbrechen, da das in ner while Schleife gefangen is  könnte ich aber einfach ausbauen; aber eigentlich freut man sich doch wenn man einen neuen aufgestellt hat und gibt gerne seinen usernamen ein ?

Hast du konkrete Vorstellungen unter "Goodies"?

mfg,
Aomx


----------



## madboy (12. Okt 2009)

Ich hätte zwei Vorschläge, die allerdings nichts mit dem Spiel an sich zu tun haben (welches mir übrigens gut gefällt  ). 

1. Du solltest Benutzereingaben IMMER validieren. Zum Beispiel gleich beim Eingeben des Highscore-Namens überprüfen, ob die Daten noch in die Datenbank passen (2000 Zeichen sind jedenfalls zu viel)

2. Evtl. sollte nicht direkt über JDBC auf die Datenbank zugegriffen werden, sondern über eine "Zwischeninstanz". Z.B. ein kleines PHP-Skript, das ein bisschen Validierung betreibt und danach die Daten in die DB schreibt bzw. davon liest. Somit wäre die Notwendigkeit nicht da, Benutzernamen im Quelltext zu hinterlegen. Böse Leute könnten sonst auf böse Ideen kommen ;-)

EDIT: das Spiel läuft unter Linux. 
Anmerkung zu 1.: außerdem sollte vorgebeugt werden, falls jemand "'; drop database xy; --" oder ähnlich heißt (wobei ich nicht mal weiß, ob sowas nicht sogar Statement-intern abgefangen wird)...


----------



## Marco13 (12. Okt 2009)

Ja, das "cheaten" habe ich natürlich auch Probiert: Alle in einer Zeile und nur horizonatle Geschwindigkeiten, dann würde es rund gehen  aber da das jetzt nicht mehr möglich ist, sollten vielleicht die "unerreichbaren" highscores rausgenommen werden


----------



## Aomx (12. Okt 2009)

madboy hat gesagt.:


> Ich hätte zwei Vorschläge, die allerdings nichts mit dem Spiel an sich zu tun haben (welches mir übrigens gut gefällt  ).
> 
> 1. Du solltest Benutzereingaben IMMER validieren. Zum Beispiel gleich beim Eingeben des Highscore-Namens überprüfen, ob die Daten noch in die Datenbank passen (2000 Zeichen sind jedenfalls zu viel)
> 
> ...



Hey,
jau das Problem mit den lesbaren DB Daten hat mir schon jemand per PM geschrieben. Natürlich könnte ich ein Script schreiben, dass die Daten in die DB schreibt und abruft. Die Daten wären dann ja nur deswegen sicher, weil der Webserver die PHP Datei vorher parst und somit man Variablen "unsichtbar" vom aufrufenden speichern kann. Das Problem is dabei aber wieder, dass ich die Daten vom Spiel entweder per GET oder per POST übertragen müsste. per GET wäre es ebenfalls für jeden Laien möglich exorbitante Werte einzutragen, aber auch per POST könnten findige User eigene Anfragen senden. Wäre es ein Schutz eine eigene Browser Sendung in Java mitzugeben (zB ein total zufälliger String) und diesen dann in Java abzufangen? Wahrscheinlich auch nicht, weil dann wieder User ein Programm in Java schreiben könnten und die zufällige Zeichenfolge aus den Binaries auslesen können oder? Gibts da überhaupt eine wirklich sichere Lösung oder muss man immer auf den "netten" Spieler hoffen, der nicht die DB beeinflusst?

mfg,
Aomx

PS: Super, dass das Spiel auch unter Linux funktioniert, ich passe die Seite gleich mal dementsprechend an.


----------



## madboy (12. Okt 2009)

Du wirst Cheaten wohl nie verhindern können. Meiner Meinung nach wäre POST recht geeignet. Ist nicht ganz so einfach zu durchschauen wie GET aber natürlich bietet das auch keine Sicherheit. So bald jemand genug Interesse hat, zu cheaten dann wird er auch Mittel und Wege finden.

Ich meinte eigentlich nur, dass die Zugangsdaten geschützt werden sollten und erst mein zweiter Gedanke galt Cheatern.


----------



## javimka (13. Okt 2009)

Ich finde das Spiel ganz lustig. Als Weiterentwicklung könntest du noch weitere Formel für das Panel in dem das Spiel läuft oder für die Chips implementieren. Ellipsen, Trapeze, Parabeln, usw. Könnte mathematisch natürlich sehr anspruchsvoll werden mit der Vektorgeometrie


----------



## Spacerat (13. Okt 2009)

Ok die Spielidee und der Ablauf sind schon mal recht gelungen. Nur der Name ist paradox.
Die Problematik die madboy beschreibt ist alledings gegeben (SQL-Injection). Eingaben müssen deswegen definitiv wie gesagt in einer Zwischeninstanz validiert werden, bevor das Spiel Online nutzbar gemacht wird. Aber bitte... Niemals mit PHP arbeiten, wenn die Möglichkeit Java oder ähnliches zu benutzen besteht, denn bei PHP besteht obendrein noch die Gefahr, Opfer einer Code-Injection zu werden.


----------



## Hansdampf (16. Okt 2009)

Zum Thema cheaten:
In deinem Quellcode stehen unverschlüsselt user/pass für deine Onlinedatenbanken...
Um es bösen Jungs ETWAS schwieriger zu machen könntest du einen Obfuscator (Proguard) benutzen und dazu user/pass irgendwie im Quellcode zusammenfriemeln. Im Moment ist es ein copy-paste und schon kann man deine Datenbanken löschen.

edit: oops, bin nicht der erste, der es bemerkt hat. Naja, zumindest habe ich einen kleinen Tip gegeben...


----------

