Pull to refresh
63
0
Андрей @Smi1e

User

Send message

История создания Age of Empires: «Это была лучшая из худших среди наших идей»

Reading time 16 min
Views 47K
imageВ Age of Empires эпичным было практически всё.

За последние 20 лет, в «Эпохах Империй» успели появиться 50 цивилизаций, суммарные продажи серии превысили 20 миллионов копий, и армия из сотен тысяч поклонников провела за игрой бесчисленные часы, причём многие из них играли в неё чуть ли не каждую неделю. Age of Empires является одной из самых влиятельных стратегий всех времен и народов. И сегодня вместо того, чтобы отправиться на свалку истории (что обычно рано или поздно случается со всеми старыми играми), «Империя» наконец-то приходит в сознание и возвращается к своим поклонникам.

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

Arstechnica пообщалась с создателями оригинальной Age of Empires о том, как проходила разработка знаменитой игры, и они откровенно рассказали о своих успехах и неудачах. Вашему вниманию предлагается краткий пересказ того, что нам удалось узнать; речь пойдет в первую очередь про первые части Age of Empires, которые заложили основу серии, но мы вспомним и более поздние игры Ensemble Studios.
Total votes 68: ↑67 and ↓1 +66
Comments 34

Переезд в Японию

Reading time 4 min
Views 60K
Попытки найти работу в Японии я начал предпринимать достаточно давно, преследуя две цели: одна — попробовать поработать за границей, а вторая — работать в команде с профессионалами в различных областях IT. Первые попытки закончились без намёка на успех. Практически везде нужно было знание японского языка хотя бы на среднем уровне. А в тех редких случаях, когда этого не требовалось, мне, по каким-то причинам, не удавалось достучаться до HR этих компаний. Тогда я забросил эту мысль, но, в то же время, создал профиль на LinkedIn и старался поддерживать профиль в актуальном состоянии. Спустя несколько лет ситуация изменилась.

image

Поиск работы


В моем случае LinkedIn оказался единственным инструментом, с помощью которого я мог добраться хотя бы до интервью. В тот момент, когда я вернулся к поискам (начало 2015-го), на сайте уже было достаточно много IT-вакансий в Токио без требований к знанию японского. Как выяснилось позже — это был новый тренд по привлечению специалистов из-за границы.

Я нашёл вакансию, которая мне была интересна, перешел по ссылке, заполнил анкету, записал видео-интервью и на какое-то время забыл обо всём этом, т.к. не расчитывал, что мне кто-то ответит. Но мне ответили.

Собеседование


Пригласили на собеседование по скайпу. Всего их было 4 или 5 и только одно из них техническое. На остальных же мне казалось, что интервьюер именно я. Мне рассказывали о компании, проектах, работе, а я задавал вопросы. В итоге за время этих интервью (которые заняли около 2-х месяцев) я познакомился с кем-то из HR, своим будущим менеджером, почти всеми членами команды и с менеджером L2 (один из executive). Т.е. ещё даже не зная наймут ли меня, я уже знал всех тех, с кем мне предстоит работать. Мне это показалось чем-то невероятным.
Читать дальше →
Total votes 67: ↑63 and ↓4 +59
Comments 86

Приёмы геймдизайна: перемешивание

Reading time 8 min
Views 21K
Во множестве популярных игр используются статичные, то есть неизменные карты. Например, огромный мир Skyrim одинаков для всех игроков. Все строения, подземелья, люди, монстры и предметы всегда находятся в одном месте. У популярности таких статичных карт есть своя причина: создатели могут подгонять контент для обеспечения целостного игрового процесса на протяжении всей игры.


Каждый предмет в Skyrim (в том числе эта бесполезная чаша рядом со ступеньками) находится в одинаковом месте для всех игроков.

Но если карты не меняются, игрок может изучить и запомнить их. А запомнив то, что срабатывало в предыдущем прохождении, вы можете просто повторять те же действия в следующих. Со временем все сложные стратегические решения, принимаемые в игре, разрушаются и превращаются в головоломку с запоминанием. По этой причине у игр со статичными картами часто возникает проблема реиграбельности.
Читать дальше →
Total votes 29: ↑29 and ↓0 +29
Comments 83

