Създайте усещане за напредък и предизвикателство, като добавите различни нива към вашите игри.

Създаването на нива е решаващ аспект от дизайна на играта, който може значително да подобри цялостната привлекателност на вашата игра. Нивата предоставят структурата и предизвикателствата, които поддържат играчите ангажирани и мотивирани да напредват в играта ви.

Чрез внимателно изработване на добре проектирани нива можете да създадете по-завладяващо и приятно изживяване за вашите играчи. Независимо дали сте начинаещ или опитен разработчик на игри, Godot улеснява създаването на завладяващи нива, които ще накарат играчите да се връщат за още.

Настройване на играта Godot

Преди да започнете да създавате нива, важно е да настроите своя проект за 2D игра Godot Game Engine.

Кодът, използван в тази статия, е достъпен в това GitHub хранилище и е безплатен за използване под лиценза на MIT.

Създайте нова сцена и добавете a Node2D възел като основен възел. Това ще служи като контейнер за всички други възли във вашата сцена. Сега, когато вашият проект е настроен, е време да добавите героя на играча към сцената.

instagram viewer

Създайте нова сцена, като щракнете с десния бутон върху панела Scene и изберете Нова сцена. Добави CharacterBody2D възел за представяне на героя на играча. The CharacterBody2D възелът предоставя вградени функции за откриване на движение и сблъсък за 2D герои.

Вътре в CharacterBody2D възел, добавете a CollisionShape2D възел с правоъгълна форма и a Спрайт възел за представяне на външния вид на играча.

С настроения герой на играча и неговите визуални ефекти вече можете да се съсредоточите върху създаването на вашето първо ниво.

Създайте две нива

За да създадете нива в Godot, можете да използвате файлове със сцени (.tscn), за да представи всяко ниво поотделно. С две нива можете да реализирате уникални оформления и движещи се платформи.

Код на играча

The CharacterBody2D Скриптът е отговорен за обработката на движението на играча въз основа на въвеждане от потребителя. В предоставения GDScript можете да изчислите посоката на движение въз основа на натискания на клавиши и съответно да зададете скоростта на играча.

Скоростта на играча определя колко бързо се движи и движение_и_сблъскване функция се грижи за откриване на сблъсък.

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)

Код на платформата

The Платформа скриптът се разширява Статично тяло2D, което означава, че платформата няма да се движи, освен ако не приложите движение към нея. В този случай можете да използвате скорост на движение променлива, за да контролирате колко бързо се движи платформата.

Платформата се движи напред-назад хоризонтално в рамките на определения диапазон (100 до 400 единици в този пример). Когато достигне ръба, той обръща посоката на движение.

# 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

С помощта на тези скриптове можете да създавате интересни модели на движение за платформи и да проектирате увлекателни геймплей изживявания вашите платформинг игри.

Свързващи нива

В една типична игра ще искате играчите да преминават от едно ниво на друго безпроблемно. За да направите това, имплементирайте скрипт на Level Manager, който управлява превключването на нива, когато играчът пресече границата на екрана.

The Мениджър на ниво скриптът следи номера на текущото ниво и размера на екрана. Той зарежда първоначалното ниво (ниво 1) по време на _готов(). The ниво на натоварване функцията приема номер на ниво като вход, конструира пътя до съответния файл на сцената и инстанцира сцената на нивото.

Добавете новото ниво като дете на Мениджър на ниво; това ефективно ще превключи текущото ниво.

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()

Чрез внедряване на Level Manager можете безпроблемно да превключвате между нива и да поддържате данни за играчите през нивата, осигурявайки безпроблемно игрово изживяване.

Включително допълнителни функции

Създаването на нива ви позволява да добавяте различни функции към вашата игра, което я прави по-ангажираща и вълнуваща за играчите.

Колекционерски предмети

Добавете колекционерски предмети като монети, звезди или ключове, които играчите могат да събират, за да отключват нови области или да получават награди. Колекционерските предмети насърчават изследването и добавят ниво на предизвикателство към геймплея.

Врагове

Представете врагове с различно поведение и модели на движение. Враговете създават препятствия, които играчът да преодолее, добавяйки стратегия и вълнение към играта.

Усилвания

Включете бонуси, които временно повишават способностите на играча, като например повишена скорост, непобедимост или подобрени атаки. Усилванията осигуряват моменти на овластяване и могат да помогнат на играчите да преодолеят трудни секции.

Пъзели

Проектирайте елементи на пъзел, които играчите трябва да решат, за да преминат през нивото. Пъзелите добавят умствен аспект към играта и могат да накарат играчите да се почувстват завършени, когато ги решат.

Като включите тези допълнителни функции във вашите нива, можете да създадете богато и разнообразно игрово изживяване, което завладява играчите и ги държи потопени във вашия свят на игри.

Най-добри практики за създаване на нива

Когато създавате нива, спазването на определени най-добри практики може да помогне да се осигури добре изработено и приятно изживяване за играчите:

Трудност на баланса

Поддържайте плавна крива на трудност през вашите нива. Постепенно увеличавайте предизвикателствата, за да държите играчите ангажирани, без да ги претоварвате. Въвеждайте постепенно нови механики и предизвикателства, позволявайки на играчите да се адаптират и учат.

Насърчавайте изследването

Проектирайте нива със скрити пътеки, тайни и зони по избор, които играчите да изследват. Exploration награждава играчите с бонуси, колекционерски предмети или преки пътища, добавяйки дълбочина към играта.

Тестване и итерация

Тествайте нивата си широко за идентифициране на всякакви проблеми, грешки или дисбаланси. Повторете дизайна на ниво въз основа на отзивите на играчите, за да подобрите цялостното изживяване.

Визуални и аудио

Обърнете внимание на визуалните и аудио аспектите на вашите нива. Ангажиращите графики и звуковите ефекти без авторски права могат значително да допринесат за атмосферата и потапянето във вашата игра.

Ниво на потока

Уверете се, че потокът на нивото е плавен и логичен. Водете играчите през нивото с ясни визуални подсказки и избягвайте задънени улици или объркващи оформления.

Като се придържате към тези най-добри практики, можете да създадете нива, които са не само приятни за игра, но и добре проектирани и съгласувани в контекста на вашата игра.

Нивата правят вашите игри Godot по-ангажиращи

Нивата играят ключова роля в това да направят игрите Godot по-ангажиращи за играчите. Добре проектираните нива осигуряват усещане за напредък, постижение и изследване, примамвайки играчите да продължат да играят.

Чрез разбиране на принципите на проектиране на ниво, използване на възможностите на Godot и внедряване допълнителни функции, можете да създавате нива, които завладяват играчите и издигат играта ви до нова височини.