Kollisionserkennung bei Jump'n'Run

Status
Nicht offen für weitere Antworten.

Apo

Bekanntes Mitglied
So das Programm/Spiel ist jetzt fertig, wenn es keinen Fehler mehr gibt!

Jetzt funktioniert das Replay, ich habe einen ordentlichen Simulationsmodus implementiert und Fehler habe ich auch schon eine Weile nicht mehr gehabt. Ein gutes Zeichen das der Wettbewerb am 17.01.2011 starten kann. Freue mich schon. =)

Danke für alle, die den Thread so lange mitverfolgt haben. :D

Ich bin sehr zufrieden damit. Wenn der Wettbewerb vorbei ist, werde ich bestimmt mal ein kleines Jump'n'Run mit Story daraus basteln. So schwer ist das ja nicht. =)

Für alle die das Applet gerne testen möchten, die mögen hier klicken. Der Download des Programms mit integrierten Source Dateien folgt am 17.01.2011!
 
Zuletzt bearbeitet:

darekkay

Bekanntes Mitglied
Hm, klingt gut ^^ Beim ApoSoccer hatte ich leider nicht genug Java-Kenntnisse, vielleicht mach ich dieses Jahr mit, wenn die Zeit es zulässt =)

Das Applet sieht schon mal ziemlich cool aus ^^
 

Apo

Bekanntes Mitglied
So Contest ist gestartet und der Download samt Source ist auf der Website verfügbar. Falls jemand noch fragen hat, kann sie gerne hier oder im eigenen Forum stellen. =)
 

xehpuk

Top Contributor
Hi!

Hab das Spiel mal kurz angetestet und schwupps:
Java:
Exception in thread "Thread-12" java.lang.ArithmeticException: / by zero
	at apoMario.level.ApoMarioLevel.thinkPlayer(ApoMarioLevel.java:937)
	at apoMario.level.ApoMarioLevel.think(ApoMarioLevel.java:888)
	at apoMario.game.panels.ApoMarioGame.thinkLevel(ApoMarioGame.java:247)
	at apoMario.game.panels.ApoMarioGame.think(ApoMarioGame.java:174)
	at apoMario.game.ApoMarioPanel.thinkLevelGame(ApoMarioPanel.java:480)
	at apoMario.game.ApoMarioPanel.think(ApoMarioPanel.java:474)
	at org.apogames.ApoThread.think(ApoThread.java:240)
	at org.apogames.ApoThread.run(ApoThread.java:212)
	at java.lang.Thread.run(Unknown Source)
Das kam, nachdem ich das erste Level durch hatte und mir das Replay anschauen wollte.
 

Sonecc

Gesperrter Benutzer
Die Replays stimmen nicht immer. Habe gerade eines gestartet und er hängt nun an einer stelle. Ich glaube, dass meine Aktionen (springen) zwar ausgeführt werden, er kommt aber nicht weiter. Das Level habe ich aber definitiv erfolgreich beendet

Edit: Replay ist angehängt. Nicht lachen, musste erstmal verstehen, dass man mit space springt, statt mit Pfeil nach oben :lol:
 

Anhänge

  • falschesRep.zip
    495 Bytes · Aufrufe: 3
Zuletzt bearbeitet:

xehpuk

Top Contributor
Der Fehler scheint nun nicht mehr aufzutreten. :)

Dafür zeigt mir das Replay nicht genau das an, was vorgefallen ist. Hab das Level geschafft, bin im Replay aber gestorben. :D

Meine Vermutung: Hatte zwischendurch zwei kleine Lags während des Spiels, dadurch kommts vielleicht durcheinander.
 

Apo

Bekanntes Mitglied
Das mit den Lags kenne ich auch und weiß noch nicht woran das liegt ...

Das Problem mit dem Replay, wenn ein Mensch gespielt hat, ist leider immer noch da ... ich hoffe es bald mal zu fixen.
Ein paar kleine weitere Bugs sind aber behoben (wichtig wenn jemand eine KI erstellen will =) )


btw: Zur Feier des Tages gestern schnell gebastelt: Valentinstagapplet mit leichtem Nerdfaktor
 

Apo

