E3

13 июня 2017

EA в очередной раз провела конференцию в своем стиле: куча разговоров про спорт и замечательные акции в Origin, какое-то невероятное дополнение к Battlefield 1 (вот это да — ночные карты!), какой-то дефолтный NFS: Payback (с заскриптованными катсценами и какой-то очень странной физикой). Внезапно показали A Way Out — кооперативный экшн от третьего лица про побег из тюрьмы. Интересных кооперативных игр действительно не хватает, и эту хочется посмотреть. Сделали малюсенький тизер Anthem, по которому уже были видны знакомые джетпаки из Mass Effect: Andromeda и было понятно, что игра косплеит Destiny. Наконец, показали второй Star Wars: Battlefront, который выглядит как первый с новыми картами и в целом не то чтобы поражает воображение. В общем, я для себя практически не увидел ничего интересного.

Microsoft выкатили свой Scorpio и пытаются загнать консоль, на которой не во что играть. По-моему, звучало число 42: типа столько игр они показывали на конференции. Из них половина, как водится, индюшатина, которая промелькнула в двухминутном ролике, еще большой кусок — из обратной совместимости с предыдущим Xbox, а из оставшихся вы тоже далеко не во все будете играть. Начали с Forza, которая теперь почему-то не выглядит так офигенно, как раньше (из-за чего неясно, зачем же покупать Xbox One X, если графоний не поражает воображение). Далее внезапно появился Metro: Exodus, который неплохо выглядел, но, похоже, недалеко ушел от предыдущих частей, а потому в целом опять будет ощущаться как какая-то поделка. Потом включили новый Assassin’s Creed, в котором появился квадракоптер из Watch_Dogs 2 в виде орла, а в остальном так и остались деревья с удачно расположенной двойной развилкой и бои, в которых враги атакуют строго по одному.

Дальше был State of Decay 2, который, как и раньше, выглядит как смесь ARMA и Left 4 Dead, и которому точно не поможет никакой 4К. Показали геймплей обустройства жилища, чего я вроде бы не видел в прошлом году. Следующий трейлер начался с графонистой мультяшной анимации и я понадеялся было на то, что MS добились такого уровня графики в самой игре. Но как бы не так: в игре у моделек куцые анимации, хотя и не сильно плохой визуальный стиль. Еще позабавило, что игра называется The Darwin Project. Не обошлось и без Minecraft, хотя я плохо понимаю, зачем там нужен 4К. Далее неожиданно показали Black Desert, которую я считал чуть ли не браузеркой.

Приятно удивил следующий ролик: The Last Night, адвенчура с классным одновременно пикселявым и неоновым стилем. Затем показали достаточно много геймплея Sea of Thieves — пиратской кооперативной игры, в которую, наверное, забавно поиграть, но ради нее покупать консоль вряд ли кто-нибудь стал бы. Включили небольшой ролик Cuphead с ее стилизованной под старую анимацию графикой. Посмотреть интересно, но непонятно, захочется ли ее проходить всю.

От этой конференции я ждал показа Crackdown 3, потому что мне очень понравился предыдущий трейлер. Геймплей, к сожалению, не показался таким драйвовым, каким его пытались показывать в CGI-ролике раньше. Еще показали Tacoma, симулятор одинокого астронавта на космической станции. Выглядит все еще круто, но, поскольку это скорее симулятор ходьбы, чем какой-нибудь Prey, непонятно, насколько это окажется затягивающим. Были приквел Life is Strange (не понимаю, зачем) и сиквел Ori (первую часть вроде все хвалят, и вторая на нее сильно похожа).

Наконец, был большой ролик Anthem. Как и ожидалось по тизеру, это такой косплей Destiny от Bioware, с джетпаками и инопланетной флорой-фауной. На самом деле, это выглядит так, как, по-моему, должен был выглядеть Mass Effect: Andromeda. Такое ощущение, что ребята начали делать игру такой, а потом подумали, что сильно уж непохоже получается и вообще как-то грустно без знакомых азари и турианцев, поэтому придумали по-быстрому объяснение, откуда последние там взялись. Из-за этого весь обещанный исследовательский экспириенс в интересном новом мире заменили тупым гриндом и скучненькими квестиками, а в качестве новых рас собрали пару дефолтных гуманоидов. В Anthem, конечно, монстры тоже не слишком удивительные, но, по крайней мере, для Mass Effect это был бы крутой свежий взгляд.

