Как стать автором
Обновить
2
0
Andy Ross @AndyRoss

Games Development

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

Как сказать «нет» иностранному заказчику и не испортить деловых отношений

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

В жизни много ситуаций, когда нужно говорить “нет”. Вам что-то подсказать? — Нет, спасибо, я просто смотрю. Пакетик нужен? — Нет, спасибо, я со своим.

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

Говорим «нет» на английском


Теперь перейдем к способам сказать “нет”.
I’d rather not, thanks.
Спасибо, но я все же откажусь.

I appreciate your time, but no thank you.
Благодарю за потраченное время, но вынужден отказаться.

I know it's important to you, but I can't.
Знаю, как это важно для вас, но не могу.

That sounds great, but I’ll have to say no.
Звучит отлично, но вынужден отказаться.
Читать дальше →
Всего голосов 34: ↑28 и ↓6+22
Комментарии49

Собираем собственный аудио усилитель профессионального уровня не (очень) дорого

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

Получаем потрясающий стереозвук на основе платы 3e Audio Д-класса




Перевод статьи с сайта IEEE Spectrum, автор – Гленн Зорпет

Несколько лет назад я решил узнать, насколько дёшево можно сделать самому усилитель Д-класса аудиофильского качества. Тогда у меня получилось $523,43. Я смастерил достойный усилок, и статья на IEEE Spectrum всё ещё привлекает читателей и периодические вопросы о том, где можно достать запчасти.

Сожалею, но основные компоненты уже давно исчезли. Поэтому я направлял всех страждущих к наборам от Class D Audio, DIY Class D и Ghent Audio. И пару месяцев назад мне вдруг захотелось проверить, насколько лучше у меня получится сделать усилок сейчас, почти десять лет спустя. Часть мотивации возникла из-за ежегодных списков лучших стерео усилителей с сайта The Master Switch. В списке доминируют усилители стоимостью от $1000 (и десять из них стоят более $2000).
Читать дальше →
Всего голосов 56: ↑39 и ↓17+22
Комментарии156

Создание интерактивной травы в Unreal Engine

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

До недавнего времени трава в играх обычно обозначалась текстурой на земле, а не рендерингом отдельных стеблей. Но с увеличением мощности железа появилась возможность рендерить траву. Замечательные примеры такого рендеринга можно увидеть в играх наподобие Horizon Zero Dawn и The Legend of Zelda: Breath of the Wild. В этих играх игрок может бродить по травяным лугам, и, что более важно, трава реагирует на действия игрока.

К счастью, создать такую систему не очень сложно. На самом деле, статья научит вас именно этому! В этом туториале вы научитесь следующему:

  • Создавать векторное поле с помощью захвата сцены (scene capture) и системы частиц
  • Сгибать траву от игрока на основании векторного поля
Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии3

Приглашаем на Unreal Engine 4 Meetup в эту субботу в Санкт-Петербурге

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

Уже в эту субботу, 23 июня, в Санкт-Петербурге, в Университете ИТМО состоится второй официальный Meetup для разработчиков игр и не только на движке Unreal Engine 4. Приходите слушать доклады, задавать вопросы, участвовать в обсуждениях и выигрывать официальный мерч!

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

Подробности под катом.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии7

Приглашаем на официальный мастер-класс по UE4 от Epic Games

Время на прочтение2 мин
Количество просмотров3.2K
imageВо вторник, 13 июня, в Санкт-Петербруге, в Университете ИТМО пройдет мастер-класс по разработке игр на движке Unreal Engine 4, где экспертом выступит евангелист Epic Games — Шьорд де Йонг. Посетителям мероприятия будет предложена на выбор одна из двух тем, которые Шьорд подготовил для выступления. В зале Шьорду будут помогать опытные разработчики на UE4.
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии4

НАСА против EmDrive, раунд второй: и всё-таки он работает

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

