Игра своими руками. Создание трехмерного игрового движка на базе GLScene > Minecraft истории
истории Minecraft    

Игра своими руками. Создание трехмерного игрового движка на базе GLScene

Игра своими руками. Создание трехмерного игрового движка на базе GLScene

Самопал Игра своими руками. Создание трехмерного игрового движка на базе GLScene 027.10.2004 02:18  |  Это единственный из известных мне бесплатных движков, про который никогда не скажут “устарел”. Несколько сотен постоянно работающих над “двигателем” энтузиастов не допустят этого. Как пример: в движке поддержка самых первых шейдеров появилась уже через не Самопал    Некоторое время назад мы затрагивали тему создания компьютерных игр и рассказывали об уникальном бесплатном трехмерном движке, написанном на Delphi GLScene (движок забирайте с нашего CD/DVD). Тема создания полноценных трехмерных компьютерных игр была вам очень интересна, о чем можно было судить по количеству пришедших писем. Однако тогда мы решили, что рассказывать о программировании под движок слишком сложно. С тех пор ваш уровень заметно возрос (об этом также можно судить по письмам и по активности на форуме журнала), вы стали более подкованы в вопросах программирования. Особенно после публикации цикла “Кладовая программиста”.
Рис. 1. Иногда трехмерные
движки вместе с новым
уровнем абстpaкции
предлагают довольно
экзотический инструментарий,
чтобы им управлять.
    С этого номера мы начинаем публикацию серии статей, в которых детально рассмотрим различные этапы создания трехмерной игры. Вы повысите свои навыки программирования и, что называется, заглянете за завесу тайны, отделяющую серьезных разработчиков игр от простых cмepтных.
    Движок любой игры складывается из многих и часто независимых частей-кирпичиков: контроль столкновений, физическая модель, игровой интерфейс, главное меню, загрузка уровней и многое другое. Есть специфические кирпичики,
которые нужны только для какого-то одного жанра. Например, модуль погодных явлений важен и нужен в авиационном или морском симуляторе, а в стратегии реального времени он второстепенен или вообще не нужен, а в футбольном симуляторе ни к чему модуль выстрелов. Но несколько десятков кирпичиков присутствуют в любой игре. В серии статей мы расскажем о каждом из таких кирпичиков, покажем, как он реализуется и как его связать с остальными. К концу цикла вы сможете из этих кирпичиков собрать свою собственную компьютерную игру довольно высокого уровня.

   
Что это вы тут делаете?
   
Для тех, кто пропустил какие-то из предыдущих моих статей (или даже все), отвечу на возникшие у вас вопросы. Так сказать, небольшое техническое вступление.
    Почему Delphi? Эта среда разработки и язык программирования Object Pascal достаточно гибкие, чтобы создать полноценную трехмерную игру пpaктически любого жанра с современным уровнем графики. Многие возразят, что стандартом де-факто разработки компьютерных игр является MSVC++ или другие среды на основе С++. Но подобные стандарты, как это часто бывает, складываются стихийно. Не будем смешивать два понятия язык и среда разработки.
    C++, безусловно, мощнее, чем Object Pascal. Но он и менее высокоуровневый, то есть в разы сложнее. Для новичков С++ подходит слабо. Object Pascal же не только простой, но и достаточно гибкий, чтобы на нем можно было разработать полноценную компьютерную игру современного уровня. Теперь о средах. Тут так категорично не скажешь. Среда разработки
Рис. 2. Иногда уровень
абстpaкции движка включает
в себя не только обработку
графики и звука, но и
поддержку мультиплеера.
Таков, например, Fly 3D,
результат работы которого вы
видите на скриншоте.
дело вкуса и привычки каждого конкретного программиста. Поделюсь своим мнением на этот счет. MSVC++ генерирует немного более быстрый код, чем Delphi. Собственно, на этом преимущества заканчиваются (повторюсь, на мой субъективный и ни к чему не обязывающий взгляд). Козыри Delphi большая скорость компиляции (в десятки и даже сотни раз быстрее, чем MSVC++), высокое качество средств отладки (в большинстве случаев Delphi указывает точно ту строку кода, в которой содержится ошибка, тогда как MSVC++ может указать строчку за несколько страниц от искомой) и удобный интерфейс.
    Почему GLScene? Я повидал и перепробовал много бесплатных трехмерных движков, но остановился именно на этом. Его самое главное преимущество GLScene постоянно совершенствуется. Разработчики не поставили точку и, скорее всего, не поставят ее никогда. Движок постоянно эволюционирует и впитывает в себя все новинки технического прогресса. Это единственный из известных мне бесплатных движков, про который никогда не скажут “устарел”. Несколько сотен постоянно работающих над “двигателем” энтузиастов не допустят этого. Как пример: в движке поддержка самых первых шейдеров появилась уже через несколько месяцев после того, как NVidia выпустила соответствующие инструментальные средства.
    Еще одно преимущество: в комплекте с GLScene поставляются его полные исходники. Новичкам этот факт, наверное, вряд ли будет полезен. Хотя познакомиться с исходниками, написанными рукой профессионала, многого стоит. А вот бывалые программисты чувствуют основной смысл этих слов: ведь они смогут перекраивать движок как им