В итоге, Microsoft не удалось продать мне ни свой замечательный мега-мощный Xbox One X, ни какую-нибудь его более слабую версию. Несколько интересных игр, конечно, было, но не выглядело как праздник геймера.

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

Был DOOM VFR с крайне сомнительным решением телепортации игрока. Может это и позволяет людям увереннее себя почувствовать в виртуальной реальности, но драйвовость игры, по-моему, убивает напрочь. Еще показали Fallout 4 VR, заметив, что теперь в VR появилась целая здоровая RPG. Я в Fallout как-то особо не играл, но, если мне зайдет, я бы очень хотел пройти четвертый в VR — должно быть довольно прикольно.

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

Показали DLC к Dishonored 2 и вторую часть The Evil Within. Выглядит неплохо, но для начала нужно заценить предшествующие игры, а у меня пока что руки не дошли.

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

Самой офигенной и одновременно самой ужасной конференцией в этом году было шоу Devolver Digital. Дело в том, что перед самым началом был очень короткий кусочек такого токшоу, на котором всячески изображали свою неподготовленность вести конференцию в прямом эфире ведущий и его гости. Вскоре они все-таки переключились на камеру из зала, и, хотя по сути там представили только Ruiner и какого-то нового странного Serious Sam, это было лучшее выступление на Е3 в этом году. Мемы, подшучивание над всеми другими конференциями и щепотка дикого треша — это было смешно и круто. Однако затем дело снова вернулось в студию с токшоу и это выглядело так, будто теперь конференция будет продолжаться там. В гостях сидел человек из Devolver, начали показывать какие-то странные игры... но ведь это Devolver, кто его знает, что они могут показать после такого выступления? В общем, я посмотрел еще часа два, за которые в студии поменялось куча гостей, происходили всякие дурацкие вещи, вещание переключалось на какого-то Dr. CUBE и рестлерские бои косплееров никому неизвестных персонажей... Однако, время от времени они показывали какие-то новые игры, поэтому могло показаться, что Devolver все еще что-то показывает. В общем, как я понял, это было шоу от Twitch, где они приглашали всяких разных мелких разработчиков, чтобы они показывали свои игры. А Devolver закончился после тех 15-20 минут в самом начале.

PC Gaming Show я вообще проспал. Когда ложился там что-то затирал Intel и ненадолго показался Linkin Park, но я даже не успел надеть наушники, чтобы услышать, о чем идет речь. То, что я при этом увидел, достаточно емко выразило промелькнувшее в чате сообщение — «MS Paint в 3D». Учитывая из последний альбом, я бы такому не был удивлен.

Такое ощущение, будто здесь показались игры, которые настолько никому не нужны, что их даже куда-нибудь ненадолго не пустили к Microsoft или Sony. Я посмотрел трейлеры: LawBreakers — очередной Overwatch, разве что фишка с невесомостью забавная, Echo Arena — какой-то футбол без гравитации в VR (хотя там, походу, еще сюжетка в Lone Echo будет). Интересно выглядит TUNIC, такой мультяшненький диаблоид. Остальное — сиквелы каких-то известных стратегий, до которых лично мне дела нет.

Конференция Ubisoft в этом году была очень классной. Началось все с Mario+Rabbids, мультяшной-красочной сюжетной стратегии с Марио и юбисофтовскими кроликами в качестве главных героев. Это кажется прикольным даже если это абсолютно линейная сюжетная кампания, однако, как я понял, там все-таки можно свободно перемещаться и сворачивать во всякие отвлетвления, то есть проходить игру можно по-разному. Боевая система несложная, но, засчет множества персонажей и всяких прокачиваемых приемчиков, можно много экспериментировать или просто найти интересные для себя комбинации. Правда, вроде бы выходит только на Switch.

В целом, вся конференция состояла из классных роликов, и приоритеты были расставлены так, что вроде бы Just Dance и Steep были, а вроде бы и так недолго, что не успел от них устать.

