Lisage oma tegelastele muljetavaldava dialoogisüsteemiga isikupära ja tausta.

Mänguarenduses on meeldejäävate kogemuste loomisel võtmetähtsusega kaasahaarav mäng ja kaasahaarav jutuvestmine. Üks võimas tööriist, mis aitab teil seda saavutada, on dialoogisüsteem.

Hästi rakendatud dialoogisüsteemiga saavad tegelased suhelda, teavet jagada ja mängijaga suhelda, lisades teie mängule sügavust ja süvenemist.

Oma Godoti mängu seadistamine

Alustage oma mängu aluse loomisega. Selle näite jaoks seadistage lihtne 2D-keskkond koos juhitava märgiga, mis saab nooleklahvide abil ringi liikuda.

Selles artiklis kasutatud kood on saadaval selles GitHubi hoidla ja seda saate MIT-i litsentsi alusel tasuta kasutada.

Alustage oma mängijategelasele uue stseeni loomisega. Selle stseeni sees lisage vajalikud komponendid. Loo CharacterBody2D sõlm, mis esindab mängija tegelase keha. Kinnitage a Kokkupõrkekuju2D ristkülikukujuline, et määratleda mängija kokkupõrkeala.

Nüüd lisada tegelase liikumist ja suhtlus GDScripti kasutavate platvormidega. Asendage sõlme CharacterBody2D vaikeskript järgmise koodiga:

instagram viewer
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)

See skript võimaldab teie tegelasel liikuda vasakule, paremale, üles ja alla nooleklahvide sisendite alusel. The liikuda_ja_kokkupõrge funktsioon tagab, et tegelane suhtleb platvormidega ja reageerib kokkupõrgetele.

Dialoogiboksi lisamine

Nüüd saate alustada dialoogisüsteemi loomist. Esimene samm on lisada dialoogiboks, mis kuvab teksti, kui teie tegelane suhtleb konkreetsete objektide või NPC-dega.

Sinu CharacterBody2D skript, tutvustage dialoogiboksi ja selle sisu käsitlemiseks veel mõnda muutujat:

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 dialoogikast vastutab dialoogi teksti kuvamise eest, samal ajal kui sulge_nupp võimaldab mängijatel vajadusel dialoogiboksi sulgeda.

Aastal _valmis funktsiooni, looge ja lähtestage dialoogiboks:

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

Dialoogi teksti kuvamine

Nüüd saate keskenduda dialoogiboksis teksti kuvamisele. Saate panna teksti katma rohkem kui ühte rida ja seda kerida, kuvades korraga ühe tekstirea.

Muutke oma _füüsika_protsess funktsioon dialoogiridade kuvamiseks:

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

See koodisegment kontrollib, kas line_taimer on suurem kui 0. Kui on, vähendab see taimerit delta väärtuse võrra. Kui taimer ei ole aktiivne ja kuvada on rohkem dialoogi ridu, kutsub see välja näita_järgmist_dialoogi_rida funktsiooni.

Rakendada näita_järgmist_dialoogi_rida toimima järgmiselt:

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

See funktsioon värskendab dialoogiboksi teksti aktiivse dialoogireaga ja suurendab praegune_rida indeks. The line_taimer tagab, et iga rida kuvatakse lühikese aja jooksul enne järgmisele reale liikumist.

Sulgemisnupu lisamine

Nüüd saate anda mängijatele võimaluse sulgeda dialoogiboks ja jätkata mängu mängimist. Tehke seda sulgemisnupuga, mis selle vajutamisel peidab dialoogiboksi ja võimaldab mängijal oma teekonda jätkata.

Esiteks muutke _valmis sulgemisnupu loomiseks ja selle funktsioonide kinnitamiseks.

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)

See kood loob eksemplari Nupp klassi ja kohandab selle välimust ja asukohta. See ühendab ka vajutatud signaali _on_close_button_pressed funktsiooni.

Nüüd rakendage _on_close_button_pressed funktsiooni. Selles funktsioonis määrake nii dialoogiboksi kui ka sulgemisnupu nähtavus vale. See peidab dialoogiliidese mängija eest tõhusalt.

Ärge unustage lähtestada praegune_rida indeks 0-ni, et dialoog algaks järgmisel korral, kui mängija vestlust alustab:

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

Nende muudatustega saavad mängijad dialoogi alustada ja dialoogiboksi sulgeda, kui nad on valmis mängumaailma avastamist või sellega suhtlemist jätkama.

Teie dialoogisüsteemi parimad tavad

Kui jätkate oma dialoogisüsteemi arendamist ja täiustamist, pidage meeles järgmisi parimaid tavasid aitab tagada, et teie süsteem täiustab teie mängu loo jutustamist ja mängijate kaasamist täiel määral ulatus.

Järjepidevus on võti

Säilitage kogu dialoogisüsteemis ühtne toon, kirjutamisstiil ja sõnavara. Järjepidevus aitab mängijatel tegelaste ja mängumaailmaga suhelda, luues sujuva ja kaasahaarava kogemuse.

Käsitlege tegelaste hääli

Igal tegelasel peaks olema erinev hääl ja isiksus, mis kajastub nende dialoogides. Ridade kirjutamisel arvestage nende tausta, motivatsiooni ja emotsioonidega.

See eristamine lisab teie tegelastele sügavust ja muudab suhtluse meeldejäävamaks. Saate lihtsalt lisada erinevaid helisid erinevatele Godot' tegelastele.

Sisulised valikud

Kavandage dialoogivalikud, millel on tähenduslikud tagajärjed. Mängu narratiivi, suhteid või isegi mängumehaanikat mõjutavad valikud julgustavad mängijaid dialoogisüsteemiga suhtlema ja oma otsustesse emotsionaalselt investeerima.

Testimine ja iteratsioon

Kontrollige oma dialoogide jadasid põhjalikult, et leida kirjavigu, grammatilisi vigu või tempoprobleeme. Osalege mängutestides, et koguda mängijatelt tagasisidet ja teha vajalikke muudatusi, et tagada dialoogisüsteemi sujuv kulgemine ja üldise mängukogemuse parandamine.

UI järjepidevus

Veenduge, et dialoogisüsteemi kujundus ja esitlus vastaksid üldisele teie mängu kasutajaliidese (UI) kujundus. Ühtsed kasutajaliidese elemendid, fondid ja värvid loovad ühtse visuaalse kogemuse, mis aitab kaasa mängule.

Neid parimaid tavasid järgides saate luua dialoogisüsteemi, mis mitte ainult ei täiusta teie mängu narratiivi, vaid loob ka mängijatele meeldejääva ja kaasahaarava kogemuse.

Oma Godoti mängude tõstmine dialoogisüsteemidega

Dialoogisüsteemi lisamine oma Godoti mängudesse võib parandada mängijate kaasatust ja muuta teie jutuvestmises revolutsiooniliseks. Võimaldades tegelastel suhelda, emotsioone väljendada ja mängija otsustele reageerida, loote kaasahaaravama ja interaktiivsema mängumaailma.

Godoti kasutajasõbraliku keskkonna ja GDScripti võimsusega on teil meisterdamiseks vajalikud tööriistad köitvad dialoogisüsteemid, mis tõmbavad mängijad teie jutusse ja parandavad nende üldist mängu kogemusi.