Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Професиональное программирование


Информационный Канал Subscribe.Ru

Здравствуйте.

Представляем нового автора LogRus.

На мой взгляд, у него прекрасный талант, кроме того - перевод - дело очень не простое.
Читайте его первый опыт.

Введение в Lua

Ash Matheson

Введение

Недавно мой близкий друг ходил на собеседование в компанию по разработке игр. Я не собираюсь называть здесь имена, но давайте, скажем , что они – большая компания по разработке игр в Ванкувере. Само собой разумеется, он не получил работы, но это – уже другая история. Однако, я полагаю, что одна из причин, почему он не получил работу, была в его недостаточном знакомстве с языком сценариев, который они используют называемый Lua. Что касается меня, то я преподаю студентам, как быть игровыми программистами, и скрипты - тема, которой я не уделял достаточно внимания в прошлом. Мы рассматриваем скрипты Unreal, как часть курса по использовании существующего механизма, но фактически не рассматриваем создание механизма сценариев и включения его в инструментарий или движок. Так, вооруженный web-сайтом, я решил сломать этот небольшой барьер. Результат описан в этом документе. Я не уверен только в том, каким длинным будет этот документ. Я могу решить разбить его на несколько частей или написать одну длинную напыщенную речь. Так или иначе, я решу этот немного позже, когда я приведу мои примечания в более интеллектуальный и последовательный формат.
Почему и прочее

Прежде всего, зачем используется язык сценариев? Большинство игровой логики может быть задано сценарием для функциональных возможностей, быстрее, чем кодирование этого как часть движка. Как пример, подумайте о загрузке или инициализации уровня. Когда уровень загружен, возможно, Вы захотите подготовить сцену к игре. Или возможно Вы захотите показать какие ни, будь титры. С системой создания сценария, Вы могли заставлять отдельные игровые объекты делать определенные задачи. Также, подумайте об искусственном интеллекте. NPC (Non-Player Characters) должны знать, что им делать. Задача кодирования каждого NPC вручную, в игровом движке могла бы быть упрошена. Если бы Вы хотели изменить поведение NPC, Вы будете должны перекомпилировать вашу систему. С системой создания сценария, Вы могли в интерактивном режиме изменять поведение и сохранять его снаружи. Я коснулся этой проблемы немного в прошлом параграфе, и я продолжу её немного позже. Вопрос, почему бы не написать всю игровую логику на C/C++? Давайте представим, перспективы программирования, мы начинаем беспокоится о себе и об игровом коде, также как и о движке и инструментарии и … вот, Вы получаете идею. Теперь мы можем, с простым языком сценариев передать эти функциональные возможности проектировщикам уровня. А они могут пробовать и ковырять и оптимизировать игровой процесс. Вот - примеры: Давайте представим что Джой, наш несчастный игровой программист, пишет весь игровой движок, инструментальные средства и игровую логику. Да, Джой - довольно занятой мальчик, но давайте, возложим на него задачу для Геракла. У нас также есть Брендон, игровой проектировщик. Брендон довольно умный парень и имеет очень умную идею для игры. Так, Джой, наш кодер, уходит и осуществляет всю игровую логику, используя инструментальные средства, которые он разработал, основываясь на начальном дизайне Брендона. Все - хорошо в игровом вычислительном центре. И вот первый этап окочен, оба Джой, и Брендон находится в зале заседаний, и следят прогрессом. Брендон обращает внимание на пару проблем в игровом процессе, который не совсем некорректно работает. Так что Джой возвращается к коду, делает изменения и перекомпилирует. Этот процесс может занять день, по крайней мере, если это не тривиальное изменение. Также, в зависимости от внутреннего процесса, Вам, вероятно, придется ждать весь день, пока игровой код будет перекомпилирован. Во множестве вычислительных центров процесс компоновки проходит ночью, и самый последний демонстрационный поток будет сформирован из этого. Так, что мы можем прождать сутки пока, Брендон увидит изменения, которое он требовал. Теперь, давайте представим, что наш главный герой, Джой, решил, что будет в его же интересах, реализовать игровую логику, используя систему сценариев. Это может занять немного больше времени в начале, но он чувствует, что это стоит того, в конечном счете. Так, он выносит часть функциональных возможностей движка в игровую систему сценариев. Он также записывает всю игровую логику в системе сценариев. Так, когда он приходит, на встречу к Брендону, и проектировщик обращает внимание кое на что-то, от чего он не совсем счастлив, Джой открывает консоль, делает пару изменений в сценарии, и повторно запускает игру, чтобы увидеть новое поведение. Изменения могут быть осуществлены немедленно и отображены немедленно, быстрее, чем ожидать перекомпиляции. Кроме того, если Джой был особенно ярок, система сценариев могла бы быть, доступным инструментом проектировщиков уровня во время его формирования. Таким образом, с небольшим переобучением, проектировщики могли бы устанавливать события в игре, подобные триггерам, дверям, внутренние события игры без вмешательства программиста. Это довольно наглядный пример, может быть, он немного преувеличен, но я надеюсь ....

Продолжение

Далее...



Новая книжка C# .NET Web Development Guide

Ну и не забывайте наш Форум

С уважением, Громозека.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное