<<<предыдущий список следующий>>>

Это - копия документа, находившегося на http://dz.ru. Авторские права, если не указано иначе, принадлежат Дмитрию Завалишину и/или Евгении Завалишиной. Все изменения, внесенные мной, находятся в этой рамочке.Пожалуйста, прочитайте disclaimer.


13 октября 1998 года

1sm.jpg (22153 bytes)Все же, раз за разом я убеждаюсь в том, что Id не создан для того, чтобы свои энджины применять на практике. Quake II, как они не пыхтели, в изрядной мере выглядит местом, которое предназначено для мочиловки и всего лишь поспешно задекорировано под электростанцию, завод, склад или еще какую домушку. Не живут тут люди (звери, птицы, алиены) и не работают. Они тут телепортируются на голову несчастного игрока, выламываются к нему из полностью закрытых помещений, где, видимо, зародились из пыли и грязи, и ждут его за углами, за которыми, кроме как ждать его, делать абсолютно нечего. Чтоб кто из них делом занимался - ну там, вселенную захватывал, грязные планы претворял или хоть обсуждал... на худой конец, кушал или брился - так нет же. Патрулировать тюрьму - да. Бриться - нет. Хотя... тут я их понимаю. Сам бороду отрастил, чтоб не бриться.

В общем, сыграл я вечор дему от Half Life. Это игра такая. На базе QII Engine. Если внимательно приглядеться, то это можно даже заметить. А так - совершенно неочевидно. Квейковского в ней так мало, что просто ой. Игра на первый взгляд по большинству параметров превосходит Unreal и, что интересно, Sin, пожалуй, тоже.

5sm.jpg (28417 bytes)Во-первых, наши. Наши в игре сделаны чертовски хорошо. Они ходят, общаются друг с другом и с игроком, жмут кнопки, охранники открывают двери, если можно, и посылают, когда нельзя, а в бою могут прикрывать героя огнем по его просьбе. Из-за этого игра выглядит настолько живо, что словами не передать! Категорически новое для меня ощущение - оно там все живет! Ты там - не пуп земли а всего лишь еще один, хотя и довольно важный, элемент картины.

Пример. В самом начале действия я должен пролезть по лестницам на платформу и выйти на этаж. Лезу, падаю, снова лезу, выхожу - лежит мертвый охранник и на меня наезжает монстр. Из оружия - монтировка. Отовариваю монстра чем попало, вылезает второй. Убеждаю той же монтировкой и его, после чего выясняю, что у мертвого охранника можно было взять пистолет. Тут мне становится обидно, что я их тут железкой колбасил, когда можно было пулей, и я загружаюсь с сейва. Снова лезу по лестницам, на сей раз быстрее. Вылезаю - стоит живой охранник и со спины к нему подбирается монстр. Бью монстра, охранник присоединяется ко мне, стреляя по гадам, и в итоге боя мы оба живы. Правда, я остался без пистолета, но что уж поделать. :-) Зато он меня потом защищал. :-)

Это - деталь, но таких - кучи. И они работают на реализм со страшной силой. На него же пашет тот факт, что уровней больше нет! Переходы между фрагментами ощущаются, как задержка на несколько секунд, но действие не прерывается, монстр бежит за тобой, кинутая в следующий уровень граната в нем и взорвется - в общем, красота.

4sm.jpg (28199 bytes)И в частности - красота. Дизайнеры уровней не халявили, размах впечатляет. Да чего говорить - только одно вступление, в течение которого игрок едет на работу в эдакой люльке-поезде, занимает огромное пространство и проработано чрезвычайно хорошо. К примеру, на скриншоте справа - шагающий робот, который занимается своими делами, деловито топая с грузом, пока вы проезжаете мимо. Весьма неслабая модель, труд - тот еще. И все - ради десятисекундного фрагмента вступительного "мультика". Который, конечно, не мультик, а сценарий. То есть ничем от самой игры не отличается. Просто вы не в состоянии повлиять на процесс ввиду запертости в кабине поезда.

8sm.jpg (29382 bytes)Еще один весьма удачный ход - обучаловка. Обычно игрок вынужден познавать способности своего аватара на практике. Прыгаем через все, узнаем, на сколько прыгается. Жмем кнопки так и сяк - узнаем, как рулить. В Half Life вам выдают голографическую мадам-учителя, которая рассказывает, как и что в этой игре делается - прыжки, нырки, плавание, общение с другими персонажами - в общем, полный курс владения собой. Простенько все, но, на практике, избавило меня от сомнений и метаний - я точно знал, где и как надо себя вести в плане управления и выбора направления движения. Тут допрыгну, тут нет, тут надо сваливать, а тут - гранату кинуть. Второе, между прочим, не так тривиально, как в кваках. Граната весьма своевольна в смысле отражений от стен и попасть ей нелегко. Зато как жахнет - мало не покажется.