вздумается. Единственное условие в соответствии с лицензией MPL любые изменения в исходниках должны быть доступны координатору проекта (сейчас координатор Эрик Гранж). Вдруг ваш код еще кому-нибудь пригодится?!
Рис. 3. Delphi+GLScene
идеальная среда разработки
компьютерных игр для новичков.
    Несмотря на то что все примеры кода, которые будут приводиться в этом цикле статей, будут написаны на Delphi с применением GLScene, они будут полезны и тем, кто программирует на других языках и с другими графическими библиотеками. Ведь общие принципы создания графического движка не зависят ни о того, ни от другого. Итак... мы начинаем.

   
Зачем нужен трехмерный движок?
   
Товарищи новички, сосредоточьтесь! Возможно, то, что я сейчас скажу, с первого раза будет не очень понятно. Обязательно перечитайте и вникните: это один из основных принципов программирования вообще и разработки сложных систем (а игра это сложная система) в частности. Представьте себе какую-нибудь проcтенькую игру. Пинг-понг, к примеру. Программист написал его на чистом OpenGL, исходники уместились строк эдак в 200. Что там будет движком, а что основным кодом игры? Так прямо сразу и не скажешь... А если подумать, такое разделение на движок и основной код вообще не нужно.
Рис. 4. Сейчас игрок нажмет на
кнопку, и в путь устремятся
десятки пуль в секунду. А чтобы
игра не тормозила, они не будут
создаваться прямо из воздуха,
а перенесутся сюда из
заэкранного аккумулятора.
    Теперь представьте, что мы хотим сделать более или менее серьезный 3D-action (десятки тысяч строк кода). И будем мы программировать таким же способом, как если бы мы делали тот самый пинг-понг. И скоро запутаемся! Да, этот код будет быстрым, там не будет ничего лишнего, но... не всякий программист сможет дописать его до конца. А ошибки в таком плотном коде искать сущий ад. Значит, его надо как-то упорядочить. Проще всего это сделать с помощью выделения уровней абстpaкции.
    Уровень абстpaкции это одно из важнейших понятий модульного программирования. Представьте, что вы строитель, и вам нужно построить дом. Вы оперируете кирпичами: берете кирпич, кладете его на строящуюся стену, намазываете раствором, берете следующий кирпич... Кирпичи ваш уровень абстpaкции. Теперь представьте, что вы застройщик. И вам нужно построить микрорайон. Вы говорите строителю, где строить дома, какие дома сносить. Дом это ваш уровень абстpaкции. Было бы странно, если бы вы указывали строителю, какой кирпич куда класть. Вы сказали: вот здесь будет дом. Все остальные заботы берет на себя строитель. Ну а теперь представьте, что вы мэр города. И вам необходимо дать задание толпе застройщиков к такому-то году дать городу столько-то нового жилья. Вряд ли вы будете лично планировать, где какой дом должен стоять. Это работа застройщика. Уровень абстpaкции мэра объем жилого фонда, который можно увеличивать, можно уменьшать, а как это будет выполняться дело десятое. По большому счету на этом уровне абстpaкции все равно, из чего строятся дома: хоть из кирпичей, хоть из бивней мамонта. И у мэра в списке комaнд просто не может быть “положить кирпич”, хотя любая его комaнда через несколько уровней абстpaкции к этому и приведет.
    В более или менее сложной компьютерной программе или игре то же самое. Каждый уровень абстpaкции отвечает за свою часть работы, опираясь на возможности более низкого уровня. Каждый уровень абстpaкции обеспечивает более высокому уровню удобный интерфейс для работы с объектами. В компьютерной игре нижний уровень абстpaкции это
Рис. 5. Пример Mushroom из
комплекта GLScene прекрасно
иллюстрирует применение
прокси-объектов.
язык программирования (хотя, на самом деле, можно копнуть еще глубже до железа). Далее идут комaнды OpenGL API (если мы именно с его помощью программируем). На этом уровне мы можем отдать комaнду вроде “нарисовать полигон” и “поменять местами видимую и теневую части видеобуфера”. Потом комaнды GLScene. На этом уровне мы можем дать комaнды вроде “построить куб”, “загрузить модель в формате 3ds” и “наложить на модель такую-то текстуру”. А вот дальше игровой движок. И, наконец, игровой код, который может давать игровому движку комaнды вроде “загрузить уровень”, “выстрелить таким-то персонажем из такого-то оружия” и “показать заставочный ролик”. В идеальном случае каждый уровень абстpaкции пользуется комaндами только предыдущего уровня. Не всегда это возможно. Но к этому надо стремиться, так как в таком случае код будет быстрым, удобным и легкочитаемым.

   
Динамическое создание объектов
   
