Vytvorte pocit pokroku a výzvy pridaním rôznych úrovní do svojich hier.

Vytváranie úrovní je kľúčovým aspektom herného dizajnu, ktorý môže výrazne zvýšiť celkovú príťažlivosť vašej hry. Úrovne poskytujú štruktúru a výzvy, ktoré udržujú hráčov zapojených a motivovaných k pokroku v hre.

Starostlivým vytváraním dobre navrhnutých úrovní môžete pre svojich hráčov vytvoriť pôsobivejší a príjemnejší zážitok. Či už ste začiatočník alebo skúsený herný vývojár, Godot uľahčuje vytváranie podmanivých úrovní, vďaka ktorým sa hráči budú vracať pre viac.

Nastavenie hry Godot

Predtým, ako začnete vytvárať úrovne, je nevyhnutné nastaviť váš 2D herný projekt Herný engine Godot.

Kód použitý v tomto článku je dostupný v tomto úložisko GitHub a môžete ho bezplatne používať na základe licencie MIT.

Vytvorte novú scénu a pridajte a Node2D uzol ako koreňový uzol. Toto bude slúžiť ako kontajner pre všetky ostatné uzly vo vašej scéne. Teraz, keď je váš projekt nastavený, je čas pridať na scénu postavu hráča.

Vytvorte novú scénu kliknutím pravým tlačidlom myši na panel Scene a výberom

instagram viewer
Nová scéna. Pridaj CharacterBody2D uzol reprezentujúci postavu hráča. The CharacterBody2D node poskytuje vstavané funkcie pre detekciu pohybu a kolízií pre 2D postavy.

Vnútri CharacterBody2D uzol, pridajte a CollisionShape2D uzol s tvarom obdĺžnika a a Sprite uzol reprezentujúci vzhľad hráča.

Po nastavení postavy hráča a jej vizuálov sa teraz môžete sústrediť na vytvorenie svojej prvej úrovne.

Vytvorte dve úrovne

Na vytváranie úrovní v Godot môžete použiť súbory scén (.tscn) reprezentovať každú úroveň samostatne. Pomocou dvoch úrovní môžete implementovať jedinečné rozloženia a pohyblivé platformy.

Kód hráča

The CharacterBody2D skript je zodpovedný za spracovanie pohybu hráča na základe vstupu používateľa. V dodanom GDScripte môžete vypočítať smer pohybu na základe stlačenia klávesov a podľa toho nastaviť rýchlosť hráča.

Rýchlosť hráča určuje, ako rýchlo sa pohybujú move_and_collide funkcia sa stará o detekciu kolízie.

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)

Kód platformy

The Plošina skript sa predlžuje StaticBody2D, čo znamená, že platforma sa nepohne, pokiaľ na ňu nepohnete. V tomto prípade môžete použiť rýchlosť_pohybu premenná na ovládanie rýchlosti pohybu platformy.

Plošina sa pohybuje tam a späť horizontálne v rámci špecifikovaného rozsahu (100 až 400 jednotiek v tomto príklade). Keď dosiahne okraj, obráti smer svojho pohybu.

# Platform Movement
extends StaticBody2D

const move_speed = 100
var move_direction = Vector2(1, 0)

func _physics_process(delta):
var platform_movement = move_direction * move_speed * delta
translate(platform_movement)

# Change direction when reaching the edge of the platform's path
if position.x > 400or position.x < 100:
move_direction *= -1

Pomocou týchto skriptov môžete vytvárať zaujímavé pohybové vzorce pre platformy a navrhovať pútavé herné zážitky vaše plošinovky.

Spojovacie úrovne

V typickej hre budete chcieť, aby hráči postupovali z jednej úrovne do druhej hladko. Ak to chcete urobiť, implementujte skript Level Manager, ktorý spracováva prepínanie úrovní, keď hráč prekročí hranicu obrazovky.

The Správca úrovní skript sleduje číslo aktuálnej úrovne a veľkosť obrazovky. Načíta počiatočnú úroveň (úroveň 1) počas _ready(). The úroveň_načítania funkcia berie ako vstup číslo úrovne, vytvára cestu k súboru zodpovedajúcej scény a vytvára inštanciu scény úrovne.

Pridajte novú úroveň ako dieťa Správca úrovní; tým sa efektívne prepne aktuálna úroveň.

extends Node2D

var level_number = 1
var screen_size = Vector2()
var is_switching_level = false

func _ready():
screen_size = get_viewport_rect().size
load_level(level_number)

func load_level(level):
var level_path = "res://Level" + str(level) + ".tscn"
var level_scene = load(level_path)
var level_instance = level_scene.instantiate()
add_child(level_instance)
is_switching_level = false

func switch_level():
if is_switching_level:
return

is_switching_level = true
level_number += 1

if level_number > 2:
level_number = 1

# Assuming the player node is named "Player"
var player = get_node("Node2D/Player")

