Pievienojiet saviem varoņiem personību un fonu, izmantojot iespaidīgu dialogu sistēmu.

Spēļu izstrādē aizraujoša spēle un aizraujoša stāstu stāstīšana ir galvenais, lai radītu neaizmirstamu pieredzi. Viens spēcīgs instruments, kas var palīdzēt to sasniegt, ir dialoga sistēma.

Ar labi ieviestu dialogu sistēmu varoņi var sazināties, dalīties informācijā un mijiedarboties ar spēlētāju, pievienojot spēlei dziļumu un iedziļināšanos.

Godot spēles iestatīšana

Sāciet, izveidojot savas spēles pamatu. Šajā piemērā iestatiet vienkāršu 2D vidi ar vadāmu rakstzīmi, kas var pārvietoties, izmantojot bulttaustiņus.

Šajā rakstā izmantotais kods ir pieejams šajā GitHub repozitorijs un to varat izmantot bez maksas saskaņā ar MIT licenci.

Sāciet, izveidojot jaunu ainu savam spēlētāja varonim. Šajā ainā pievienojiet nepieciešamos komponentus. Izveidot a CharacterBody2D mezgls, lai attēlotu spēlētāja varoņa ķermeni. Pievienojiet a CollisionShape2D ar taisnstūra formu, lai noteiktu spēlētāja sadursmes zonu.

Tagad

pievienot rakstura kustību un mijiedarbība ar platformām, izmantojot GDScript. Nomainiet CharacterBody2D mezgla noklusējuma skriptu ar šādu kodu:

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)

Šis skripts ļauj jūsu varonim pārvietoties pa kreisi, pa labi, uz augšu un uz leju, pamatojoties uz bulttaustiņu ievadi. The pārvietot_un_sadurties funkcija nodrošina, ka varonis mijiedarbojas ar platformām un reaģē uz sadursmēm.

Dialoga lodziņa pievienošana

Tagad jūs varat sākt veidot dialoga sistēmu. Pirmais solis ir pievienot dialoglodziņu, kurā tiks parādīts teksts, kad jūsu varonis mijiedarbojas ar konkrētiem objektiem vai NPC.

Tavā CharacterBody2D skriptu, ieviešiet vēl dažus mainīgos, lai apstrādātu dialoglodziņu un tā saturu:

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 dialoglodziņš būs atbildīgs par dialoga teksta rādīšanu, savukārt aizvēršanas_poga ļaus spēlētājiem vajadzības gadījumā aizvērt dialoglodziņu.

Iekš _gatavs funkciju, izveidojiet un inicializējiet dialoglodziņu:

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

Dialoga teksta parādīšana

Tagad varat koncentrēties uz teksta rādīšanu dialoglodziņā. Varat likt tekstam aptvert vairāk nekā vienu rindiņu un ritināt to, vienlaikus atklājot vienu teksta rindiņu.

Modificējiet savu _fizikas_process funkcija, lai apstrādātu dialoga rindiņas:

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

Šis koda segments pārbauda, ​​vai line_taimer ir lielāks par 0. Ja tā ir, tas samazina taimeri par delta vērtību. Ja taimeris nav aktīvs un ir jāparāda vairāk dialoga līniju, tas izsauc show_next_dialogue_line funkciju.

Ieviest show_next_dialogue_line darbojas šādi:

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

Šī funkcija atjaunina tekstu dialoglodziņā ar pašreizējo dialoga rindiņu un palielina pašreizējā_rinda rādītājs. The line_taimer nodrošina, ka katra rinda tiek parādīta īsu laiku, pirms pāriet uz nākamo rindiņu.

Aizvērt pogas pievienošana

Tagad jūs varat dot spēlētājiem iespēju aizvērt dialoglodziņu un turpināt spēlēt spēli. Dariet to ar aizvēršanas pogu, kas, to nospiežot, paslēpj dialoglodziņu un ļauj spēlētājam atsākt ceļojumu.

Pirmkārt, modificējiet _gatavs funkciju, lai izveidotu aizvēršanas pogu un pievienotu tās funkcionalitāti.

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)