Pull request'ы на GitHub или Как мне внести изменения в чужой проект

Reading time 6 min
Views 492K
По просьбе tulskiy делаю вольный перевод частей официальной документации GitHub'а Fork A Repo и Send pull requests.

Итак, что же такое «запрос на включение (сделанных вами изменений)» (именно так я перевёл pull request)? В официальной документации гитхаба говорится следующее:
Pull request'ы позволяют вам рассказать другим о тех изменениях, которые вы разместили в своём GitHub-репозитории. Как только pull request отправлен, заинтересованные стороны рассматривают ваши изменения, обсуждают возможные правки или даже добавляют дополняющие коммиты, если нужно.

Говоря своим языком: Посылая pull request, вы говорите автору изначального репозитория (и всем заинтересованным лицам): «Смотрите, что я сделал, не хотите ли принять мои изменения и влить их в проект?»
Читать дальше, но теперь уже обо всём по порядку
Total votes 84: ↑80 and ↓4 +76
Comments 31

Подробный разбор решения crackme01_x64

Reading time 5 min
Views 25K
Данная статья рассчитана на начинающих, интересующихся обратной разработкой, и имеющих базовые представления о работе ЦП, языке ассемблера. Этот crackme относительно старый и простой, но при его решении применяются в основном те же приемы, что и при решении более сложных. На просторах Сети можно найти несколько статей с его разбором такие как эта, а еще он здесь упоминается(crackme то с историей), однако те решения не такие подробные как это. В свое время мне сильно не хватало такого построчного разбора, куда можно было бы заглянуть, когда запутался и не понимаешь что делает тот или иной участок кода. Если этот пост окажется полезным хотя бы для одного человека, значит я не зря старался. Все скрины(кроме первого) кликабельны. Приятного прочтения.

Итак, перед нами простой crackme, запустим его и посмотрим как он работает.


Ага, все довольно просто, мы должны ввести правильный серийник. Теперь откроем программу в дизассемблере. Как правило дизассемблерные листинги, даже относительно простых программ, довольно объемны. Для определения той части кода, которая проверяет ввод серийника, найдем где в памяти программы хранится строка с сообщением об ошибке «Fail, Serial is invalid !!!» и какой код к этой строке обращается.
Читать дальше →
Total votes 49: ↑47 and ↓2 +45
Comments 19

Чёрные треугольники

Reading time 3 min
Views 23K

В октябре 1994 года я только начал свою карьеру добросовестного программиста видеоигр в небольшом стартапе SingleTrac, который позже получил славу и почёт (но, к сожалению, не очень много удачи) благодаря таким сериям игр, как Warhawk, Twisted Metal и Jet Moto. Но в то время в компании было меньше 20 сотрудников, и официально она работала всего около месяца. Это случилось в мою первую рабочую неделю, возможно, в первый или второй день. Из кабинета разработчиков слышались восторженные крики.

Финансовый контролёр и действующая HR-леди нашей компании Джен вышла посмотреть, что за невероятный успех празднуют инженеры и художники. Все смотрели в экран телевизора, подключённого к комплекту разработки Sony Playstation. На экране на фоне одноцветного фона отображался чёрный треугольник.
Читать дальше →
Total votes 65: ↑64 and ↓1 +63
Comments 19

Как не надо писать на Хабр: Антирейтинг 2017

Reading time 5 min
Views 39K


Обсуждая результаты анализа статей за 2017 год, мы пришли к выводу, что нам и другим хабровчанам интересны не только лучшие публикации, но также любопытно было бы узнать какие статьи и комментарии были худшими. Сегодня мы публикуем антирейтинг публикаций и комментариев на Хабрахабре в 2017-ом. Сделано это потому, что на чужом негативном опыте можно многому научиться, оставить эти ошибки в уходящем и не повторять их в новом году. Других целей этот пост не несёт, просьба отнестись к этому с пониманием.
Читать дальше →
Total votes 74: ↑66 and ↓8 +58
Comments 65

