Романтика GameDev'а(Начало в № Здравствуйте снова, уважаемые. Сегодня мы продолжим говорить о разработке игрушек, игр и игрищ, и, пожалуй, после сегодняшней статьи сделаем в этом разговоре небольшой перерыв. А может, и большой - там посмотрим по обстоятельствам. А пока что в качестве финального аккорда к балладе о GameDev'е расскажу о быстрой разработке игр. Вообще, конечно, RAD (Rapid Application Development - быстрая разработка приложений) и GameDev совместимы с собой довольно ограниченно. Потому что специфика разработки игр состоит в том, что, помимо программирования, очень много времени и сил требует работа дизайнеров и звукорежиссеров, которые делают визуальный и звуковой облик игры. Однако с точки зрения программиста RAD-GameDev очень даже возможен, и тут на помощь разработчику приходят не только готовые движки, но и различные специализированные инструменты для разработки игр с быстрой графикой. Естественно, говорить мы будем именно о них, поскольку быстрая разработка сапёров и пасьянсов - это уже совсем другой разговор, лежащий больше в области учебников по Delphi. Чтобы не расписывать долго в общем, какими бывают среды для быстрой разработки игр, расскажу о них на конкретных примерах.
Интересный подход к быстрой
разработке игр предлагает продукт
компании Conitec под названием 3D Game Studio
( По словам производителя, 3D Game Studio имеет гигантское количество поставляемых вместе с программой моделей, текстур, готовых уровней и прочего. Ну, гигантское или нет, это уже вопрос выбора прилагательного, но их присутствует некоторое количество. 3D Game Studio привлекательна для ленивых людей тем, что можно создавать игры, даже не занимаясь программированием. Конечно, при этом Вы вряд ли получите что-то, что можно будет без зазрения совести назвать шедевром, но вполне качественный шутер можно создать и используя только готовые скрипты из поставляемой вместе с программой библиотеки. Однако, конечно, всех возможностей движка вы тогда из своей игры не выжмете. Скрипт WDL, применяемый при разработке игр в 3D Game Studio, похож на C++ и даже часто называется своими авторами C-Script'ом. От полноценного C++ он отличается невозможностью определения новых структурных и объектных типов, а также существенно упрощённой работой с указателями. Однако, как пишут разработчики 3D Game Studio, с помощью плагинов на "полноценном" C++ (или не менее полноценном Delphi) можно гораздо лучше создавать более интересные вещи. Но 3D Game Studio - далеко не единственная игровая среда, имеющаяся на рынке. Поэтому не думаю, что стоит писать только о ней. Переходим к следующему RAD-инструменту для создания игр.
Если предыдущая среда разработки игр позволяет создавать их, не написав собственноручно ни единой строчки программного кода, то с Blitz3D такой номер уже не пройдёт. Потому что работа с этим инструментом заключается именно в написании программного кода - пусть даже и не на пугающем новичков C++, а на одном из диалектов Basic'а. Найти этот продукт можно в
Интернете по адресу Для тех, кого впечатлила предыдущая статья из серии "Романтика GameDev'а", хочу сообщить приятную вещь: существует кросс-платформенный вариант этого средства разработки, который называется BlitzMax. Язык в BlitzMax несколько отличается от того, который используется в Blitz3D, в сторону чуть большей сложности. В нём присутствуют динамические массивы, указатели на функции, ООП в виде наследования и полиморфизма объектов, различные числовые типы переменных. Работают игры, созданные с его помощью, под управлением операционных систем Windows, Linux и MacOS X. Правда, в отличие от его чисто Windows'кого собрата Blitz3D, его движок работает на основе OpenGL. Что, в общем-то, для кросс-платформенного движка вполне естественно. Типичный программный код на Blitz'овском Basic'е выглядит следующим образом: Repeat ; Allow the user to switch to wireframe mode. If KeyHit(17) Then wire = Not wire WireFrame wire ; Move the camera around RotateEntity campiv,Sin(ll#)*10,ll#,0 ll# = ll# + 0.2 PointEntity camera,campiv ; Terrain Detail level If KeyDown(26) Then curdetail = curdetail - 10 If KeyDown(27) Then curdetail = curdetail + 10 TerrainDetail water,curdetail,True ; Here we itterate through all the cells on the terrain grid (switch wireframe on to see them) and then make them simply bounce up and down. For z = 0 To WATER_GRID_SIZE-1 For x = 0 To WATER_GRID_SIZE-1 hite# = Sin(WaterY(z,x)) ModifyTerrain water,x,z,Abs(hite#/2)+.5,False WaterY(z,x) = WaterY(z,x) + 1 Next Next ; Update the world stuff UpdateWorld RenderWorld ; Print some simple details on screen. Text 0,0,"W = Wireframe Toggle" Text 0,12,"LOD = [ and ] (" + curdetail + ")" ; Flip display Flip Until KeyDown(1)Поскольку код (я взял его из примеров, идущих в стандартной поставке Blitz3D) снабжён комментариями, хотя они и на английском языке, подробно на нём останавливаться не будем, он здесь просто как иллюстрация того, каков язык, используемый в Blitz3D. Однако, как бы не был хорош Blitz3D, я всё же хочу рассказать ещё об одной среде разработки, самой, пожалуй, мощной, но одновременно и самой простой, и при этом, однако, самой непонятной в сегодняшнем обзоре.
Почему я говорю, что эта среда
разработки самая простая? Потому
что в ней можно создавать игры, не
программируя. Хотя на самом деле
сами разработчики, EON Reality ( Как и в случае с 3D Game Studio, разработка начинается с того, что где-то как-то создаются модели, которые после импортируются в среду разработки. Только в EON Studio, в отличие от первой программы обзора, нет собственного редактора моделей. Далее все возможные манипуляции с трёхмерными объектами производятся либо с помощью "интуитивно понятного графического интерфейса EON Studio" (цитата из справки к программе), либо с помощью скриптов и плагинов. Однако, в отличие от 3D Game Studio, EON Studio может взаимодействовать с различными приложениями через ActiveX, то есть приложения, созданные в EON Studio, могут управляться другими через эту технологию. Почему же, представляя EON Studio, я сказал, что это в сегодняшнем обзоре самая непонятная среда? Все дело в первом взгляде на "интуитивно понятный интерфейс" (как уже надоел этот штамп, используемый разработчиками!). Взгляните на скриншот. Большой список с иконками в правой части окна приложения содержит в себе разные структуры, которые как раз и управляют поведением объектов в сцене. Что получается при визуальном конструировании взаимодействий между объектами, можно представить, взглянув на левую часть окна, где объекты отображаются в виде прямоугольников со значками, а связи между ними - стрелками. При этом объектов, как и связей, может быть очень много, так что в них не так уж и сложно запутаться. Поэтому, на мой взгляд, такой способ разработки игр сопряжён с изрядными неудобствами. Вообще-то, мне EON Studio этим
напомнила High Assembler - среду
разработки, которую российские
программисты написали для того,
чтобы "каждая кухарка могла быть
программистом". Я, кстати,
когда-то уже Что касается таких моментов, как качество движка, то тут по моим личным впечатлениям разработчикам есть над чем работать. Но, с другой стороны, Eon Studio ведь не только для игр, а для других задач, быть может, и нет необходимости в различных эффектах. Таким образом, подводя итоги, можно сказать, что EON Studio и 3D Game Studio подходят больше всего тем, кто хочет обойтись без программирования, а Blitz3D - тем, кто не хочет изучать C++ и довольствуется Basic'ом. Однако, поскольку я обещал
сделать перерыв в статьях по GameDev'у,
хочется сказать ещё несколько слов
на тему разработки игр вообще.
Надеюсь, мои рассказы обо всяких
сложностях не отбили у вас охоту к
этому увлекательному процессу. В
помощь тем, кто не потерял
энтузиазма, дам несколько ссылок.
Во-первых, обращайтесь к сайту Вадим СТАНКЕВИЧ
Чтобы разместить новость на сайте или в блоге скопируйте код:
На вашем ресурсе это будет выглядеть так
Поговорим о разработке игр: RAD-GameDev
|
|