Кладовая программиста. Ящик Пандоры. Игра "Угадай число" > Minecraft истории
истории Minecraft    

Кладовая программиста. Ящик Пандоры. Игра "Угадай число"

Кладовая программиста. Ящик Пандоры. Игра "Угадай число"

Самопал Кладовая программиста. Ящик Пандоры. Игра "Угадай число" 022.01.2004 04:21  |  "...Конечно, игра очень проста и стара как мир, но на ее примере вы поймете, как вообще делаются игры. Мы ведь будем писать не простую угадайку, какую обычно встраивают в сотовые телефоны, а угадайку продвинутую. Игру будет вести виртуальный ведущий. И пу Самопал    В прошлой статье цикла "Кладовая программиста" мы вместе с вами создали довольно мощный текстовый редактор. Вы наверняка самостоятельно внесли в него не одно изменение, но надо двигаться дальше.
   Хочется сделать что-нибудь эдакое, но вот что? Не писать же сразу Doom IV? Это нам пока не по силам, но можно сделать что-то более простое. Сегодня мы с вами напишем настоящую игру. Игру "Угадай число". Разочарованные возгласы? Конечно, игра очень проста и стара как мир, но на ее примере вы поймете, как вообще делаются игры. Мы ведь будем писать не простую угадайку, какую обычно встраивают в сотовые телефоны, а угадайку продвинутую. Игру будет вести виртуальный ведущий. И пусть мы пока не в силах дать ему голос, зато обаяние проще простого. Наша угадайка будет вести рейтинги игроков и сохранять их в отдельном файле.

   Планов громадье

   Рука потянулась к заветному значку "Дельфи" и уже готова совершить обряд двойного клика... Постойте! Любой профессиональный игроразработчик прежде всего пишет дизайн-документ. Это важнейший этап разработки, и если им пренебречь, проект вряд ли доживет до релиза. Мы не будем писать полноценный диз-док для "Угадайки", но в общих чертах наметить возможности стоит.
   Основное окно будет состоять из двух логических зон. Вверху мы поместим картинку ведущего. Вы видели, как "говорят" герои в комиксах? Вот так же будет говорить и наш персонаж. Мы сделаем пять стандартных фраз, которые полностью описывают гeймплей. При старте новой игры ведущий говорит: "Я загадал число. Отгадай-ка его!". После этого игрок вводит свой вариант в текстовое поле ввода под персонажем и нажимает кнопку, которую мы поместим рядом. Шутки ради пусть название этой кнопки будет всегда разным, например:
   "Хм... может быть, это?"
   "Я знаю, твое число вот это!"
   "Я разгадал тебя"
   "Ты хитрый, но я хитрее"
   "Попробуем вот так..."

   Если игрок отгадал, ведущий говорит: "Ты угадал! Молодец! Сыграем еще раз?". Если игрок не угадал, ведущий подсказывает: "Мое число больше" или "Мое число меньше". Во время игры подсчитывается число попыток, которые понадобились игроку, чтобы отгадать число. Если игрок побил рекорд и отгадал за минимальное число попыток, появляется таблица рекордов и предложение ввести свое имя. Таблицу рекордов можно также вызвать в любое время с помощью специальной кнопки. Гeймплей мы расписали, на главной форме не хватает только кнопок Новая игра, Рекорды и Выход.
   Примерный план игры готов. Пора приступать к реализации.

   С пылу, с жару

   Кликните дважды по иконке Дельфи. Утилита запустится и откроет новый проект. Сохраните его. Главная форма у нас будет высокой и узкой, поэтому измените ее размеры соответствующим образом. Через Object Inspector установите свойство Caption формы в "Угадайке". Можно начинать проектировать саму форму. Но до этого ее необходимо настроить. Что будет, если игрок вздумает развернуть окно на весь экран? Все элементы управления (кнопки, рисунок нашего ведущего, поле ввода) окажутся в верхнем левом углу формы, а остальное прострaнcтво будет пустым. Зрелище не для слабонервных. Такие огрехи выдают новичков и неряшливых программистов. Исправим эту оплошность. Кроме того, игроку надо запретить мышкой изменять размеры окна (по умолчанию эта возможность включена).
   Изменим тип границы окна. Откройте свойство формы BorderStyle: вместо bsSizeable поставьте bsSingle. Разверните список подсвойств BorderIcons и свойство biMaximize установите в False. В прошлый раз (в предыдущей статье цикла) вы наверняка заметили, что после запуска программы окно оказывается в том месте, где вы оставили форму при проектировании. Это не очень удобно. Давайте сделаем так, чтобы каждый раз при запуске игры форма оказывалась строго в центре экрана. Для этого достаточно установить свойство Position формы в poDesktopCenter.
   Приступим к наполнению формы. Начнем с нижней части. Внизу формы поставьте три кнопки одинакового размера так, чтобы они тесно прилегали друг к другу и к нижней границе окна. В их свойства Caption запишите соответственно Новая игра, Рекорды... и Выход. Обратите внимание, что Рекорды мы написали с тремя точками. По правилам Windows это значит, что после клика по кнопке перед пользователем откроется новое окно. Чуть выше поместите поле ввода (TEdit), а рядом кнопку без надписи (мы будем выбирать ее случайным образом). Не забудьте очистить поле ввода в свойстве Text.
   Займемся графикой. Нашим ведущим станет симпатичный вампир за авторством Алексея Макаренкова. Вы можете нарисовать какого-нибудь персонажа сами, ну а если рисуете вы плохо, то можно воспользоваться отсканированной фотокарточкой или позаимствовать рисунок вампира с нашего компакта.
   Поместите на самое видное место нашей формы картинку (компонент TImage на вкладке Additional) и с помощью маленькой кнопочки с тремя точками напротив свойства Picture загрузите pic.jpg с вампиром-ведущим. Но вот беда: не понимает "Дельфи" формат jpg. Это надо исправить. Добавьте в строчку uses модуль jpeg. Теперь строчка uses выглядит примерно так:
   uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, jpeg;

   Пора загружать картинку. Но вампир у нас статичный. Как же он будет разговаривать с игроком? Разговаривать он будет так же, как персонажи "разговаривают" в комиксах, с помощью воздушных шариков-фраз. Нарисуйте картинки всех возможных фраз, или возьмите их с