Бэкенд игрового сервера World in Conflict выложен в открытый доступ

Reading time 1 min
Views 8.7K
image

Исключительно хорошая новость: совместными усилиями компаний Ubisoft и шведской Massive Entertainment, в открытый доступ выложен рабочий сервер для игры World in Conflict. Данная стратегия в реальном времени (RTS) вышла в 2007 году; её официальный сервер Massgate был закрыт в 2016, после чего коммьюнити massgate.org решило вернуть игру к жизни, чем и вдохновило Ubisoft на данный шаг — теперь любой сможет поднять свой собственный сервер для мультиплеера и другого онлайн-функционала.

Исходный код бэкенда доступен по ссылке на Github по лицензии GPL-2.0. Сам игровой сервер написан на С++, поэтому для компиляции вам потребуются CMake и Visual Studio. Для запуска вам также понадобятся MySQL (в оригинале использовался MySQL 4.2.1, но всё должно работать и на более свежих версиях) и любой простейший веб-сервер (авторы рекомендуют SimpleHTTPServer).

Кстати, саму игру можно сейчас получить абсолютно бесплатно до 23 декабря по ссылке — правда, для этого вам может потребоваться завести аккаунт в Uplay.
Читать дальше →
Total votes 17: ↑17 and ↓0 +17
Comments 1

Операторы связи РФ. 2017. Немного аналитики

Reading time 3 min
Views 7.7K


… Мне бы джина, я б тогда не путался в проводах...

Мы очень давно работаем на рынке софта для операторов связи и на сегодняшний день нам очень интересно понимать какая ситуация в России? Какое реальное количество действующих операторов и провайдеров? Где они? Кто они?
Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Comments 4

Netflix подбирает оптимальные обложки фильмов для каждого зрителя

Reading time 12 min
Views 12K
Из блога Netflix Technology

Много лет основной целью системы персональных рекомендаций Netflix было выбрать правильные фильмы — и вовремя предложить их пользователям. С тысячами фильмов в каталоге и разносторонними предпочтениями клиентов на сотнях миллионов аккаунтов критически важно рекомендовать точные фильмы каждому из них. Но работа системы рекомендаций на этом не заканчивается. Что можно сказать о новом и незнакомом фильме, который вызовет ваш интерес? Как вас убедить, что он достоин просмотра? Очень важно ответить на эти вопросы, чтобы помочь людям открывать для себя новый контент, особенно незнакомые фильмы.

Один из вариантов решения проблемы — принять в учёт картинки или обложки для фильмов. Если картинка выглядит убедительно, то она служит толчком и неким визуальным «доказательством», что фильм достоин просмотра. На ней может быть изображён известный вам актёр, захватывающий момент вроде автомобильной погони или драматическая сцена, передающая суть фильма или сериала. Если мы покажем идеальную обложку фильма на вашей домашней странице (как говорится, картинка стоит тысячи слов), то возможно, только возможно, вы решитесь выбрать этот фильм. Это просто ещё одна вещь, в которой Netflix отличается от традиционных медиа: у нас не один продукт, а более 100 млн разных продуктов, а каждый из пользователей получает персональные рекомендации и персональные обложки.


Главная страница Netflix без обложек. Так исторически наши алгоритмы рекомендаций видели страницу
Читать дальше →
Total votes 23: ↑23 and ↓0 +23
Comments 7

Туториал по Unreal Engine. Часть 1: знакомство с движком

Reading time 12 min
Views 662K
image

Unreal Engine 4 — это набор инструментов для разработки игр, имеющий широкие возможности: от создания двухмерных игр на мобильные до AAA-проектов для консолей. Этот движок использовался при разработке таких игр, как ARK: Survival Evolved, Tekken 7 и Kingdom Hearts III.

