Dodaj trochę osobowości i tła swoim postaciom dzięki mocnemu systemowi dialogów.

W tworzeniu gier wciągająca rozgrywka i wciągająca opowieść są kluczem do tworzenia niezapomnianych wrażeń. Potężnym narzędziem, które może Ci w tym pomóc, jest system dialogu.

Dzięki dobrze zaimplementowanemu systemowi dialogów postacie mogą komunikować się, dzielić się informacjami i wchodzić w interakcję z graczem, dodając głębi i zanurzenia w grze.

Konfigurowanie gry Godot

Zacznij od stworzenia podstaw swojej gry. W tym przykładzie skonfiguruj proste środowisko 2D z sterowaną postacią, którą można poruszać się za pomocą klawiszy strzałek.

Kod użyty w tym artykule jest dostępny w this Repozytorium GitHuba i jest darmowy do użytku na licencji MIT.

Rozpocznij od stworzenia nowej sceny dla swojej postaci gracza. Wewnątrz tej sceny dodaj niezbędne komponenty. Stwórz PostaćCiało2D węzeł reprezentujący ciało postaci gracza. Dołącz a Kształt kolizji2D o prostokątnym kształcie wyznaczającym obszar kolizji gracza.

Teraz,

instagram viewer
dodaj ruch postaci oraz interakcja z platformami wykorzystującymi GDScript. Zastąp domyślny skrypt węzła CharacterBody2D następującym kodem:

extends CharacterBody2D

var speed = 300

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

if Input.is_action_pressed("ui_left"):
input_dir.x -= 1

if Input.is_action_pressed("ui_right"):
input_dir.x += 1

if Input.is_action_pressed("ui_up"):
input_dir.y -= 1

if Input.is_action_pressed("ui_down"):
input_dir.y += 1

velocity = input_dir.normalized() * speed
move_and_collide(velocity * delta)

Skrypt ten umożliwia Twojej postaci poruszanie się w lewo, w prawo, w górę i w dół w oparciu o klawisze strzałek. The przesuń_i_zderz Funkcja zapewnia, że ​​postać wchodzi w interakcję z platformami i reaguje na kolizje.

Dodanie okna dialogowego

Teraz możesz przystąpić do tworzenia systemu dialogowego. Pierwszym krokiem jest dodanie okna dialogowego, w którym będzie wyświetlany tekst, gdy Twoja postać wejdzie w interakcję z określonymi obiektami lub NPC-ami.

W Twoim PostaćCiało2D skrypt, wprowadź jeszcze kilka zmiennych do obsługi okna dialogowego i jego zawartości:

var dialogue_box: Label
var close_button: Button
var dialogue_lines: Array = ["Hello, adventurer!", "Welcome to our village."]

var current_line: int = 0
var line_timer: float = 0

The dialog_box będzie odpowiedzialny za wyświetlanie tekstu dialogu, natomiast plik przycisk_zamknij pozwoli graczom zamknąć okno dialogowe, jeśli zajdzie taka potrzeba.

w _gotowy funkcji, utwórz i zainicjuj okno dialogowe:

func _ready():
dialogue_box = Label.new()
dialogue_box.visible = false
add_child(dialogue_box)

Wyświetlanie tekstu dialogu

Teraz możesz skupić się na wyświetlaniu tekstu w oknie dialogowym. Możesz rozciągnąć tekst na więcej niż jedną linię i przewijać go, odsłaniając po jednym wierszu tekstu na raz.

Zmodyfikuj swoje _proces_fizyczny funkcja obsługująca wyświetlanie linii dialogowych:

if line_timer > 0:
line_timer -= delta
elif current_line < dialogue_lines.size():
show_next_dialogue_line()

Ten segment kodu sprawdza, czy licznik_liniowy jest większa niż 0. Jeśli tak, zmniejsza licznik czasu o wartość delta. Jeśli licznik czasu nie jest aktywny i jest więcej linii dialogowych do wyświetlenia, wywołuje funkcję show_next_dialogue_line funkcjonować.

Wdrażaj show_next_dialogue_line działać w następujący sposób:

func show_next_dialogue_line():
dialogue_box.text = dialogue_lines[current_line]
current_line += 1

# Display each line for 3 seconds
line_timer = 3.0

Ta funkcja aktualizuje tekst w oknie dialogowym zgodnie z bieżącą linią dialogową i zwiększa bieżąca_linia indeks. The licznik_liniowy zapewnia, że ​​każda linia będzie wyświetlana przez krótki czas przed przejściem do następnej linii.