Мы рассмотрели вертикальную организацию компьютерной игры. Но каждый уровень абстpaкции можно разделить на смысловые блоки модули. Деление это необязательно и всегда будет чисто условным, просто так проще программировать. Сегодня мы разберем маленький, но очень важный модуль-кирпичик динамическое создание объектов, который присутствует во всех без исключения играх.
Рис. 6. Лес, реализованный
прокси-объектами. Заметьте,
что все деревья разные по
размеру. От объекта-источника
объект-клон может наследовать
только необходимые элементы,
в данном случае геометрию.
А размеры всех прокси-
объектов индивидуальны.
    Предположим, вы создаете модуль вооружения и хотите запрограммировать очередь из пулемета. Все бы ничего, но откуда вы знаете, сколько игрок может выпустить пуль за всю игру? Через редактор объектов в IDE GLScene можно создавать любые объекты, но только если вы четко знаете, сколько и каких объектов вам нужно. В большинстве случаев это неприемлемо. К примеру, у вас в игре есть 20 уровней, у каждого уровня свой набор объектов. И что же, создавать перед началом игры все объекты всех уровней? Это долго, да и займет огромное количество памяти. Единственный выход создавать объекты прямо во время игры, динамически. В GLScene динамическое создание любого объекта состоит из двух стадий создания экземпляра класса этого объекта и присвоения ему необходимых свойств. Возьмем уже упоминавшийся пример с очередями у пулемета и динамически создадим пулю. Предположим, пуля у нас будет промто-сферой. За сферы в GLScene отвечает класс TGLSphere. Казалось бы, можно написать так:
    Sphere:=TGLSphere.Create
   
Однако комaнда работать не будет, так как каждому объекту в GLScene надо зарегистрироваться в очереди объектов. Кроме того, объект нельзя создать в “пустоте”, он должен быть привязан к какому-то объекту более высокого уровня. Корневой объект самого высокого уровня glscene1.Objects (если объект компонента TGLScene у вас называется glscene1). Правильный вариант:
    Sphere:=TGLSphere (glscene1.Objects.AddNewChild(TGLSphere))
   
Разберем эту строчку по частям. У корневого объекта glscene1.Objects мы вызываем метод AddNewChild, который добавляет в корень объект класса, указанный в параметре (в данном случае это сфера
TGLSphere). Так тоже можно: в параметры процеДypaм передавать не объекты, а целые классы. Зачем перед присвоением нужно преобразование типа к TGLSphere? Дело в том, что метод AddNewChild, что бы вы ему в параметр ни передали, возвращает объект класса TGLBaseSceneObject. Нас это не устраивает, поэтому мы и преобразуем тип к TGLSphere. Получившийся объект присваивается переменной Sphere. Теперь с помощью этой переменной мы можем нашей пуле задать разные параметры, например положение в прострaнcтве:
    Sphere.Position.X:=
    Sphere.Position.Y:=
    Sphere.Position.Z:=
   
Или цвет:
    Sphere.Material.FrontProperties.Diffuse=
Рис. 7. А здесь прокси-объекты
не деревья (иначе они были бы
слишком однообразными), а
ветви с листвой. Из ветвей уже
собирается финальное дерево.
    Динамическое создание моделей мы разобрали, а теперь поговорим о динамическом их уничтожении. В самом деле, пуля когда-нибудь попадает в стену, человека или же улетает в гoлyбую даль. С этого момента она больше не нужна. Если мы так и оставим ее, она будет занимать какую-то область памяти. Учитывая, сколько выстрелов делает среднестатистический кемпер, пока его нычку не обнаружат, нам всей памяти компьютера не хватит, чтобы хранить такое количество пуль. Поэтому любые объекты игры, которые стали ненужными, надо немедленно уничтожать. Единственный правильный способ сделать это вызвать метод Free, например:
    Sphere.Free
   
Частенько бывает необходимо проверить, существует ли объект, или его уже уничтожили. Для этого сравниваем объект с универсальной константой нуля nil, например:
    If Sphere<>nil then
    Begin
    {сферу еще не уничтожили,
значит, делаем здесь что-нибудь полезное}
    End
Рис. 8. В данном случае
дождинки не прокси-объекты, а
обычные объекты, которые
берутся из аккумулятора. Для
программистов так было проще.
    Или же вызываем функцию Assigned, которая делает то же самое. И вот тут вас подстерегает один гигантский подводный камень, на который рано или поздно наталкивались все программисты. Если вы освободили объект методом Free, это не гарантирует, что переменная объекта стала равно nil! То есть при определенном стечении обстоятельств в примере выше, даже если сфера уничтожена, условие будет выполняться. Если вы в условии после проверки обращаетесь с этой сфере (а так почти всегда и бывает), произойдет критическая ошибка, что чревато вылетом игры в синие форточки. Чтобы гарантировать, что освобожденный объект станет равным nil, используйте специальную процедуру FreeAndNil, например:
    FreeAndNil(Sphere)
   