Šis kods izveido eksemplāru Poga klasē un pielāgo tās izskatu un novietojumu. Tas arī savieno nospiests signālu uz _on_close_button_pressed funkciju.

Tagad ieviesiet _on_close_button_pressed funkciju. Šajā funkcijā iestatiet gan dialoglodziņa, gan aizvēršanas pogas redzamību uz viltus. Tas efektīvi slēpj dialoga saskarni no atskaņotāja.

Atcerieties atiestatīt pašreizējā_rinda rādītājs uz 0, lai nodrošinātu, ka dialogs sākas no sākuma nākamajā reizē, kad spēlētājs uzsāk sarunu:

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

Pateicoties šīm izmaiņām, spēlētāji varēs iesaistīties dialogā un aizvērt dialoglodziņu, kad būs gatavi turpināt spēļu pasaules izpēti vai mijiedarbību ar to.

Paraugprakse jūsu dialogu sistēmai

Turpinot attīstīt un pilnveidot savu dialoga sistēmu, paturot prātā tālāk norādīto paraugpraksi palīdzēs nodrošināt, ka sistēma pilnībā uzlabo spēles stāstu un spēlētāju iesaisti apjomu.

Konsekvence ir atslēga

Saglabājiet konsekventu toni, rakstīšanas stilu un vārdu krājumu visā dialoga sistēmā. Konsekvence palīdz spēlētājiem sazināties ar varoņiem un spēļu pasauli, radot vienmērīgu un aizraujošu pieredzi.

Amatniecības varoņu balsis

Katram varonim ir jābūt atšķirīgai balsij un personībai, kas atspoguļojas viņu dialogos. Rakstot rindiņas, ņemiet vērā viņu izcelsmi, motivāciju un emocijas.

Šī atšķirība piešķir jūsu varoņiem dziļumu un padara mijiedarbību neaizmirstamāku. Jūs varat viegli pievienojiet dažādas skaņas dažādiem Godo varoņiem.

Nozīmīgas izvēles

Izstrādājiet dialoga izvēles, kurām ir nozīmīgas sekas. Izvēles, kas ietekmē spēles stāstījumu, attiecības vai pat spēles mehāniku, mudina spēlētājus iesaistīties dialoga sistēmā un emocionāli ieguldīt savos lēmumos.

Testēšana un iterācija

Rūpīgi pārbaudiet dialoga secības, lai atklātu drukas kļūdas, gramatikas kļūdas vai ritma problēmas. Iesaistieties spēļu testēšanā, lai apkopotu atsauksmes no spēlētājiem un veiktu nepieciešamos pielāgojumus, lai nodrošinātu, ka dialoga sistēma darbojas vienmērīgi un uzlabo kopējo spēles pieredzi.

UI konsekvence

Pārliecinieties, ka dialoga sistēmas dizains un noformējums atbilst vispārējam Jūsu spēles lietotāja interfeisa (UI) dizains. Konsekventi lietotāja interfeisa elementi, fonti un krāsas rada vienotu vizuālo pieredzi, kas veicina spēles iegremdēšanu.

Ievērojot šo paraugpraksi, varat izveidot dialoga sistēmu, kas ne tikai uzlabo jūsu spēles stāstījumu, bet arī rada spēlētājiem neaizmirstamu un aizraujošu pieredzi.

Godota spēļu uzlabošana ar dialogu sistēmām

Dialoga sistēmas iekļaušana savās Godot spēlēs var uzlabot spēlētāju iesaistīšanos un revolucionizēt stāstu stāstīšanu. Ļaujot varoņiem sazināties, paust emocijas un reaģēt uz spēlētāju lēmumiem, jūs izveidojat ieskaujošāku un interaktīvāku spēļu pasauli.

Izmantojot Godot lietotājam draudzīgo vidi un GDScript jaudu, jums ir izstrādāti rīki pārliecinošas dialogu sistēmas, kas piesaista spēlētājus jūsu stāstījumam un uzlabo viņu vispārējo spēli pieredze.