Как стать автором
Обновить
29
0
Тимур Гагиев @XProger

программер

Отправить сообщение

Пишем простую* игровую физику самолёта

Время на прочтение 9 мин
Количество просмотров 29K
* — в трёх измерениях.


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

«Что может быть проще самолёта? Подъёмная сила пропорциональна квадрату скорости, двигатель тянет вперёд, всё просто» — такая мысль пришла в мою голову летом, и я сел писать игру. Лето прошло, было собрано несколько граблей, а списочек того, что я планировал добавить в проект, очень сильно вырос.

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

Читать дальше →
Всего голосов 24: ↑21 и ↓3 +18
Комментарии 15

Готовим Physically Based Rendering + Image-based Lighting. Теория+практика. Шаг за шагом

Время на прочтение 24 мин
Количество просмотров 36K
Хей, привет. 2017 год на дворе. Даже простенькие мобильные и браузерные приложения начинают потихоньку рисовать физически корректное освещение. Интернет пестрит кучей статей и готовых шейдеров. И кажется, что это должно быть так просто тоже обмазаться PBR… Или нет?

В действительности же честный PBR сделать достаточно сложно, потому что легко достичь похожего результата, но сложно правильного. И в интернете полно статей, которые делают именно похожий результат, вместо правильного. Отделить мух от котлет в этом хаосе становится сложно.
Поэтому цель статьи не только разобраться, что же такое PBR и как он работает, но и научиться писать его. Как отлаживать, куда смотреть, и какие ошибки типично можно допустить.
Статья рассчитана на людей, которые в достаточной мере уже знают hlsl и неплохо знакомы с линейной алгеброй, и можете написать свой простейший неPBR Phong свет. В общем я постараюсь как можно проще объяснить, но рассчитываю на то, что некоторый опыт работы с шейдерами вы уже имеете.
Читать дальше →
Всего голосов 46: ↑46 и ↓0 +46
Комментарии 11

SO_TIMESTAMPING в картинках. Прием пакета

Время на прочтение 11 мин
Количество просмотров 10K

Бывает, что приложению требуется узнать точное время приема или отправки сетевого пакета. Например, для синхронизации часов (см. PTP, NTP) или тестирования задержек в сети (см. RFC2544).


Наивным решением будет запоминать в приложении время сразу после получения пакета от ядра (или перед отправкой ядру):


  recv(sock, buffer, length, flags);
  clock_gettime(CLOCK_REALTIME, timespec);

Ясно, что полученное таким образом время может заметно отличаться от момента, когда пакет был получен сетевым устройством. Для получения более точного времени нужна поддержка от операционной системы, драйвера и/или сетевого устройства.


Начиная с версии 2.6.30 Линукс поддерживает опцию сокета SO_TIMESTAMPING. Она позволяет пользовательскому сокету получать временные метки для отправляемых и принимаемых пакетов. Временные метки могут быть сняты самим ядром, драйвером или сетевым устройством (см. список поддерживающих устройств и драйверов). О том, что это вообще такое и как этим пользоваться, стоит почитать в Documentation/networking/timestamping.txt


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

Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 9

Переговоры о зарплате — как не прогореть

Время на прочтение 8 мин
Количество просмотров 127K
image
Все фотографии в этой статье взяты из трилогии Кристофера Нолана «Тёмный рыцарь». Это всё же Бэтмен!

Давайте сыграем!

При подготовке вы хорошо поработали с телефоном. Интервью в офисе этим утром проходили занятно. После общего обеда сотрудник отдела кадров сел за стол напротив вас. Он спросил: «Какую зарплату вы бы хотели?».

Что вам делать? Что же вам делать?!


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

Или, возможно, он попробует другой подход, чтобы подтолкнуть вас назвать цифру: «Какая зарплата у вас сейчас?».

Этот вопрос звучит вполне резонно. Разве не надо отвечать на этот вопрос?
Читать дальше →
Всего голосов 81: ↑67 и ↓14 +53
Комментарии 392

Skyforge: технологии рендеринга

Время на прочтение 16 мин
Количество просмотров 103K