Захватывающая в своей странности ситуация с «невозможным» двигателем EmDrive на электромагнитных волнах получила развитие после очередного теста НАСА, вновь принесшего положительные результаты. Инженеры агентства уверяют, что провели работу над ошибками и устранили все недочёты, которые могли повлиять на полученный результат в прошлый раз. Тем не менее, работающий на непонятном принципе двигатель продолжает выдавать тягу.

На форуме НАСА инженер Пол Марч [Paul March] 31 октября рассказал о достигнутом на сегодняшний день. Инженеры, в частности, установили в тестовой камере дополнительную электромагнитную изоляцию, по меньшей мере на порядок уменьшившую влияние паразитных магнитных полей, и тем самым исключили возможное влияние на двигатель силы Лоренца. Также было усовершенствовано заземление крутильного маятника, и проведены другие работы над улучшением тестовой установки.

Тем не менее, при мощности излучателя в 80 Вт в установке всё ещё присутствует тяга порядка 100 мкН — как выразился Марч, наблюдаются «аномальные признаки тяги». Инженеры готовят новые тесты и новые усовершенствования – в частности, для компенсации теплового расширения, которое в условиях вакуума достаточно сильно влияет на опытную установку.
Читать дальше →
Всего голосов 70: ↑65 и ↓5+60
Комментарии167

Астрономы обнаружили инопланетян (на самом деле вряд ли, но всё равно интересно)

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

Что случилось?


Астрономы обнаружили звезду KIC 8462852 со странными изменениями яркости. Предполагается, что эти изменения происходят из-за движения больших (или групп маленьких) объектов и эти объекты, гипотетически, могут быть искусственного происхождения.

image

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

Некоторые из астрономов, подготовивших эту работу, теперь смотрят в сторону идеи, что там могут (всего лишь «могут»!) быть замешаны инопланетяне.
Справедливости ради, эти учёные крайне скептично относятся к подобной идее; скорее как к размышлению в стиле «Ну а почему бы и нет?».
О чём речь?
Всего голосов 66: ↑61 и ↓5+56
Комментарии159

К чему можно оказаться не готовым, став тим-лидом

Время на прочтение8 мин
Количество просмотров60K
imageОдин технический специалист нашей компании PayOnline, которая занимается автоматизацией приема платежей, предложил перевести статью автора Pascal de Vink, который проработал тим-лидом уже 2 года. Когда Pascal только занял эту должность, оказалось, что ко многим вещам он был просто не готов. Эта статья поможет избежать многих ошибок на пути от разработчика к лидеру команды. Ниже идет непосредственно перевод.

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

Меньше заниматься разработкой


Может, это и очевидно, но роль ведущего разработчика означает, что надо больше смотреть на общую картину, чем углубляться в конкретные аспекты того, что происходит. Я этого не понимал, пока не проработал пару месяцев, в течение которых мучился от того, что хотел разобраться во всех задачах, а времени на это не было. У меня было все меньше времени копаться в коде, а люди продолжали обращаться ко мне со своими очень узкоспециализированными задачами. Слишком поздно я понял, что надо разбираться в команде, а не во всех ее знаниях. Узнать, кто разбирается в нужной области оказалось намного быстрее и ценнее. Хотя, копаться в коде было намного веселее.
Читать дальше →
Всего голосов 74: ↑71 и ↓3+68
Комментарии27

Язык программирования музыки Sonic Pi, Всероссийский конкурс по программированию и встреча волонтеров в эту пятницу

Время на прочтение1 мин
Количество просмотров13K
Прошедшим летом мы, разбираясь с одной из купленных для детского лагеря Raspberry Pi, наткнулись на чудесный Sonic Pi. Язык программирования для музыки. Чем больше мы в него погружались, тем больше проникались. И включили его в наш конкурс, к участию в котором ждем и ваших детей.

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

Реверс-инжиниринг полёта Бэтмена

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


Этим летом вышла очередная игра из серии Batman Arkham, в ПК версии которой оказалось столько багов, что было принято беспрецедентное решение снять её с продаж. Я решил посмотреть, что же там такого ужасного.

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

