Как стать автором
Обновить
-11
0

Пользователь

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

Зачем в Switch SDK три разных sin?

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров9.4K

Работая в компании Gaijin несколько лет назад, мне довелось поучаствовать в портировании пары игр компании на консоль Nintendo Switch, тогда вовсю завоевывающую новые рынки. Для меня это стало первым крупным проектом на этой платформе. А с учетом, что ни команда, ни разработчик движка с платформой, системой сборки и вообще экосистемой Нинтендо знакомы не были, то все грабли приходилось искать и бережно на них наступать. Чтобы опробовать возможности новой платформы, параллельно с портированием игры, был написан внутренний middleware (связка dagor engine + nxsdk + jam) и код обрастал всевозможными тестами, build matrix, бенчмарками, прогоном стабильности и другими внутренними проверками. Надо отметить что на момент 2018 года, в самом switch sdk не было реализовано часть posix функций вроде poll и send/receive, и большая часть функций для работы с файлами, posix прослойку нужно было писать самим. Дошли тогда руки и до написания различных бенчмарков для функций стандартной библиотеки, и были замечены некоторые аномалии в поведении части тригонометрических функций в различных режимах сборки. Для справки, sdk использует урезанный вариант musl libc (https://www.musl-libc.org/), все статически линкуется в один большой бинарник clang'ом от Нинтендо 9 версии (2018 год), который потом запускается на консоли. Доступа к исходникам самой libc в исполнении Нинтендо у нас не было, но всегда можно посмотреть дизасм и боле менее представить что происходит.

Раскопки на месте

Недельный геймдев: #124 — 4 июня, 2023

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.4K

Из новостей: Unity 2022 LTS, AppMagic запустил свой подкаст про игровую индустрию, сервис WN Game Finder по поиску игр для издателей и инвесторов, никто не хотел работать над Redfall.

Из интересностей: Grease Pencil 3.0, как сделать запоминающийся огненный уровень, технический геймдизайн, вымышленная история про плохой релиз, 10 ключевых уроков дизайна квестов из The Witcher 3 и Cyberpunk 2077.

Читать далее

Недельный геймдев: #123 — 28 мая, 2023

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.8K

Из новостей: Microsoft подала апелляцию на запрет сделки с Activision Blizzard в Великобритании, мобильная Honkai: Star Rail заработала $132 млн за первый месяц, Unity 2022 LTS в июне, более 90 оцифрованных кассет с конференции разработчиков игр 1999 года.

Из интересностей: Тим Кейн об уходе из команды Fallout 2 и конфликт с руководством Interplay, игра с помощью chatGPT и Midjourney для геймджема, Марк Дарра о разработке Baldur’s Gate, полная деконструкция Marvel Snap.

Читать далее

О вычислительной природе реальности

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

Я объясняю экспериментальные результаты проверки теоремы Белла супердетерминизмом. Далее я показываю, как такая Вселенная может возникнуть и быть совместимой с субъективным опытом свободы воли.

Читать далее

Книга «Рекурсивная книга о рекурсии»

Время на прочтение10 мин
Количество просмотров8K
imageПривет, Хаброжители!

Книга «Рекурсивная книга о рекурсии» содержит примеры кода на языке Python и JavaScript, которые иллюстрируют основы рекурсии и проясняют фундаментальные принципы всех рекурсивных алгоритмов. Из книги вы узнаете о том, когда стоит использовать рекурсивные функции (и, главное, когда этого не нужно делать), как реализовывать классические рекурсивные алгоритмы, часто обсуждаемые на собеседованиях, а также о том, как рекурсивные методы помогают решать задачи, связанные с обходом дерева, комбинаторикой и другими сложными темами.

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

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

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

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.7K

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

Читать далее

Где взять деньги на запуск и развитие агробизнеса

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров3.9K

5 вариантов финансовой поддержки для тех, кого тянет к земле.

Читать далее

Как на самом деле работает Async/Await в C# (Часть 7)

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров14K

Несколько недель назад в блоге «.NET Blog» появилась статья «Что такое .NET, и почему вы должны выбрать его?». В нем был представлен высокоуровневый обзор платформы, кратко описаны различные компоненты и архитектурные решения, а также обещаны более подробные посты по затронутым темам. Этот пост является первым таким продолжением, в котором подробно рассматривается история создания, архитектурные решения и детали реализации async/await в C# и .NET.

Disclaimer: Я не являюсь профессиональным переводчиком, перевод подготовлен скорее для себя и коллег. Я буду благодарен за любые исправления и помощь в переводе, статья очень интересная давайте сделаем её доступной на русском языке.

Читать далее

Недельный геймдев: #122 — 21 мая, 2023

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров3.3K

Из новостей: Cascadeur 2023.1 с новой системой видеозахвата движения, на разработчика и издателя King of Avalon подали коллективный иск за ложную рекламу, пиар-компания Смуты.

Из интересностей: взращивание интернет-культа Cult of the Lamb, как Factorio умудряется работать без лагов с таким числом элементов на экране, Mundfish о гейм-дизайне Atomic Heart, разбор Path Tracing’а в Cyberpunk 2077.

Читать далее

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

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров55K

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

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

Для ясности, это вовсе не пережитки прошлого, а действующие сайты, которые — в большинстве случаев — обновлялись в 2023 году.

Читать далее

Как на самом деле работает Async/Await в C# (Часть 6)

Уровень сложностиСложный
Время на прочтение34 мин
Количество просмотров24K

Несколько недель назад в блоге «.NET Blog» появилась статья «Что такое .NET, и почему вы должны выбрать его?». В нем был представлен высокоуровневый обзор платформы, кратко описаны различные компоненты и архитектурные решения, а также обещаны более подробные посты по затронутым темам. Этот пост является первым таким продолжением, в котором подробно рассматривается история создания, архитектурные решения и детали реализации async/await в C# и .NET.

Читать далее

Урок на Unity. Интерактивное взаимодействие игрока с окружающими предметами в 3D с помощью меток

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров9K

Урок на Unity. Интерактивное взаимодействие игрока с окружающими предметами в 3D с помощью меток.

Взаимодействие с окружением без коллайдеров и лучей, на простой математике.

Бонус урока. Делаем простое пианино!

Наверно всем знаком такой элемент в игре, как всплывающая иконка рядом с игровым объектом, позволяющая с ним интерактивно взаимодействовать.

Читать далее

Топ-10 докладов на С# конференциях 2019-2022 года

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров7.5K

Небольшая подборка интересных докладов с конференций для C# и .NET разработчиков за последние несколько лет.

Читать далее

Интерактивные книги 2: на этот раз про геймдизайн и алгоритмы

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров11K
Хабр силен комментариями. Поэтому, когда я писал топик "Мечтали про интерактивные книги? Я знаю человека, который делает их прямо сейчас", то надеялся, что читатели помогут найти аналогичные примеры. Результат превзошел ожидания.


Итак, знакомьтесь — Амит Патель (Amit Patel) и его интерактивные статьи на стыке математики, алгоритмов и программирования. Небольшой дисклаймер: поскольку я не могу встроить интерактивные иллюстрации на Хабр, то буду использовать анимированные gif. Некоторые из них могут быть тяжелые.
Читать дальше →

Недельный геймдев: #119 — 30 апреля, 2023

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.2K

Из новостей: британский антимонопольный регулятор заблокировал сделку Microsoft с Activision Blizzard, Honkai обошла Genshin Impact по мобильной выручке за первые сутки, Unrecord добавило в список желаемого более 600 тысяч пользователей Steam, Apple выиграла суд у Epic Games.

Из интересностей: хитрости и секреты за год соло-разработки, как настроить LiveOps в мёрдж-играх, как Tunic был построен на тайне, почему боты Halo Infinite больше похожи на людей.

Читать далее

Ответом на задачу по упаковке цветов в бесконечной сетке оказалось число 15

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров7.7K
Видео

В задаче по «упаковке цветов графа» (в оригинале packing coloring, — прим. пер.) спрашивается, сколько чисел необходимо для заполнения бесконечной сетки так, чтобы идентичные числа никогда не оказывались слишком близко друг к другу. И новый арифметический эксперимент с использованием компьютера даёт на удивление простой ответ.

Сколько чисел потребуется для заполнения бесконечной сетки так, чтобы расстояние между вхождениями одного числа было больше самого этого числа?
Читать дальше →

Полезен ли сегодня быстрый обратный квадратный корень из Quake III?

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

В 2005 году id Software опубликовала под лицензией GPL-2 исходный код своей игры 1999 года Quake III Arena. В файле code/game/q_math.c есть функция для вычисления обратного квадратного корня числа, которая на первый взгляд выглядит очень любопытным алгоритмом:

float Q_rsqrt( float number )
{
    long i;
    float x2, y;
    const float threehalfs = 1.5F;

    x2 = number * 0.5F;
    y  = number;
    i  = * ( long * ) &y;                       // зловещий хакинг чисел с плавающей запятой на уровне битов
    i  = 0x5f3759df - ( i >> 1 );               // какого чёрта?
    y  = * ( float * ) &i;
    y  = y * ( threehalfs - ( x2 * y * y ) );   // первая итерация
//  y  = y * ( threehalfs - ( x2 * y * y ) );   // вторая итерация, можно удалить

    return y;
}

Об этом алгоритме написано множество статей, и ему посвящена хорошая страница Википедии, где он назван fast inverse square root (быстрым обратным квадратным корнем). На самом деле, этот алгоритм упоминался на различных форумах ещё до публикации исходного кода Q3. Ryszard из Beyond3D провёл в 2004-2005 годах исследование и в конечном итоге выяснил, что первоначальным автором алгоритма был Грег Уолш из Ardent Computer, который создал его десятью годами ранее.
Читать дальше →

Про обучение, преподавание и, конечно, нейросети. Как учиться эффективно?

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров5.3K

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

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

Я поставил себе 2 задачи:

1. Определить важные критерии для эффективного обучения; 

2. Понять, как нейросети могут помогать мне учиться.

Еще 4 критерия...

В чём разница между хорошим и плохим кодом? Объяснение для непрограммистов

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

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

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

Кажется, это заявление я прочитал в каком-то крупном СМИ. Статья называлась примерно так: «Опасайтесь плохого кода, он может вас убить; хотя постойте, он невидим, так что не стоит беспокоиться!». Весьма успокаивающее послание для читателей, как считаете? Сейчас я думаю, что авторы статьи просто пытались создать сенсацию из наличия таящегося «плохого кода» в авиалайнерах, поездах и беспилотных автомобилях, которых становится в нашем обществе всё больше, и таким образом увеличить количество просмотров.

Так как же объяснить концепцию «плохого кода» обывателю?


Я пишу код, анализирую код и выполняю рефакторинг кода (то есть переписываю его более чётким и удобным образом) примерно по пять часов в день, поэтому знаю, что такое код (и что такое плохой код!). Иногда я забываю о том, что многие люди не имеют понимания о том, что же такое код.

Для таких людей я представлю ответ на вопрос: «Если вы кодер, то чем вы занимаетесь?»
Читать дальше →

Электротехническая настольная игра «Не закороти Цепь! Последовательная история»

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров5.7K

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

Читать далее

Информация

В рейтинге
6 253-й
Зарегистрирован
Активность