Разработка в Unreal Engine 4 очень проста для начинающих. С помощью системы визуального создания скриптов Blueprints Visual Scripting можно создавать готовые игры, не написав ни строчки кода! В сочетании с удобным интерфейсом это позволяет быстро изготавливать рабочие прототипы.

В этой части туториала по Unreal Engine 4 мы ознакомимся с основными возможностями программы. Вот основные темы, которые будут в нём рассмотрены:

  • Установка движка
  • Импорт ассетов
  • Создание материалов
  • Использование Blueprints для создания объектов с простейшими функциями
Читать дальше →
Total votes 21: ↑19 and ↓2 +17
Comments 10

Как обсуждать биткойн и не выглядеть дураком

Reading time 4 min
Views 20K

В этом праздничном сезоне будет трудно обойтись без обсуждения биткойнов. Поскольку стоимость биткойнов заигрывает с 20 000 долларов, а институциональные инвесторы начинают вкладывать большие деньги во фьючерсы на биткойн, этот вопрос стал горячей темой для обсуждения за кофе, бизнес-ланчами, праздничными столами и т. д.

Читать дальше →
Total votes 39: ↑20 and ↓19 +1
Comments 83

Как перетасовать песни?

Reading time 4 min
Views 14K
Мы здесь в Spotify серьёзно относимся к фидбеку от пользователей. Какое-то время назад мы заметили, что пользователи жалуются на то, что при включенном режиме случайного перемешивания плейлиста порядок песен на самом деле не случаен — например, несколько песен одного и того же исполнителя могут быть воспроизведены одна за другой, при том, что в плейлисте множество песен разных исполнителей. Пользователи спрашивали неужели мы не способны сделать такую простую вещь, как случайный порядок воспроизведения треков? Мы отвечали «Он правда-правда случаен! Мы проверяли!»

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

Наш точка зрения


Ещё в самом первом релизе нашего плеера в нём была функция случайного перемешивания плейлиста. Мы использовали для этого алгоритм Фишера-Йетса — и он давал идеально случайное перемешивание. Но что такое «идеально случайное»? Это значит, например, что мы можем получить один из двух нижеуказанных порядков песен с одинаковой вероятностью (разные цвета означают треки разных исполнителей):

image
Читать дальше →
Total votes 29: ↑29 and ↓0 +29
Comments 52

Эффект дизеринга в трёхмерной игре

Reading time 8 min
Views 22K
image

Создатель Papers, Please Лукас Поуп работает над новым трёхмерным проектом Return of the Obra Dinn, в котором пытается с помощью эффекта дизеринга воссоздать в игре ощущение старинной книги.

Для начала краткое объяснение: Obra Dinn выполняет внутренний рендеринг всего в 8-битной палитре в градациях серого, а затем на этапе постобработки преобразует конечные выходные данные в 1-битные значения. Преобразование из 8-битного в 1-битный цвет выполняется сравнением каждого пикселя исходного изображения с соответствующей точкой в тайловом паттерне дизеринга. Если значение пикселя изображения больше значения точки паттерна дизеринга, то выходному биту присваивается значение 1, в противном случае оно равно 0. Выходные данные упрощаются до 1-битных значений, а глаз зрителя объединяет пиксели, аппроксимируя из них больше битов.
Читать дальше →
Total votes 72: ↑72 and ↓0 +72
Comments 42

У CDROM’а век не долог?

Reading time 4 min
Views 38K
DVD [диск] начнет умирать уже лет через 5. […] Я опираюсь на информацию из сети про условия и максимальный срок жизни, вполне может быть и лажа. Но фильмы на DVD[,] купленные ~10 лет назад[,] сейчас не запускаются ни один из нескольких десятков.

Из обсуждения


За многие годы у меня скопилась значительная коллекция CD и DVD ROM, выпущенных массовыми тиражами, кроме того, периодически архивирую на одноразовые болванки свои файлы. Поэтому утверждение, приведенное в эпиграфе, не могло меня не заинтересовать.
Читать дальше →
Total votes 58: ↑46 and ↓12 +34
Comments 255