Bekanntes Mitglied
So mal wieder was neues vom Jump'n'Run und Programmierwettbewerb.
Viele kleine Fehler habe ich beseitigt (und hoffentlich keine neuen eingebaut) und was jetzt aber vlt. interessant für einige sein könnte, es gibt nun einen Editor. In der Appletversion könnt ihr auch gerne bauen und testen, aber nur in der Offline Version könnt ihr eure Meisterwerke speichern und laden.
Auch in Sachen Performanceproblemen ... ich habe ein bisschen dran rumgespielt und vlt fkt es bei euch jetzt besser. Bei mir habe ich auf jeden Fall das Gefühl als ob die Kleinigkeiten, die ich verändert habe, was bewirkt haben.

Über Leute, die es testen und Feedback geben könnten, würde ich mich sehr freuen. Vielen Dank!

Link zum Applet
 

Apo

Bekanntes Mitglied
Ich fasse es nicht ... nach gefühlten Jahren habe ich nun endlich den Replaybug gefunden oder besser gesagt 10000 Bugs, die ihn verursacht haben. Wisst ihr was? Ich bin verdammt glücklich! =)
Außerdem wurden 2 Kleinigkeiten im Editor verbessert, die kaum auffallen werden.
Außerdem habe ich in der offline Version gleich mal 3 Levels mitgeliefert, die eure KI's mal testen können oder auch ihr selber als Mensch. Ein Level ist für Sprünge gedacht, das nächste für Sackgassen, Sprünge und Gegner und das letzte Level ist das erste Level nachgebaut aus Super Mario Bros. 1. Ich hoffe es gefällt und ich muss das Programm nun nicht mehr verbessern. Aber das hoffe ich eigentlich immer. ;)

Wie immer würde ich mich freuen, wenn es jemand testen könnte, aber grad bin ich nur froh die *piep* *piep* *piep* *zensiert* *piep* *zensiert* Bugs gefunden zu haben. Aber vielleicht reisst mich auch jemand aus meinem Traumland und sagt mir es funktioniert doch nicht. Aber egal. :D
 

Quaxli

Top Contributor
Erstmal Glückwunsch, zum Auffinden des Bugs. Da würde sich wohl jeder tierisch freuen. :D

Ich habe mal ein bißchen mit dem Editor gespielt: Ich finde ihn sehr gelungen. Das die Tiles, sich teilweise intelligent verhalten, finde ich wirklich gut gemacht! :applaus: Besonders bei dem Tile für den Untergrund, das sich je nach Position verformt, finde ich das gut gelöst!
Die Anzahl der auswählbaren Tiles finde ich noch etwas begrenzt. Planst Du hier noch eine Erweiterung oder ist das erstmal so gewollt (wg. des Wettbewerbs)?
Irgendwelche Lags sind mir nicht mehr aufgefallen, ich habe aber nicht sehr ausführlich getestet und nur ein paar Minuten rumgespielt (braucht gerade mal ein "Gegengift" ;) ).
Insgesamt, finde ich den Editor (wie mittlerweile von Dir gewohnt) toll gemacht. :toll::toll::toll:
 

Apo

Bekanntes Mitglied
Danke danke fürs Testen und das positive Feedback.

Es ist korrekt die derzeitige Auswahl an Tiles ist arg beschränkt. Aber in der Theorie sollten schon fast alle Original-Levels erstellbar sein. Aber wie schon vermutet, ist er so beschränkt aus Gründen des Wettbewerbes. =)
Aber eine Ausweitung des Editors habe ich später wirklich geplant. Ich hatte einerseits an neue Tiles gedacht als auch an Textmeldungen, die kommen wenn bestimmt Aktionen ausgelöst wurden. Und damit wollte ich dann ein kleines Solo-Jump'n'Run erstellen. Dazu ist das Baby einfach mir zu sehr an Herz gewachsen als es nur für den Wettbewerb zu verbraten. =) Ein kleines Solospiel wird später (x > ein paar Monate) noch folgen und wenn alles klappt wie geplant, sogar eine wissenschaftliche Auswertung der Daten des Wettbewerbes (siehe z.B. die GIC 2011. =)
 

Apo

Bekanntes Mitglied
Tja der Wettbewerb geht in die heiße Phase nun und die ersten Bots sind schon abgegeben und das Studenten kreativ sind, hat sich wieder mal bewiesen. Einer hebelt mithilfe der Reflections einfach das ganze System aus und kommt an die Physik des Spiel ran und manipuliert sie nach seinem belieben. Diese KI ist natürlich nicht zugelassen für den Wettbewerb, aber ich finde der Icarus hat es verdient extra erwähnt zu werden und ich habe auch ein kleines Video ihm gewidmet.
 

Apo

