In vielen Spielen gibt es einen Gegner, mit dem man kämpfen kann. Entdecken Sie die verschiedenen Möglichkeiten, wie Sie den feindlichen Kampf verstärken und verfeinern können.

Feinde spielen eine entscheidende Rolle dabei, Spiele für Spieler spannend und herausfordernd zu machen. Unabhängig davon, ob Sie einen 2D-Plattformer, einen Top-Down-Shooter oder ein Rollenspiel erstellen, kann das Hinzufügen von Feinden das Spielerlebnis erheblich verbessern.

Godots benutzerfreundliche Oberfläche und die intuitive Skriptsprache GDScript machen den Prozess effizient und angenehm.

Einrichten des Godot-Spiels

Bevor Sie sich mit der Erstellung von Feinden befassen, richten Sie die Grundstruktur Ihres 2D-Spiels ein die Godot-Spiel-Engine.

Erstellen Sie ein neues 2D-Projekt in Godot. Erstellen Sie in der Hauptszene eine neue KinematicBody2D Knoten und benennen Sie ihn Spieler. Fügen Sie im Player-Knoten eine hinzu CollisionShape2D mit einer rechteckigen Form, die die Hitbox des Spielers sein wird. Fügen Sie außerdem a hinzu Sprite Knoten als visuelle Darstellung des Spielercharakters.

Der in diesem Artikel verwendete Code ist hier verfügbar GitHub-Repository Die Nutzung steht Ihnen unter der MIT-Lizenz kostenlos zur Verfügung.

Hängen Sie den folgenden GDScript-Code an Spieler Knoten, um grundlegende Bewegungen zu ermöglichen:

extends KinematicBody2D

const SPEED = 200

func _physics_process(delta):
var motion = Vector2.ZERO

if Input.is_action_pressed("ui_right"):
motion.x += SPEED

if Input.is_action_pressed("ui_left"):
motion.x -= SPEED

if Input.is_action_pressed("ui_down"):
motion.y += SPEED

if Input.is_action_pressed("ui_up"):
motion.y -= SPEED

motion = move_and_slide(motion)

Mit diesem Code kann sich der Spieler mit den Pfeiltasten oder den WASD-Tasten nach links, rechts, oben und unten bewegen.

Einen einfachen Feind erschaffen

Nachdem Sie nun einen Spielercharakter eingerichtet haben, können Sie einen einfachen Feind erstellen.

Erstellen Sie eine neue Szene und fügen Sie eine hinzu StaticBody2D Knoten benannt Feind. Fügen Sie innerhalb des Enemy-Knotens eine hinzu CollisionShape2D Knoten mit einer Kreisform, um die Hitbox des Feindes zu definieren. Fügen Sie außerdem a hinzu Sprite Knoten, um den Feind visuell darzustellen.

Wenn die Kollision eingerichtet ist, ist der Feind bereit, mit dem Spieler und anderen Elementen in Ihrer Spielwelt zu interagieren.

Einen Feind dazu bringen, dem Spieler zu folgen

Das Erstellen von Feinden, die dem Spieler folgen, fügt dem Spiel eine neue Herausforderung hinzu.

Erstellen Sie eine neue Szene für den folgenden Feindtyp und fügen Sie eine hinzu KinematicBody2D Knoten benannt FolgeFeind mit einem CollisionShape2D. Hängen Sie den folgenden GDScript-Code an den FollowEnemy-Knoten an, damit dieser dem Player folgt:

extends KinematicBody2D

const SPEED = 100

func _physics_process(delta):
var player = get_parent().get_node("Player")
var player_position = player.global_position
var enemy_position = global_position
var direction = player_position - enemy_position
direction = direction.normalized()

var motion = direction * SPEED * delta
move_and_collide(motion)

Jetzt die FolgeFeind bewegt sich in jedem Frame zur Position des Spielers.

Feindliche Kugeln hinzufügen

Jetzt können Sie den Feind dazu bringen, Kugeln auf den Spieler zu schießen. Erstellen Sie eine neue Szene und benennen Sie sie Bullet.tscn. Füge hinzu ein KinematicBody2D Knoten zur Szene. Hänge an Bullet.gd Skript zum KinematicBody2D-Knoten in der Bullet.tscn-Szene. Fügen Sie den folgenden Code hinzu, um die Bullet-Klasse zu definieren:

extends KinematicBody2D