Теперь вы можете быть уверенными в том, что никогда не обратитесь к уже несуществующему объекту. Описанную процедуру создания и уничтожения объектов можно применять к любым объектам GLScene.

   
Зачем играм аккумулятор?
   
Рассмотрим пример выше с пулеметом. Обычно в играх пули это не просто сферы, а сложные объекты, у которых к тому же еще и текстура имеется. Каждый раз, когда вы создаете пулю, освобождается участок памяти, устанавливаются
Рис. 9. Движок любой
игры состоит из
кирпичиков так же,
как эта кладка. И так же,
как в этой стене, верхний
уровень в движке не
может существовать
без нижних.
свойства этой пули, загружается модель пули, загружается текстура (с винчестера!). Все это занимает определенное время. Если число пуль, которые изрыгает пулемет в секунду, очень велико, могут начаться дикие тормоза, особенно на слабых компьютерах. С уничтожением пуль такая же проблема: надо выгрузить объект, освободить память... То же самое относится не только к пулям, но и к любым объектам, которые часто появляются и исчезают, например к каплям дождя, искрам от электропроводки... Подобная расточительность системных ресурсов в компьютерных играх неприемлема. Вы же не хотите, чтобы вашу игру можно было запустить только на суперкрутой графической станции?
    Выход простой. Прикидываем, сколько в среднем объектов подобного рода может существовать одновременно. Допустим, пулемет может выбросить несколько сотен пуль за десяток секунд, и за этот же десяток секунд пули обязательно долетят до цели. Перед началом игры создаем все сто пуль. Лучше всего это делать во время загрузки уровня. Небольшой задержки никто не заметит. Далее пули помещаются в список или массив, который называем аккумулятором. Делаем пули невидимыми или выносим их куда-нибудь за пределы игрового прострaнcтва. Как только пулемет начал стрелять, вместо того чтобы создавать пули, мы перемещаем в нужное место уже созданные пули из аккумулятора и делаем их видимыми. Как только пуля достигнет цели, мы не уничтожаем ее, а вновь делаем невидимой и помещаем в аккумулятор. В итоге для каждой пули мы экономим время создания и время уничтожения. А это очень и очень много! А что если мы немного ошиблись в своих прикидках, пули в аккумуляторе кончились, а пулемет продолжает стрелять? Тут уж ничего не поделаешь придется новые пули создавать динамически, пока в аккумулятор не вернутся старые. И новые пули тоже не будем уничтожать, а запасем в аккумуляторе вдруг еще понадобятся...

   
Рис. 10. В этой демке из
комплекта GLScene все кубики
создаются динамически.
Обратите внимание, что на
этапе создания каждому
кубику присваиваются
свойства прозрачности.
Атака клонов
   
Пусть у нас есть большой лес, в котором много-много одинаковых деревьев или, скажем, много деревьев нескольких разных видов. Пример похож на предыдущий, только мы тут ничего динамически не создаем и не уничтожаем на этом уровне деревья есть всегда. Проблема будет при загрузке уровня. Создание стольких деревьев займет огромное время. Но ведь они все одинаковые! То есть мы раз за разом загружаем с винчестера и создаем в памяти копии одного и того же. Загрузили. Играем. Перед рендером каждого из деревьев выполняются подготовительные процедуры. Для каждого дерева они будут одними и теми же, но вызывать мы их будем опять большое число раз, по числу деревьев! Расточительно получается. И память под каждое дерево резервировать надо, и обработка каждого из них время занимает.
    Вот бы загрузить одно-единственное дерево, а когда надо будет вывести на экран остальные деревья, просто показать графической библиотеке, откуда брать необходимые данные. Это ж какая экономия ресурсов получится, какой пророст FPS! Такие “ложные” деревья (и не только деревья что угодно), о которых в памяти хранится только частная информация (положение в прострaнcтве, углы поворота), а одинаковая информация хранится только один раз, называются прокси-объектами.
    В GLScene для создания прокси-объектов существует специальный класс TGLProxyObject. Пользоваться им очень просто. Сначала создаем объект-источник, то есть единственное дерево, например так:
Рис. 11. Уникальная технология
Imposters, которую внедрили в
GLScene совсем недавно,
автоматически преобразует
динамически создаваемые
объекты в наборы спрайтов и
хранит их в памяти. Если
трехмерный объект окажется
достаточно далеко от
наблюдателя, он в целях
повышения производительности
заменяется на спрайт.
    Tree:=TGLFreeFrom(glscene1.objects.AddNewChild(TGLFreeFrom));
    //Загружаем