Создание ремейков игр с помощью эмуляции: proof of concept

Reading time 7 min
Views 9.9K
image

Введение


«В моё время игры были лучше. Они были интереснее, потому что геймплей считался более важным, чем графика».

— Геймеры, рождённые в любом десятилетии

Каким бы ни было «ваше время», думаю, вы в какой-то степени согласны с этим мнением. Для меня это был период с середины 80-х до середины 90-х, когда я проводил бесчисленные часы за Sir Fred, Atic Atac, Airborne Ranger, Monkey Island, Twilight: 2000, Stunts, Gunship 2000, Twinsen’s Adventure, Dark Sun, Challenge for Ancient Empires, серией the X-Wing и очень многими другими играми.

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

Сыграть в remastered-версию. Некоторые игры настолько потрясающи и собрали настолько преданную базу фанатов, что выпускается официальное «новое издание». Это точно такая же игра, но с современной графикой. Отличным примером таких игр может быть замечательная Monkey Island Special Edition.

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

К похожей категории относятся игры, исходный код которых открыт, например шутеры от первого лица компании id. Существуют проекты, создающие новые графические ресурсы для этих игр, но они редки, да и немногие разработчики открывают исходный код своих игр.
Читать дальше →
Total votes 39: ↑39 and ↓0 +39
Comments 4

Какие правила английского нарушают наши иностранные коллеги. Часть 2

Reading time 4 min
Views 25K

В комментариях к нашей прошлой статье накопилось большое количество пожеланий, поэтому по просьбам трудящихся мы решили продолжить эту тему. Ловите еще одну подборку случаев, когда можно говорить не по правилам так, чтобы ваша речь все равно оставалась понятной.

Less vs fewer


В английском языке, как и в русском, есть четкое разграничение между исчисляемыми существительными (a friend — friends) и неисчисляемыми (milk). Для каждого из этих типов существительных есть определенное слово, которое показывает количество. Чтобы показать, что чего-то мало, мы говорим так:

I have little milk. — У меня мало молока.
I have few friends — У меня мало друзей.


Так вот, при сравнении предметов, чтобы показать, что у нас чего-то меньше, мы, говорим так:

I have less milk than you. — У меня меньше молока, чем у тебя.
I have fewer friends than you. — У меня меньше друзей, чем у тебя.
Читать дальше →
Total votes 33: ↑31 and ↓2 +29
Comments 55

Драконье Стекло или рассказ о игровом редакторе Larian Studios

Reading time 7 min
Views 14K
larian_dublin_logo Привет, Хабр! Это снова Larian Studios. Уф, у нас прошёл релиз, и теперь наконец-то появилось время продолжить делиться с вами нашим опытом и наработками.

Сегодня я расскажу о самом главном инструменте, с помощью которого родилось уже 4 проекта — о кофемашине внутреннем редакторе игры. Редактор доступен в ограниченном (для моддеров и игроков) виде в Steam/GoG, поэтому каждый, кто приобрел игру, может скачать его и попробовать бесплатно.

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

Ну и еще расскажу, чем занимаются Tools Programmer в нашей студии.
Читать дальше →
Total votes 27: ↑25 and ↓2 +23
Comments 24

Как создавать графику для VR — рекомендации Google

Reading time 4 min
Views 9K

Создание графических ресурсов: рекомендации




Как художник VR и AR, я заметил две тенденции. Во-первых, постоянно появляются новые инструменты и практики, которые позволяют повысить качество наших работ. Но в то же время возвращаются техники и навыки конца 90-х и начала 2000-х. Они полностью применимы к виртуальной реальности, потому что вычислительные ресурсы в VR ограничены. И если вы только начинаете свой путь, то вам стоит рассмотреть разнообразные подходы. Итак, если вы художник и недавно занялись VR, то вот некоторые из моих самых любимых советов по созданию качественных графических ресурсов.
Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Comments 3

Information

Rating
Does not participate
Location
Россия
Registered
Activity