Снова показали Assassin’s Creed, после чего последовал The Crew 2. Мне вообще показалось, будто это какой-то новый IP, потому что стиль вообще не напомнил мне The Crew. Играть я, конечно, в него не буду, но выглядел он так, что хотелось попробовать.

Продолжение South Park выглядит так же прикольно, как и раньше, но, поскольку ничего нового в общем-то не показали, ролик довольно быстро закончился. Затем ненадолго появился Transference, новый VR-проект, который выглядит занятно, хотя пока что не совсем понятно, что это вообще такое.

Довольно долго показывали Skull & Bones — игра про пиратов, которая практически полностью копирует режим корабельных боев из Assassin’s Creed: Black Flag. Выглядит интересно, но есть ощущение, что игру постигнет участь For Honor — все пощупают, а потом играть почти никто не будет.

Быстро промелькнул South Park: Phone Destroyer — какая-то мобильная игра, судя по всему основывающаяся на небольших битвах между живыми игроками.

Дальше показали Starlink — этакий No Man’s Sky с упором на какие-то миссии и сражения. Интересной особенностью является то, что к игре будут продаваться хитрые фигурки космических корабликов, которые можно как-то подключить к геймпаду и на ходу изменять части корабля, вытаскивая и приделывая детальки на физической фигурке. Понятно, что это очередной способ получить с игроков побольше денег, но выглядит прикольно.

Завершилось все Far Cry 5 и Beyond Good & Evil 2. Первый меня приятно удивил, и в него даже захотелось поиграть. До этого в серии выходили близнецы Far Cry 4 и Far Cry: Primal, и после третьей части я чувствовал себя слишком наигравшимся, чтобы снова бегать по какому-то острову. Второй проект был анонсирован приятным CGI-роликом, который выглядел как дорогой проработанный мультфильм от какого-нибудь Pixar. Кроме того, это приквел к оригинальной игре, которую я пропустил, поэтому в нее можно поиграть, даже если не получится найти время на первую часть (хотя, судя по отзывам, стоит найти).

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

Наконец, Sony начала свою конференцию. В прошлом году, объективно, они сделали лучшее шоу, и, я думаю, в этом году от них ждали того же. Лично я ждал нового Человека-Паука, Detroit: Become Human и каких-нибудь крутых новых IP.

В начале было DLC к Uncharted. Поиграть в саму серию я, наверное, хотел бы, а вот DLC не вызвало ни капли интереса. Следующий ролик снова был посвящен DLC — на этот раз к Horizon: Zero Dawn. И снова игру хотелось бы попробовать, а DLC — проигнорировать.

Затем показали новый геймплей Days Gone. Игру уже показывали в прошлом году и она запомнилась мне странным поведением толпы зомби. В этот раз при просмотре игра мне показалась похожей на третьего Ведьмака: есть какой-то населенный пункт с квестами, герой садится на своего коня (в случае Days Gone — железного) и едет по длинным дорогам открытого мира. В ролике также показывается некое подобие ведьмачьего чутья, с помощью которого можно было исследовать всякие квестовые места — например, чтобы проследить следы и отыскать каких-нибудь негодяев. Зомбей, однако, не пофиксили — и они все еще странно движутся.

Далее был непонятный для меня Monster Hunter и абсолютно неинтересный Shadow of the Colossus, очередной Marvel vs Capcom (хотя трейлер и был забавным, геймплейно, как я понимаю, ничего кардинально не меняется), очередной Call of Duty, The Elder Scrolls V: Skyrim в VR (конференцию Bethesda он бы, конечно, не спас, но это тоже огромная RPG с открытым миром в виртуальной реальности) и еще несколько мелких VR-проектов (пара забавных трейлеров было, но, наверное, VR там необязателен).

Снова показали God of War, из-за чего какого-то восторга от него было мало. Снова показали Detroit: Become Human, но если в прошлом году, как мне кажется, много времени уделили тому конкретному заданию на крыше, то в этом — сделали какой-то куцый сюжетный трейлер. В прошлом году было видно, во что ты будешь играть, а в этом — показали какую-то совсем другую сторону, и она почему-то цепляет гораздо меньше.