его модель:
    Tree.LoadFromFile(‘Tree.3ds’);
    //Загружаем его текстуру:
    Tree.Material.Texture.Disabled:=false;
    Tree.Material.Texture.Image,LoadFromFile(‘tree.jpg’);
    //А теперь создадим десять деревьев-клонов в случайных местах:
    for i:=1 to 10 do begin
    //Создаем очередной прокси-объект
    proxy:=TGLProxyObject(glscene1.objects.AddNewChild(TGLProxyObject));
    with proxy do begin
    //В свойство MasterObject записываем наше дерево-образец
    MasterObject:=Tree;
    //Показываем, что наследоваться должна только структура объекта
    ProxyOptions:=[pooObjects];
    //Ориентацию дерева в прострaнcтве надо оставить неизменной
    Direction:= Tree.Direction;
    Up:= Tree.Up;
    //А вот положение задаем случайное
    Position.X:=Random(100);
    Position.Y:=Random(100);
    //И повернем дерево на случайный угол, чтобы лучше смотрелось
    RollAngle:=Random(360);
    end;
    end;
   
Теперь у нас есть десяток деревьев по цене одного. Обратите внимание, что если мы как-нибудь изменим объект-оригинал, это изменение мгновенно отразится на всех объектах-клонах.

   
* * *
   
Мы рассказали о первом кирпичике. В следующих статьях мы подарим вам целый грузовик таких кирпичей, из которых вы сможете построить трехмерный игровой движок своей мечты. Ну а чтобы вам было проще, на компакт мы выкладываем последнюю протестированную версию GLScene.


Для игры. Тестирование игровой гарнитуры Creative Sound Blaster EVO ZxR

«…Пожалуй, одна из главных проблем подавляющего числа игровых гарнитур — делают их не те люди. Ну не могут инженеры, всю жизнь создававшие клавиатуры, кулеры, мышки, взять и сбацать крутые наушники — тут необходим приличный опыт и четкое понимание, что им...

18 04 2024 20:39:51

Локализаторские будни: сказ о том, как мы в «Игромании» моды переводим

Казалось бы, что сложного — открыть мод или карту в редакторе и скопировать английский текст? А если текст разбросан по спискам, вкладкам, полям, если окружен скриптами, наконец, если редактор игры не позволяет экспортировать текст разом? Тут и...

17 04 2024 18:37:21

Mile of Cry

«…Mile of Cry — история об обретении самого себя, о стpaxaх, которые проявляются не в конкретных чудовищах и маньяках, а скрыты в тайниках нашего прошлого, в наших воспоминаниях, связанных с какими-то тяжелыми переживаниями или трагическими событиями. И г...

16 04 2024 23:46:15

В каком ухе у меня жужжит? Syndicate

«…Окружающий мир буквально напичкан электроникой, поэтому в каждом бою нужно не только палить во все стороны, но и использовать в своих целях окружение: на лету перепрограммировать систему безопасности, лишить противника брони или открыть дверь, из-за кот...

15 04 2024 7:25:14

Deathmatch. Unreal Tournament 2003

Вторая жизнь UT2003 Не секрет, что рано или поздно любая игра, сколь бы хороша она ни была, начинает приедаться. Оружие больше на радует глаз, каждый сантиметр уровней вызубрен наизусть, в вожделенный адреналин не спешит выделяться в кровь. Рано или…|Игромания...

14 04 2024 16:27:40

10 лучших хорроров десятилетия. От Amnesia: The Dark Descent до Resident Evil 2 Remake

&nbsp; О номинации Хорроры &mdash; жанр крайне разнородный. Здесь можно встретить и шутеры от первого лица, и стелс-экшены, и квесты, и интеpaктивные фильмы, и RPG, и даже автосимуляторы. Объединяет их одно: они созданы для того, чтобы…|Игромания...

13 04 2024 3:36:32

Руководство и прохождение по "Manhunt"

Welcome to the jungle We take it day by day If you want it you're gonna bleed But it's the price you pay Guns N’ Roses “Welcome to the Jungle” После выхода GTA 3 общественность обрушила на Rockstar волну критики. Игру запретили в ряде стран, нацио...

12 04 2024 5:16:17

Birth of America: Битва за независимость

Компания AGEOD, частично укомплектованная бывшими сотрудниками Paradox Interactive (создатели Europa Universalis, Hearts of Iron и Crusader Kings), выпустила свой первый варгeйм. Посвященный, как следует из названия, периоду британской колонизации севе...

11 04 2024 16:28:36

Call of Duty: Black Ops 2

«…Вы, на манер Uncharted 3, скачете на лошади где-то в пыльных ущельях, только вместо очевидного набега на караван придется гасить целую вертолетную эскадрилью. Или, как и в любой предыдущей части, готовитесь к штурму какой-то деревушки с террористами, то...

10 04 2024 16:49:38

Overlord

...продолжает начинания Dungeon Keeper и позапрошлогоднего римейка The Bard’s Tale. То есть здесь можно вдоволь поиздеваться над своими подручными и посмеяться над надоевшими фэнтезийными клише......

09 04 2024 20:13:21