Dodanie przycisku zamykania

Teraz możesz dać graczom możliwość zamknięcia okna dialogowego i kontynuowania gry. Zrób to za pomocą przycisku zamykania, który po naciśnięciu ukrywa okno dialogowe i pozwala graczowi wznowić podróż.

Najpierw zmodyfikuj plik _gotowy funkcję tworzenia przycisku zamykania i dołączania jego funkcjonalności.

func _ready():
dialogue_box = Label.new()
dialogue_box.visible = false
add_child(dialogue_box)

close_button = Button.new()
close_button.text = "Close"
close_button.position = Vector2(50, 30)
close_button.visible = false
close_button.pressed.connect(_on_close_button_pressed)
add_child(close_button)

Ten kod tworzy instancję Przycisk klasę i dostosowuje swój wygląd i położenie. Łączy także prasowany sygnał do _on_close_button_wciśnięty funkcjonować.

Teraz zaimplementuj _on_close_button_wciśnięty funkcjonować. W tej funkcji ustaw widoczność zarówno okna dialogowego, jak i przycisku zamykania na FAŁSZ. To skutecznie ukrywa interfejs dialogowy przed graczem.

Pamiętaj o zresetowaniu bieżąca_linia indeks na 0, aby mieć pewność, że dialog zacznie się od początku przy następnym rozpoczęciu rozmowy przez gracza:

func _on_close_button_pressed():
dialogue_box.visible = false
close_button.visible = false
current_line = 0

Dzięki tym zmianom gracze będą mogli nawiązać dialog i zamknąć okno dialogowe, gdy będą gotowi na dalszą eksplorację lub interakcję ze światem gry.

Najlepsze praktyki dotyczące Twojego systemu dialogu

Kontynuując rozwój i udoskonalanie swojego systemu dialogu, pamiętaj o poniższych najlepszych praktykach pomoże zapewnić, że Twój system w pełni ulepszy narrację gry i zaangażowanie graczy zakres.

Spójność jest kluczem

Utrzymuj spójny ton, styl pisania i słownictwo w całym systemie dialogowym. Spójność pomaga graczom łączyć się z postaciami i światem gry, tworząc płynne i wciągające wrażenia.

Twórz głosy postaci

Każda postać powinna mieć odrębny głos i osobowość odzwierciedlone w dialogach. Pisząc swoje kwestie, weź pod uwagę ich pochodzenie, motywacje i emocje.

To zróżnicowanie dodaje głębi twoim postaciom i sprawia, że ​​interakcje są bardziej zapadające w pamięć. Możesz z łatwością dodaj różne dźwięki dla różnych postaci Godota.

Znaczące wybory

Projektuj wybory dialogowe, które mają znaczące konsekwencje. Wybory, które wpływają na narrację gry, relacje, a nawet mechanikę rozgrywki, zachęcają graczy do zaangażowania się w system dialogu i emocjonalnego inwestowania w swoje decyzje.

Testowanie i iteracja

Dokładnie przetestuj sekwencje dialogów, aby wykryć literówki, błędy gramatyczne lub problemy z tempem. Weź udział w testach rozgrywki, aby zebrać opinie od graczy i wprowadzić niezbędne zmiany, aby zapewnić płynne działanie systemu dialogów i poprawę ogólnych wrażeń z rozgrywki.

Spójność interfejsu użytkownika

Upewnij się, że projekt i prezentacja systemu dialogowego odpowiadają całości projekt interfejsu użytkownika (UI) Twojej gry. Spójne elementy interfejsu użytkownika, czcionki i kolory tworzą spójne wrażenia wizualne, które przyczyniają się do zanurzenia się w grze.

Postępując zgodnie z tymi najlepszymi praktykami, możesz stworzyć system dialogów, który nie tylko ulepszy narrację gry, ale także zapewni graczom niezapomniane i wciągające wrażenia.

Podnieś poziom gier Godot dzięki systemom dialogu

Włączenie systemu dialogów do gier Godot może zwiększyć zaangażowanie graczy i zrewolucjonizować sposób opowiadania historii. Umożliwiając postaciom komunikację, wyrażanie emocji i reagowanie na decyzje gracza, tworzysz bardziej wciągający i interaktywny świat gry.

Dzięki przyjaznemu dla użytkownika środowisku Godota i mocy GDScript masz narzędzia do tworzenia fascynujące systemy dialogów, które wciągają graczy w Twoją narrację i poprawiają ogólną rozgrywkę doświadczenie.