И, в самом конце, включили большой кусок геймплея Spider-Man. Ему я не рад больше всего, потому что я ожидал, что в руках новой студии игра станет тем, чем она заслуживает быть, и судя про предыдущему трейлеру, можно было на это надеяться. Однако теперь стало ясно, что в игре оставили те же самые анимации, что были в предыдущих четырех играх. Всю первую половину играющий перемещался не иначе, как притягиваясь паутиной на какие-нибудь выступы — с ОДНОЙ И ТОЙ ЖЕ анимацией. Атаки с выступов выглядят как в том же Batman, да и в предыдущих играх тоже такие были. Открытый бой — снова враги атакуют по одному. Как и раньше, это триггерит паучье чутье, и если успеваешь нажать кнопку — контратакуешь. Только изменился визуальный эффект и появилось какое-то слоу-мо. Я так и не понял, сделано ли оно, чтобы успевать нажать на кнопку или это такое rewarding слоу-мо, включающееся, если ты успел на кнопку нажать. В общем, хотя бы анимации разнообразные и можно взаимодействовать с окружением. Правда, в первой показанной драке это включало единственную бочку, а то, что во второй можно было применить балку, я бы даже и не заметил. Я уже забыл, какие были враги в предыдущих играх, но точно помню, что четыре предыдущие использовали одни и те же шаблоны с разными модельками: маленький слабый мужик с дубинкой или кулаками, такой же маленький, но с пушкой, крупный с кулачищами, и т.д. Так вот, здесь — то же самое, на крышу спрыгивает здоровый бугай, и тут же показывают, что ничего его не берет, кроме трех подряд уворотов — тогда он выдыхается и его можно спокойно побить.

Вообще, Mr. Negative по моему мнению — невероятно скучный злодей, поэтому я совершенно не рад его увидеть. После показанных боевых сцен начинается QTE — к которому, впрочем, я особых претензий не имею — и погоня за вертолетом. Полеты на паутине снова выглядят так, как выглядели две игры назад, и, по-моему, паутина до сих пор цепляется куда-то за воздух, а каких-нибудь классных анимаций раскачивания при этом не завезли.

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

Конференция Nintendo еще не началась. Включить и посмотреть в фоне можно, но понятно, что играть в эти замечательные игры на Switch я не буду, поэтому и писать подробно не стану.

В общем, как бы это не было странно, в этом году Bethesda и Sony оказались не такими крутыми, как Ubisoft и первые двадцать минут Devolver. Они, конечно, не такие плохие, как EA Play, но и не на две головы выше всех остальных. В этот раз — на уровне Microsoft или типичной Ubisoft 2016.

#WHATTHEFUCKAMIDOING

7 июня 2017

2016

31 декабря 2016

И вот я снова подвожу итоги своего года. Зимний семестр прошлого курса я уже почти не помню. Одни из самых ярких событий — различные CTF-соревнования — я уже описывал в блоге. Летом снова участвовал в GSoC, и на этот раз вел блог. Правда, он на английском, поэтому я вынес его на отдельную страницу.

За год прошел несколько интересных релизов. Весной был неплохой SUPERHOT, ближе к лету — офигенный DOOM. Летом прошел оба дополнения к третьему Ведьмаку. Осенью прошел все части Batman от Rocksteady (реально круто в котором был сделан разве что бэтмобиль) и перепрошел обе части The Force Unleashed (они, кстати, на этот раз мне не сильно понравились), а также последний DMC (который мне не перестал нравиться, так что я в очередной раз прошел его на нескольких сложностях). Совсем недавно прошел новый Watch_Dogs 2 (в котором не оказалось ничего необычного) и Furi с его отличным стилем и саундтреком. Возможно, про что-то я уже и забыл. На следующий год я уже заготовил себе целую кучу всего в Steam, хоть и не знаю, когда буду во все это играть.

SUPERHOT DOOM Batman: Arkham Knight
DMC Watch_Dogs 2 Furi