На скриншоте изображён этот момент: вместо того, чтобы лететь вперёд, Бэтмен повернулся вниз головой, демонстрируя полнейшее пренебрежение к происходящему. Аналогичный баг был в предыдущей игре (Arkham Origins), и он до сих пор не исправлен. Видимо тот же самый кривой код был перенесён в новую игру. Попробуем найти, какие ошибки делают программисты в играх такого уровня, и исправить их.
Читать дальше →
Всего голосов 226: ↑225 и ↓1+224
Комментарии101

Как пасти котов. Наставление для программистов, руководящих другими программистами

Время на прочтение7 мин
Количество просмотров137K
Привет, Хаброжители!
У нас вновь вышла книга Дж. Рейнвотера.

image«Как пасти котов» — это книга о лидерстве и руководстве, о том, как первое совмещать со вторым. Это, если хотите, словарь трудных случаев управления IT-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды программистов. Даже если вы еще месяц назад были блестящим и дисциплини-рованным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руко-водства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач. В таком случае без этой книги вам не обойтись. А может быть, вы — опытный менеджер, желающий пересмотреть свои принципы лидерства? Тогда, опять же, эта книга для вас. Вне зависимости от возраста, пола и социального статуса она поможет вам укрепить свои позиции в роли лидера программистов. Материал изложен довольно компактно и легко укладывается в голове. Стоя в книжном магазине и раздумывая, что же купить, задайте себе один простой вопрос: «Нужно ли мне совершенствовать свои лидерские навыки?» Полагаю, вы ответите: «Да», — а значит, данная книга окажется для вас небесполезной.
Читать дальше →
Всего голосов 29: ↑26 и ↓3+23
Комментарии32

Мой первый опыт с HoloLens

Время на прочтение4 мин
Количество просмотров30K
Признаться, я не был удивлен почти полному отсутствию статей по данной тематике. Так уж сложилось — людей, которые имели возможность поработать с HoloLens, едва ли наберется десяток на всю страну. Тем не менее, в рамках Imagine Cup в Редмонде, принять участие в котором мне довелось, был проведен один из первых тест-драйвов средств разработки данной платформы.

image

HoloLens overview


HoloLens – всерьез засекреченный проект Microsoft, который был начат аж в 2012 году. С тех пор компании удалось разработать прототип, который был представлен прессе в январе этого года. С достаточно сносным обзором можно ознакомиться, к примеру, здесь.
Читать дальше →
Всего голосов 41: ↑35 и ↓6+29
Комментарии42

Unity 5 uNet – новая сетевая подсистема. Этюд по авторитарной архитектуре

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

Пример реализации сетевой архитектуры в Unity3D с авторитарным сервером


В виду того, что:
а) старые сетевые принципы Unity3D, как говорится, устарели;
б) я всё равно не понимал, как у меня заработало то колдунство.
в) назойливо появился новый метод и начал прыгать в глаза при каждом запуске Unity.
я решил, что надо в сетевом обмене разобраться плотнее и устранить область “here be dragons”.
Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии7

Обзор новейшего российского 3D-принтера Picaso 3D Designer PRO250

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


Совсем скоро в широкую продажу поступит новая модель 3D принтера от российской компании Picaso 3D Designer PRO250. Возможно, правильнее было бы назвать её «обновленной» — ведь если бы не белая надпись на корпусе, отличить две разные модели, стоящие рядом, было бы практически невозможно. Но внутри устройство имеет ключевые отличия не только от своего предшественника, но и от любого другого принтера.

Еще несколько месяцев назад компанией Picaso 3D были опубликованы весьма интригующие фотографии модели мотоцикла с большим количеством нависающих деталей, напечатанного из пластика PLA с поддержками из PVA. Фотографии демонстрировали великолепное качество принтов, сопоставимое с уровнем профессиональных машин. С того момента была опубликована лишь пара подобных фото и совсем немного технических подробностей, что лишь подогревало интерес.