2sm.jpg (35151 bytes)К минусам игры, унаследованным от квейка, следует отнести нелюбовь к открытым картам. Тут Half Life проигрывает Unreal-у, факт. Но это не очень бросается в глаза - дизайнеры потрудились на славу. К примеру, вот вам открытый фрагмент - невелик, но с вертолетом. Кстати, в Half Life вы можете водить транспортные средства. Обучаловка включает в себя краткий курс вождения поездов, например. Имеющаяся часть игры, впрочем, попользоваться умением случая не дала, но все равно приятно. Между прочим, одно из правильных свойств - объекты можно не только толкать, но и оттаскивать. Это - по честному, это мне нравится.

6sm.jpg (28922 bytes)О монстрах. Умны. Любят и умеют жить сами и не давать жить мне. То есть быстренько сваливают за угол, если не могут справиться, и пытаются стрелять из укрытия! Что, опять же, очень жизненно.

Между прочим - оружие требует перезарядки, и это правильно. Честно. При стычке с сильным противником это привносит остроту в сражение, да и вообще - такова жизнь. Оружие надо перезаряжать.

И винты надо перезаряжать. Новыми играми. :-) Вот выйдет полностью - куплю. Понравилась.

Прочитав про мои "два часа и приложеньице готово" наш читатель Алексей Аристов навел критику, которую предлагаю на ваш суд:

   
Конечно, тот факт, что без всякой подготовки за 2 часа можно написать приложеньице, не может не радовать. Это здорово! Но, на самом деле, все это имеет крайне неприятную обратную сторону. Такая легкость и скорость совершенно не стимулируют программиста, особенно молодого и неопытного, к построению хорошего дизайна программы, которую он пишет. Понятно, что дело не в инструменте. Хорошо писать можно, пользуясь достаточно примитивными средствами и, напротив, используя наипоследнейшие достижения программерской мысли, можно так ничего толкового и не сделать.

Основная идея всех RAD средств - дать возможность разработчику сэкономить время на технических деталях реализации. Дать ему возможность концентрироваться на том, что называется "problem domain". В основном вся экономия сводится к предоставлению разработчику высокоуровневых средств интерфейса с пользователем. Это похвально, но, так или иначе, большинство приложений состоят из двух компонент - пользователького интерфейса и, собственно, прикладной части. Этой прикладной частью может, например, являтся организация хранения отображаемых данных, особенно если они имеют сложную структуру, или обработку этих данных.

Сочетая неопытного разработчика и RAD средства, можно легко получить программу, которая красиво выглядит, но совершенно никуда не годится во всех остальных отношениях.

Теперь вопрос: что произойдет, если такой продукт попадет к человеку, принимающему решение о его покупке? Правильно! Ничего не понимающий начальник купит то, что красиво выглядит, а в результате в мире появится еще одно нечто, именуемое "кривой программой". Мои поздравления!

А что бы было, если бы RAD средства не существовало? Я думаю, что у нашего бедняги просто ничего бы не вышло и никакого продукта бы не появилось. И порядка в и не без того хаотичном компьютерном мире было бы немного больше.

Резюме: Средства, позволяющие программировать быстро мы имеем, а как должны выглядеть средства, позволяющие программировать красиво?

 

Тут я бы сделал три комментария.

1. Если в мире есть спрос на красивое дерьмо, предложение красивого дерьма будет высоким как бы его ни писали - с тулзами ли, с палками и веревками...

2. Тот инструментарий, что от Inprise, конечно, облегчает (традиционно) работу с пользовательским интерфейсом. Но и работу с данными - тоже, и еще как. Это я не к тому, что другие инструменты этого не умеют, а к тому, что данный точно не ограничен кнопками и менюшками. Я мельком глянул только ту его часть, что предоставляет доступ к базам данных, а ведь есть еще Corba...

3. Средства, позволяющие программировать красиво, должны выглядеть именно так, как они и выглядят - два уха, нос, etc. :-)

moscow-future.jpg (30667 bytes)Если вас интересует судьба московского метро, то приготовьтесь выкачать карту размером в без малого 800К. На ней столько линий, что разбегаются глаза. Говорят, все это будет построено до 2030-го года.

Справа - попытка взять картину крупным планом, оценить планов громадьё. Надо сказать, что метростроевцы у нас - народ нетривиальный, и из структуры планируемых линий видно, что это однообразие структуры (кольцевая - по кругу, радиальная - поперек) им явно наскучило. Метро будущего будет изобиловать нетривиальными связями между ветками, а местами, вероятно ветки даже будут частично сливаться, используя общие перегоны. А уж ветвление на концах линий будет просто общим местом.

В 2030-м. Может быть.

К недавнему обсуждению цен на flash: в прайс-листе фирмы "Портативные Системы" нашел 48 Мб по $290, порядка $6 за мегабайт. Не фонтан, но и не смерть всему. Вот только для меньших объемов удельная цена уже не та, и достигает $11/Mb за десятимеговую карту.