Всем привет! Меня зовут Сергей Макеев, и я технический директор в проекте Skyforge в команде Allods Team, игровой студии Mail.Ru Group. Мне хотелось бы рассказать про технологии рендеринга, которые мы используем для создания графики в Skyforge. Расскажу немного о задачах, которые стояли перед нами при разработке Skyforge с точки зрения программиста. У нас свой собственный движок. Разрабатывать свою технологию дорого и сложно, но дело в том, что на момент запуска игры (три года назад) не было технологии, которая могла бы удовлетворить всем нашим запросам. И нам пришлось самим создать движок с нуля.
Читать дальше →
Всего голосов 139: ↑132 и ↓7 +125
Комментарии 51

Как я делал костюм захвата движений

Время на прочтение 7 мин
Количество просмотров 52K


Предисловие


В своем небольшом городе я занимаюсь решением нетривиальных технических задач. Так и в этот раз, организаторы одного шоу, в котором должна была выступить гимнастка со своей программой, решили добавить в ее представление некоторую «изюминку». А именно, выводить на экраны силуэт гимнастки, который бы повторял ее движения и как-то взаимодействовал с прочими эффектами, да так, чтобы все было интерактивно. Решить задачу «в лоб» не удалось. Kinect явно не справлялся со своей задачей и не был способен произвести захват движений человека, который удален от него на расстояние минимум 10 метров, к тому же в темноте. Так было принято решение сделать что-то «свое». Забегая вперед, скажу что выступление так и не состоялось, однако я настолько загорелся идеей, что продолжил свои эксперименты в качестве отдельного проекта, который впоследствии получил название impulse.
Читать дальше →
Всего голосов 47: ↑47 и ↓0 +47
Комментарии 83

Да пребудет с вами прокрутка: теория и практика по камере в платформерах [1/2]

Время на прочтение 15 мин
Количество просмотров 39K
Вторая часть

От переводчика. Статью написал Итай Керен, основатель инди-студии Untame, автор игры Mushroom 11. Получился настоящий учебник по управлению камерой в играх с боковой прокруткой. Хоть там нет ни строчки кода ни на каком языке (вру, одна есть), думаю, несложно будет перевести всё это в инструкции для компьютера. Обязательно к прочтению всем программистам и дизайнерам, которые занимаются динамичными 2D-играми. Терминологию я переводил больше по смыслу: например, position-locking — «привязанная камера». Да, и для многих игр до 1983 года показана версия для Dendy — немного неисторично, но простим.

Введение




Работая над игрой Mushroom 11, я натолкнулся на множество дизайнерских и технических вопросов. Я не рассчитывал, что кто-то напишет о вершинной анимации или плавном изменении формы, но я удивился, что по работе с камерой, задаче с 30-летней историей, тоже практически не пишут.

Я решил устроить небольшое путешествие по истории двухмерных игр, задокументировать их трудности, подходы и эволюцию их решений. У многих решений нет даже названия, так что я — скорее для себя — придумал классификацию подходов к камере и написал небольшой словарик.
Читать дальше →
Всего голосов 48: ↑48 и ↓0 +48
Комментарии 19

Анализ активности пользователей и разработчиков

Время на прочтение 5 мин
Количество просмотров 11K


Недавно у нас были два юбилейных числа — 5000 пользователей в группе социальной сети ВКонтакте и 6000-й билд ОС. Поскольку группа vk.com/kolibri_os появилась относительно недавно и стремительно растет, то очевидно, что скоро количество участников этой группы обгонит количество билдов. И это значит, что нам надо понять, какая у нашего проекта активность и кто наши пользователи. И тут мы вспомнили, что 3 года назад начался уникальный социально-психологический эксперимент, о котором, среди прочего, мы и поведаем в этой статье.
Читать дальше →
Всего голосов 13: ↑12 и ↓1 +11
Комментарии 7

Apogee: человек-оркестр и игровой онлайн-издатель 1987 года

Время на прочтение 7 мин
Количество просмотров 25K
В конце 1980-ых в Техасе молодой человек двадцати с небольшим лет от роду по имени Скотт Миллер создал бизнес-модель, которая изменила способ покупки и продажи цифровых продуктов по всему миру. Сам Миллер называл свой шедевр «Apogee model» — «моделью апогея», всем остальным же она сегодня известна под названием «shareware», или «условно-бесплатное ПО». Эта модель сделала цифровые продажи через интернет колоссально прибыльными, а самого Миллера — миллионером. Модели и ее автору предстояло произвести революцию относительно способа, которым используется интернет — причем еще до того, как большая часть мира узнала об его существовании.