И вот, наконец, в наши руки попал самый первый готовый экземпляр 3D Designer PRO250. Мы по максимуму его протестируем: узнаем, насколько на самом деле революционна технология Jet Switch, сравним, не изменилось ли качество печати по сравнению с предшественником, и напечатаем несколько очень интересных моделей.
Читать дальше →
Всего голосов 16: ↑10 и ↓6+4
Комментарии21

Анимация персонажей в Blender 3D — это просто

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


Мир open source не стоит на месте и постоянно развивается. Про Blender 3D написано уже много статей, но помимо Blender, существует еще много полезных и бесплатных программ. Одна из них, это MakeHuman. На Хабре упоминания о ней имеются, но какой либо информации по ней нет. Предлагаю вам заглянуть под кат и посмотреть, что анимация персонажей в связке MakeHuman+Blender3D, это действительно просто. Осторожно, много картинок.
Посмотрим...
Всего голосов 65: ↑64 и ↓1+63
Комментарии11

Приемы при проектировании архитектуры игр

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

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

В публикации рассматриваются следующие темы:
  • Наследование VS компоненты
  • Сложные иерархии классов юнитов, предметов и прочего
  • Машины состояний, деревья поведений
  • Абстракции игровых объектов
  • Упрощение доступа к другим компонентам в объекте, сцене
  • Сложные составные игровые объекты
  • Характеристики объектов в игре
  • Модификаторы (баффы/дебаффы)
  • Сериализация данных

Читать дальше →
Всего голосов 40: ↑38 и ↓2+36
Комментарии30

Читаем электронные книги на английском без словарей и переводчиков

Время на прочтение3 мин
Количество просмотров98K
1. Интро. Личное



Я готовлюсь к языковому экзамену IELTS (International English Language Testing System) — пожалуй, самому популярному
тесту на знание английского. Если хочется эмигрировать, найти работу в международной компании — диплом IELTS очень пригодится. Шкала оценок — от 0 (от испытуемого не удалось получить даже внятного мычания) до 9 (экcперт — испытуемый чертовски хорош и может устроиться даже редактором лондонской газеты).

Для учебы, например, в США, нужно не менее 6.5 баллов (бывает и 6, но не часто), для работы — 7 и выше. А для эмиграции, допустим, в Канаду — чем выше оценка, тем лучше. Мой прогнозируемый балл перед сдачей теста — 5.5. Значит, что я могу читать газеты, смотреть кино, вести беседы в знакомых ситуациях, писать ответы на письма. Но для работы в центральном офисе Гугла явно недостаточно.

Что же делать, чтобы подтянуть уровень языка? Конечно же, начать использовать его в своей жизни как можно чаще и больше. Например, читать книги на английском.
Далее
Всего голосов 90: ↑88 и ↓2+86
Комментарии109

Планеты и четвёртое измерение

Время на прочтение5 мин
Количество просмотров98K
Наверняка вам известно, что планеты движутся вокруг солнца по эллиптическим орбитам. Но почему? На самом деле, они двигаются по окружностям в четырёхмерном пространстве. А если спроецировать эти окружности на трёхмерное пространство, они превращаются в эллипсы.

image

На рисунке плоскость обозначает 2 из 3 измерений нашего пространства. Вертикальное направление – это четвёртое измерение. Планета движется по кругу в четырёхмерном пространстве, а её «тень» в трёхмерном движется по эллипсу.

Что же это за 4-е измерение? Оно похоже на время, но это не совсем время. Это такое особенное время, которое течёт со скоростью, обратно пропорциональной расстоянию между планетой и солнцем. И относительно этого времени планета двигается с постоянной скоростью по кругу в 4 измерениях. А в обычном времени его тень в трёх измерениях двигается быстрее, когда она находится ближе к солнцу.
Читать дальше →
Всего голосов 80: ↑72 и ↓8+64
Комментарии51

Как могла бы выглядеть поддержка JSON в современном С++

Время на прочтение5 мин
Количество просмотров64K
Хорошо в плане поддержки JSON живётся программистам на Javascript — по какому-то невероятному стечению обстоятельств там JSON входит в спецификацию самого языка: есть JSON — есть объект. Удобно. Неплохо дело обстоит и в языках, где JSON не входит в сам язык, но поддерживается стандартной библиотекой (Python, Ruby): импортируешь модуль — и готово.

