Чтобы лучше разбираться в мире биохакинга, а ещё развивать свою нейропластичность, нужно книжки читать полезные. Сделал подборку книг по биохакингу и мозгу, с краткой аннотацией:
Пользователь
Почему я отказался от разработки игр на Rust, часть 1
Предисловие: этот пост представляет собой очень длинный перечень мыслей и проблем, возникавших у меня за годы работы; также в нём рассматриваются некоторые из аргументов, которые мне часто говорили. В посте выражено моё мнение, сформировавшееся у меня в процессе разработки игр на Rust в течение многих тысяч часов на протяжении многих лет и после множества завершённых игр. Это не хвастовство и не показатель успеха, я просто хочу сказать, что вложил достаточно много усилий в Rust; здесь не получится сказать «когда наберёшься опыта, тебе всё станет понятно».
Пост не будет ни научной оценкой, ни A/B-исследованием. Это моё личное мнение после разработки игр на Rust маленькой инди-командой (два человека) в попытках заработать достаточно денег, чтобы финансировать процесс. Мы не одни из тех разработчиков с бесконечными финансами от инвестора и многолетним запасом времени. Если вы находитесь в этой категории и получаете удовольствие от многолетней разработки систем, то всё написанное ниже к вам не относится. Я рассматриваю всё с такой точки зрения: «Мне хочется создать игру максимум за 3-12 месяцев, чтобы люди могли сыграть в неё, а я — немного заработать». Статья не написана с точки зрения «Я хочу изучить Rust, а разработка игр — это весело», хотя это и вполне нормальная цель; просто она никак не согласуется с тем, чего хотим мы — заниматься разработкой игр коммерчески успешным и самодостаточным образом.
Мы выпустили несколько игр на Rust, Godot, Unity и Unreal Engine, и многие люди сыграли в них в Steam. Мы создали с нуля собственный игровой 2D-движок с простым рендерером, а также в течение нескольких лет использовали Bevy и Macroquad во многих проектах, некоторые из которых были очень нетривиальными. Кроме того, я бэкенд-разработчик на полную ставку и пишу код на Rust. Этот пост — не какое-то поверхностное мнение после изучения нескольких туториалов или разработки небольшой игры для геймджема. За три с лишним года мы написали сильно больше ста тысяч строк кода на Rust.
Задача этого поста — развеять популярные и часто повторяемые аргументы. Но это всё-таки субъективное мнение; по большей части я написал пост, чтобы не объяснять снова и снова одно и то же. Пусть это будет справочный материал о том, почему мы, скорее всего, откажемся от Rust как от инструмента для разработки игр. Мы ни в коем случае не планируем прекращать создавать игры, просто не будем делать это на Rust.
Создаем изометрические уровни игры с помощью Stable Diffusion
Всем привет. Сегодня я покажу вам, как можно создавать 2.5D уровни в изометрии с помощью быстрого прототипирования техникой grayboxing, и генеративного искусственного интеллекта, а именно Stable Diffusion. Практически весь процесс, описываемый в статье, довольно легко автоматизируется.
Если интересно, добро пожаловать под кат.
Недельный геймдев: #162 — 25 февраля, 2024
Из новостей: Balatro продалась тиражом в 250к копий за первые три дня, Valve в опенсорс выложила Audio SDK, Suicide Squad не оправдала ожиданий Warner Bros, вышел Bevy 0.13.
Из интересностей: отличнейшая статья про генерацию карты игры, как в играх появляются рычаги, основы 2D‑движения в Unity, не работайте с CREON GAMES и особенно с Климом Мироновым.
Когда одной работы мало: жизнь в режиме сверхзанятости
В конце января в нашего бота обратной связи обратился айтишник с необычной ситуацией. Он был «сверхзанят» на трёх аутстафф-работах: на основной по трудовому договору и ещё на двух через ИП. В какой-то момент основной работодатель узнал о других работах сотрудника и потребовал уволиться по собственному желанию. Мы предложили действовать по нашему стандартному сценарию для таких случаев и перевести трудовой конфликт в юридическую плоскость, отправив письмо генеральному директору. Это подействовало на работодателя, и работнику удалось договориться о выплате выходного пособия в размере зарплаты за 1 месяц. Принуждение к увольнению по собственному желанию — самый распространённый случай нарушения трудовых прав, с которым мы сталкиваемся. Но сегодня хотим рассказать о проблемах, с которыми сталкиваются сверхзанятые. Для этого мы пообщались с двумя IT-специалистами, Андреем и Артёмом.
Как работает сеть в контейнерах: Docker Bridge с нуля
В этой статье мы собираемся разобраться со следующими вопросами:
* Как виртуализировать сетевые ресурсы, чтобы контейнеры думали, что у них есть отдельные сетевые среды?
* Как превратить контейнеры в дружелюбных соседей и научить общаться друг с другом?
* Как выйти во внешний мир (например, в Интернет) изнутри контейнера?
* Как связаться с контейнерами, работающими на хосте Linux, из внешнего мира?
* Как реализовать публикацию портов, подобную Docker?
Передавать пустые срезы между Rust и C/C++ на удивление сложно
Моя основная работа связана с браузерами и криптографией, а не компиляторами. Но я нередко сталкиваюсь с ситуацией, когда мне приходится проводить больше рабочего времени за изучением семантики языков программирования, чем за фактическим их использованием. Так что эта статья будет посвящена обсуждению острой межязыковой проблемы, касающейся С, С++ и Rust.
В общих чертах она выглядит так:
- В правила работы с указателями и
memcpy
в С не заложены грамотные способы представления пустого среза памяти. - В С++ с правилами указателей проблем нет, но поведение
memcpy
здесь аналогично её поведению в С. - Интерфейс внешних функций (Foreign Function Interface, FFI) в Rust не лишён накладных издержек. Rust использует несовместимое с C/C++ представление срезов, требуя их преобразования при передаче в обоих направлениях. При этом о преобразовании очень легко забыть.
- Срезы в Rust также несовместимы с арифметикой указателей, что создаёт проблемы в работе итератора срезов стандартной библиотеки. (Обновление от 2024-01-16: похоже, над этой проблемой работают).
Поскольку проблемы FFI касаются нескольких языков, я писал статью в качестве общей справки, описывающей их несогласованность.
Проверка работодателя: как минимизировать риски при трудоустройстве
Вы IT-специалист и решили сменить место работы. Что обычно делают в таких случаях айтишники? Ходят по собеседованиям, работают над ошибками в случае отказов — и всё по новой до тех пор, пока не будет получен подходящий оффер. Многие ли из айтишников оценивают надёжность будущего работодателя во время поисков? При планировании профсоюзных кампаний мы проводим исследование работодателей с использованием множества источников и методик. Эта статья была написана с целью помочь специалистам любого уровня, от интернов до архитекторов, ведь никто не застрахован от проблем на работе. Мы поделимся опытом и надеемся, что он поможет вам не нарваться на недобросовестного работодателя.
«Галоп пикселя — часть шестая» — Анимация персонажей. Бег
«Галоп пикселя», часть I — базовые понятия, этапы взросления, прикладные упражнения (линк)
«Галоп пикселя», часть II — перспектива, цвет, анатомия и прикладные упражнения (линк)
«Галоп пикселя», часть III — Анимация (линк)
«Галоп пикселя», часть IV — Анимация света и тени (линк)
«Галоп пикселя», часть V — Анимация персонажей. Ходьба (линк)
«Галоп пикселя», часть VI — Анимация персонажей. Бег (линк)
Доброго времени суток, Хабр. Мы продолжаем цикл «Галоп Пикселя». И хотя паузы между главами этой саги достигли практически четырехлетнего перерыва — я рад (надеюсь и вы тоже) продолжить двигаться вперёд. Миля за милей, дорога за дорогой, в этой вечной былине о пиксель-арте. Пространном повествовании о пикселях, их жизни, способе их создания, приёмах и уловках в работе с ними.
На этот раз речь пойдёт о создании анимации бега, от истоков малых кадрами и цветами — к ренессансу больших разрешений и буйству цветов. В статье будут разобраны примеры самых разных типов анимаций, будет определена разница между шагом и бегом. Мы затронем как создание игровых ассетов, так и сущности близкие к анимационным заставкам, в простонародье известные как синематики.
Сегодняшняя публикация станет ещё одной вехой, которая могла бы стать финальным аккордом в нашей истории. Но мне думается, что это… скорее окончание базового цикла, но не истории в целом, которую можно продолжать ещё долго. Существует масса неисследованных территорий, нехоженых дорог и мест, куда ещё не ступала нога пытливых археологов от мира любителей пиксель-арта. Лопаты в руки, друзья. Лопаты в руки.
Какого специалиста искать для озвучания игры? Звуковая команда: структура и обязанности
Приветствую всех, кто интересуется разработкой игр!
Начиная с момента, когда я впервые попал в мир геймдева в 2008 году, я увидел, как игровой саунд-дизайн совершенствуется и становится важной частью игр.
Мой путь в области игрового аудио начинался с работы техническим саунд-дизайнером в компании, которая специализировалась на разработке игр и CG видеороликов. Позже я много времени провел, работая в качестве саунд- дизайнера, создавая звуковые ресурсы. Затем, профессиональная карьера привела меня в компанию Playrix, где я занимал должность саунд-продюсера, а позже, исполнительного саунд-продюсера, руководя разработкой аудио для лучших продуктов компании. После этого я работал в компании G5 Entertainment, где занимал должность директора звукового отдела. В настоящее время я руковожу студией по разработке звукового дизайна для игр.
За годы работы в индустрии игр, я накопил богатый опыт и знания, которыми хочу поделиться в этом блоге. В серии публикаций вы погрузитесь в тонкости процессов создания звукового сопровождения для игр, узнаете, как эффективно взаимодействовать с аудио-специалистами и познакомитесь с современными практиками в области разработки игрового аудио. Наша цель - улучшить взаимопонимание между разработчиками и аудио-специалистами, повысив тем самым качество игр.
Игровое аудио — это магия, которая делает игры живыми и захватывающими. Я приглашаю вас погрузиться в этот мир и научиться использовать его во благо ваших игр!
Собственный строковый тип на Rust
Писать компиляторы — моё хобби, ничего не могу с собой поделать. Поэтому я пишу и много парсеров. В программировании систем обычно лучше попытаться сделать память общей, чем использовать её многократно, поэтому мои типы AST обычно выглядят так.
pub enum Expr<'src> {
Int(u32)
Ident(&'src str),
// ...
}
Когда мы парсим идентификатор, то вместо копирования его названия в новую
String
мы заимствуем его из входной исходной строки. Это позволяет избежать дополнительных распределений, дополнительного копирования и экономит слово на представлении данных. Компиляторы могут быть очень требовательны к памяти, поэтому стоит выбирать краткое представление.Теория типов
Мы так привыкли к типам, что редко задаёмся вопросом, что же они такое на самом деле? А главное - почему возникла необходимость в их использовании? Этот поверхностный обзор сделан для того, чтобы продемонстрировать, как типы и другие связанные абстракции являются следствием из обобщения условий различных задач.
Единственное в мире число-субфакторион — это 148349. Что это такое?
С понятием факториала знакомы все, но в математике есть еще и субфакториал. Разобравшись с ним, мы подойдем к уникальному в своём роде числу 148 349
Фреймворк vtb_scorekit для разработки интерпретируемых скоринговых моделей
Всем привет! Меня зовут Сакович Руслан, я занимаюсь корпоративным риск-моделированием, и сегодня расскажу о построении скоринговых моделей. Эти модели позволяют оценивать кредитные риски и являются крайне важными в деятельности банка. К ним предъявляются высокие требования в плане точности, стабильности и интерпретируемости результатов, поэтому мы в основном не можем использовать методы «черные ящики» (как например бустинги или нейросети), и обычно вынуждены пользоваться логистической регрессией. Сам по себе метод логистической регрессии довольно простой с точки зрения математики, однако для построения хорошей модели он требует тщательной предварительной обработки и энкодинга исходных данных, а также последующего довольно трудоемкого отбора переменных в модель. Причем стандартные библиотеки вообще не предоставляют возможности построения хоть какой-нибудь адекватной модели прямо из коробки. Мы решили стандартизировать весь процесс разработки скоринговых моделей, собрали используемые нами алгоритмы и объединили в библиотеку vtb_scorekit.
Создание модов для Age of Empires II с помощью нейросети
В прошлом месяце я занялся придумыванием способа создания собственных спрайтов цивилизаций для наших с друзьями игр в Age of Empires II.
В этой статье рассказывается о процессе создания гибкого генератора изображений на основе промтов. Для начинающих я посоветую Alpaca, а тем, кто умеет кодить — Stable Diffusion Web UI и Python.
Выражаю особую благодарность сообществам моддеров AoEII OpenAge, SLX Studio и Age of Kings Heaven.
Технический геймдизайн. Конфиги, баланс и контент на примере PC стратегии
Одна из распространённых задач, с которой сталкиваются как начинающие, так и опытные геймдизайнеры - описание большого объёма контента для передачи его параметров в движок. Задача не из лёгких, учитывая что найти материалы о технических аспектах геймдизайна очень тяжело, особенно на русском языке. Что ж, давайте разбираться, как перенести данные в движок.
Ветер над городом и поквартирная вентиляция через фасад
В предыдущей статье был разобран вопрос организации общедомовой вытяжной вентиляции из санузлов и кухонь в квартирах в многоэтажных многоквартирных домах.
Теперь попытаемся обобщить технические решения по вентиляции, которые пригодные для отдельных квартир. Обобщение сделаем для «отдельных помещений» в составе «больших зданий».
К категории «отдельных помещений» можно причислить что угодно: от квартир и офисов до производственных мастерских и торговых помещений.
Ну, а к категории «больших зданий» можно причислить тоже обширный ряд сооружений: от плоских и длинно-широких одно-двух этажных Торговых центров (ТЦ) до высотных зданий офисных центров с квартирами и апартаментами на верхних этажах (далее БЦ).
К категории ТЦ также можно причислить широкий ряд малоэтажных протяжённых сооружений технического назначения: заводские корпуса, склады, гаражи и т.д.
Для всех перечисленных типов зданий от ТЦ до БЦ свойственно одно общее свойство, а именно:
Объём здания разделён на отдельные помещения (или отдельные зоны в общих помещениях) с различными условиями и требованиями к режиму вентиляции во времени и в пространстве.
То есть в одном здании должно быть несколько независимо работающих вентиляционных систем, обеспечивающих вентиляцию в отдельных помещениях, или в отдельных малых участках больших помещений.
Как организовать самостоятельные дальние походы без гида. Личный опыт
Статья о том, как мы с мужем несколько лет назад придумали себе новое хобби на двоих – пеший туризм – и с тех пор влюбились в него. Здесь делимся ТОП-3 своих маршрутов, советами по снаряжению и его стоимости, нашим опытом путешествий с палаткой, а также про внутреннюю трансформацию и полную перезагрузку мозга во время дальних походов. Надеемся, что наши советы помогут организовать вам свой собственный поход, избежать хотя бы некоторых ошибок и получить от этого времяпрепровождения огромное удовольствие.
Мы будем счастливы, если как можно больше людей заинтересуются этим видом отдыха, а те, кто давно хотел его попробовать, но никак не могут решиться, развеют свои страхи и наконец-то пойдут в поход. Ведь походы – это нечто более глубинное, чем просто перемещение из точки А в точку Б. По крайней мере, для нас.
Как разработчику защитить права на компьютерную игру?
Компьютерные игры популярны, индустрия уверенно развивается. Разработчики не хотят терять то, что создано с огромными усилиями и приносит доход. Компании разрабатывают инновации, чтобы стимулировать пользователей к использованию IT-продукта. Нередко компьютерные игры крадут, копируют или просто используют без разрешения правообладателя. Права на разработку необходимо защищать. Пока единого закона для защиты компьютерных игр нет, но в целом существующие нормы позволяют регулировать отношения в этой сфере.
Как защитить права на компьютерную игру, расскажем в статье.
Гайд по написанию пользовательских историй и критериев приёмки
Всем привет! Меня зовут Валентина Ляликова. Я ведущий бизнес-аналитик в X5 Tech и преподаватель направления «Пользовательские истории и критерии приёмки» в Школе бизнес-анализа X5 Tech.
Большой опыт работы на разнообразных проектах помог сформировать мне список правил, которых я придерживаюсь каждый день при написании User Story и Acceptance Criteria (US+AC). В этой статье хочу поделиться ими с вами и показать на примерах ошибочных вариантов написания документа US+AC, почему так важно применять эти правила в работе.
Информация
- В рейтинге
- Не участвует
- Откуда
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Зарегистрирован
- Активность