Bekanntes Mitglied
So die Abgabe ist vorbei und es haben 113 Leute ihren Bot abgegeben und 110 haben bestanden (gefordert war Levellänge von 200 bei einer Schwierigkeitsstufe von 100 bei mindestens 2000 Zufallslevels zu 50% ins Ziel kommen).
Ergebnisse könnt ihr hier begutachten.
Es sind zu > 80% typische if-Bots. Aber ein paar Perlen sind dabei wie der NNETbB der ein neuronales Netz benutzt und einige (vor allem die derzeit oben stehen) benutzen typischerweise A* oder Dijkstra.
Jetzt werte ich das ganze noch in Ligen aus, um die beste KI herausfinden.

Falls es noch wen interessiert wie es der "Cheaterbot" (wie im Video vorheriger Post) angestellt hat, für den lege ich einfach folgenden Code ans Herz.
Die eigentliche Spieler Klasse ApoMarioPlayer ist in der KISpielerklasse ApoMarioAIPlayer als private Variable enthalten. Und diese holt er sich "einfach" und damit kann er den Spieler komplett manipulieren und da das eigentliche Level dort auch als private Variable enthalten ist kommt er auch an das komplette Level heran und kann ALLES so manipulieren wie er will. Eine Lexikon die ich nun gelernt habe und beim nächsten Spiel in der Architektur verbessern werde.
Code:
Code:
	private static Field getField(Class<?> cls, String name) throws NoSuchFieldException, SecurityException {
		Field field = null;
		while(cls != null) {
			try {
				field = cls.getDeclaredField(name);
				break;
			} catch(NoSuchFieldException e) {}
			
			cls = cls.getSuperclass();
		}
		
		if(field == null)
			throw new NoSuchFieldException();
		
		return field;
	}
	
	private static <T extends ApoMarioEntity> T getBaseEntity(ApoMarioAIEntity entity, Class<T> cls) throws IllegalArgumentException, IllegalAccessException {
		return cls.cast(entityField.get(entity));
	}
	
	static {
		try {
			entityField = getField(ApoMarioAIEntity.class, "entity");
			entityField.setAccessible(true);
		} catch(NoSuchFieldException e) {
			e.printStackTrace();
		}
	}
	public void think(final ApoMarioAIPlayer player, final ApoMarioAILevel level) {
		try {
			ApoMarioPlayer hacker = getBaseEntity(player, ApoMarioPlayer.class);
                        //... now u can do everything u want. ;)
		} catch(Exception e) {
			e.printStackTrace();
			throw new RuntimeException(e);
		}
	}
 

Apo

Bekanntes Mitglied
Ich glaube das Programm (vor allem das Replay) bringt mich mal noch ins Grab ... aber bis dahin verbessere ich es weiter.
Jetzt funktioniert das Replay wirklich immer. Ok das habe ich schon mal gesagt, aber nun könnte es stimmen. Ich habe jetzt einen HiWi bekommen, der noch x-weitere kleine Bugs gefunden hat. Den hätte ich echt mal früher gebrauchen können. Tausend Dank an ihn!!!

Neu:
- Doppelklick zum schnellen Laden und Starten nun wirklich ohne Nebeneffekte möglich
- Gefühlte tausend weitere Replaybugs behoben (von der Anzeige bis hin zur Simulation des Replays)
- 2 neue Methoden zum leichteren Schreiben eines neuronalen Netzes (wird grad versucht und sieht ganz gut aus =) )
- wie FPS angezeigt werden sollen, kann nun in der Properties File eingestellt werden (zwischen 10 und 100)

Wie immer lange Rede kurzer Sinn: Die neue Version ist online und die erste Runde der Auswertung ist auch gelaufen. Die zweite Runde ist auch fast abgeschlossen und wenn alles klappt ist bis nach Pfingsten auch die finale Runde 3 fertig simuliert. =)
 

Apo

Bekanntes Mitglied
So es gibt ein neues Video mit dem Cheater und seiner gerechten Strafe, die ich ihm nun kurz vor dem Ende zufüge. =)
Aber er zeigt einige schöne Editorlevels, die ich neben den ganzen Zufallslevels zur Auswertung benutzt habe.
Video: Click mich

Die Auswertung ist nun durch und die Auswertung wird am Montag, 27.06.2011 sein und dann stehen sie auch online.

