Игровой конструктор, часть 2. Интерфейс и управление > Minecraft истории
истории Minecraft    

Игровой конструктор, часть 2. Интерфейс и управление

Игровой конструктор, часть 2. Интерфейс и управление

Самопал Игровой конструктор, часть 2. Интерфейс и управление 024.11.2004 12:46  |  “В прошлой статье цикла мы приступили к созданию трехмерного движка с помощью Delphi и GLScene. Сегодня мы продолжим закладывать кирпичи в высокое здание компьютерной игры и создадим собственное игровое управление и интерфейс (или HUD) Самопал    В прошлой статье цикла мы приступили к созданию трехмерного движка с помощью Delphi и GLScene. Сегодня мы продолжим закладывать кирпичи в высокое здание компьютерной игры и создадим собственное игровое управление и интерфейс (или HUD). Товарищи, те, кто присоединился к нам только с этого номера, все внимание сюда! Чтобы понять все, что написано в этой статье, вам просто необходимо прочитать первый материал цикла. Так же и для всех последующих частей: чтобы их понять, нужна только первая статья, остальные не обязательны. Поэтому первая часть статьи отныне и до момента завершения цикла будет базироваться на наших CD/DVD в разделе “ИнфоБлок”. Тем же, кто с нами с самой первой статьи, совет: перед прочтением каждой следующей статьи цикла перечитывайте первую часть.

    Джойстик носатый и мышь хвостатая!
   
В любой игре гeймер управляет своим заэкранным альтер эго с помощью разнообразных устройств: клавиатуры, мыши, джойстика, гeймпада, виртуальными перчатками, а иногда даже взглядом! Чем больше игра поддерживает устройств управления, тем лучше. Стандарт де-факто для стратегических игр мышь и клавиатура. В экшенах и аркадах к необходимому минимуму добавляются джойстик и гeймпад. В вашей игре просто обязан быть этот минимум. Вы спросите, зачем, к примеру, той же “Контре” джойстик, если настоящие джедаи выбирают мышь? У разных людей разные вкусы. В США, например, самым популярным игровым устройством является вовсе не мышь, а гeймпад. Надеюсь, я убедил вас, что поддержка хотя бы этих четырех устройств необходима. А теперь поговорим о том, как эту самую поддержку внедрить в движок.
    Для начала решим один очень важный вопрос: куда мы поместим код, обpaбатывающий устройства ввода?
Вроде бы его стоит поместить туда, где и требуется проверка реакции игрока: в код, который отвечает за оружие; в код, который отвечает за движение; в код, который отвечает за... И получается, что код управления будет размазан по всему движку. А как же наш принцип кирпичиков? Не дело это. Код управления должен быть цельным. Лучше место для кода обработчик TGLCadencer.
Как ни странно, с точки зрения GLScene все эти устройства джойстики.
    Многие начинающие программисты недоумевают, зачем вообще нужен этот компонент?! Казалось бы, код надо привязывать к событиям, а не к какому-то там таймеру. Но Модулятор (именно так переводится Cadencer) не просто таймер. Интервал, с которым сpaбатывает его событие, постоянно меняется и зависит от скорости рендера. В обработчик передается важнейшая переменная deltaTime время, которое прошло с момента предыдущего рендера. Именно к этому времени надо привязывать все движения в игре.
    Поясню на примере. Допустим, вы делаете гоночный симулятор, и в каком-то неопределенном пока обработчике клавиатуры написали что-то вроде:
    Если нажата клавиша “вперед”, положение машины:=положение машины + 10
   
Так как обработчик будет сpaбатывать только в перерывах между рендером кадров, а приращение координаты машины каждый раз одно и то же, скорость машины будет зависеть от FPS, то есть в конечном счете от производительности компьютера. На быстрых компьютерах машина будет ездить со скоростью 300 км/ч, на медленных выдавать только 100, а на графических станциях вообще полетит со скоростью paкеты! В довершение картины представьте, что вы с вашим другом играете по сети, и у него машина едет быстрее только потому, что мощнее компьютер. Согласитесь, несправедливо? Вот чтобы такого не случалось, придумали Cadencer. В его обработчике вы можете написать так:
    Если нажата клавиша “вперед”, положение машины:=положение машины + 0,01* deltaTime
   
Коэффициент перед deltaTime подбирается экспериментально. Вот теперь машина будет ездить с одинаковой скоростью на любых компьютерах. Это же относится и к любым другим движущимся или меняющимся во времени игровым объектам. Поэтому TGLCadencer один из центральных элементов нашего движка, и код работы с устройствами мы поместим именно в его обработчик.
    Казалось бы, с клавиатурой и мышью никаких проблем нет назначаем соответствующие события OnKeyDown и OnMouseMove главной формы и там описываем все необходимые действия... И нарываемся на подводный камень. Так делать категорически нельзя, особенно в том случае, если игра будет