const BULLET_SPEED = 300
var bullet_direction = Vector2.ZERO

func _physics_process(delta):
var motion = bullet_direction * BULLET_SPEED * delta
move_and_collide(motion)

func set_direction(direction):
bullet_direction = direction.normalized()

Erstellen Sie nun einen neuen Knoten für den Feind mit Kugeln und benennen Sie ihn SchießenFeind. Fügen Sie innerhalb des ShootingEnemy-Knotens eine hinzu CollisionShape2D Knoten mit einer rechteckigen Form als Hitbox.

Hängen Sie den folgenden GDScript-Code an den ShootingEnemy-Knoten an, damit er Kugeln abfeuert:

extends KinematicBody2D

const SPEED = 100
const SHOOT_DELAY = 1.5
var shoot_timer = SHOOT_DELAY

# Import the Bullet scene
const BulletScene = preload("res://Bullet.tscn")

func _physics_process(delta):

# Shooting logic
shoot_timer -= delta

if shoot_timer <= 0:
shoot_timer = SHOOT_DELAY
var bullet_instance = BulletScene.instance()
bullet_instance.global_position = global_position
bullet_instance.set_direction(direction)
get_parent().add_child(bullet_instance)

Der Feind schießt nun regelmäßig Kugeln auf die Position des Spielers. Verwenden Sie eine Bedingung Wenn Stellungnahme um zu überprüfen, ob die Shoot_timer ist kleiner als 0. Wenn ja, dann schießen Sie die Kugel ab.

Gegner zufällig bewegen

Zusätzlich zu den Feinden, die dem Spieler folgen oder auf ihn schießen, kann ein sich zufällig bewegender Feind Ihrem Spiel ein Element der Unvorhersehbarkeit und Herausforderung verleihen. Das Erstellen eines Feindes mit zufälligen Bewegungsmustern erfordert eine Kombination aus einfacher Logik und Zufallszahlengenerierung.

Erstellen Sie zunächst eine neue Szene und fügen Sie eine hinzu KinematicBody2D Knoten benannt Zufälliger Feind. Erstellen Sie ein neues Skript mit dem Namen RandomEnemy.gd und hängen Sie es an den RandomEnemy-Knoten an. Das Skript übernimmt die Zufallsbewegungslogik.

extends KinematicBody2D

const MOVE_SPEED = 100
const MOVE_INTERVAL_MIN = 1.0
const MOVE_INTERVAL_MAX = 3.0

var move_timer = 0.0
var move_interval = 0.0
var move_direction = Vector2.ZERO

func _ready():
choose_new_direction()

func choose_new_direction():
move_interval = rand_range(MOVE_INTERVAL_MIN, MOVE_INTERVAL_MAX)
move_timer = move_interval
move_direction = Vector2(randf(), randf()).normalized()

func _physics_process(delta):
move_timer -= delta

if move_timer <= 0.0:
choose_new_direction()

var motion = move_direction * MOVE_SPEED * delta
move_and_collide(motion)

Inklusive zusätzlicher Funktionen

Es gibt viele zusätzliche Funktionen, die Sie Ihren Feinden hinzufügen können, um das Gameplay interessanter zu gestalten.

Bosskämpfe

Bosskämpfe dienen als Höhepunkt Ihres Spiels und sorgen für unvergessliche und herausfordernde Begegnungen, die das Können und die Ausdauer der Spieler auf die Probe stellen. Bossgegner sind in der Regel größer und mächtiger als normale Feinde, sodass die Spieler bestimmte Strategien und Taktiken anwenden müssen, um sie zu besiegen.

Dynamisches Spawnen von Feinden

Implementieren Sie ein dynamisches Spawning-System, das Feindbegegnungen basierend auf der Leistung des Spielers, seinem Standort oder Ereignissen im Spiel anpasst. Dadurch entsteht ein reaktionsschnelleres und personalisierteres Spielerlebnis.

Umweltanpassung

Erstellen Sie Feinde, die sich an die Umgebung anpassen können, beispielsweise Feinde, die fliegen, schwimmen oder Wände erklimmen können. Diese Vielseitigkeit eröffnet neue Gameplay-Möglichkeiten und fordert die Spieler heraus, sich durch verschiedene Terrains zu bewegen.

Feindliche Schwächen und Widerstände