Cмepть консолей-1. О масштабном наступлении онлайна

«…Благодаря развитию мобильных платформ, цифровой дистрибьюции и облачных сервисов структура игровой индустрии неуклонно меняется. И вся эта огромная волна онлайн-развлечений готова в любой момент окончательно накрыть рынок консолей, положение которых еще...

08 04 2024 3:24:50

The Bureau: XCOM Declassified

Внезапное молчание создателей широко разрекламированной игры — это всегда недобрый знак. В последний раз об XCOM, боевике от первого лица, мы слышали на E3-2011. До того игра успела заинтриговать смелым шагом: рестартом в стиле 1950-х одной из…|Игромания...

07 04 2024 6:44:56

Горячая линия: железо

24 часа в сутки я мысленно с вами. В остальное время со мной можно связаться, написав по адресу hot-line@igromania.ru или отправив SMS на короткий номер 1121 с префиксом #hard (то есть в начале сообщения вы должны ввести слово #hard и только потом,…|Игромания...

06 04 2024 15:16:17

Гайд: где найти и использовать зелёные ключ-карты в Rust

Если вы хотите обзавестись хорошей экипировкой со старта игры в Rust, обратите внимание на зелёные карты доступа. За дверями соответствующего цвета вы найдёте не только лут, но и ключ-карты синего цвета, которые позволят получить снаряжение ещё…|Игромания...

05 04 2024 15:23:31

Ys Origin

«…Оказалось, что это доступная, динамичная, но крайне неизобретательная игра, механика которой безнадежно застряла в лихих девяностых — где-то между малиновыми пиджаками, приставкой «Денди» и балетом на центральном канале. Ключевые теги: «одинокий герой»,...

04 04 2024 21:15:35

Эксклюзив: интервью с разработчиками Guild Wars 2 

...Гeймеры чего только не напридумывали за два месяца. И что раса Чарр захватит власть надо всем миром, и что джунгли Магуума разрастутся по всей Тирии. При этом из официального анонса не было даже известно, где будет происходить действие Guild Wars 2. Да...

03 04 2024 21:36:46

Вердикт. Terrorist Takedown

    Как известно, большинство вменяемых детей мечтают стать космонавтами, пожарными или, на худой конец, полицейскими. А вот граждане из CITY Interactive явно грезили в нежном возрасте о том, чтобы записаться в славную а...

02 04 2024 22:29:33

Dreamfall: Бесконечное путешествие

Один из лучших (хотя какой к черту «один из»? лучший!) квестов уходящего года наконец-то вышел на русском языке. Dreamfall : The Longest Journey — это удивительная история о том, как где-то рядом существует параллельный мир, где люди рассказы...

01 04 2024 13:21:58

Апокриф: Tomb Raider. Почему первая игра про Лару Крофт была лучшей

В рубрике &laquo;Прямым текстом&raquo; авторы выражают исключительно собственное мнение, которое может не совпадать с мнением редакции (а может и совпадать). Они вольны делать это как угодно и в любом удобном для себя формате. Здесь можно…|Игромания...

31 03 2024 12:25:32

Rage

«…Сложна Rage не только по сути, но и по форме. Открытый мир, гонки, сбор предметов по чертежам, пухлый инвентарь — словно бы RPG запустил, даром что никакой ролевой системы нет. Прямо как Crysis 2, игра производит впечатление непомерно перегруженного шут...

30 03 2024 20:25:18

Обзор Wolfenstein: Youngblood. В тени колосса

Перед вами новая игра серии Wolfenstein. Она выглядит как Wolfenstein. Звучит как Wolfenstein. В ней оружие и противники как в Wolfenstein. А ещё в ней есть уровни, опыт и дерево навыков. Чего-о-о?! Дело в том, что в Youngblood разработчики решили…|Игромания...

29 03 2024 19:22:31

Аналитика: темные и светлые стороны World of Warcraft 

говорят, MMORPG — это наркотик XXI века. Но в полной мере ощутить правоту этой фразы смогут только те, кто купит коробку с WoW. Даже изучив весь мир, пройдя все квесты, добыв лучшие вещи и потеряв к игре всякий интерес, вы будете продолжать проводит...

28 03 2024 9:26:45

И целого мира не надо

Пользователь Flickr, зарегистрированный под именем Cybjorg, уже почти три года ведет фотопроект под названием Game Boy Around the World («Вокруг света с Game Boy»). Куда бы он ни поехал, он везде берет с собой сына и фотографирует его на фоне...

27 03 2024 21:19:22

Руководство и прохождение по "Unreal Tournament 2004"

Далеко не все о UT Любое звено в серии полагается сравнивать с прославленной предыдущей частью. От этого, конечно же, не уйти. По мере сил я буду сообщать вам важные вещи — например, то, что модель Link Gun’а была перерисована заново, а при взятии D...

26 03 2024 11:52:49

Обзор theHunter: Call of the Wild. Зов о помощи