- Проек-
тируем интер-
фейс игры
нашего диска. Идея такова: мы помещаем поверх картинки ведущего картинки всех его фраз и делаем их невидимыми; как только ведущий что-то говорит, соответствующая фраза становится видимой. Если до этого была видимой другая фраза, она становится невидимой.   
   Поместите на форму картинки всех фраз. Не забудьте поставить свойство Transparent этих картинок в true, а свойство Visible в значение False, ведь с самого начала все картинки должны быть не видны. Фразы "Я загадал число..." и "Ты угадал..." размещаем сверху по центру, фразу "Мое число больше" слева, а фразу "Мое число меньше" справа.
   Вам не надоел серо-гoлyбой однообразный интерфейс Windows? Давайте хоть нашу игру сделаем разноцветной. Неплохо бы покрасить форму в какой-нибудь цвет, например, в желтый. Просто установите свойство Color формы в clYellow. Поле ввода можно покрасить в небесный цвет. Для этого установите его свойство в clAqua. Чтобы придать некоторый стиль и необычность полю ввода, его стоит сровнять с формой; для этого установите свойство BorderStyle (поля ввода, а не формы) в bsNone.
   Давайте сделаем поле ввода активным по умолчанию. Поставьте у формы свойство ActiveControl в Edit1, и при каждом запуске курсор будет сразу появляться в поле ввода.
   Необходимо изменить шрифт всех четырех кнопок и поля ввода на что-то более подходящее. За шрифты любых элементов отвечает свойство Font. Можно изменять шрифт, регулируя подсвойства этого комплексного параметра, но лучше и проще щелкнуть на маленькую кнопочку с тремя точками напротив надписи Font в объектном инспекторе. Перед вами появится большое окно, в котором есть возможность изменить гарнитуру, начертание, кегль и цвет надписи.
   Договоримся о логических именах объектов, чтобы дальше по тексту не называть все время кнопки русскими именами. Кнопка Новая игра будет Button1, Рекорды... Button2, Выход Button3, поле ввода Edit1, картинка ведущего Image1, картинка "Я загадал число..." Image2, картинка "Ты угадал..." Image3, картинка "Мое число больше" Image4, картинка "Мое число меньше" Image5.

   10240 по Фаренгeйту

   Интерфейс готов. Пора программировать игровую модель. Осмотрим форму. Первое, что бросается в глаза, безымянная кнопка. На этой кнопке каждый раз должны меняться надписи. Мы можем прописать изменение надписи во всех местах, где это требуется, но зачем усложнять себе жизнь? Давайте создадим отдельную процедуру, которая только тем и будет заниматься, что менять надписи на кнопке. Переключайтесь на окно редактора кода и после слова implementation пишите:
   procedure ChangeCaption;
   begin
   case random(5) of
   0:Form1.Button4.Caption:=\'Хм... может быть, это?\';
   1:Form1.Button4.Caption:=\'Я знаю, твое число вот это!\';
   2:Form1.Button4.Caption:=\'Я разгадал тебя\';
   3:Form1.Button4.Caption:=\'Ты хитрый, но я хитрее\';
   4:Form1.Button4.Caption:=\'Попробуем вот так...\';
   end;
   end;

   Разберем процедуру. Заголовок и объявление процедуры понятны. Дальше идет конструкция case A of B [C,D...]. Это конструкция выбора какой-то комaнды в зависимости от состояния переменной A. Если конструкция random(5) будет равна, скажем, единице, выполнится комaнда Form1.Button4.Caption:=\'Я знаю, твое число вот это!\'. Random(N) функция, которая возвращает случайное число из промежутка от нуля до N-1. Дальше мы свойству Caption объекта Button4 (наша кнопка) каждый раз присваиваем новое значение. Но вот почему перед Button 4 стоит какой-то объект Form1? Это форма. Ведь кнопка принадлежит форме, а значит, объект Button4 можно рассматривать как свойство объекта Form1.
   Внимательный читатель спросит: "А почему мы раньше никогда Form1 перед объектами формы не указывали, а сейчас указали?". Дело в том, что есть процедуры и функции классов (они, если вы еще не забыли, называются методами), а есть просто процедуры и функции. Сейчас перед вами просто процеДypa. А в тестовом редакторе мы писали код только в обработчиках событий формы. Обработчик события процеДypa класса. Мы везде должны были бы писать перед объектом имя более глобального объекта, к которому он принадлежит. Однако, если мы пишем код в методе глобального объекта, его идентификатор нужно опустить, что мы с успехом и делали. ПроцеДypa ChangeCaption не входит ни в какой класс, она сама по себе. Поэтому в ней надо указывать полный путь до необходимого свойства или объекта. Немного сложно, но, попpaктиковавшись, вы все поймете.
   После первого запуска название кнопки должно смениться случайным образом. Запишем комaнду запуска этой процедуры в обработчик события формы OnCreate. Создать обработчик можно или через вторую вкладку объектного инспектора, или просто щелкнув два раза на пустом прострaнcтве формы. Пишите между begin и end всего одну строчку:
   ChangeCaption;

   Запустите игру. После запуска название кнопки меняется. Что и требовалось сделать. Попробуйте запустить игру несколько раз. Странно, название кнопки всегда одно и то же. Дело все в принципе действия генератора случайных чисел. На самом деле, числа он выдает не случайные, а псевдослучайные, основанные на специальной таблице случайных чисел. Каждый раз при вызове берутся числа из таблицы в одном и том же порядке, поэтому вся случайность теряется. Чтобы это обойти, перед запуском программы надо один раз сбросить указатель таблицы случайных чисел с помощью комaнды Randomize. Поместить ее лучше всего в обработчик OnCreate, ведь он запускается самым первым. В итоге обработчик OnCreate у вас будет выглядеть так:
   procedure TForm1.FormCreate(Sender: TObject);
   begin
   Randomize;
   ChangeCaption;
   end;

   Попробуйте запустить игру несколько раз. Теперь надписи будут разными.
   Напишем процедуру, которая заставит ведущего говорить. В качестве параметра мы будем передавать процедуре целое число, которое обозначает нужную фразу. Вот полный текст этой процедуры:
- ПроцеДypa обработки клика по Button4 в редакторе кода

   procedure Say(text:integer);

   begin
   Form1.Image2.Visible:=false;
   Form1.Image3.Visible:=false;
   Form1.Image4.Visible:=false;
   Form1.Image5.Visible:=false;

   case text of
   0:Form1.Image2.Visible:=true;
   1:Form1.Image3.Visible:=true;
   2:Form1.Image4.Visible:=true;
   3:Form1.Image5.Visible:=true;
   end;
   end;

   Коротко пробежимся по тексту. Сначала мы делаем невидимыми все картинки фраз. Потом с помощью уже знакомой вам конструкции case в соответствии со значением переменной-параметра text делаем видимой нужную картинку-фразу.

   Тонкости гeймплея

   Когда все подготовительные действия выполнены, нужно приступать к проработке гeймплея. Нажимаем на кнопку Новая игра; ведущий должен поприветствовать игрока. Для этого создайте обработчик события нажатия на кнопку. В нем пишите:
   say(0);
   n:=random(100);
   c:=0;

   В переменную n мы заносим случайное число, которое должен отгадать игрок. Переменная с счетчик попыток. Эти переменные должны быть глобальными, потому что мы их будем использовать в нескольких процеДypaх и обработчиках. Объявите процедуру глобальной в разделе var:
   n:integer;
   c:integer;

   Теперь игрок вводит свой вариант ответа в поле Edit1 и нажимает кнопку Button4. В ее обработчике мы должны сравнить вариант игрока со значением в переменной n и вывести на экран соответствующую фразу. Обработчик кнопки Button4 будет выглядеть так:
   ChangeCaption;
   if strtoint(edit1.text)>n then begin
   say(3);
   c:=c+1;
   end;
   if strtoint(edit1.text)    say(2);
   c:=c+1;
   end;
   if strtoint(edit1.text)=n then begin
   say(1);
   if c    end;
   Edit1.Text:=\'\';

   Этот обработчик достаточно сложный, поэтому его разберем детально. Первая комaнда смена надписи на кнопке Button4. Потом начинаются проверки. Взгляните на первое условие. Переменная n сравнивается с конструкцией strtoint это функция, которая преобразует строковую переменную в целочисленную и возвращает эту переменную. Данной функцией мы конвертируем значение edit1.text. В нем содержится строчка, которую ввел игрок. Зачем нужно что-то конвертировать? В "Дельфи" есть несколько типов переменных, в частности, целые числа и строки. Переменные разных типов хранят данные в разных форматах и поэтому несовместимы между собой. Чтобы сравнивать две переменные разных типов, надо одну из них привести к типу другой с помощью специальных функций, таких, как strtoint.
   Если то, что ввел игрок, больше значения переменной n, то на экран с помощью процедуры say выводится информация. После этого увеличивается на единицу счетчик попыток. Следующая проверка почти такая же, с той лишь разницей, что теперь предположение игрока оказывается меньше загаданного числа.
   Самое интересное условие третье. Оно выполняется, если игрок угадал число. Ведущий сообщает об этом (комaнда say(1)). Потом мы проверяем, вдруг игрок отгадал число за рекордное количество попыток (не забывайте, что чем меньше, тем лучше, а не наоборот). Рекорд должен быть записан в глобальную переменную maxc (не забудьте ее объявить). Процедуру для загрузки значения в maxc мы напишем потом. А пока просто считайте, что в этой переменной содержится предыдущий рекорд. Если рекорд побит, мы должны запросить имя игрока, дабы записать его в таблице рекордов, и отобразить данную таблицу. Наконец, мы очищаем поле ввода (присваиваем его свойству text нулевую строку).
   Сделаем новую форму, которая будет запрашивать у игрока его имя. Щелкните на кнопку New Form, которая находится на панели инструментов. Появится новая форма. Надо ее "причесать". В верхнем левом углу разместите поле ввода, а под ним кнопку с надписью ОК. В свойство Caption формы пишите что-то вроде "Вы побили рекорд! Введите свое имя:". Уменьшите форму так, чтобы все выглядело красиво. С помощью свойств запретите изменение размеров формы, очистите содержимое поля ввода.
   Вернемся ненадолго к первой форме и обработчику события кнопки Button4. Метод формы showmodal выводит скрытую форму на экран (у любого приложения по умолчанию все формы, кроме главной, скрыты). Есть одна тонкость: этот метод выводит форму со статусом модальной, то есть как диалог. До тех пор, пока форма не закроется, пользователь не получит доступа к программе. Например, он не сможет переключиться на главное окно программы. Можно использовать столь полезную особенность.
   Стоит задуматься о том, где и как мы будем хранить данные о лучшем игроке. Создадим файл в папке игры и назовем его record.rcd. Это будет обыкновенный текстовый документ, в первой строчке которого будет храниться имя рекордсмена, а во второй число его попыток. Для начала искусственно наполните файл содержимым, например:
   Костя
   12

   Создайте форму, которая будет таблицей рекордов. Но там будет храниться всего один рекорд.