Кроме GSoC из своих проектов можно отметить несколько игр. Две — учебные проекты, поэтому ничего сильно особенного в них нет, а вот третью я совсем недавно написал на Ludum Dare 37. Я уже написал длинный пост про нее (и на английском тоже), поэтому, наверное, рассказывать еще раз не буду. VK отключили публичный API для работы с аудио, поэтому теперь ни мой бот, ни мое дополнение для браузера не могут работать с аудиозаписями — ни прикрепить, ни поискать, ни как плейлист скачать.

На днях вот решил заняться переписыванием своего приложения, в котором я отмечаю, какие комиксы прочитал. Работает, в целом, оно схожим образом с предыдущим — через localStorage — но теперь информацию я взял с marvel.com (кроме того, только за последние два года, потому что основные серии прочитал уже до 2015), и теперь оно позволяет выбрать, какие серии комиксов показывать, а какие скрыть. В планах также сделать возможность назначить каждой серии свой цвет и переупорядочивать серии, чтобы первыми показывались одни, а следом уже шли другие. Это уже было реализовано в старой версии, но через код. А сейчас я хочу сделать так, чтобы это можно было делать прямо в браузере — тогда каждый пользователь сможет сам для себя выбрать, какие серии читать, каким цветом их подсвечивать и в каком порядке показывать. Кроме того, теперь прокрутка будет вертикальной, а дизайн теперь «для слепых» — с крупными плитками.

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

UNH4CK3D — post-mortem

27 декабря 2016

Идея для игры на мой первый LD пришла немного раньше, чем была объявлена тема. Поэтому я решил участвовать в Jam и о теме не задумываться. Моя игра — браузерный симулятор хакера с реалистичными терминальными командами.

Перед LD

Поскольку я решил участвовать в Jam, меня на самом-то деле не сдерживали правила «сделать все в одного» и «все ресурсы должны быть созданы за 48 часов», поэтому я сделал небольшой набросок. Это были статичные HTML-страницы с щепоткой CSS и JS — экран входа в систему и рабочий стол с несколькими иконками.

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

День первый

В субботу у меня были занятия в универе. К счастью, первой была лекция о том, что я и так знал, поэтому я писал код. Так появился прототип терминала: никакой верстки, только JS-код, который я запускал через консоль разработчика в Firefox. Конечно, это не настоящий шелл, но он умел парсить подаваемую на вход строку на аргументы (работая со "строкой в кавычках" как с одним аргументом и поддерживая несколько escape-последовательностей вроде n). Кроме того, работали пайпы |, потому что я уже придумал, зачем они мне понадобятся.

После занятий я вернулся в свою комнату. Первым делом нужно было добавить прототип в имеющийся набросок и сделать какой-нибудь интерфейс. На самом деле, все это я стримил на Twitch (хотя никто меня не смотрит), но не записывал.

Потом я начал добавлять новые страницы с свой «интернет»: простые, вроде Mailbox (совсем статичная) и системных страниц browseros вроде settings, admin и no_internet.

К концу дня я также добавил плеер Play, использующий YouTube API, и временный плейлист, чтобы проверить, что плеер работает.

Второй день

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

Во-первых, я начал работать над бэкендом игры, потому что хотел спрятать некоторые части игры от игрока. Поэтому я поднял легкую виртуалку и поставил туда LAMP, поскольку мой сайт хостится на таком же (а я собирался выложить игру на него). Тут в игру вступил PHP. Теперь игра состояла уже не из простых статичных HTML-страниц, и требовала запуска сервера. С другой стороны, теперь я мог сделать авторизацию и использовать базу данных, чтобы хранить прогресс игрока.

Бэкенд также отвечал за перевод: браузер пользователя отправляет серверу куку, и в зависимости от установленного значения я возвращают те или иные тексты в ответ. Я хотел сделать автоматическое определение языка пользователя по IP, но модуль PHP geoip не был доступен у меня на хостинге, поэтому впоследствии пришлось его открутить.

Далее были добавлены некоторые серверные системы: поиск, сеть и обработка URL. Их, конечно, можно было реализовать и на фронтенде, но тогда игроки могли бы смотреть в JS код и увидеть все доступные IP, URL и сайты в индексе поиска, чего я допустить не хотел.