if player:
var player_position = player.position

if player_position.x < 0:
player.position.x = screen_size.x
elif player_position.x > screen_size.x:
player.position.x = 0
elif player_position.y < 0:
player.position.y = screen_size.y
elif player_position.y > screen_size.y:
player.position.y = 0

get_node("Node2D").queue_free()
load_level(level_number)

func _process(delta):
# Check if the player crosses the screen boundary
# Assuming the player node is named "Player"
var player = get_node("Node2D/Player")

if player:
var player_position = player.position
var condition1 = player_position.x < 0
var condition2 = player_position.x > screen_size.x
var condition3 = player_position.y < 0
var condition4 = player_position.y > screen_size.y

if condition1 or condition2 or condition3 or condition4 :
switch_level()

Implementáciou správcu úrovní môžete plynulo prechádzať medzi úrovňami a udržiavať údaje o hráčoch naprieč úrovňami, čím zaistíte plynulý herný zážitok.

Vrátane ďalších funkcií

Vytváranie úrovní vám umožňuje pridávať do vašej hry rôzne funkcie, vďaka čomu je pre hráčov pútavejšia a vzrušujúcejšia.

Zberateľské predmety

Pridajte zberateľské predmety, ako sú mince, hviezdy alebo kľúče, ktoré môžu hráči zbierať, aby odomkli nové oblasti alebo získali odmeny. Zberateľské predmety podporujú prieskum a pridávajú do hry ďalšiu výzvu.

Nepriatelia

Predstavte nepriateľom rôzne správanie a pohybové vzorce. Nepriatelia vytvárajú prekážky, ktoré musí hráč prekonať, čím dodávajú hre stratégiu a vzrušenie.

Power-Ups

Zahrňte vylepšenia, ktoré dočasne posilnia hráčove schopnosti, ako je zvýšená rýchlosť, neporaziteľnosť alebo vylepšené útoky. Vylepšenia poskytujú momenty posilnenia a môžu pomôcť hráčom prekonať náročné úseky.

Hádanky

Navrhnite prvky puzzle, ktoré musia hráči vyriešiť, aby postúpili cez úroveň. Hádanky pridávajú do hry cerebrálny aspekt a môžu spôsobiť, že sa hráči budú cítiť ako dokonalí, keď ich vymyslia.

Začlenením týchto dodatočných funkcií do svojich úrovní môžete vytvoriť bohatý a rozmanitý herný zážitok, ktorý hráčov uchváti a nechá ich ponorených do vášho herného sveta.

Osvedčené postupy na vytváranie úrovní

Pri vytváraní úrovní môže dodržanie určitých osvedčených postupov pomôcť zaistiť hráčom dobre vytvorený a príjemný zážitok:

Ťažkosti s rovnováhou

Udržujte hladkú krivku obtiažnosti vo svojich úrovniach. Postupne zvyšujte výzvy, aby ste udržali hráčov zapojených bez toho, aby ste ich premohli. Postupne zavádzajte nové mechanizmy a výzvy, čo hráčom umožní prispôsobiť sa a učiť sa.

Podporujte prieskum

Navrhnite úrovne so skrytými cestami, tajomstvami a voliteľnými oblasťami, ktoré môžu hráči preskúmať. Prieskum odmeňuje hráčov bonusmi, zberateľskými predmetmi alebo skratkami, ktoré dodávajú hrateľnosti hĺbku.

Testovanie a opakovanie

Rozsiahlo si otestujte svoje úrovne na identifikáciu akýchkoľvek problémov, chýb alebo nerovnováh. Opakujte dizajn úrovní na základe spätnej väzby od hráčov, aby ste zlepšili celkový zážitok.

Obraz a zvuk

Venujte pozornosť vizuálnym a zvukovým aspektom vašich úrovní. Pútavá grafika a zvukové efekty bez autorských práv môžu výrazne prispieť k atmosfére a pohlteniu vašej hry.

Úroveň prietoku

Uistite sa, že prietok hladiny je plynulý a logický. Preveďte hráčov úrovňou pomocou jasných vizuálnych podnetov a vyhnite sa slepým uličkám alebo mätúcim rozloženiam.

Dodržiavaním týchto osvedčených postupov môžete vytvárať úrovne, ktoré sú nielen príjemné na hranie, ale aj dobre navrhnuté a koherentné v kontexte vašej hry.

Úrovne urobia vaše hry Godot pútavejšími

Úrovne zohrávajú kľúčovú úlohu v tom, aby hry Godot boli pre hráčov pútavejšie. Dobre navrhnuté úrovne poskytujú pocit pokroku, úspechu a prieskumu a lákajú hráčov, aby pokračovali v hre.

Pochopením princípov dizajnu úrovní, využitím Godotových schopností a implementáciou ďalšie funkcie, môžete vytvoriť úrovne, ktoré upútajú hráčov a pozdvihnú vašu hru na novú úroveň výšky.