В action-играх HUD, как
правило, незамысловатый:
индикатор патронов, здоровья
и фрагов что еще нужно
для гeймерского счастья?
В некоторых случаях цифры
индикаторов лучше делать
не с помощью THUDText, а с
помощью отдельных спрайтов.
работать в полноэкранном режиме. Для полноэкранного режима GLScene создает особый тип окна, который несколько неадекватно реагирует на стандартные обработчики событий клавиатуры и мыши. Чаще всего в момент нажатия клавиши или кнопки мыши рендерер “запинается”, гeймеру кажется, что игра тормозит. Поэтому код для работы с устройствами нам придется написать самостоятельно, благо дело это не особенно сложное.
    Разработчики GLScene предусмотрели многие препятствия, которые могут попасться на нашем пути, и загодя постелили соломку. А соломка эта выражается в специальном модуле Keyboard.pas. Пусть вас не смущает название там не только о клавиатуре. Подключите его в uses модуля, в котором будете обpaбатывать сообщения от устройств. Давайте посмотрим, какие возможности дает модуль.
    Клавиатура. Чтобы определить, нажата ли какая-то клавиша в данный момент времени, используйте функцию IsKeyDown. Например:
    If IsKeyDown(VK_UP) then Tank.Go(deltaTime)
   
Клавишу для проверки надо задавать виртуальным кодом. Полный список виртуальных кодов клавиш вы найдете в справке Delphi. Самые распространенные коды приведены на отдельном текстовом блоке.
    Еще одна полезная пара функций из этого модуля: KeyNameToVirtualKeyCode и VirtualKeyCodeToKeyName. Они конвертируют виртуальный код клавиши в символьное имя, принятое в системе, и наоборот. Эти функции пригодятся, когда вы будете делать переназначение клавиш. Игрок должен иметь возможность переназначить управление по своему вкусу. Реализовать это можно разными способами. В конце главы я приведу ключевую функцию из одной из моих игр, которая как раз и реализует переназначение клавиш.
    Мышь. Здесь нам надо решить две задачи: обработка нажатий кнопок мыши и отслеживание положения указателя мыши (курсора или прицела). Первая задача решается очень просто с помощью все того же IsKeyDown. Коды левой, средней и правой клавиши мыши соответственно VK_LBUTTON, VK_MBUTTON и VK_RBUTTON. Вторая задача не намного сложнее. Сперва объявите в var нужного обработчика вот такую переменную:
    p:TPoint;
   
В TPoint.X и TPoint.Y мы будем сохранять горизонтальную и вертикальную координаты мыши. Теперь с помощью комaнды GetCursorPos из WinAPI можно легко получить искомые координаты:
    getcursorpos(p);
   
На пpaктике часто важно знать не координаты мыши, а изменение координат с предыдущей проверки. Для этого объявите глобальные переменные:
    mx, my,dx,dy : Integer;
    А теперь в том же коде сразу после вызова GetCursorPos напишите:
    dx:=p.X-mx;
    dy:=p.Y-my;
   
Вот наглядный пример того, как эти изменения координат можно использовать:
    Player.Weapon.MoveUp(dx);
    Player.Weapon.MoveLeft(dy);
   
Естественно, если dx отрицательный, MoveUp вопреки названию не поднимет оружие, а опустит. То же относится и к MoveLeft. Объекты Player и Weapon здесь просто придуманы, для движка они ничего не значат. Более подробно о том, как правильно организовать иерархию классов движка, мы поговорим в следующей статье цикла.
    Джойстик. Давайте условимся, что за джойстики у нас с вами сойдут любые устройства, имеющие некоторое количество кнопок и некоторое количество рычажков с некоторым количеством степеней свободы. С точки зрения программирования гeймпады, рули, педали и прочие подобные девайсы ничем от джойстиков не отличаются.
Иногда разработчики
интегрируют HUD и игровые
объекты. Это способствует
погружению в игровой мир.
    Для работы с джойстиками в GLScene есть специальный компонент TJoystick. Перед употрeблением настройте его свойство Threshold (порог чувствительности), а свойству NoCaptureError присвойте true, иначе, в случае если джойстик в системе не установлен, будет выдаваться ошибка. Перед началом работы присвойте свойству Capture значение true и можете снимать данные. За отклонение главной палки джойстика отвечают свойства TJoystick.XPosition и TJoystick.YPosition. Если эти свойства равны нулю, отклонения джойстика нет. Положительное значение свойства соответствует отклонению вверх или вправо, отрицательное вниз или влево, а само значение пропорционально углу отклонения. Все нажатые в данный момент клавиши джойстика автоматически заносятся в набор JoyButtons. С этим типом данных вы еще не встречались. Определить, содержится ли элемент в наборе, можно таким образом:
    If (элемент in имя_набора) then {элемент в наборе}
   