Поиск берет запрос пользователя, разбивает на отдельные слова, а потом ищет похожие ключевые слова в «индексе». Индекс содержит все сайты, которые можно найти через поиск, их заголовки, описания и массивы ключевых слов. Чтобы поиск был немного поумнее, я решил использовать расстояние Левенштейна для определения похожести ключевых слов, но поэтому поиск иногда выдает забавные варианты.

Сеть — это набор объектов, представляющих собой узел. Каждый узел может иметь несколько имен (IP или текстовые имена) и набор открытых портов с некоторыми «сервисами» на них. С помощью этого я мог легко и просто добавлять новые компьютеры в игровую сеть, и различные сервисы на них (реализованы были только web и ssh).

Обработка URL парсит строку, введенную игроком в строке игрового браузера и ищет соответствие. Это просто набор захардкоженных строк (например, «search.com» перенаправляет на что-нибудь вроде «/pages/search/index.html»), но при обработке также учитывается сеть, так что если попробовать ввести <IP>:<port> в адресной строке, сервер попытается найти такой узел и посмотрит, есть ли на указанном порте веб-сервис. Если сервис там есть, будет отображена соответствующая страница.

Когда я закончил с этими системами, я стал работать над IRC, через который подается сюжет в игре. Я решил дать игроку выбор из нескольких заготовленных вариантов и добавить забавную механику нажатия клавиш, подсмотренную в SUPERHOT, для ввода выбранных вариантов. Еще я хотел, чтобы новые сообщения появлялись одно за другим, поэтому я получаю все новые сообщения через AJAX и показываю их по одному с указанной для них задержкой. Я не запоминал в базе данных статус сообщений, поэтому при обновлении страницы IRC мгновенно появлялись все новые сообщения. Еще круто то, что звук оповещений о новых сообщениях играет даже если уйти со страницы. Кстати, звук был создан с помощью sfxr.

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

День 3

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

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

Потом занялся первым заданием: надо перейти на страницу веб-интерфейса, залогиниться с помощью выданных логина и пароля и посмотреть на стикер на мониторе. Забавно, что все пытались зазумить картинку и разглядеть надпись на стикере, а я думал, что раз на стикере написано мелко, игроки вернутся в IRC и посмотрят, что там изменилось.

Второе задание было немного сложнее: для него требуется терминал, но я знал, что хакеры не станут объяснять игроку, как его открыть и как им пользоваться, поэтому мне нужно было добавить подсказок. Поэтому я сделал блог скрипткидди, который запостил скриншот открытого терминала и страницы в браузере, через которую можно этот терминал открыть. Там также есть подсказка по поводу использования curl и curl | dash (это такой шелл в browseros). Правда, подсказок про ssh я не добавил.

Далее я стал делать различные доработки: добавил плейлисты (стандартный «плейлист игрока» и электронный «от Tkachov»), перевод (потому что мой друг не совладал со всем PHP в моем проекте), нарисовал иконки, переименовал пару вещей, и т.д.

После всего этого я немного устал, поэтому последние часы не стал тратить на создание нового контента, а просто выложил игру на сайт и запостил на ludumdare.com.

Прием игроков

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

Что удалось: похоже, игрокам понравилась идея, и многим полюбилось стучать по клавишам =)

Что не удалось: стучать по клавишам понравилось не всем; подсказок сделано мало; в игре не было сообщения, оповещающего игрока о том, что все закончилось.

Последнее я исправил, а все остальное оставил таким, каким оно было изначально. Хотелось бы сделать больше, но я не уверен, когда у меня появится время на это.

В мою игру играли TVGS на своем стриме, а запись выложили на YouTube, так что если вам хочется посмотреть, держите:

Кроме того, вы можете поиграть в нее в любом современном браузере без установки каких-либо плагинов. Я очень ценю отзывы, так что, пожалуйста, сообщите мне, что вы думаете об этой игре!

Kaspersky Industrial CTF + KrasCTF 2016

18 октября 2016

На прошедшей неделе наша команда приняла участие сразу в двух CTF: Kaspersky Industrial, в который мы прошли по итогам отборочных, и KrasCTF, на который просто подали заявку и приехали.

