Pull to refresh
34
0
Иван Четчасов @TalismanChet

HUSTON WE HAVE A PROBLEM

Send message

Книга «Как сочинить видеоигру: 201 совет от сценариста Broken Sword и Resident Evil»

Reading time6 min
Views7.1K
image Привет, Хаброжители!

Разработка сценария для видеоигры — увлекательное дело. Но игровым писателям приходится постоянно учиться и бросать вызов ограничениям.

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

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

Перед вами книга, в которой собран 201 легко усваиваемый совет от легендарного гейм-дизайнера.
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments3

Пишем бота-кликера на Python для Lineage 2

Reading time7 min
Views167K


Предисловие


Как можно развлечься в новогодние праздники? Поиграть в компьютерные игры? Нет! Лучше написать бота, который это будет делать за тебя, а самому пойти лепить снеговика и пить глинтвейн.


Когда-то в школьные годы был увлечен одной из популярных MMORPG — Lineage 2. В игре можно объединяться в кланы, группы, заводить друзей и сражаться с соперниками, но в общем игра наполнена однообразными действиями: выполнением квестов и фармом (сбор ресурсов, получение опыта).


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

Читать дальше →
Total votes 70: ↑67 and ↓3+64
Comments76

Как у «Вояджера-1» телеметрия сломалась, и что бы это значило

Reading time6 min
Views24K

Сегодня начну с воспоминаний. Один из моих первых научно-популярных переводов в «хаброформате» вышел в начале 2014 года на сайте dev.by (сейчас https://devby.io/); назывался он «Марсокод, или как создавалось ПО для марсохода Curiosity». Суть этого интереснейшего текста заключается в том, какой неимоверный уровень надежности, долговечности, автономности и интеграции харда и софта должен достигаться при программировании космических аппаратов. Примерно год спустя я получил в работу книгу «Pale Blue Dot» Карла Сагана, вышедшую в издательстве «Альпина Нон-Фикшн» под названием «Голубая точка. Космическое будущее человечества». Эту книгу я до сих пор считаю шедевром моей переводческой работы, хотя, в литредактуре «Альпины» она выглядит существенно лучше, чем в моем черновике. Книга названа так по знаменитой фотографии, сделанной с борта «Вояджера-1»  14 февраля 1990 года, когда этот аппарат находился в районе Сатурна.

В своей книге Саган уделяет «Вояджерам» больше внимания, чем каким-либо иным космическим аппаратам, посвящая им целую главу и несколько отступлений, в том числе, весьма лирических. Но вообще в этом рассказе (глава 8, «Триумф Вояджеров») подчеркивается все та же инженерная прозорливость и смекалка, которыми гордятся авторы ПО к «Curiosity». В последнее время интерес к «Вояджерам» вновь возрос, поскольку в телеметрии «Вояджера-1» стали возникать аномалии, а сами зонды, разменявшие 45-летний юбилей, близки к отключению.

Читать далее
Total votes 62: ↑58 and ↓4+78
Comments77

Пишем x86-64 JIT-комплятор с нуля в стоковом Python

Reading time11 min
Views10K
В этой статье я покажу, как написать рудиментарный, нативный x86-64 just-in-time компилятор (JIT) на CPython, используя только встроенные модули.

Код предназначен для UNIX-систем, таких как macOS и Linux, но его должно быть легко транслировать на другие системы, типа Windows. Весь код опубликован на github.com/cslarsen/minijit.

Цель — сгенерировать в рантайме новые версии нижеприведённого ассемблерного кода и выполнить их.

48 b8 ed ef be ad de  movabs $0xdeadbeefed, %rax
00 00 00
48 0f af c7           imul   %rdi,%rax
c3                    retq

В основном, мы будем иметь дело с левой частью кода — байтовой последовательностью 48 b8 ed ... и так далее. Эти 15 байтов в машинном коде составляют функцию x86-64, которая умножает свой аргумент на константу 0xdeadbeefed. На этапе JIT будут созданы функции с разными такими константами. Такая надуманная форма специализации должна продемонстрировать базовую механику JIT-компиляции.
Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments5

Почему всё ломается даже у хороших программистов? Часть 2/2

Reading time12 min
Views17K

После несерьёзной статьи на серьёзную тему Job Safety Driven Development стоит рассказать о том, почему даже опытные и добросовестные программисты волей случая могут попадать в схожие ситуации. Сначала захотелось написать, почему программисты ошибаются вообще ("Почему ошибаются программисты?" Часть 1 и Часть 2), но оказалось, что это слишком разные темы. Потом оказалось, что и на эту тему получился очень длинный текст. Пришлось разбить его на части. В первой части мы рассмотрим обычные случаи, которые знакомы многим крупным компаниям. И дополним понятие «серебряная пуля» понятием «золотая шестерёнка».  Во второй части поймём, какую цену вам, скорее всего, придётся заплатить за «золотую шестерёнку», я приведу немного своего опыта. Как всегда, попробую писать простым языком, понятным широкой аудитории.

Читать далее
Total votes 27: ↑26 and ↓1+30
Comments44

Information

Rating
Does not participate
Location
Рошаль, Москва и Московская обл., Россия
Date of birth
Registered
Activity