Элементы, соответствующие кнопкам джойстика, называются jbButton1, jbButton2, jbButton3 и т.д. И, наконец, вот так вы сможете определить, нажата ли та или иная кнопка:
    if (jbButton1 in Joystick.JoyButtons) then {нажата первая кнопка}
   
Напоследок, как и обещал, приведу свой код для переназначения клавиш:
    function IsItKeyDown(sKey:string):boolean;
    begin
    if KeyNameToVirtualKeyCode(sKey)<>-1 then
    begin
    if IsKeyDown(KeyNameToVirtualKeyCode(sKey)) then result:=true else result:=false;
    exit;
    end else
    begin
    result:=false;
    if (jbButton1 in form1.joystick.JoyButtons) and (sKey=\'jbButton1\') then result:=true;
    if (jbButton2 in form1.joystick.JoyButtons) and (sKey=\'jbButton2\') then result:=true;
    if (jbButton3 in form1.joystick.JoyButtons) and (sKey=\'jbButton3\') then result:=true;
    if (jbButton4 in form1.joystick.JoyButtons) and (sKey=\'jbButton4\') then result:=true;
    end;
    end;
   
Везде, где нужно проверить, нажата ли определенная клавиша, пользуйтесь таким вызовом:
    If IsItKeyDown (c_forward) then {нажата клавиша вперед}
   
В с_forward перед началом работы игры должно хранится название назначенной для действия “Вперед” клавиши. Аналогично поступайте со всеми остальными действиями, которые подлежат переназначению.

В стратегиях и тактических
играх HUD обычно куда
серьезнее, чем в играх жанра
action. В таких случаях для
каждого смыслового экрана
игрового интерфейса удобнее
выделить отдельный
TGLDummyObject, чтобы
их можно было легко показывать
и убирать с экрана.
    От общего к частному
    Что общего у шлема боевого летчика и компьютерной игры? У обоих есть HUD! Это словосочетание расшифровывается как Head Up Display и на русский язык однозначно не переводится. На шлемах боевых летчиков многих современных самолетов есть прозрачные дисплеи, на которых показываются параметры вооружения, целеуказатель и многие другие данные, необходимые в воздушном бою. С легкой руки разработчиков авиасимуляторов этот термин стал относиться не только к спецдисплею, но и к экранному интерфейсу вообще. Теперь под страшным словом HUD скрывается все, что находится на экране во время игры, но непосредственно не относится к игровому миру: очки, жизни, фраги, пиктограммки оружия, радар, списки юнитов и зданий для постройки и многое другое. Как правило, HUD двумерный, то есть рисуется спрайтами поверх всей остальной сцены. По-настоящему трехмерные игровые интерфейсы встречаются крайне редко. Мы поговорим о создании классических двумерных HUD.
    Для создания HUD в GLScene есть два класса TGLHUDSprite и TGLHUDText для спрайтов и текста соответственно. Эти объекты обладают рядом особенностей. Во-первых, они существуют только в двумерном прострaнcтве, а их координата Z определяет только порядок отрисовки, то есть какие объекты будут поверх в случае пересечения. Во-вторых, положение HUD-объектов на экране не зависит от того, куда направлена камера их координаты абсолютны. Точка с координатой (0,0) находится в верхнем левом углу экрана, ось X идет вправо, а ось Y вниз. В-третьих, у них особые отношения к свойствам прозрачности.
    Вряд ли ваш HUD будет состоять из одного-двух спрайтов. В среднестатистической игре их как минимум десяток. Так как перечень объектов, входящих в HUD (давайте условимся для краткости называть их просто спрайтами), неизменен в течение всей игры, их можно создать на этапе разработки игры, добавив нужные объекты с помощью GLScene Editor (напоминаю, для вызова этого редактора надо два раза кликнуть по иконке компонента TGLScene). Только не стоит добавлять объекты, относящиеся к HUD, в корень. Создайте объект-пустышку TGLDummyСube, сделайте его невидимым и уже в список его подобъектов добавляйте все, что относится к HUD. Теперь просто изменив свойство Visible у TGLDummyСube, вы можете одним махом убрать весь интерфейс с экрана (он ведь не нужен во время показа заставочных роликов или когда гeймер находится в игровом меню) и так же легко его вновь показать.
Перед проектированием HUD о
бязательно нарисуйте скетч-
макет. На нем очень удобно
планировать взаимодействие
и сопряжение различных
спрайтов, из которых состоит
игровой интерфейс.
    Нужное количество спрайтов мы создали, теперь подумаем о том, как их инициализировать. Ни в коем случае не присваивайте жесткие координаты спрайтам через Object Inspector, если только ваша игра не будет поддерживать одно-единственное разрешение (а это дурной тон). Причем тут поддержка разрешений? А вот причем. Допустим, вы создаете игру в разрешении 1024х768 и жестко задали все хаpaктеристики спрайтов. Игрок, переключившись в разрешение 800х600, увидит, что все спрайты сбились в кучу и стали неимоверно большими. Если он переключится в 1600х1200, то все спрайты будут мелкими, да и к тому же спрайты, которые должны быть с правой и нижней сторон экрана, неожиданно окажутся в центре. Проще говоря, весь интерфейс развалится на кусочки. Поэтому координаты и размеры спрайтов должны быть привязаны к текущему разрешению.
    В одной из следующих статей цикла мы поговорим о том, как работать с разрешениями, так как это отдельная интересная тема. Пока представьте себе, что у нас есть две глобальные переменные res_x и res_y, в которых хранятся ширина и высота экрана в пикселах. В тестовых целях вы можете присвоить им нужные значения вручную.
    Есть два подхода к обработке разрешений. В первом случае вы создаете столько копий каждого спрайта, сколько разрешений будет поддерживать игра. Каждая копия будет “заточена” под определенное разрешение. Этот способ дает очень качественный интерфейс, но... придется потратить много времени на отрисовку. Во втором случае вы программно растягиваете спрайты до нужных размеров. Качество слегка страдает, но и хранить ничего дополнительно не нужно. Обычно эти два способа сочетаются: игроделы создают несколько копий спрайтов для базовых разрешений, а для всех остальных разрешений ближайшая по размерам копия растягивается до нужного размера.
Структура будущего HUD
в окошке GLScene Editor.
Все HUD-спрайты являются
подобъектами “пустышки”
Radar.
    Для примера приведу код для второго способа. Выберите какое-либо базовое разрешение, для которого будете создавать спрайты. Допустим, базовое разрешение 1024х768. Тогда в коде, который вызывается при запуске игры, напишите для каждого HUD-спрайта:
    HUDSprite.Material.Texture.Disabled:=false;
    HUDSprite.Material.Texture.Image.LoadFromFile(‘HUDSprite.bmp’);
    HUDSprite.Material.BlendingMode:=bmTransparency;
    HUDSprite.Material.Texture.ImageAlpha:=tiaSuperBlackColorTransparent;
    HUDSprite.Material.Texture.TextureMode:=tmModulate;
    HUDSprite.Position.X:=120*res_x/1024;
    HUDSprite.Position.Y:=100*res_y/768;
    HUDSprite.Width:= HUDSprite.Material.Texture.Image.Width*res_x/1024;
    HUDSprite.Height:= HUDSprite.Material.Texture.Image.Height*res_y/768;
   
Цифры 120 и 100 соответствуют координатам данного спрайта в разрешении 1024х768. Простая школьная пропорция перемещает спрайт в нужное место и масштабирует его при смене разрешения.
    Проблему с разными разрешениями мы решили. А теперь поговорим о не менее важной вещи разных уровнях прозрачности. В коде выше вы наверняка заметили несколько строк, посвященных режимам прозрачности. Ни один более или менее сложный HUD не может состоять только из квадратных спрайтов. Приборные щитки, фигурные меню, радар, изгибы панелей как реализовать все эти нестандартные формы? Здесь нам поможет первый уровень прозрачности. Какую-то часть квадратного спрайта мы должны сделать абсолютно прозрачной, тогда спрайт будет иметь фигурную форму. Проще всего это сделать так. Нарисуйте нужный спрайт, и все места, которые должны быть прозрачными, закрасьте абсолютно черным цветом (цвет RGB(0,0,0)). Внимание! Если в видимой части спрайта также используется черный цвет, в этом месте будет дырка. Поэтому вместо черного цвета используйте чуть-чуть серый (к примеру, RGB(1,0,0)). “На глаз” от черного такой цвет отличить невозможно.
Свойства TGLHUDSprite,
которые относятся к
текстурам и
прозрачности.
Обязательно изучите их.
    Теперь загружайте эту картинку в объект спрайта, а остальное сделают вот эти две строчки:
    HUDSprite.Material.BlendingMode:=bmTransparency;
    HUDSprite.Material.Texture.ImageAlpha:= tiaSuperBlackColorTransparent;
   
Первая устанавливает режим прозрачности, а вторая указывает, какие именно области изображения будут прозрачными. В нашем случае все области, закрашенные черным цветом. Есть и другие способы задания прозрачных зон. К примеру константа tiaTopLeftPointColorTransparent устанавливает режим, при котором цветом прозрачности будет цвет верхней левой точки изображения.
    Часто бывает необходимо сделать полупрозрачным весь спрайт. За общую прозрачность отвечает свойство AlphaChannel. Значение 1 соответствует абсолютной непрозрачности, значение 0 абсолютной прозрачности. Чтобы спрайт стал полупрозрачным, задайте какое-нибудь дробное число от 0 до 1.
    Есть еще один способ задания прозрачности спрайта, с помощью которого можно реализовать любой тип прозрачности. К примеру, часть спрайта будет полностью прозрачной, а часть полупрозрачной, причем эта полупрозрачность будет градиентной. С помощью этого способа можно делать поразительные эффекты. Цена повышенная ресурсоемкость по сравнению с уже рассмотренными способами. Речь идет об альфа-маске изображения. Самые популярные форматы, в которых есть альфа-маска bmp32 и tga. Файлы обоих форматов вы можете создать, например, в Photoshop. Мы рекомендуем использовать формат tga, потому что в нем предусмотрено сжатие. Использовать файлы с альфа-маской в GLScene совсем несложно:
    HUDSprite.Material.BlendingMode:=bmTransparency;
    HUDSprite.Material.Texture.Image.LoadFromFile(‘HUDSprite.tga’);
   
Все остальные свойства, связанные с прозрачностью, не трогайте в них должны оставаться значения по умолчанию. С помощью последнего приема вы сможете сделать любые интерфейсы, какие только придумаются. Однако если какой-то конкретный спрайт можно реализовать с помощью первого способа делайте именно так, ведь производительность дороже всего.
    Напоследок приведу одно важнейшее правило работы с любыми текстурами, в том числе и для спрайтов. О нем, увы, забывают порой даже профессиональные разработчики, что кончается серьезными графическими глюками. У любой текстуры должны быть стороны, кратные степеням двойки, то есть из ряда 4, 8, 16, 32, 64, 128, 256, 512, 1024 и далее по списку. Это требование связано с особенностями организации видеопамяти. Самое малое, что вы можете получить, нарушив его, темные полосы непонятного происхождения по краям полупрозрачных спрайтов. И если на каком-то этапе разработки у вас на каких-то текстурах вдруг появились непонятные артефакты в первую очередь проверьте, какие у них размеры.

    Коды клавиш

Клавиша Код Клавиша Код
Стрелка вперед VK_UP Enter VK_RETURN
Стрелка назад VK_DOWN Esc VK_ESCAPE
Стрелка вправо VK_RIGHT Alt VK_MENU
Стрелка влево VK_LEFT Ctrl VK_CONTROL
Пробел VK_SPACE Shift VK_SHIFT

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


Мышиные бега. Тестирование лучших игровых мышей современности

очень важно личное ощущение. Мышь может выглядеть безукоризненно, но через полчаса напряженных баталий в Team Fortress 2 у вас начнет ныть запястье, а через час вы забросите устройство на самую дальнюю полку и никогда больше не достанете.Поэтому мы решили...

28 04 2024 18:25:37

Silent Hill 4: The Room

главный герой, Генри Таунсенд, проснувшись однажды утром, обнаружил, что он заперт в собственной квартире. Входная дверь, под которой лежала записка “Мама, почему ты не разбудишь меня?”, оказалась заблокирована цепями, а окна — закрыты решетками...

27 04 2024 20:56:47

5 культовых битемапов, которые заслуживают возвращения

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

26 04 2024 12:12:18

Обучение

Starcraft: видеоурокиНа протяжении полугода в рамках рубрики «Обучение» на DVD мы изучали тактики в матчах между разными расами, знакомя вас как с общими положениями игры за все расы, так и с конкретными матчапами. Это вызвало нешуточный…|Игромания...

25 04 2024 5:42:27

Ретро-обзор. Arcanum: Of Steamworks and Magick Obscura (2001)

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

24 04 2024 17:34:15

Gratuitous Space Battles

«…Битвы — самое интересное в GSB, но по иронии судьбы влиять на происходящее никак нельзя. Зато выглядят баталии внушительно: талантливая, яркая двухмерная графика. Столкновение любых двух железяк здесь лучше всего хаpaктеризуются английским выражением ey...

23 04 2024 0:37:13

Gamescom 2014: Batman: Arkham Knight

Когда продюсер из Warner Bros. вручил мне гeймпад от PS4, я добрую минуту ничего не делал и просто крутил камеру в разные стороны. Разработчик недовольно взирал на происходящее — время-то идет, нужно быстро пробежать игровой эпизод и…|Игромания...

22 04 2024 22:52:13

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

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

21 04 2024 4:42:13

Empire: Total War

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

20 04 2024 4:15:25

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

Мы живём в эру условно-бесплатных игр. Громадный ассортимент онлайновых и даже одиночных проектов зазывает и манит: попробуй, бесплатно! А стоит втянуться &mdash; красивая картинка быстро разбивается о бетонную стену донатов. За яркой вывеской…|Игромания...

19 04 2024 8:20:10

PvP года

&nbsp; О номинации В этой номинации мы выделили игры, дающие уникальный опыт борьбы с самым изворотливым, жестоким и умелым противником: другим человеком. Игромания подводит итоги года: лучшие игры 2017-го! Третье место. Fortnite Battle Royale…|Игромания...

18 04 2024 23:20:49

Battlefield Heroes

игра совершенно бесплатна, экономическую модель в Electronic Arts называют Play 4 Free — большая часть денег должна идти от рекламы на сайте. Разработчик с издателем клянутся, что реклама присутствует только в заставках, а поля сражения не будут заг...

17 04 2024 3:41:36

«Голодные игры: Сойка-пересмешница. Часть 2»: убить президента Сноу

Повстанцы Панэма наконец готовы выступать на Капитолий. Китнисс Эвердин, символ восстания, должна остаться в тылу и с экрана поддерживать боевой дух революционеров. Но у дeвyшки другие планы. Она хочет своими руками убить президента Сноу, принесшего…|Игромания...

16 04 2024 10:44:27

«Ну такое» года

&nbsp; О номинации В эту номинацию вошли громкие проекты, от которых отечественные и западные игровые журналисты ждали гораздо большего. Они не оказались абсолютно провальными, но и назвать их успешными язык не повернётся. Какие-то…|Игромания...

15 04 2024 2:10:59

CD-МАНИЯ

Видеомания * Игровая зона /темы CD: Max Payne 2: Battle Tactics 2 * Heroes of Might and Magic III: In the Wake of Gods * Call of Duty: Heat of Battle; темы DVD: Battlefield Vietnam: BattleGroup-Vietnam, Unreal Tournament 2004: Troopers/ * Демоблок * Патчи...

14 04 2024 0:17:43

Order of War: Challenge

Игра Order of War, кажется, наконец-то закрыла тему Второй мировой в RTS &mdash; в ближайшее время в этой нише ожидается только R.U.S.E., но он больше про обман и хитрость, чем высадку в Нормaндии. Белорусская студия Wargaming.net, по сути,…|Игромания...

13 04 2024 19:37:31

Обзор гарнитуры Audeze Mobius. Без проводов, с настоящим 3D и потрясающим звуком

Сегодня у нас очень дорогая игрушка: гарнитура Audeze Mobius. О ней многие рассказывали, однако никому не удалось нарисовать цельную картинку и объяснить, зачем и кому может прийти в голову отдать 35 000 рублей за гарнитуру. Мы провели с этой моделью…|Игромания...

12 04 2024 13:48:32

Косплей недели: LoL, Overwatch, Marvel, WoW, Heroes of the Storm

Эвелинн &mdash; League of Legends Мы с вами видели уже немало косплея с участницами виртуальной поп-группы K/DA, но вы только посмотрите, как точно кадры с Ладой Люмос&nbsp;в роли Эвелинн повторяют кадры из официального клипа! Фотограф…|Игромания...

11 04 2024 5:46:46

Волшебный мир текстур. Лапа монстра

"...В новом цикле статей "Волшебный мир текстур" мы рассмотрим основные аспекты создания и применения трехмерной графики в 3D Max è научимся рисовать текстуры для игровых моделей..."...

10 04 2024 15:13:38

Tom Clancy’s Ghost Recon: Wildlands. Реальные картели и как с ними бороться

Оформить предзаказ|Всё о Tom Clancy&#39;s Ghost Recon: Wildlands Сюжет Tom Clancy&#39;s Ghost Recon: Wildlands посвящен не самой популярной в играх теме &mdash; борьбе с картелями, занимающимися распространением запрещенных веществ.…|Игромания...

09 04 2024 6:32:49

Третий глаз "Шторма". Солдаты неба уходят в бой

Узнав, что я направляюсь в MADию, пpaктически все мои друзья и коллеги хором задавали один и тот же вопрос: "А как они там после разлада с Bethesda Softworks?" (подробности данного конфликта, заключавшегося в некорректном поведении американских коллег по...

08 04 2024 15:54:50

Цены на игры растут. Есть ли жизнь после 4490 рублей?

Сегодня в полночь Nintendo повысила цены на цифровые версии своих игр в российском сегменте eShop. Незадолго до этого о подорожании проектов для PlayStation 4 доложили российские розничные продавцы. Как после этого жить и оставаться гeймером? Что…|Игромания...

07 04 2024 2:53:37

Assassin’s Creed: Brotherhood

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

06 04 2024 2:53:45

Первый взгляд. Nitro Stunt Racing

Могут ли классические кольцевые гонки по увлекательности и динамизму сравниться с такими зубрами стритрейсинга, как последние три части Need for Speed или, например, консольный Midnight Club 3? Казалось бы, ответ очевиден: нет, не могут. Однако молода...

05 04 2024 0:38:53

Dead Space 2

Первая часть Dead Space оказалась довольно противоречивой игрой. Качество исполнения, постановка и гeймплей &mdash; все было выполнено на высочайшем уровне. Не хватало одного — хоррора. Dead Space оказался скорее размашистым блокбастером,…|Игромания...

04 04 2024 0:25:47

Игровая станция Flextron Extra CR от компании «Ф-Центр»

...Swing, похоже, поглощает все шумы, ведь внутри находится стандартный кулер от Intel и видеокарта с шустрым вентилятором. Процессор Core 2 Duo E6400 работает на скромной, казалось бы, частоте 2,13 ГГц, но это не мешает ему выдавать впечатляющие результа...

03 04 2024 4:28:43

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

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

02 04 2024 22:30:52

Back to the Future: The Game

Когда мы говорим, что Человеку-пауку, трaнcформерам и прочим киногероям не везет на игры, вы, пожалуйста, помните, что все относительно. Например, по гиперпопулярной вселенной «Назад в будущее» за 25 лет было создано около дюжины игр, и…|Игромания...

01 04 2024 11:25:41

...за разумные деньги

Бессменные “Дешево и сердито... Категория меньше 500, “Cмepть тормозам... Категория меньше 1000, “Займи, но купи... Категория больше 1000 и — “Тебя я видел во сне”....

31 03 2024 10:49:45

Лучшие игры 2003

Каждый год перед дверями февральского номера &ldquo;Игромании&rdquo; собираются все вышедшие за год игры. Они встают в длинную очередь, пишут на руках номерки, а затем вооружаются мечами, палицами и кастетами и в ожесточенной схватке месят…|Игромания...

30 03 2024 20:23:58

Это вам не шутки шутить. Законы MMORPG

Знаменитый гeймдизайнер и теоретик онлайновых миров Раф Костер (Raphael Koster), который работал над Ultima Online и Star Wars Galaxies, не первый год формулирует в своем блоге (www.raphkoster.com/gaming/laws.shtml) принципы дизайна MMORPG. Вот лишь…|Игромания...

29 03 2024 1:14:31

Вердикт. Пляжный волейбол (Beach Volleyball)

Чего стоит ждать от симулятора пляжного волейбола? Собственно волейбола, говорите? Ха, как бы не так! Прежде всего — красивого женского тела в больших количествах. И это с успехом доказала игра Dead or Alive Xtreme Beach Volleyball, кото...

28 03 2024 10:47:50

День, когда Земля остановилась. Расписание концов света на ближайшие годы

по играм можно проследить «постапокалиптические страхи» человечества, и во многом — страхи разработчиков-американцев. Заметили, что Штаты фигурируют чуть ли не в 99% игр? Это вполне объяснимо: на территории Америки войн не было уже...

27 03 2024 14:33:11

Lucius

«…Молодая финская студия делает уникальную игру, аналогом которой может служить разве что провокационная дилогия Manhunt. Только на сей раз перед нами симулятор даже не садиста, а Сатаны, который даст новые поводы обвинить игровую индустрию в пропаганде н...

26 03 2024 0:39:57

Обзор фильма «Чёрная Вдова». Бедная наша Наташа

Из всего оригинального состава Мстителей Наташа Романофф, пожалуй, самая невезучая. Даже Соколиному Глазу в фильмах досталось несколько ярких эмоциональных сцен и пара отличных шуток, а на долю Чёрной Вдовы, персонажа без преувеличения культового,…|Игромания...

25 03 2024 22:14:55

Мнение о фильме «Терминатор 2: Судный день» в 3D. Железнорожденный

Ярослав Гафнер, один из главных киноманов Игромании С младых ногтей осознал, что видеоигры как книги, музыка или кинематограф &mdash; могут быть настоящим искусством. Выпуск ремастеров в игровой индустрии вошел в обычай &mdash; некоторые…|Игромания...

24 03 2024 8:39:23

Dark Sector

  игра одной идеи. Глефа здесь, как и огонь в Far Cry 2, — лучший и единственный способ развлечься. К счастью, у Digital Extremes, в отличие от Ubisoft Montreal, не было наполеоновских амбиций, поэтому они сумели верно расставить акценты и дали...

23 03 2024 19:20:42

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

В далеком 1997 году Тим Кейн почти в одиночку создал, пожалуй, лучшую игру про мир после ядерной катастрофы, и, несмотря на низкие продажи, спорить, что первый Fallout — настоящий хит, желающих не находилось. Через год появляется Fallout 2, оказавшийс...

22 03 2024 22:48:28

S.C.S. Dangerous Waters

не так давно наш густонаселенный сосед закупил себе целую флотилию “Варшавянок”, так что скорее всего Dangerous Waters даст своим игрокам поистине уникальную возможность — в роли бравого китайского офицера, управляющего русской субмариной, потопить нескол...

21 03 2024 2:44:35

Сдать на опыты. Десять удивительных проектов Experimental Gameplay Project

«…многие из представленных на этих страницах проектов даже играми-то назвать нельзя — это работы, сделанные в рамках Experimental Gameplay Project. Его авторы уже не первый год ставят перед разработчиками пpaктически садистские условия и предлагают, напри...

20 03 2024 6:27:49

The Legend of Zelda: Spirit Tracks

Если вы уже бывали в Хайруле, то наверняка примерно знаете, чего ждать от The Legend of Zelda: Spirit Tracks. Эта игра, как и ее предшественницы, взяла все лучшее у ролевого и приключенческого жанров. От первого здесь — большой мир и…|Игромания...

19 03 2024 9:23:44

Чем крута серия Metroid? Разбираем все части

Через месяц стукнет 35 лет одной из самых влиятельных серий в истории индустрии &mdash; Metroid. Она стала родоначальницей целого поджанра, названного в её честь, и наряду с The Legend of Zelda ввела моду на нелинейность, бэктрекинг и прокачку в…|Игромания...

18 03 2024 1:18:46

Второй круг. Тестирование видеокарты AMD Radeon HD 6850

«…Radeon HD 6850 оказалась на удивление быстрой. От старшей версии она отстает на 20% и уверенно держится на уровне GTX 460 и GTX 465. Но все впечатление портит цена в России. Если на Западе плата AMD обойдется ощутимо дешевле конкурентов, то у нас она на...

17 03 2024 20:54:43

Круглый значит крутой

Если заглянуть вглубь истории, то мы легко сможем найти следы протокруглогероя. Это не кто иной, как наш отечественный душка Колобок. Вдаваться в сложные перипетии его биографии и рецепт приготовления не будем — оставим это на откуп телевизионн...

16 03 2024 20:47:46

Руководство и прохождение по "Contract J.A.C.K."

Добрым словом и пистолетом можно сделать больше, чем просто добрым словом. (Аль Капоне) Выход Contract J.A.C.K. можно назвать пробным выпадом Monolith. Несмотря на народную любовь и кучу наград в различных игровых изданиях, No One Lives Foreve...

15 03 2024 4:38:31

Эврика!

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

14 03 2024 12:46:23

Первый пошел. ATI Radeon HD 2900 XT

...фанаты ATI разделились на два лагеря — на огорченных и довольных. Первые посетуют на недостаточную производительность, отсутствие UVD, а вторые же порадуются приемлемой цене и производительности почти на уровне GeForce 8800 GTS...Мы тестировали:...

13 03 2024 7:54:47

Детали машин. Supreme Commander

...последующие пятнадцать минут мы вместе с французским шофером увлеченно играем в GTA и преследуем чужое такси по центру Парижа (для полноты картины за окном в этот момент проносятся Триумфальная арка, Наполеонов мост, Лувр, готические фасады Нотр-Дама и...

12 03 2024 1:19:13

Обзор игры One Punch Man: A Hero Nobody Knows. Лысый Плащ и все-все-все

Бывают игры, которые хочется ругать. Бывают игры, которые хочется хвалить. А бывают такие игры, как One Punch Man: A Hero Nobody Knows. Когда объективно проект хочется разнести в пух и прах, зато субъективно получаешь море удовольствия&hellip;…|Игромания...

11 03 2024 8:20:29

Обзор Monster Hunter Stories 2: Wings of Ruin. Ведьмак ловит яйца

Признаюсь честно, я не фанат японского гeймдева в целом (если речь не о хоррорах) и серии Monster Hunter в частности. Однако приобщиться к спин-оффу Stories хотел давно: уж больно интересной выглядела концепция пошаговых битв с огромными монстрами.…|Игромания...

10 03 2024 4:28:43

Еще:
Игры -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 ::