Weisen Sie den Feinden bestimmte Schwächen und Widerstände zu und ermutigen Sie die Spieler, mit verschiedenen Ansätzen und Taktiken zu experimentieren. Einige Feinde können gegenüber bestimmten Angriffen oder Elementen anfällig sein, während andere immun oder resistent sind.

Feindliche Anpassung und Verhaltensvariationen

Fügen Sie ein Maß an Unvorhersehbarkeit hinzu, indem Sie Ihren Feinden zufällige Verhaltensvariationen geben. Beispielsweise kann ein Feind in verschiedenen Spieldurchgängen unterschiedliche Angriffsmuster oder Bewegungsgeschwindigkeiten haben, wodurch das Gameplay frisch und wiederspielbar bleibt.

Durch die Einbeziehung einer Vielzahl dieser zusätzlichen Funktionen können Sie das Gegnerdesign Ihres Spiels bereichern und jede Begegnung für die Spieler einzigartig und unvergesslich machen.

Denken Sie daran, dass die Einführung neuer Mechaniken zwar spannend sein kann, es jedoch entscheidend ist, das Gleichgewicht und die Kohärenz innerhalb des Gesamtdesigns Ihres Spiels aufrechtzuerhalten.

Best Practices zum Erstellen von Feinden

Berücksichtigen Sie beim Erstellen von Feinden in Ihrem Godot-Spiel die folgenden Best Practices:

Klare visuelle Kommunikation

Verwenden Sie eindeutige Gegnerdesigns, die sich von der Umgebung abheben, um Feinde leicht erkennbar zu machen.

Erwägen Sie die Verwendung von Farbkodierungen oder einzigartigen Silhouetten, um die Gegnertypen zu unterscheiden. Stellen Sie sicher, dass feindliche Animationen und visuelle Effekte ihr Verhalten und ihre Angriffe verstärken.

Schwierigkeiten beim Balancieren

Führen Sie im Laufe des Spiels nach und nach Feinde mit zunehmender Komplexität ein. Testen Sie Gegnerbegegnungen mit Spielern unterschiedlicher Fähigkeitsstufen, um sicherzustellen, dass die Herausforderungen für alle Spieler geeignet sind. Vermeiden Sie plötzliche Schwierigkeitsspitzen, die die Spieler frustrieren können.

Vermeiden Sie billige Aufnahmen

Gestalten Sie Feinde mit Angriffen, denen der Spieler ausweichen oder die er blocken kann, und geben Sie ihnen so die Möglichkeit zu reagieren. Verwenden Sie eine faire Hitbox für die Angriffe der Feinde und vermeiden Sie Angriffe, deren Treffer über ihre visuelle Darstellung hinausgehen. Verwenden Sie Warnschilder oder Hinweise, um auf gefährliche Angriffe hinzuweisen.

Spieltests und Iteration

Testen Sie während der Entwicklung regelmäßig Gegnerbegegnungen, um deren Spaßfaktor und Schwierigkeitsgrad zu bewerten. Sammeln Sie Feedback von Spielern und nutzen Sie es, um das Verhalten, die Stärken und Schwächen des Gegners zu optimieren.

Soundeffekte

Soundeffekte spielen eine entscheidende Rolle bei der Schaffung einer immersiven und fesselnden Spielumgebung. Wenn ein Feind einen Treffer erleidet, fügen Sie entsprechendes hinzu Urheberrechtsfreie Soundeffekte um das Gefühl der Wirkung und des Engagements im Kampf zu verstärken.

Ihr Spiel kann jeden Schlag oder Schlag mit unterschiedlichen Audiohinweisen begleiten, die der Art des Angriffs und den Eigenschaften des Feindes entsprechen.

Godot-Spiele stärker mit Feinden interagieren lassen

Feinde sind ein grundlegender Bestandteil vieler Spiele und bieten Herausforderungen, Hindernisse und ein Erfolgserlebnis, wenn sie besiegt werden. Durch das Hinzufügen verschiedener Arten von Feinden mit unterschiedlichem Verhalten, Gesundheitspunkten und Schussmechaniken können Sie den Spielern abwechslungsreiche und ansprechende Spielerlebnisse bieten.

Denken Sie daran, den Schwierigkeitsgrad auszugleichen, visuelles und akustisches Feedback zu geben und Ihre Feinde gründlich zu testen, um den Spielern ein unterhaltsames und lohnendes Spielerlebnis zu bieten.