Wenn ich jemanden mit den Posts nerve, einfach schreiben. Aber vielleicht interessiert es ja noch einen. =)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Jump 'n' Run-Spiel Kollisionserkennung Spiele- und Multimedia-Programmierung 3
L Kollisionserkennung und -behandlung Spiele- und Multimedia-Programmierung 3
N Kollisionserkennung Spiele- und Multimedia-Programmierung 5
BraunBerry Java Game verbesserte Kollisionserkennung Spiele- und Multimedia-Programmierung 18
Cromewell JavaFX Kollisionserkennung Spiele- und Multimedia-Programmierung 6
S Kollisionserkennung in Slick2D... Mal wieder Spiele- und Multimedia-Programmierung 4
C Java Kollisionserkennung Spiele- und Multimedia-Programmierung 4
Androbin Pixel-genaue Kollisionserkennung Spiele- und Multimedia-Programmierung 5
Kenan89 Kollisionserkennung - Idee Spiele- und Multimedia-Programmierung 5
T Kollisionserkennung mit AABBs und Spielerobjekt Spiele- und Multimedia-Programmierung 4
P Kollisionserkennung Spiele- und Multimedia-Programmierung 6
R Java3D Kollisionserkennung und Schwerkraft Spiele- und Multimedia-Programmierung 17
B Kollisionserkennung bei gezeichneten Objekten Spiele- und Multimedia-Programmierung 2
M Kollisionserkennung optimieren Spiele- und Multimedia-Programmierung 7
M Kollisionserkennung Spiele- und Multimedia-Programmierung 4
E Probleme mit Kollisionserkennung ! Spiele- und Multimedia-Programmierung 2
P Kollisionserkennung Spiele- und Multimedia-Programmierung 3
R Kollisionserkennung funktioniert nicht Spiele- und Multimedia-Programmierung 3
C Kollisionserkennung Spiele- und Multimedia-Programmierung 3
K Mein Jump and Run charakter bewegt sich nicht mehr rückwärts... Spiele- und Multimedia-Programmierung 0
E Möchte Jump and Run programmieren Spiele- und Multimedia-Programmierung 2
N Jump and run Spiel - wo anfangen / weitermachen? Spiele- und Multimedia-Programmierung 11
F Jump'n Run Background wiederholen Spiele- und Multimedia-Programmierung 3
E Java Jump and Run Map zu groß Spiele- und Multimedia-Programmierung 14
Finalspace Entwicklung eines Jump & Run Spiels Video-Tutorial Spiele- und Multimedia-Programmierung 12
C Doodle Jump Sprung Physik? Spiele- und Multimedia-Programmierung 4
M Jump 'n' Run Game - Blöcke? Spiele- und Multimedia-Programmierung 7
N Problem mit Kollisionsabfrage beim Fallen Jump & Run Spiele- und Multimedia-Programmierung 5
M Empfehlungen für ein 2D-Jump'n'run Spiele- und Multimedia-Programmierung 4
W Doodle Jump Spiele- und Multimedia-Programmierung 6
H Jump&Run Tutorial Spiele- und Multimedia-Programmierung 3
D Jump'n'run Kollision bei Blöcken Spiele- und Multimedia-Programmierung 10
K Jump'N'Run Hügel Spiele- und Multimedia-Programmierung 11
T Jump and Run - Unklarheiten Spiele- und Multimedia-Programmierung 5
Arcus Jump and Run etwas komplizierter - Benötige Starthilfe Spiele- und Multimedia-Programmierung 12
T Ist meine Jump and Run Engine zu genau? Spiele- und Multimedia-Programmierung 4
N Grundlagen für ein Jump&Run Spiele- und Multimedia-Programmierung 3
F "Doodle Jump" Projekt Spiele- und Multimedia-Programmierung 8
U Jump n' Run 2D Geometrie und Kollisionsabfrage? Spiele- und Multimedia-Programmierung 11
L Jump-n-Run Auslastung verringern Spiele- und Multimedia-Programmierung 16
F jump and run idee Spiele- und Multimedia-Programmierung 2
T Umsetzung eines 2D Jump and Runs Spiele- und Multimedia-Programmierung 7
K Jump n Run Keylistener und Schleifen Spiele- und Multimedia-Programmierung 8
F DJADD Jump and Run Spiele- und Multimedia-Programmierung 10
D Jump 'n run die 2. [spielerbewegen mit zeit] Spiele- und Multimedia-Programmierung 6
D Jump and Run Game -- Kollisionsabfrage Spiele- und Multimedia-Programmierung 30
S Kollisionsprob bei Jump&Run Spiele- und Multimedia-Programmierung 9
S Jump'n'Run: Probleme mit Kollision Spiele- und Multimedia-Programmierung 13

Ähnliche Java Themen

Neue Themen


Oben