Нерды на полную ставку


imageВ юности Скотт Миллер был лентяем.

В старших классах школы в начале 1980-ых он, замкнутый подросток, спасался от жаркого солнца Техаса, скрываясь в кампусе компьютерной лаборатории, проводя все свое время за программированием длинных текстовых квестов-приключений. Здесь он повстречал Джорджа Бруссарда — другого подростка, который на тот момент выделялся лишь своей любовью к постоянному ношению шортов. Как часто случалось в то время, ребят сплотило между собой дружное восхищение местным компьютером Apple II.
Читать дальше →
Всего голосов 95: ↑92 и ↓3 +89
Комментарии 10

Apogee: человек-оркестр и игровой онлайн-издатель 1987 года (продолжение)

Время на прочтение 9 мин
Количество просмотров 17K
image

Продолжение истории Скотта Миллера и компании Apogee (3D Realms), начало здесь.

Ключевая идея


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

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

«Как жаль, что у меня не сохранились эти письма… Сейчас они, наверное, стоят целое состояние!» — шутит сегодня Миллер.
Читать дальше →
Всего голосов 32: ↑31 и ↓1 +30
Комментарии 19

Издание в Стиме с минимальными затратами

Время на прочтение 3 мин
Количество просмотров 58K
Исправление от 07.05.2016
В сети слишком часто ссылаются на этот мой текст, поэтому я хочу предостеречь людей: я не несу никакой гарантии за достоверность данных, рассказанных тут полгода назад. По хорошему, я хотел бы удалить эту статью, но не вижу такой кнопки в интерфейсе сайта. Тем не менее, я счел необходимым удалить некоторые пункты этим исправлением.


Эта статья мой личный опыт размещения игры в Стиме, и в ней я расскажу о тех моментах, которые беспокоили меня самого в процессе этого дела. Надеюсь, она поможет тем, кто решит пройти этим же путём. Этим немного особенным образом, дорогой минимальных усилий.
Читать дальше →
Всего голосов 107: ↑102 и ↓5 +97
Комментарии 66

«Галоп пикселя — часть вторая» — перспектива, цвет, анатомия и прикладные упражнения

Время на прочтение 40 мин
Количество просмотров 88K


«Галоп пикселя», часть I — базовые понятия, этапы взросления, прикладные упражнения (линк)
«Галоп пикселя», часть II — перспектива, цвет, анатомия и прикладные упражнения (линк)
«Галоп пикселя», часть III — Анимация (линк)
«Галоп пикселя», часть IV — Анимация света и тени (линк)
«Галоп пикселя», часть V — Анимация персонажей. Ходьба (линк)линк)

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

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

Не будем мешкать. Возьмем наши пиксельные лопатки и двинемся на врага сплоченной группой. Быть может, нам повезет, и кто-нибудь, выжив, расскажет потомкам о ещё одной битве Теоретического войска возле местечка, вошедшего в историю сети как Хаброва падь.


Лопатить пиксели
Всего голосов 112: ↑110 и ↓2 +108
Комментарии 27

Дайджест KolibriOS #8: дары весны

Время на прочтение 1 мин
Количество просмотров 12K
Вот и подходит к концу весна, готовясь передать свои полномочия лету. Ну а мы же хотим поведать вам о том, что за этот период было сделано в КолибриОС
Читать дальше →
Всего голосов 27: ↑27 и ↓0 +27
Комментарии 11

Победы в конкурсах программирования негативно коррелируют с успехами в работе

Время на прочтение 1 мин
Количество просмотров 28K
Если вы хотите построить успешную карьеру в сфере разработки ПО, ни в коем случае не увлекайтесь спортивным программированием и участием в конкурсах.

Такой вывод следует из беспристрастной статистики и дата-майнинга рабочих показателей сотрудников Google, рассказал Питер Норвиг в лекции, прочитанной 26 марта 2015 года в Венском техническом университете.


Читать дальше →
Всего голосов 93: ↑87 и ↓6 +81
Комментарии 85

GPU Particles с использованием Compute и Geometry шейдеров

Время на прочтение 10 мин
Количество просмотров 54K
Привет, дорогой читатель!

