Bomberman

Sammle Items und werde schneller und gefährlicher. Manövriere deine Gegner aus und vergiss gleichzeitig nicht deine Defensive. Spiele Bomberman gegen den Computer oder gegen Freunde über das Internet.

Bild vom Spiel Bomberman

Programmierung: Martin Lanter

Grafik und Design: Matthias Schelker

Download

Bomberman downloaden (nur 2.3 MB)

Hilfe und Informationen zu Java

Spiel Anleitung

Singleplayer: Beweise ich gegen die künstliche Intelligenz. Computer Gegner sind in drei Spielstärken verfügbar. Beginne gegen einfache Gegner, bevor du dich gegen die gewiefte zweite Stufe traust. Nur die Mutigsten wagen sich in das Haifischbecken mit Gegnern der dritten Stufe.

Multiplayer: Spiele Bomberman gegen Freunde über den zentralen Server von LanterSoft. Sobald sich eine Arena füllt, wird automatisch eine neue eröffnet um weitere Spieler aufnehmen zu können.

Items

  • Gibt dir eine zusätzliche Bombe, die du legen kannst.

  • Erhöht deine Geschwindigkeit.

  • Erhöht die Reichweite deiner Bomben.

  • Macht dich für 12 Sekunden unverwundbar.

Steuern Sie ihren Spieler mit den Pfeiltasten und legen Sie mit Space eine Bombe. Sprengen Sie eine Holzbeige, so könnten Sie ein Item freischalten, welches entweder Ihre Geschwindigkeit, Anzahl Ihrer Bomben oder Reichweite Ihrer Bomben erhöht.

Versuchen Sie Bomben so zu platzieren, dass sie Ihre Gegner erwischen. Dabei erhalten Sie einen Punkt. Erwischen Sie allerdings sich selbst oder einen Team Kollegen, so erhalten Sie einen Punkt Abzug.

Sobald entweder alles Holz auf der Karte weggesprengt ist, alle Menschen erwischt worden sind oder nur noch ein einziges Team übrig bleibt, beginnt das Spiel wieder von vorn.

Im Menu können Sie die Schwierigkeit des Computers verändern und weitere Computer Spieler oder Menschen Spieler hinzufügen oder entfernen. Ausserdem können Sie die Teams verändern und die Tastaturbelegung (z.B. WASD + Q statt den Pfeiltasten).

Ziel ist es, so viele Punkte wie möglich zu machen und natürlich den Computer zu schlagen. Sie sind doch ein Mensch, das kann ja nicht so schwierig sein, für das intelligententeste Wesen, wie Sie ;-).

LanterSoft wünscht Ihnen viel Vergnügen.

Das Programmieren einer künstlichen Intelligenz (KI)

Werfen Sie einen Blick auf die erste Version von Bomberman. Damals noch im Experiment-Stadium.

Für mich als Software Entwickler ist Bomberman nicht nur ein weiteres Spiele Programm. Vielmehr ist es eine faszinierende Kombination aus Software Architektur, Programmfluss Planung und vor allem der Implementierung künstlicher Intelligenz (KI) Algorithmen. Viel mehr Zeit als für das eigentliche Schreiben des Programm Codes, habe ich damit verbracht, diese drei Aspekte professionell umzusetzen.

"In welche Komponenten möchte ich meine Software aufteilen und in welche Sub-, Sub-Sub- und Sub-Sub-Sub Komponenten", ist z.B. die wichtigste Frage bei der Planung einer Architektur für eine Software. Welche Komponenten kommunizieren mit welchen anderen Komponenten, welche Komponenten müssen auf welchem Weg benachrichtigt werden, falls ein Event am ganz anderen "Ende" der Software auftritt? Wie sollen Setup, Grafik, die Computer Strategie (KI) und vieles mehr miteinander interagieren und synchronisiert werden? Man kann sich tausend kleine Zahnrädchen vorstellen, wobei die Drehung eines jeden eine Auswirkung auf weitere Zahnrädchen hat und jedes selbst von anderen beeinflusst wird. Jedes dieser Zahnrädchen muss korrekt montiert werden, damit die grosse Maschine läuft.

"Wie spiele ich eigentlich Bomberman?", fragt man sich andererseits, beim Schreiben einer KI für dieses Spiel (die hier verwendeten KI Algorithmen darf man nicht mit künstlichen neuronalen Netzen verwechseln). Es ist im Grunde genommen ganz einfach: Ich setze Bomben neben einer Holzbeige, die kurz darauf in die Luft fliegt, möglicherweise ein Item hinterlässt, welches ich dann einsammeln will. Dabei sollte ich möglichst nicht selbst in der Explosion einer Bombe landen aber wenn möglich hin und wieder die Bomben so platzieren, dass die Explosion einen Gegner trifft und ich einen Punkt bekomme. Erklärt man es dem Computer allerdings auf diese Weise, wird nicht viel daraus, aus der künstlichen Intelligenz.