- Игра в действии
Расширить список рекордов до десяти это ваше домашнее задание. Напишите в заголовке формы "Рекорд", сделайте форму маленькой и "причешите", как мы уже поступали с другими формами. Поместите на форму компонент TLabel с палитры Standart, который является простой на дписью. В его свойстве Caption пишите "Рекордсмен". Рядом ставьте еще одну метку (Label2), но оставьте ее пустой. Сюда мы запишем имя рекордсмена. Ниже ставьте еще одну метку и пишите в ней "Его рекорд:", рядом пустую метку Label4. Ниже помещайте кнопку с надписью OK. Присвойте надписям и кнопке шрифт покрасивее. В обработчике кнопки пишите:
   modalresult:=1;
   hide;

   Modalresult нужно присвоить любое число, кроме нуля, чтобы убрать модальность.
   Где мы будем загружать данные о рекордсмене, а где мы их будем сохранять? Таблица рекордов будет появляться два раза: при нажатии на соответствующую кнопку и после появления нового рекордсмена. Не будем изобретать велосипед, и создадим только одну процедуру (а точнее, обработчик), который будем вызывать из двух разных участков кода. Переключайтесь на первую форму и дважды кликайте на кнопке Рекорды. Откроется обработчик события. Вот его полный текст:
   procedure TForm1.Button2Click(Sender: TObject);

     var
   f:textfile;
   nm:string;
   begin
   assignfile(f,extractfilepath(application.exename)+\'record.rcd\');
   reset(f);
   readln(f,nm);
   readln(f,maxc);
   closefile(f);
   form3.showmodal;
   end;

   Во-первых, мы выводим форму с рекордами на экран. Во-вторых, открываем файл record.rcd для чтения как текстовый. Потом читаем из файла первую строчку и записываем ее значение в текст метки 2 на форме рекордов. Это имя рекордсмена. Непосредственно сделать это не получится, поэтому приходится использовать вспомогательную переменную nm. В переменную maxc мы записываем значение второй строчки файла. Потом это же значение записываем в таблицу рекордов. И, наконец, закрываем файл.
   Обратите внимание, что комaндой assignfile мы как бы присваиваем файл значению переменной f. На самом деле f ссылка на файл. Теперь мы сможем обращаться к этому файлу с помощью комaнд, подобных readln. Комaнда reset открывает файл только для чтения. Если бы вы попытались записать что-то в файл, возникла бы ошибка. Почему в комaнде assignfile мы не написали просто имя открываемого файла, а добавили спереди какую-то странную конструкцию? Мы могли сделать и так, но сpaбатывала бы комaнда не всегда. Дело в том, что при старте программы текущая папка назначается ее рабочей папкой, и на нее перемещается специальный указатель файловой системы Windows. Если программа будет обращаться к какому-то файлу по относительному пути, он будет тpaктоваться относительно этого указателя.
   Все вроде бы работает. Но в процессе работы программы указатель может переместиться в другое место. Например, Windows потребуется обратиться к какому-то своему драйверу или записать что-нибудь в файл подкачки. Текущей становится другая папка, и относительный путь уже не сработает. Поэтому желательно указывать именно абсолютный путь к файлу. Application.exename возвращает полный путь до исполняемого файла программы, а комaнда extractfilepath "выкусывает" из этого пути имя файла программы, и остается только путь до папки. К этому пути мы прибавляем имя нужного файла, и получаем абсолютный путь, который работает всегда.
   Переменная maxc нам нужна еще до появления окна рекордов. С ней мы сравниваем количество попыток игрока, если он отгадал число. Мы должны загрузить значение этой переменной при запуске игры. Добавим соответствующие строки в событие OnCreate:
   procedure TForm1.FormCreate(Sender: TObject);
   var
   f:textfile;
   nm:string;
   begin
   Randomize;
   ChangeCaption;
   assignfile(f,extractfilepath(application.exename)+\'record.rcd\');
   reset(f);
   readln(f,nm);
   Form3.Label2.Caption:=nm;
   readln(f,maxc);
   Form3.label4.caption:=inttostr(maxc);
   closefile(f);
   end;

   Теперь можно вернуться к кнопке OK второй формы. Здесь мы должны сохранить в файл данные нового рекордсмена, закрыть текущую форму и вывести форму рекордов. Вот текст обработчика этой кнопки:
   procedure TForm2.Button1Click(Sender: TObject);
   var
   f:textfile;
   begin
   hide;
   modalresult:=1;
   assignfile(f,extractfilepath(application.exename)+\'record.rcd\');
   rewrite(f);
   writeln(f,Edit1.text);
   maxc:=c;
   writeln(f,maxc);
   closefile(f);
   form1.Button2Click(nil);
   end;

   Сначала мы скрываем форму и убираем ее модальность. Потом связываем файловую переменную f с файлом рекордов. С помощью комaнды rewrite мы открываем файл для записи, причем, если в файле что-то до этого было, все сотрется. Чтобы не стирать содержимое, а добавлять новые строки в конец файла, надо применять комaнду append. В первую строчку файла мы пишем только что введенное игроком имя, а затем присваиваем переменной maxc новый рекорд, и тут же пишем его во вторую строчку файла. Потом файл закрываем и... И эмулируем нажатие на кнопку Рекорды... на главной форме. Не удивляйтесь, такая запись вполне возможна. Ведь обработчик события это процеДypa, а значит, ее несложно вызвать. Что мы и сделали. Параметр Sender в теле обработчика мы не использовали, поэтому его можно забить универсальным объектным нулем nil. Его еще называют указателем на пустоту.
   Сохраните проект и две только что созданные формы, и запустите компиляцию. "Дельфи" несколько раз спросит разрешения добавить один модуль в раздел uses другого модуля. Все время подтверждайте. Игра запустится. Можете играть.
   Когда эйфория успеха пройдет, вы заметите, что кое-что забыли. Кнопка Выход не работает. Чтобы исправить оплошность, достаточно в обработчике OnClick данной кнопки написать:
   Application.Terminate;

   Application это глобальный объект, который указывает на вашу программу. У него есть несколько полезных свойств и методов, которыми мы уже не раз пользовались. Например, ExeName и Terminate. Еще Application обpaбатывает сообщения, организует работу окон, распределяет потоки.

   Последние штрихи

   Что еще можно добавить к игре? Окошко About, где вы гордо напишете свое имя и нарисуете логотип. В игре пpaктически не проверяются действия пользователя, нет "защиты от Дypaка". Например, если ввести в Edit1 не число, а какое-нибудь слово, возникнет ошибка и игра вылетит. Поэтому вводимые игроком числа надо проверять. Нет управления последовательностью действий. Вместо того, чтобы нажать на кнопку Новая игра, игрок может сразу же нажать на кнопку Button4. Естественно, игра поведет себя неправильно. Может повредиться файл рекордов, опять возникнет ошибка. Все это, конечно, мелочи, но именно из таких мелочей складывается хорошее отношение пользователей к программистам и компании, выпустившей игру.
   * * *

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


Великое противостояние. Видеокарты от AMD и NVIDIA

основные события разворачиваются исключительно вокруг PowerColor HD 4850. Эта скромных размеров плата одной левой уделывает не только GeForce 8800 GT, одного из своих прямых конкурентов, но и более дорогой GeForce 9800 GTX! А в Crysis, начиная с разрешени...

26 04 2024 18:49:35

Might and Magic Heroes 6

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

25 04 2024 12:25:56

Uncharted

Автор: Джошуа Уильямсон Художник: Тони Харрис Издательство: DC Comics Язык: английский Переплет: мягкий, 144 стр. Оценка: 4/5 Прошлой осенью Натан Дрейк начал открывать для себя новые горизонты. Еще до того, как студия Naughty Dog отправила…|Игромания...

24 04 2024 11:45:18

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

После чего? Дробовик способен творить чудеса. Давным-давно, лет пятьдесят назад, когда на Земле еще встречались зеленая трава и гoлyбая вода, инопланетные захватчики, ретикуляне, решили превратить планету то ли в инкубатор, то ли в гигант...

23 04 2024 15:28:10

Penny Arcade Adventures: On the Rain-Slick Precipice of Darkness  Episode One

Penny Arcade — уникальная в своем роде юмористическая ролевая игра по мотивам одноименного комикса про игровую индустрию. В мире, где в одну кучу сброшены Говард Лафкрафт, нуар, стимпанк и пoxoтливые роботы, обожающие насиловать фрукты. С игровой механ...

22 04 2024 17:30:40

Краткие статьи. Первый взгляд "The Sims: Vacation"

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

21 04 2024 8:44:28

Первый взгляд. Sins of a Solar Empire

Молодая студия Ironclad Games решила начать свою игровую карьеру с весьма амбициозного проекта — масштабной космической стратегии в реальном времени Sins of a Solar Empire. Впрочем, космической стратегией, пусть даже и с эпическим размахом, удивить ко...

20 04 2024 14:25:23

Первые впечатления от Destiny 2. Легион должен пасть

Александр Пушкарь Прикипел к играм еще в бессознательном возрасте. Родители-инженеры брали его с собой на работу и сажали перед экраном БЭСМ, чтобы не отвлекал. Самолично собрал свой первый компьютер «Поиск-1» (впоследствии…|Игромания...

19 04 2024 5:43:43

Косплей недели: Overwatch + Cyberpunk 2077, Genshin Impact, LoL, «Ведьмак»

Ангел — Overwatch Косплеер Алёна Сысуева и фотограф 412ART представили образ Ангел из Overwatch во мрачной вселенной Cyberpunk 2077 — эту новую итерацию героини они окрестили «CYBERMERCY 2077». Крысавчик…|Игромания...

18 04 2024 14:32:34

18+ года

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

17 04 2024 16:32:20

Star Wars: The Old Republic

«…Противоречивая натура SWTOR проявляется сразу же. Только вы насладились шикарным вступительным роликом, выбрали сервер и сторону, за которую будете сражаться (естественно, Империя или Республика), как вдруг оказываетесь в невероятно куцем редакторе перс...

16 04 2024 21:57:53

Семейка Боун. Глава 1: Путешествие начинается

Вундеркинды из Telltale Games известны прежде всего по возрожденной серии Sam & Max. Но мало кто знает, что за ними числятся и другие отличные квесты. Например, серия Bone. В ее основе лежит творчество художника Джеффа Смита и приключения его пер...

15 04 2024 22:53:43

Превью Total War: Three Kingdoms. Много нового, мало революций

Политика британской комaнды Creative Assembly заслуживает уважения. Развивая свой главный бренд — Total War, — они не только создают превосходные продолжения классических частей вроде Shogun 2 или Rome 2, но ещё и двигают серию…|Игромания...

14 04 2024 13:29:37

Новые подземелья и дpaконы. Обзор D&D 3.5 редакции

"...Wizards of the Coast провели еще большую систематизацию игры. Правила теперь состоят из правил, а не из исключений. Возникающие спopные ситуации почти всегда разрешаются с помощью буквы закона, а не мастерским произволом..."...

13 04 2024 13:52:44

Mortal Kombat: Legacy

«…Танчароен переосмысляет классические сюжеты и образы героев, стремясь сделать их как можно более реалистичными, но, увы, это удается ему далеко не всегда…»...

12 04 2024 4:43:12

Чем хороший уровень отличается от плохого? Разбираемся на примере Thief, Mirror’s Edge и Dishonored

Левелдизайн — одна из важнейших составляющих разработки игр, но с развитием индустрии публика уделяет ему всё меньше и меньше внимания. Дескать, хороший (читай, разветвлённый) дизайн уровней — это лишь приятный, но необязательный…|Игромания...

11 04 2024 21:54:53

Tekken Tag Tournament 2

ФОРМУЛА ИГРЫ Tekken Tag Tournament 2 80% Tekken как он есть 10% хорошо забытого старого 8% радуги изо рта 2% мутировавших животных Серия Tekken — не просто очередной файтинг. Tekken — это…|Игромания...

10 04 2024 2:52:30

Косплей недели: Mass Effect, League of Legends, Genshin Impact, Mortal Kombat

Тали'Зора — Mass Effect Открывает сегодняшнюю подборку редкая гостья в этой рубрике: скрытная и в буквальном смысле хрупкая (да настолько, что ей нигде нельзя снимать ни шлем, ни защитный костюм) Тали'Зора из оригинальной…|Игромания...

09 04 2024 8:30:19

240 Гц... в ноутбуке на стероидах. Обзор ASUS ROG Zephyrus S GX502

Друзья, дождались! В ноутбуках теперь есть матрицы на 240 Гц. И, что удивительно, первой её примерила не чемоданообразная громадина, а ASUS Zephyrus S толщиной менее двух сантиметров и весом в пару килограммов. Внешний вид Ноутбук потрясающе строг:…|Игромания...

08 04 2024 0:33:25

Софт-экспресс

    На продвижение Service Pack 2 для Windows XP, о задержке которого мы писали в прошлом номере, Microsoft намерена потратить около 300 млн. долларов. Такие расходы объясняются тем, что распространяться SP2 будет…|Игромания...

07 04 2024 7:32:25

«Игра престолов»: успехи и провалы 7-го сезона

Новый сезон «Игры престолов» отбушевал в сжатые сроки — семь серий вышли с 13 июля по 27 августа. Заслуживал ли он долгого ожидания? И да, и нет. За полтора месяца канал HBO вместе с шоураннерами Дэном Вайсом и Дэвидом…|Игромания...

06 04 2024 6:13:20

Горячая линия: игры

24 часа в сутки любые ваши вопросы по играм принимаются по адресу games@igromania.ru или по телефону 8 (909) 981-30-47 (только SMS!). Если вы шлете письмо обычной почтой, сделайте на конверте пометку «Горячая линия: игры». Присылайте ваши…|Игромания...

05 04 2024 3:12:19

«Мы создаём песочницу для фанатов средневековья» интервью с разработчиками Conqueror's Blade

Conqueror’s Blade — MMO-гибрид экшена и стратегии в реальном времени, где в схватке могут сойтись войска разных народов мира и даже разных эпох. По случаю того, что в проекте с 17 по 19 декабря проходит закрытый тест, мы…|Игромания...

04 04 2024 18:56:13

Chrome

о Chrome заговорили на всевозможных форумах сразу после того, как разработчики (польская комaнда Techland) выложили в Интернет первые скриншоты. Причиной и темой разговоров стала графика игры, выглядевшая более чем привлекательно. Но некоторые критики из...

03 04 2024 5:48:18

Краткие статьи. SimCity 4

В отличие от предыдущих частей сериала, в SimCity 4 появится более-менее вменяемая экономическая модель, и подведомственный мегаполис наконец-то выйдет из долгой территориальной блокады в пределах одной игровой карты. Начав строительство города с маленько...

02 04 2024 23:39:49

Софтверный набор 

ГВОЗДЬ НОМЕРАDVD Shrink 3.2Разработчик: dvdshrinkЯзык: английскийТип распространения: бесплатноСайт: www.dvdshrink.orgКопирование фильма с DVD на жесткий диск компьютера зачастую выливается в целую проблему из-за всевозможных защит и привязки к…|Игромания...

01 04 2024 7:12:36

В бой идут одни старики. World of Warplanes

«…После успешного старта и раскрутки онлайнового экшена World of Tanks в Wargaming.net начали работать сразу над двумя новыми проектами. World of Warplanes перенесет онлайновые баталии в воздух, а World of Battleships, соответственно, на море. Обе игры вы...

31 03 2024 17:47:38

The Secret World

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

30 03 2024 9:52:39

Трогательная штучка. Обзор графического планшета Wacom Bamboo Pen & Touch с технологией мультитач

«…представили интеpaктивный планшет Bamboo Pen & Touch, в котором соединены технологии перьевого и сенсорного ввода. Устройство не только реагирует на касание специального пера, но и откликается на прикосновения пальцев, а это, безусловно, шаг навстречу б...

29 03 2024 7:11:22

Косплей недели: Star Wars, Silent Hill 2, The Witcher

Хорошим фотокосплеем в наше время удивить сложно. Но, несмотря на все сложности подготовки образа, зрители все равно ищут подвох и винят косплееров и фотографов в «сплошном фотошопе». Да, в формате студийной съёмки без ретуши…|Игромания...

28 03 2024 10:11:35

Нэнси Дрю: Платье для первой леди

Danger by Design — это, страшно сказать, четырнадцатая игра о приключениях Нэнси Дрю, выпущенная студией Her Interactive. В августе, кстати, состоится российская премьера первого (что удивительно) полнометражного фильма, который так и называетс...

27 03 2024 2:46:38

Параграф 78

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

26 03 2024 8:35:24

Краткие статьи. Grandia 2

несмотря на многочисленные приставочные клише, Grandia в рамках ограниченного PC-рынка смотрится весьма свежо. Ведь настоящие jRPG (корейские и прочие подделки не в счет) появляются в наших краях настолько редко, что каждый случайный путник из Dreamcast-с...

25 03 2024 22:20:29

Star Wars: The Old Republic

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

24 03 2024 2:41:25

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

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

23 03 2024 20:46:19

Army of Two: The 40th Day

Army of Two можно считать родоначальником современных кооперативных боевиков. Army of Two: The 40th Day наверняка станет достойным преемником: десяток старых приемов, новые трюки для парного исполнения (вроде захвата заложников или добровольной сдачи в пл...

22 03 2024 6:14:29

Duke Nukem Forever

«…Если еще раз столкнуть лбами Duke Nukem Forever и Bulletstorm, то первый будет похож на приглашенную спортивную знаменитость, а второй — на подающего надежды молодого атлета. Юноша бодро дрыгается на брусьях и гимнастическом козле, а опытный спортсмен н...

21 03 2024 4:17:58

Руководство и прохождение по "Condemned: Criminal Origins"

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

20 03 2024 18:52:26

Обзор Battletoads. Жабий камень в огород

Показ гeймплея восставшей из пепла Battletoads на gamescom 2019 многими мгновенно был воспринят в штыки — внезапное превращение суровых жаб в мультяшных Дypaчков казалось плевком в лицо старым фанатам. Тем не менее, на выходе у Dlala…|Игромания...

19 03 2024 23:51:42

Онлайновый мир года: Destiny: The Taken King, Final Fantasy XIV: Heavensward, Guild Wars 2: Heart of the Thorns

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

18 03 2024 17:15:14

Вердикт. Локализации. Враждебные небеса

ОБ ИГРЕ: Разработчики явно решили порадовать нас осенним обилием аркад: Astrobatics, Pulsarius, а теперь вот Alien Sky. На этот раз, правда, симпатичный кораблик намертво привязан к нижнему краю экрана, то есть вы можете перемещаться исключительно по...

17 03 2024 9:29:19

«Твин Пикс»: чего ждать от третьего сезона?

«Твин Пикс» на телевидении — все равно что Shenmue в игровой индустрии. То есть феноменальный, во многом революционный проект, здорово встряхнувший рынок. Зрители по всему миру приняли анонс третьего сезона с огромным…|Игромания...

16 03 2024 19:14:46

Киберспорт. Return to Castle Wolfenstein

Тактическое руководство, часть четвертая Оружие и тактика стрельбы (продолжение) Гранаты. Гранат в игре два типа: немецкие и лимонки. Отличаются только тем, что немецкие взрываются на пятой секунде, а лимонки — на четвертой. Как правило, взрыв…|Игромания...

15 03 2024 6:21:16

Репортаж с E3 2006

...Каждый год штурмовой отряд «Игромании» высаживается на тихоокеанском побережье США, окапывается по адресу 1201 South Figueroa Street в самом центре лос-анджелесского дayнтауна и на протяжении трех последующих дней ведет самую настоящую разв...

14 03 2024 14:35:26

Горячая линия: игрострой

24 часа в сутки вопросы по созданию, модифицированию и вскрытию игр принимаются на адрес gamedev@igromania.ru и по SMS на короткий номер 1121 с префиксом dev (в начале сообщения печатаете слово dev, а затем, через пробел, сам вопрос). Стоимость…|Игромания...

13 03 2024 13:22:32

StarCraft 2: Heart of the Swarm

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

12 03 2024 19:22:29

Первый взгляд. The Chronicles of Ny

Проект с престраннейшим названием The Chronicles of Ny от фирмы с не менее странным названием ClownKeep привлек наше внимание прежде всего тем, что эта игра относится к достаточно немногочисленному семейству “социальных” RPG. В переводе на человечески...

11 03 2024 11:37:37

Fable Legends

«…Слухи насчет MMO были удивительны, но анонс Fable Legends сумел удивить еще больше — игра будет сделана в редчайшем жанре сессионной онлайновой игры с ассиметричным гeймплеем. Обычные сессионки типа World of Tanks, League of Legends и прочих известны да...

10 03 2024 14:50:57

Bиaгpа для старинных игр. Тестирование многофункциональной игровой консоли Defender MultiMix Magic

«…консоль создана с прицелом на ретрогeймеров: одна из ключевых ее возможностей — загрузка образов игр с 8-, 16- и 32-битных приставок. Defender заявляет поддержку образов целой плеяды консолей: Nintendo Entertainment System, Famicom, Dendy, Nintendo Game...

09 03 2024 19:18:55

Pro Evolution Soccer 2013

ФОРМУЛА ИГРЫ 50% PES 6 30% FIFA 12 10% Direct Control 10% глубины Если вы любите футбольные симуляторы, то наверняка уже поиграли в демоверсию Pro Evolution Soccer 2013, доступную на сайте Konami с конца июля,…|Игромания...

08 03 2024 15:50:53

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