Жизнь программистов на С++ никогда не была особо простой — поддержки JSON у нас нет ни на уровне языка, ни в стандартной библиотеке. И не будет, возможно, никогда. «Тоже мне проблему нашел!» — скажут мне опытные коллеги — «Её там и не должно быть, С++ поставляется без „батареек“. Для решения этой задачи мы...» и вот здесь они разделятся на два лагеря:

1. «Мы используем большой фреймворк (boost, Qt, POCO, другой), который применяется во всех наших проектах и умеет 150 000 разных вещей, в том числе и JSON.»
2. «Мы придерживаемся подхода в котором для каждой задачи применяется своя легковесная библиотека. В частности, для JSON мы уже 150 000 лет назад выбрали отличную библиотеку %JSON_LIB%, которая прекрасно работает.»

Да, всё так и есть. Вот только…

Чем плох подход с использованием фреймворков
Во-первых, тянуть в проект огромный фреймворк ради одного JSON — как-то уныло. Ну ладно, допустим фреймворк у вас был и так. Но тогда придётся писать работу с JSON в терминах фреймворка, а это, как правило, тихий ужас. Посмотрите, например, на документацию по JSON в Qt — куча собственных типов вроде QJsonArray, QJsonDocument, QJsonObject, QJsonValue и т.д. и их придётся использовать. О том, чтобы потом перенести код в другой проект (где этого фреймворка нет) можно сразу забыть. Ну или вот Boost: парсер JSON находится очень логично в модуле Boost.PropertyTree. Ага, так бы я и догадался. Т.е. нам предлагают плясать не от формата JSON, а от структуры данных «дерево», которая умеет себя читать в том числе и из JSON.

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


Чем плох подход с использованием библиотек
Плох он вот этой частью: "...150 000 лет назад выбрали отличную библиотеку...". Скорее всего речь идёт о чём-то, что начинало писаться чуть-ли не во времена DOSа и, без сомнения, работает, но при этом, пытаясь быть совместимым со всеми платформами и стандартами языка совершенно отстаёт от прогресса. Да, всё компилируется и работает, даже тесты проходит. Но библиотека совершенно не знакома с такими вещами, как ключевое слово auto, range-based циклы, строковые литералы, raw-строки, конструкторы перемещения, списки инициализации и прочие классные вещи, делающие код одновременно более эффективным и более легко читаемым. А ведь у библиотеки, созданной годы назад, есть обязательства по обратной совместимости, а значит просто так взять и добавить это всё она не может.


Давайте немного помечтаем.

А что, если бы JSON вошел в стандартную библиотеку нового стандарта С++? Что, если бы он был написан в терминах С++11\14 и без требований обратной совместимости со старыми стандартами языка? Что, если бы синтаксис этого модуля попытались бы сделать максимально приближенным к родному для JSON использованию «а-ля Javascript», но в том же время сохранить дух С++ (эффективность, минимальное потребление памяти, совместимость с STL)? Что, если бы его можно было включить в проект одним инклюдом и не беспокоиться о его сборке и линковке? Как бы это всё выглядело и работало?

И у нас есть ответ на этот вопрос! Давайте посмотрим на JSON-библиотеку для С++ написанную в соответствии со всеми этими принципами, ну и вообще написанной людьми для людей, а не чужими для хищников, как это обычно бывает.
Читать дальше →
Всего голосов 67: ↑62 и ↓5+57
Комментарии51

Немного об основах схемотехники светодиодных ламп

Время на прочтение10 мин
Количество просмотров119K
Судя по комментариям, многих людей интересуют не только параметры светодиодных ламп, но и теория их внутреннего устройства. Потому я решил немного поговорить об основах схемотехнических решений, чаще всего применяемых в этой области.

image

Читать дальше →
Всего голосов 65: ↑64 и ↓1+63
Комментарии72
1
23 ...

Информация

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