Творец. День нулевой. Подготовка

Почти каждый программист хотя бы раз в жизни пробовал написать игру. Трэш или идеал. Экшн или стратегию. Главное – свою. Собственную. А на чём лично вы пробовали её написать?

На самом деле я с одинаковой уверенностью могу рекомендовать для создания игр и Turbo Pascal, и C++, и Dark Basic, и Flash. Поверьте, свои плюсы имеет каждая среда программирования/разработки. И споры на тему «что лучше» будут длиться бесконечно. Я буду, как всегда, субъективен: лучший выбор для клепания игр – Delphi+GLScene.
Если вы сейчас утвердительно киваете головой, то – подождите немного. Для начала я хочу поведать всем остальным о…

На сцене OpenGL
GLScene – это движок с открытым кодом, созданный для Delphi. Скачать его можно на sourceforge.net или взять из старых номеров Игромании. Точно есть в номерах за декабрь 2004—октябрь 2005. Итак, после скачивания имеем архив, содержащий всё, что необходимо: package для всех версий Delphi, исходный код движка, демонстрационные программки, документацию, утилиты и т.п. Допустим, у вас установлена Delphi 7. Для установки движка держите открытыми две папки: GLScene/Delphi7 и каталог с Delphi. В папке с движком заходим в Source и ищем GLScene.inc. Найдя – копируем его в папку GLScene/Delphi7. Не выходя из неё, запускаем GLScene7.dpk. В появившемся окне жмём сперва Compile, затем – Install. Если компилятору всё понравится, появится сообщение об установленных компонентах (возможно, ему что-то не понравится: к примеру, запросит какой-то файл – найдите его в папке с движком и скопируйте в папку с GLScene7.dpk). Кроме этого сообщения, в папке GLScene/Delphi7 и GLScene/Source можно обнаружить множество файлов с расширением dcu. Не стесняйтесь – просто введите в поиске маску *.dcu и скопируйте все найденные файлы в каталоги Delphi7/Lib и Delphi7/Imports (проще добавить путь к папке с этими самыми dcu-файлами в библиотеку: пункт меню «Tools – Environment Options», вкладка «Library»). Ну что ж, пора посмотреть на наш новоиспечённый движок. Запускаем Delphi и создаём новый проект.

Творец готов
Листаем палитру компонентов до конца – как видите, у нас появились новые вкладки: GLScene, GLScene PFX, GLScene Utils и GLScene Shaders. Идём на вкладку GLScene и перемещаем на форму компоненты: GLScene (белый куб), GLSceneViewer (куб с камерой) и GLCadencer (красный метроном). Само собой, по любому компоненту можно щёлкнуть и изменить его свойства. Выбираем GLCadencer, переходим на свойство Scene и в списке выбираем GLScene1. Затем два раза щёлкаем по GLScene1. Появится окно, в котором можно управлять объектами, эффектами и прочим. Выбираем в списке Cameras и щёлкаем по кнопке в виде серого фотоаппарата – у нас появился объект GLCamera1. Теперь поменяем свойство Camera у GLSceneViewer – просто щёлкнем по пустому полю рядом со свойством и выберем GLCamera1. Также изменим свойство Align на alClient. В GLScene Editor (двойной клик по GLScene1) выберем строчку SceneObjects. Теперь доступна кнопка AddObject. В открывающемся списке выберем Basic geometry/Sphere.
Все объекты GLScene также отображаются и в окне ObjectTreeViewer среды Delphi. Находим там GLSphere1 и меняем его свойство Position.Z на 2. Теперь сфера отображается на форме. Также добавляем объект LightSource. Указываем значение 20 для Position.Y. Теперь все объекты будут освещаться. Думаю, вы уже немного освоились. Попробуем теперь на сферу наложить текстуру. Для этого надо поменять свойство Material.Textrure.Disabled на False и указать в свойстве Material.Texture.Image нужную картинку.

Куда теперь
Совет, который я могу дать по изучению GLScene, прост: экспериментируйте. Попробуйте, к примеру, поменять все числовые свойства у GLSphere1. Или добавьте новые объекты из других вкладок. Чтобы у вас разгорелся аппетит к движку, запустите демки из папки Demos, посмотрите свойства объектов, которые вас заинтересовали. Попробуйте самостоятельно создать что-то подобное.
Следующая моя статья будет более конкретной. Без всяких вопросов теории гэйм-девелопинга, которыми занимался Иван «ZEVS» Зыков (см. «МБ» №48’2006, 50'2006), мы начнём писать свою собственную игру (что, снова заиграло самолюбие и энтузиазм?). Начнём с обычного 2D-платформера и шаг за шагом будем усложнять наш игродельный процесс. Ах да, не забывайте, что индустрия компьютерных игр спокойно проживёт и без вашей игры, поэтому в свой проект вам придётся вложить максимум усилий и оптимизма. Домашнее задание: создайте папку с гордым названием «Моя игрушка!» и накидайте туда кучу файлов с названиями типа «Не открывать!», «Не влезать!», «МОЁ!» и т.п.


Рекомендуем почитать: