Глава 10 - що таке скрипти
Що таке скрипти
При створенні гри скрипти використовуються багато в чому так само, як кінорежисер використовує сценарій - для контролю кожного аспекту вашого «твори». Ігрові скрипти подібні програмного коду, який ви пишете, коли створюєте гру, за винятком того, що скрипти є зовнішніми по відношенню до ігрового движку. Оскільки вони зовнішні, ви можете швидко змінити скрипт НЕ компілюючи заново весь ігровий движок. Уявіть собі проект, в якому більше мільйона рядків коду, і вам треба компілювати весь цей проект заново тільки для того, щоб змінити один рядок в діалозі!
З скриптами зовсім не важко працювати, і майже кожна частина вашої гри може отримати користь від використання скриптів. Ви можете використовувати скрипти при навігації по меню, для управління битвами, для роботи з майном гравця і багато чого іншого. Уявіть собі, що при розробці гри вам захотілося, надавати під час битви гравцеві список магічних заклинань, які він регулярно використовує для атак. Тепер уявіть, що в ході розробки ви вирішили змінити деякі з цих заклинань. Якщо інформація про заклинаннях жорстко закодована, ви зіткнетеся з серйозною проблемою; вам доведеться змінити кожен екземпляр програмного коду, який управляє заклинаннями, не кажучи вже про те, що новий код доведеться тестувати і налагоджувати, щоб домогтися правильної роботи. Навіщо витрачати так багато часу на подібні зміни?
Замість цього ви можете написати код для магічних заклинань і їх дій на персонажів гри в декількох невеликих скриптах. Всякий раз, коли починається бій, завантажуються ці скрипти і відображається панемль вибору магічних заклинань. Коли вибирається заклинання, скрипт обробляє всі ефекти - від пошкоджень, що наносяться до переміщень і анімації графічних ефектів заклинання.
Для цієї книги я вагався між двома різними типами скриптових систем. Перша з них передбачає використання мови, схожого на С ++. У файлі скрипта ви друкуєте команди, компілюєте його і виконуєте скомпільований скрипт з вашої гри. Друга система скриптів є значно спрощеним варіантом першої. Замість того, щоб дозволити вам друкувати команди у файлі, ця система забезпечує створення скриптів шляхом вибору команд з попередньо визначеного набору.
Оскільки моєю метою було якомога швидше надати вам працюючий скриптова движок, я вибрав використання другого типу скриптовой системи. Ця система, яку я назвав Mad Lib Scripting, працює використовуючи набір визначених команд, які називаються дії (actions), з кожним з яких пов'язана ігрова функція. Візьмемо, для прикладу, дії з таблиці 10.1 - у кожної дії є конкретна виконувана функція.
Таблиця 10.1. Приклади команд дій
Друкує рядок тексту на екрані.
Завершує виконання скрипта.
Переміщує вказаний персонаж в заданому напрямку.
Відтворює зазначений звуковий ефект.
З таким обмеженим набором дій вам не потрібна міць складних компільованих скриптових мов; замість цього вам потрібна можливість запитати скриптовими систему, яку дію виконується, і які параметри дії повинні використовуватися при виконанні ігрової функції. Саме чудове в цьому методі те, що замість написання рядків коду, що визначають проста дія, ви посилаєтеся на дії і їх параметри за допомогою чисел.
Для прикладу скажемо, що дії Play Sound відповідає номер 4, і дія вимагає єдиного параметра - номера відтвореного звуку. В скрипті вам буде потрібно зберегти тільки два числа: одне для дії, і одне, що представляє звук. Використання чисел для подання дій (замість тексту) робить обробку скриптів такого типу швидкою і простою.