Сегодня мы продолжим изучение графического конвейера, и я расскажу о таких замечательных вещах, как Compute Shader и Geometry Shader на примере создания системы на 1000000+ частиц, которые в свою очередь являются не точками, а квадратами (billboard quads) и имеют свою текстуру. Другими словами, мы выведем 2000000+ текстурированных треугольников при FPS > 100 (на бюджетной видеокарте GeForce 550 Ti).


Читать дальше →
Всего голосов 63: ↑62 и ↓1 +61
Комментарии 44

Музыка + физический эксперимент = музыкальное видео Cymatics

Время на прочтение 1 мин
Количество просмотров 13K
cymatics2.jpg

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

Лучше похвалим тех, кто занимается привлечением внимания аудитории не только к своему творчеству, но и к науке. Так, музыкант из Новой Зеландии Найджел Стэнфорд (Nigel Stanford) создал музыкальное видео, где почти нет действующих лиц, а сюжет завязан на экспериментах. Основная цель клипа — визуализация звука всеми возможными способами.

Читать дальше →
Всего голосов 19: ↑16 и ↓3 +13
Комментарии 11

VPN в каждый дом

Время на прочтение 1 мин
Количество просмотров 189K


Всем привет! Желание сделать VPN сервер максимально простым в установке и удобным в использовании назревало уже давно. За основу я взял L2TP/IPsec, эта технология нативно поддерживается всеми устройствами и в отличии от PPTP не вызывает проблем при подключении через сотовых операторов.

tl;dr
Для установки нам потребуется машинка с Ubuntu 14.04 на борту и «белым» IP-адресом, любой VPS подойдет. Достаточно ввести эту волшебную строчку:
 curl -sS https://raw.githubusercontent.com/sockeye44/instavpn/master/instavpn.sh | sudo bash 

и через несколько минут у вас будет рабочий VPN с управлением через браузер (httр://ip-address:8080/) или консоль (instavpn -h).
Читать дальше →
Всего голосов 88: ↑77 и ↓11 +66
Комментарии 245

Разработка игры в 115 кб — хаки, баги и досада

Время на прочтение 10 мин
Количество просмотров 40K

В начале ноября я участвовал в 115-ом по счете конкурсе сообщества Independent Games Developers Contests (IGDC), темой которого была разработка аркадного шутера с лимитом в 115 килобайт за неделю. Под катом история разработки игры на OpenGL + Free Pascal, эксперименты с LZO, обход багов компилятора FPC для uFMOD, простейшая генерация текстур и досадный баг на видеокартах NVidia, который все испортил.

Видео, бинарник для Windows и исходный код также прилагаются — ищите в конце статьи.
Читать дальше →
Всего голосов 62: ↑60 и ↓2 +58
Комментарии 36

Закрываем ИП: как правильно свернуть бизнес

Время на прочтение 5 мин
Количество просмотров 68K

Держать бездействующий статус ИП нет никакого смысла, это только добавляет вам лишних забот в виде обязательной отчетности и перечисления страховых взносов. Предприниматель без деятельности и дохода все равно обязан заплатить в ПФР 20 727,53 рублей за 2014 год. Если случилось так, что ваш бизнес не оправдал надежд или вы просто решили приостановить деятельность – закрывайте ИП. Когда понадобится, вы сможете очень быстро зарегистрироваться снова в любой момент.

Красивые и умные эксперты Эльбы подготовили для вас инструкцию, которая подскажет вам что и в какой срок нужно сделать, чтобы закрыть свое дело.
Читать прямо сейчас
Всего голосов 53: ↑50 и ↓3 +47
Комментарии 48

Cat B15 — защищённый смартфон от Caterpillar

Время на прочтение 1 мин
Количество просмотров 150K

Компания Caterpillar, известный на весь мир производитель тяжелой строительной техники, представила Cat B15 — защищенный смартфон под управлением Android Jelly Bean.
Устройство, заключенное в прорезиненный алюминиевый корпус, по заявлению разработчиков, сможет c лёгкостью выдержать падение с 2 метровой высоты на твердую поверхность, погружение до получаса на метровую глубину и сможет работать при температуре от -20 до +50 градусов по Цельсию.
Характеристики и цена
Всего голосов 34: ↑30 и ↓4 +26
Комментарии 57

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Дата рождения
Зарегистрирован
Активность