Первый проходил в Иннополисе, и полностью оплачивался организаторами. Нам приобрели билеты из Новосибирска в Казань (с пересадкой в Москве), встретили в аэропорту и привезли в Иннополис. Мы разместились в одном из корпусов для студентов. Блок, в котором мы жили, был неплохой: комната на троих, на двоих, кухня с плитой и холодильником, душ. Там же были одноразовые тапочки, зубные щетки, шампунь — прямо как в отеле, в котором мы жили во время RuCTF. Правда, в блоке было прохладно, и ничего с этим сделать не получилось.

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

Первой задачей был вход в сеть. Для этого было три канала: Wi-Fi (с неизвестным паролем), модемы (с которыми непонятно, как работать) и локальная сеть (которую выдавали только после обеда). Пароль не входил в словари, поэтому подобрать его не удалось. Тогда организаторы сменили пароль на цифровой, но перебор всех вариантов занял бы пару дней, поэтому им пришлось раскрыть часть пароля — и тогда, наконец, пароль получилось узнать. После этого мы могли работать с машинами в сети и пытаться как-то их взломать или использовать. На многих серверах использовались «индустриальные» сервисы и протоколы, и нужно было разобраться, как с ними работать или взломать. Каждое «незаконное» действие участников оценивалось в некоторое число баллов, которые начислялись после совершения соответствующего действия.

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

Соревнования шли два дня: весь первый день, а также до обеда во второй день. По итогам наша команда набрала достаточно много баллов, но на несколько тысяч меньше, чем первая. За второе место нам пообещали Proxmark, но, поскольку нам нужно было торопиться на трансфер до аэропорта, на награждении нас не было, и призы мы получим только когда организаторы их отправят (вместе с футболками и сертификатами, которые нам также не выдали).

Через два дня после возвращения нас снова ждал самолет. Поездку на KrasCTF 2016 уже оплачивала администрация нашего университета. Мы пропустили открытие (как мы часто это стали делать в последнее время) и прилетели в конце дня перед соревнованиями. Там мы позвонили водителю, которого предоставили организаторы, и отправились в общежитие. На этот раз общежитие было рядом с тем корпусом СФУ, в котором проходит все мероприятие, но внешне оно оказалось еще хуже тех, в которых мы жили ранее. Нас поселили в гостевой блок из пяти комнат и кухни, а в каждой комнате был свой раздельный санузел. На кухне — холодильник, микроволновка, стиральная машина. В комнате — телевизор. Проводной сети в комнате не нашлось, зато был чей-то открытый Wi-Fi. В общем, мы заказали три XXL-пиццы в Papa Johns плюс одну 30 см по промокоду, съели их, и стали спать. Кровати, кстати, были очень широкие и мягкие, как это обычно бывает.

На KrasCTF мы приезжаем уже в третий раз, и особо соревнования не меняются. Нас приводят в один и тот же корпус, мы сдаем куртки в гардероб, проходим жеребьевку — и команды расходятся по своим отдельным комнатам. Все комнаты — терминальные классы, но с дополнительными столами. В этот раз электричество было выключено до начала соревнований. Сеть мы, кажется, тоже поднимали собственную — никакого Wi-Fi, роутера или патчкордов от организаторов.

Как и ранее, категории заданий были известны заранее. Но в этот раз мы распределились по категориям, и целенаправленно смотрели на задания, с которыми нам было бы проще справиться. Это принесло свои плоды: в первые же минуты я первым во всем соревновании сдал Recon 100, переместив нашу команду на первое место. С этого места мы ни разу не сместились, поскольку стали быстро набирать отрыв. Заданий здесь было больше, да и они были более классические, поэтому их и решать было интереснее, а я смог почувствовать себя гораздо полезнее, чем на Kaspersky Industrial.

В общем, в третий раз KrasCTF проводится и в третий же раз мы занимаем на нем первое место. Награждение и разбор перенесли на следующий день, поэтому мы вернулись в общагу, заказали еще две XXL пиццы с дополнительной по промокоду, немного поиграли в сетевые игры и легли спать.

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

1 2 3 4 5 6