Fangen wir klein an. Ich will, dass mein Computer eine Bombe neben einer Holzbeige platzieren kann. Dazu berechnet er, welche Felder in seinem Umfeld überhaupt direkt neben einer Holzbeige sind und auf welchem Weg er dahin kommt (A* Pathfind Algorithmus). Die Wegberechnung ist einfach, solange keine Bombe diesen Wen bedroht, wovon wir am Anfang eines Spiels ausgehen können. Sobald er an seinem Ziel angekommen ist, setzt er seine Bombe... 3 Sekunden später geht die Bombe hoch und den Computer hat es erwischt. Der Dummkopf ist bei seiner Bombe stehengeblieben.

Und genau das gleiche wird ihm jedes Mal passieren. Selbst nach 100 Versuchen wird er nicht merken, dass er sich bei dieser Aktion ständig selbst in die Luft jagt. Eine Verbesserung muss her! Der Computer muss die von einer tickenden Bombe ausgehende Gefahr bemerken können. Dazu berechnet er für seine umliegenden Felder jeweils einen Wert, wie gefährlich diese Felder sind. Das Feld mit der Bombe ist sicher sehr gefährlich, und das nebenstehende Feld, auf welches sich die Explosion ausbreiten wird, bestimmt auch. Aber zwei Felder von der Bombe entfernt ist der Computer sicher. Er kann nun also herausfinden, wo er in Sicherheit ist. Beim nächsten Spiel bewegt er sich geradewegs auf ein Feld neben einer Holzbeige, setzt dort seine Bombe... und 3 Sekunden später geht sie hoch und den Computer hat es wieder erwischt. Auch diesmal ist der Dummkopf wieder stehen geblieben. Er wusste zwar sehr wohl, dass er sich in grösster Gefahr befindet und wo er sicher wäre, doch haben wir ihm nicht gesagt, dass er auch dort hingehen soll.

Auch hier müssen wir wiederum den Weg, den er von der Bombe zum sicheren Feld nehmen soll berechnen. Dies ist nun etwas schwieriger, weil der Computer durch das Feld neben der Bombe durchlaufen muss, welches eigentlich ein Gefahrenfeld ist, weil sich die Explosion der Bombe ja in kürze darauf ausbreiten wird. Aber es ist möglich. Nachdem auch das nachgerüstet ist, ist der Computer dann tatsächlich in der Lage, seine erste Bombe an einem sinnvollen Platz zu setzen und sich dann in Sicherheit zu bringen.

Allerdings ist die KI immer noch sehr bescheiden. Dem Computer muss noch viel, viel mehr gelehrt werden. Du sollst Bomben neben Holzbeigen legen, aber nicht, wenn ein Gegner den Fluchtweg mit einer Bombe blockiert hat. Du sollst Items einsammeln, aber dazu nicht in Gänge hinein gehen, dessen Ausgang ein naher Gegner kurzerhand mit seiner Bomber verschliessen und dich damit einsperren kann. Du sollst dich nicht auf ein gefährdetes Felder begeben, das von einer Bombe bedroht wird, aber du sollst es doch tun, wenn gerade dieses Feld das einzige ist, das dich vor dem sicheren Tod durch eine andere Bombe retten kann. Mit anderen Worten: Du musst gewisse Risiken eingehen. Aber wie riskant sollst du sein und wie riskant ist die Situation überhaupt? Du sollst deine Gegner angreifen und versuchen, sie mit deinen Bomben einzusperren, aber dabei nicht dich selbst einsperren lassen (letzteres ist mit Abstand das Schwierigste).

Was ein Schulkind innert kurzer Zeit lernt, ist für den Computer überhaupt nicht logisch. Trotz Dual-, Quad- und Octo-Core Prozessoren, mit je 3 Milliarden Operationen pro Sekunde(!) ist der Computer völlig hilflos, wenn nicht ein Algorithmus, also eine KI, in jeder Situation eine einigermassen gescheite Aktion vorschlägt, die der Computer dann ausführen kann und sich so vor Gefahren schützt und selber versucht eine Gefahr für seine Gegner zu sein.

Und versucht, diese Gegner sie zu schlagen... versucht, DICH zu schlagen!