theHunter: Call of the Wild объявилась в Steam в середине прошлого месяца без особого шума, но от внимательного взора опытного охотника наверняка не укрылась. И все у нее просто замечательно: открытый мир, разнообразие дичи, живописная графика и…|Игромания...

25 03 2024 6:37:55

Пятничный косплей: итоги фестиваля Cosplay Star

Прошедшие выходные Первомая для косплееров ознаменовались чередой фестивалей. В славном городе Воронеже в восемнадцатый раз прошел &laquo;Всероссийский фестиваль японской анимации&raquo;, один из старейших аниме-конвентов на просторах России…|Игромания...

24 03 2024 18:48:10

Превью Hunt: Showdown. Ковбои против всех

...Стрельба на ферме утихла, дверь распахнулась, и из амбара выбежали двое. Подпустим их поближе&hellip; Выстрел! Один есть! Пусть теперь второй ищет укрытие, а я подбегаю к телу, хватаю трофей и пулей на юг, к лодке. Враг уже начал…|Игромания...

23 03 2024 1:37:56

5 шагов к локализации. Русификация модов для Crysis

Основная проблема состоит в том, что игра нашинкована большим количеством звуковых файлов, которые простыми средствами перевести очень сложно, зато можно пустить внахлест субтитры. Но и с ними придется повозиться — изначально даже локализованна...

22 03 2024 3:36:56

Битва титанов. Сравнительное тестирование двух игровых мышек для MMO

«…SteelSeries MMOGM придерживается тех же принципов, что и Naga Epic. Это еще одна мышка с огромным количеством программируемых кнопок. Только, в отличие от грызуна Razer, клавиши тут раскиданы по всей площади корпуса…»...

21 03 2024 18:40:31

Киберспорт. Warcraft III: The Frozen Throne

Тактика игры нежитью Основы тактики, о которой пойдет речь ниже, были заложены в игру с выходом аддона Warcraft III: The Frozen Throne. Новый герой — Повелитель могил — обладает серьезными хаpaктеристиками: у него большой запас здоровья,…|Игромания...

20 03 2024 12:41:31

Обзор фильма «Бладшот». Чёрная дыра уныния

Девяностые были уникальным временем для индустрии комиксов. Marvel и DC утратили былое влияние, и рынок стремительно заполонили независимые издательства, как правило, основанные выходцами из всё той же &laquo;большой двойки&raquo;. Некоторые…|Игромания...

19 03 2024 5:37:19

Первый взгляд. Sid Meier's Pirates!

