«Счастье найдено нами», – говорят последние люди и моргают.
Они покинули страны, где было холодно жить: ибо им необходимо тепло. Также любят они соседа и жмутся к нему: ибо им необходимо тепло.
Захворать или быть недоверчивым считается у них грехом: ибо ходят они осмотрительно. Одни безумцы еще спотыкаются о камни или о людей!
От времени до времени немного яду: это вызывает приятные сны. А в конце побольше яду, чтобы приятно умереть.
Они еще трудятся, ибо труд – развлечение. Но они заботятся, чтобы развлечение не утомляло их.
Не будет более ни бедных, ни богатых: то и другое слишком хлопотно. И кто захотел бы еще управлять? И кто повиноваться? То и другое слишком хлопотно.
Нет пастуха, одно лишь стадо! Каждый желает равенства, все равны: кто чувствует иначе, тот добровольно идет в сумасшедший дом.
«Прежде весь мир был сумасшедший», – говорят самые умные из них и моргают.
Все умны и знают все, что было; так что можно смеяться без конца. Они еще ссорятся, но скоро мирятся – иначе это расстраивало бы желудок.
У них есть свое удовольствьице для дня и свое удовольствьице для ночи; но здоровье – выше всего.
«Счастье найдено нами», – говорят последние люди и моргают.
Ещё из мыслей.
Посмотрел в кинотеатре "Судзумэ, закрывающая двери" (2 раза).
Круто, что есть гениальные люди, создающие гениальные вещи. После просмотра хочется творить, создать что-то своё.
Но пока что прибываю в состоянии Sell Out'а, сам не очень понимая почему.
Чел из Майкрософт в ответ на сообщение о том, что майкрософт тимс запускается 10 секунд, на полном серьёзе пишет "This is latency, not performance".
Если человек работает в майкрософт, гугл и прочих, он находится под презумпцией виновности - должен доказать, что не долбаёб
Давно хотел посоветовать канал Digital Foundry, вдруг кто-то не слышал (у них всего почти полтора миллиона подписчиков). Очень хорошо обозревают техническую часть игр, лично мне правда помогает лучше понимать косяки вижуала на разных проектах
Читать полностью…Добавим немного блогерских постов
Знаете, какой самый неприятный для меня минус работы над большими проектами в геймдеве? Надо работать с мощного стационарного компа (видеокарта размером с младенца). То есть если ты какой-нибудь хиппи вебер, можно купить ноут и работать откуда по кайфу, путешествовать. А перевозить комп с мониками заеб (но это меня не остановит)
В конце января исполнил одну из своих мини мечт - увидел пирамиды, очень кайфовые ощущения, улыбка с лица не слетала
Пытался придумать мем под последнюю фотку, но все слишком по-задротски выходит
А так, сидим и завидуем @MomoDeve, который обменял геймдев на свободу
Brian Karis рассказывает про процесс создания Nanite для Unreal Engine 5, который можно сказать начался в ~2007 году. Кто его замотивировал, как он постепенно ресёрчил и пробовал разные идеи, отбрасывал неподходящие.
Тут больше не про сам Nanite, а в целом про подход к созданию чего-то интересного
Я через пару недель это всё красиво анонсирую, выдам инфу, надо подготовить пару моментов. Но народ уже записывается, завтра начинаю работу с несколькими. Кого интересует - пишите в личку @justvg, потому что свободного времени у меня не бесконечно, я как бы фултайм разработчик🤓
Читать полностью…На этой/следующей неделе проведу стрим, в котором расскажу, какая математика нужна в геймдеве, что лучше знать, на что можно забить, что могут спросить на собеседовании 💀
Читать полностью…Частенько на глаза попадался Unity Scriptable Render Pipeline, сейчас начал тестить, выглядит прикольно. Считай пишешь свой рендер, но не отвлекаясь на написание кор движка. Если дальше мерзких косяков не замечу, то можно будет постримить
В целом Unity тыкать пока что приятней, чем Unreal - Unity сильно меньше, всё более простое, как будто в своем самописном движке сидишь.
Получается, работа по фиксу звука на стриме + самостоятельно:
1) пофиксили мусор в waveOut буферах на старте игры
2) нашли перфоманс баг и сделали цикл быстрее раз в 10
3) пофиксили баг с циклом, в котором миксовали звуки
4) написал ещё один бекенд для звука
5) пофиксил траблы для звуков с измененной частотой (основная проблема)
Только гляньте, насколько заточен движок/редактор Rayman Legends под игру. Поставил таймкод на 7:00, до этого просто показывали анимации
Читать полностью…минут через 10-15 запущу стрим, попрограммирую и устрою фестиваль кринжа https://www.twitch.tv/vghero0
Читать полностью…фильм был збс, советую👍
прикрепил к посту свои 10 и 9 (здесь не всё, ток то что на кинопоиске сохранилось)
мой любимый в последнее время - под сильвер-лэйк
запостил без звукового уведомления, чтобы не заёбывать подсничников
Еще один кайфовый пример собственного тека. В этот раз от Tomorrow Corporation, и не просто игровой движок, а почти весь софтварный стек - свой язык программирования, дебагер, тулзы и т.д.
Читать полностью…Недавно попалась интересная мысль. Многие явно слышали про закон Парето - "20% усилий дают 80% результата".
Но если взять 20% из этих 20% и 80% из 80%, то получается, что "4% усилий дают 64% результата", что на самом деле звучит достаточно мощно.
Знаю, кстати, одного человека, который помогает найти, куда эти усилия прилагать в геймдеве😎
Пока что эфир по математике скипаем. Не успеваю - фултайм работа + занимаюсь с ребятами дополнительно.
А вам пока подготовил подборочку старых постов:
Semantic Compression - база от Кейси
Доведи проект до конца
Anti-Aliasing
Data-Oriented Design and C++ - база от Майка Эктона
Конспектирование
Gamma Correction
Как я сделал тестовое задание на Unreal Engine 4 за два дня, имея нулевой опыт с этим движком
Handmade Hero
Normal Mapping & Parallax Occlusion Mapping
Reflective Shadow Maps
HDR and Tone Mapping
Программируй игры, чтобы научиться программировать движки
Оптимизация загрузки GTA Online
Соптимизировал софтварную растеризацию в 3 раза, не меняя ничего
Почему программисты не могут... Программировать?
Как начать изучать Unreal Engine
George Hotz пробует разобраться, как работает Твиттер. Видос поймут даже фронтендеры🌚
Джордж, кстати, по итогу не вывез и ливнул с Твиттера (с компании)
Круто, что раньше (33:08) можно было "за пару недель-месяц кранча написать новый движок для StarCraft" в одиночку. Сейчас за месяц можно, например, отсосать у Анриала
Читать полностью…Таблица с разницей стоимости операций на CPU. Гляньте, сколько может стоить thread context switch - одна из причин, почему "закидывание" проблемы увеличением количества потоков не всегда работает
Читать полностью…Знаете про какие-нибудь курсы по кор геймдеву (разработке движков, рендера) на русском? Я подумываю ввести опцию менторства со мной, решил поискать, какие ещё есть курсы, ничего годного не нашёл: обычно тыкают Unreal или Unity.
Читать полностью…Мои любимые геймдев доклады. Часть 2
Вспомнил про эту серию постов, и мне есть чем поделиться. Сегодня как раз выходной, можно откинуться на стуле и в режиме отдыха посмотреть, какие low-level GPU оптимизации делали ребята из Naughty Dog для The Last of Us 2 (представить ещё более грустное воскресенье тяжело).
Чел рассказывает, как им удалось соптимизировать 2ms (а для 30FPS игры у нас всего 33ms) на PS4, используя лоулвл "хитрости".
Лично для меня этот доклад был очень полезен, когда я впервые его посмотрел. Буквально использовал советы оттуда на практике на реальном проекте. Например, не знаю, сколько бы до меня доходило, что иногда приходится occupancy понижать, чтобы улучшить перфоманс (если треды много читают в разных местах память и просто сбивают друг другу кеш).
Одна из лучших презентаций по оптимизациям от опытного разработчика. Самое главное, что с реальными примерами из релизнутых игр.
Имхо это основной способ улучшения перфоманса, а не какие-то супер лоу лвл штуки. В лоу лвл есть смысл залезать, если на хай лвле всё уже вылизано.
Всем подсничникам салам, остальным - соболезную. I'm back again. Завтра будет strиm, покодим постпроцессинг для движка.
Гляньте, кстати, какая картинка сейчас в новой игре Блоу. Приятно смотрится. Видно, что свет запеченный, и классный арт дирекшн
Недавно узнал, что джунам сейчас заметно тяжелее искать работу, чем года полтора назад - и походу не только в России, а в целом в индустрии (кучу увольнений в больших корпорациях). Джонатан Блоу кстати частично предсказывал это про веб
Со своей стороны могу сказать, что в геймдеве, по крайней мере в кор геймдеве типа разработки движков/рендера, такой проблемы не вижу. Так что если только выбираете свой путь в программировании - как вариант. а я вам в этом помогу (💲💲💲💲💲💲)
Для тех кто был на стриме - я по итогу дофиксил глитчи звука. История такая:
Первым делом глянул, какой audio lag/latency считается адекватным для лип синка (синхронизация звука с губами говорящих). У меня в игре никакого лип синка не будет, то есть можно не так стараться.
В телевидении - не больше 45мс, в фильмах - 22мс. В целом по результатам желательно, чтобы лаг был не больше 150мс.
Дальше глянул про waveOut API, который я использовал. Много где писали, что получить с помощью него лейтенси в 100мс уже неплохо. В блоге our machinery использовали лейтенси в 46ms. Не получать проблем при 45-50ms я в принципе справлялся, то есть в целом саму апишку использовал правильно.
Но решил написать ещё один бекенд для звука - использовал DirectSound. Так вот, этот API возвращает PlayCursor и WriteCursor, то есть место, откуда сейчас проигрывается звук, и место в которое безопасно писать. Не уверен, как код понимает, что именно вон туда писать "безопасно", но разница между этими курсорами у меня на компе возвращается в 30мс. То есть делать меньше 30мс лага не советуется и правда создавало проблемы. Долго возился, но получилось выдать 40-50мс лейтенси, в принципе неплохо. Надо будет в будущем потестить на разных устройствах.
Следующее - я не учитывал input lag, то есть лаг появления самой картинки. У меня в движке при 60FPS он равен 33мс (16.6мс на CPU, 16.6мс на GPU). То есть из лага звука можно вычитать инпут лаг (человек ожидает услышать звук одновременно с появлением соответствующей картинки). Получается, что на 60FPS при 40-50мс лейтенси звука и 33мс инпут лага, аудио лаг на самом деле 7-17мс, что очень хорошо.
Всё не так суперски, когда выключается vsync, и игра начинает выдавать 250+FPS, потому что инпут лаг уменьшается, а лейтенси звука не сильно (как я уже говорил, минимальное, что мне советует DirectSound - 30мс).
В целом доволен.
Нооо я все равно продолжал слышать глитчи во время ходьбы. Обнаружил баг в звуковом миксере для звуков с измененной частотой (в движке есть код, который позволяет менять частоту звука; нужно, чтобы из, например, 4 звуков ходьбы можно было сделать сильно больше "автоматически", очень полезно для инди игр). Поправил - теперь проблем нет. Я знал, что эта задача меня задолбает, поэтому откладывал
за работой часто слушаю песни George'а Hotz'а https://soundcloud.com/tomcr00se. Чел не музыкант, но под кодинг заходит отлично
Читать полностью…типичная дилемма субботы - "отдыхать по-настоящему или заниматься делами и назвать это отдыхом"
выбрал второе, но признаю, что это не отдых
вечером мб схожу в кино на вавилон