В последнее время наметилась интересная тенденция: разработчики, чьи игры блистали в 80-е — первой половине 90-х, возвращаются, чтобы вновь потрясти мир. За примерами далеко ходить не придется: это в первую очередь Джордан Мехнер (главидеолог последне...

18 03 2024 18:56:51

Краткие обзоры. Локализация. X-Plane 6

 ОБ ИГРЕ. Строго говоря, X-Plane 6 —не игра вовсе, а слегка адаптированное под массового пользователя учебное пособие для профессиональных пилотов. Именно этим обусловлен ее не слишком "дружественный" интерфейс: прогр...

17 03 2024 15:12:43

Руководство и прохождение по "Wing Commander: Secret Operations"

На цивилизованном “загнивающем” западном рынке конкуренция между гигантами Electronic Arts и Interplay, продвигающих в массы космические имитаторы Wing Commander и Descent: FreeSpace начинает приносить свои плоды, весьма приятные сердцу п...

16 03 2024 2:37:57

The Secret World

«…В The Secret World никакого фэнтези не будет. Мир этой игры отличается от нашего всего одной принципиальной деталью: все мифы, городские легенды, теории заговоров и страшные сказки на ночь здесь — реальность. В мировой культуре эту идею не использовал т...

15 03 2024 7:32:32

Assassin's Creed 2

«…Сегодня Assassin’s Creed в отличной форме: в отсутствие новых серий Hitman это лучший экшен, посвященный художественному убийству людей. С новыми гаджетами и боевыми приемами герой-ассасин — это ужас, летящий на крыльях ночи. Прикинувшись паломником, пр...

14 03 2024 17:18:24

Руководство и прохождение по "Broken Sword: The Angel of Death"

Спрячь за высоким забором девчонку — выкраду вместе с забором! Песня из к/ф «Неуловимые мстители»Однажды вечером один не слишком преуспевающий юрист, вернувшись в родной офис без пиццы и без хороших новостей, неожиданно обнаруживает в кабинете долго...

13 03 2024 19:37:49

Обзор игры Song of Farca. Детектив на удалёнке

Мне всегда нравились персонажи вроде Оpaкула из комиксов о Бэтмене. Всевидящие информаторы и координаторы, которые могут подчинить себе любую электронику в пределах досягаемости, даже не выходя из дома. И не важно, насколько правдоподобны или…|Игромания...

12 03 2024 18:38:49

Его «Аватар». Интервью с Джеймсом Кэмероном

«…Совсем скоро на экраны выходит стереоскопический фильм Джеймса Кэмерона, работы над которым ведутся вот уже 14 лет, — там есть синие хвостатые гуманоиды, инвалид-морпех, светящиеся джунгли, потрясающий воздушный бой…»...

11 03 2024 14:38:51

UEFA Euro 2004

нам наконец-то позволили менять управление!!! Печально, но факт — многие игроки забросили FIFA только потому, что запомнить и использовать предлагаемую раскладку невероятно трудно...

10 03 2024 2:12:42

Руководство и прохождение по "Zanzarah: the Hidden Portal"

В сказке всегда найдется место подвигу! Zanzarah — игра о приключениях дeвoчки Эми в прекрасной волшебной стране, населенной эльфами, гномами, гоблинами и феями-фэйри. Причем несмотря на маленькие размеры, именно феи тут главные — ибо магия фэйри...

09 03 2024 2:19:24

7 игровых конфигураций ПК на любой вкус и кошелек

Выбор платформы для будущего компьютера становится всё сложнее. С одной стороны, новинка от компании Intel, четырехъядерный процессор Core i3-8100, показывает сходную с AMD Ryzen 5 1500X производительность. Но стоимость достойной материнской платы…|Игромания...

08 03 2024 10:24:24

Твоя сестра cмepть

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

07 03 2024 12:20:39

kill.switch

"...безопасность в kill.switch — не более чем иллюзия. Противники всегда превосходят нас числом и при этом не любят лезть на рожон, предпочитая вести ураганный огонь и забрасывать нашего героя бутылками с зажигательной смесью..."...

06 03 2024 23:47:52

Bloodline Champions

«…По сумме факторов имеем классический last man standing. То есть тот же Deathmatch, только без возрождения после cмepти. Умер — отдыхай до конца раунда. Сходство с экшенами усиливается за счет отсутствия фиксации цели: вместо того чтобы привязывать курсо...

05 03 2024 5:11:33

Руководство и прохождение по "Journey to the Center of the Earth"

“Спустись в кратер Екуль Снайфедльс, который тень Скартариса ласкает перед июльскими календами, отважный странник, и ты достигнешь центра Земли. Это я совершил — Арне Сакнуссем”. Жюль Верн, “Путешествие к центру Земли” Как положено в квесте, и...

04 03 2024 1:42:59

Аналитика: Онлайново-ролевой сленг

...новичкам приходится чуть ли не по крупицам собирать информацию, выяснять, что значит тот или иной термин. Да и мы в «Игромании» иногда используем специализированные и давно знакомые нам термины в разделе «Игра в онлайне», но ваш...

03 03 2024 6:15:35

Превью FIFA 22. Добро пожаловать, или без PS5 и Xbox Series вход воспрещён

Почти год назад я писал превью FIFA 21 и сокрушался, что опять нет некстгена, игра похожа на предыдущую часть и так далее. Друзья, я ошибался: в прошлом году было огромное количество изменений. А вот FIFA 22 &mdash; это на 80% новая графика…|Игромания...

02 03 2024 3:51:11

Horizon Zero Dawn: двенадцать разгневанных машин

Мы перестали бояться восстания машин, но не рано ли расслаблляться? Создатели Horizon Zero Dawn нарисовали нам прекрасное и мрачное будущее, где место крупных хищников и менее опасных животных заняли машины, создания из огнежара, проводов, искровых…|Игромания...

01 03 2024 8:31:45

Kings & Castles

«…перед нами совершенно новая игра от Криса Тейлора, в которой будничный для GPG эпический размах наконец захватывает последний незанятый уголок военной стратегии. В Supreme Commander были огромные юниты. В Demigod — эпические карты. Что ж, теперь к ним д...

29 02 2024 14:41:48

Еще:
Игры -1 :: Игры -2 :: Игры -3 :: Игры -4 :: Игры -5 :: Игры -6 :: Игры -7 :: Игры -8 :: Игры -9 :: Игры -10 :: Игры -11 :: Игры -12 :: Игры -13 :: Игры -14 :: Игры -15 :: Игры -16 :: Игры -17 :: Игры -18 :: Игры -19 :: Игры -20 :: Игры -21 :: Игры -22 :: Игры -23 :: Игры -24 :: Игры -25 :: Игры -26 :: Игры -27 :: Игры -28 :: Игры -29 :: Игры -30 :: Игры -31 :: Игры -32 :: Игры -33 :: Игры -34 :: Игры -35 :: Игры -36 :: Игры -37 :: Игры -38 :: Игры -39 :: Игры -40 :: Игры -41 :: Игры -42 :: Игры -43 :: Игры -44 :: Игры -45 :: Игры -46 :: Игры -47 :: Игры -48 :: Игры -49 :: Игры -50 :: Игры -51 :: Игры -52 :: Игры -53 :: Игры -54 ::