This media is not supported in your browser
VIEW IN TELEGRAM
Вот так я сделал отложенное освещение. Проще говоря, это метод рендеринга, где сначала сохраняется информация о пикселях сцены, а потом применяется освещение. Это позволяет эффективно управлять множеством источников света, но требует больше памяти.
Как видно тут рендерятся сразу за один проход 3 карты
Карта нормалей: Хранит направление нормалей для каждого пикселя, используемое для расчета освещения.
Карта позиций: Содержит пространственные координаты каждого пикселя для точного вычисления освещения.
Карта albedo: Хранит базовый цвет поверхности без учета освещения, используемый как основной цветовой компонент.
Вроде бы всё просто, но с момента когда я услышал про этот подход прошло больше 10 лет, всё мозгов не хватало понять как это работает 😅
Как видно тут рендерятся сразу за один проход 3 карты
Карта нормалей: Хранит направление нормалей для каждого пикселя, используемое для расчета освещения.
Карта позиций: Содержит пространственные координаты каждого пикселя для точного вычисления освещения.
Карта albedo: Хранит базовый цвет поверхности без учета освещения, используемый как основной цветовой компонент.
Вроде бы всё просто, но с момента когда я услышал про этот подход прошло больше 10 лет, всё мозгов не хватало понять как это работает 😅
🔥4👍1
Media is too big
VIEW IN TELEGRAM
Недавно мне захотелось попробовать создать источники освещения с эффектом "тумана". Я наткнулся на статью, которая вдохновила меня на реализацию этой идеи: https://ijdykeman.github.io/graphics/simple_fog_shader Результат превзошел мои ожидания — эффект получился действительно впечатляющим! Самое классное, что это не просто спрайт, а полноценный эффект. Если умело интегрировать это в сцену, можно добиться потрясающей красоты.
Для лучшей видимости эффекта я увеличил свечение в два раза
Для лучшей видимости эффекта я увеличил свечение в два раза
🔥3👍2
Media is too big
VIEW IN TELEGRAM
Разработка на Defold часто начинается с чувством, что сталкиваешься с постоянными ограничениями. То, что в других движках можно реализовать за пару часов, в Defold требует написания низкоуровневых решений и интеграции их в пайплайн рендера, а также архитектуру проекта, жестко диктуемую движком. Изоляция работы с GUI, миром и рендер-скриптами тоже накладывает свои ограничения. Но знаете что? Это здорово! 👍 У меня гораздо меньше шансов упороться в спагетти код, мне движок это просто не позволит. Эти сложности способствуют созданию более оптимизированного и чистого кода. Благодаря таким особенностям Defold игры на этом движке часто отличаются высокой производительностью. Любые затраченные усилия обязательно окупаются, и я восхищаюсь результатами, которых удается достичь с его помощью.
Что касается того, что я успел реализовать: наконец, я реализовал тени от точечного источника освещения — давно хотел это сделать! Даже эффект туманности до сих пор меня впечатляет, а добавление теней стало приятным дополнением. В последнее время разработчики Defold сделали большой шаг вперед в работе с шейдерами, и благодаря этому реализовать свои задумки стало гораздо проще. Надеюсь, вскоре появятся новые структуры данных, такие как массив сэмплеров или возможность динамически создавать кубические карты и рендерить в них. Ну а пока работаем с тем, что есть, и наслаждаемся процессом!
Что касается того, что я успел реализовать: наконец, я реализовал тени от точечного источника освещения — давно хотел это сделать! Даже эффект туманности до сих пор меня впечатляет, а добавление теней стало приятным дополнением. В последнее время разработчики Defold сделали большой шаг вперед в работе с шейдерами, и благодаря этому реализовать свои задумки стало гораздо проще. Надеюсь, вскоре появятся новые структуры данных, такие как массив сэмплеров или возможность динамически создавать кубические карты и рендерить в них. Ну а пока работаем с тем, что есть, и наслаждаемся процессом!
👍9🔥4
Media is too big
VIEW IN TELEGRAM
Хочу поделиться крутой находкой: На основе предыдущих наработок сделал объемные тени, и это оказалось проще, чем кажется!
Идея такая: Я использовал луч от фрагмента к камере и взял выборку вдоль него по карте теней. Вуаля, эффект готов!
Правда, производительность пока страдает, но я не сдаюсь и верю, что найду способ это оптимизировать. Если у кого-то есть мысли или идеи, как улучшить эффект – пишите, буду рад обсудить!
Идея такая: Я использовал луч от фрагмента к камере и взял выборку вдоль него по карте теней. Вуаля, эффект готов!
Правда, производительность пока страдает, но я не сдаюсь и верю, что найду способ это оптимизировать. Если у кого-то есть мысли или идеи, как улучшить эффект – пишите, буду рад обсудить!
🔥5👍2
Привет, народ! Помимо написания шейдеров в свободное время, в реальности я еще немного DS :D И заготовил для вас развлекательный пост 😄 Этот анализ ниже - чисто экспериментальный и не претендует на точность или практическую применимость. Я провел его из личного интереса к символьной регрессии и любви к поиску математических закономерностей в данных. Рассматривайте это как увлекательное исследование, а не как серьезную прогностическую модель.
Решил я тут поэкспериментировать с интересной штукой - символьной регрессией. Вообще существуют такие решения, которые могут аппроксимировать данные и выдать формулу например для будущих предсказаний.
Меня осенило попробовать предсказать продажи игр на основе разных метрик.
Для анализа был сформирован обезличенный датасет из 50 строк, включающий следующие признаки: жанр (кодированный категориальный), бюджет (в млн $), длительность (в часах), оценка критиков (по 100-балльной шкале), наличие мультиплеера (бинарный) и объем продаж (в млн копий). Структура данных выглядела следующим образом:
Жанр,Бюджет,Длительность,Оценка_критиков,Мультиплеер,Продажи
1,50,40,85,0,2.5
2,30,10,75,1,1.8
3,15,100,70,0,0.9
...
Где первый столбец Жанр, там указаны просто коды жанров, например:
1: RPG
2: Шутер
3: Симулятор
Для анализа использовал TuringBot (https://turingbotsoftware.com/) - крутую, но платную программу (у меня, к счастью, есть лицензия). Загрузил туда свой датасет, указал входные переменные и целевое значение. Данные были разделены на обучающую и тестовую выборки в соотношении 50/50 для проведения кросс-валидации. В качестве целевой метрики оптимизации использовалось среднеквадратичное отклонение (RMSE).
После 5 минут работы программа выдала оптимальную формулу. Она отлично справилась с тренировочными данными и более-менее с тестовыми. Главное - удалось найти зависимости между входными параметрами и продажами. Казалось бы, полученная формула отражает нелинейные зависимости между входными параметрами и объемом продаж, учитывая взаимодействия между признаками и теперь у нас есть "формула мечты" для прогнозирования доходов 😄 (Рисунок 1)
Но не все так круто 🙈 На тестовых данных формула уже не так красиво себя вела Рисунок 2. Тут играет куча причин, например:
- Малый размер выборки (n=50) повышает риск переобучения модели.
- Наблюдается сильная корреляция между бюджетом и оценками критиков
- Категориальный признак "жанр" закодирован числовыми значениями, что может некорректно отражать его влияние. но опять же это решается размером датасета
Но хочу подчеркнуть - даже сейчас "модель" предсказала верную тенденцию на данных, которые не участвовали в обучении. Но и тут мне надо бы осторожным по причинам описанным выше.
В заключение хочу отметить, что символьная регрессия, несмотря на свою "классичность", остается мощным инструментом. Она позволяет получать интерпретируемые модели и выявлять неочевидные закономерности в данных. Хотя современные методы глубокого обучения часто превосходят ее по точности, символьная регрессия сохраняет свою ценность в задачах, требующих прозрачности и объяснимости модели. Например мне будет приятно использовать формулу отлично решающую определенную задачу, чем инференсить pytorch модели. Лично я нахожу работу с этим методом крайне увлекательной, особенно в контексте исследовательского анализа данных и генерации гипотез, как то так 💪
Кстати, а вот и формула 😂
Решил я тут поэкспериментировать с интересной штукой - символьной регрессией. Вообще существуют такие решения, которые могут аппроксимировать данные и выдать формулу например для будущих предсказаний.
Меня осенило попробовать предсказать продажи игр на основе разных метрик.
Для анализа был сформирован обезличенный датасет из 50 строк, включающий следующие признаки: жанр (кодированный категориальный), бюджет (в млн $), длительность (в часах), оценка критиков (по 100-балльной шкале), наличие мультиплеера (бинарный) и объем продаж (в млн копий). Структура данных выглядела следующим образом:
Жанр,Бюджет,Длительность,Оценка_критиков,Мультиплеер,Продажи
1,50,40,85,0,2.5
2,30,10,75,1,1.8
3,15,100,70,0,0.9
...
Где первый столбец Жанр, там указаны просто коды жанров, например:
1: RPG
2: Шутер
3: Симулятор
Для анализа использовал TuringBot (https://turingbotsoftware.com/) - крутую, но платную программу (у меня, к счастью, есть лицензия). Загрузил туда свой датасет, указал входные переменные и целевое значение. Данные были разделены на обучающую и тестовую выборки в соотношении 50/50 для проведения кросс-валидации. В качестве целевой метрики оптимизации использовалось среднеквадратичное отклонение (RMSE).
После 5 минут работы программа выдала оптимальную формулу. Она отлично справилась с тренировочными данными и более-менее с тестовыми. Главное - удалось найти зависимости между входными параметрами и продажами. Казалось бы, полученная формула отражает нелинейные зависимости между входными параметрами и объемом продаж, учитывая взаимодействия между признаками и теперь у нас есть "формула мечты" для прогнозирования доходов 😄 (Рисунок 1)
Но не все так круто 🙈 На тестовых данных формула уже не так красиво себя вела Рисунок 2. Тут играет куча причин, например:
- Малый размер выборки (n=50) повышает риск переобучения модели.
- Наблюдается сильная корреляция между бюджетом и оценками критиков
- Категориальный признак "жанр" закодирован числовыми значениями, что может некорректно отражать его влияние. но опять же это решается размером датасета
Но хочу подчеркнуть - даже сейчас "модель" предсказала верную тенденцию на данных, которые не участвовали в обучении. Но и тут мне надо бы осторожным по причинам описанным выше.
В заключение хочу отметить, что символьная регрессия, несмотря на свою "классичность", остается мощным инструментом. Она позволяет получать интерпретируемые модели и выявлять неочевидные закономерности в данных. Хотя современные методы глубокого обучения часто превосходят ее по точности, символьная регрессия сохраняет свою ценность в задачах, требующих прозрачности и объяснимости модели. Например мне будет приятно использовать формулу отлично решающую определенную задачу, чем инференсить pytorch модели. Лично я нахожу работу с этим методом крайне увлекательной, особенно в контексте исследовательского анализа данных и генерации гипотез, как то так 💪
Кстати, а вот и формула 😂
def solution(Жанр, Бюджет, Длительность, Оценка_критиков, Мультиплеер):
return 0.06699618899317092*(0.686980117635591/(tan(Оценка_критиков)-1.640619407832785*Мультиплеер)+Оценка_критиков-74.61041769134356+Бюджет+(6.434509049049919-atanh(sin(Мультиплеер*(Длительность-Жанр)-0.1417795805275835)))*(Мультиплеер-cos(round((0.9990760411584179+erf(Мультиплеер))*Жанр+Оценка_критиков))))
🔥6👍4
Media is too big
VIEW IN TELEGRAM
Что же я успел сделать?)
Мало кто знает, но для создания своей "Игры мечты" помимо шейдеров я разрабатываю собственную библиотеку для создания пользовательских интерфейсов на игровом движке Defold. Вдохновляясь библиотекой React.js для веба, я делю интерфейс на шаблоны, макеты, умные и глупые компоненты. Это позволяет конструировать интерфейсы почти так же, как с помощью HTML-разметки, и рендерить их с использованием компонентов со своим состоянием и так далее. Я также разрабатываю аналог CSS для описания стилей.
Теперь к сути дела: у CSS есть свойство backdrop-filter, позволяющее применять различные эффекты к области позади UI-элемента. И вот на выходных я реализовал его в своей библиотеке! Теперь достаточно указать backdropFilter="blur(10px)" в стилях элемента, и все заработает. По сути, это послойный рендеринг, требующий немного больше вызовов отрисовки, но эффект того стоит. Механизм внутри рендер-скрипта автоматически разделяет интерфейс на нужные слои, основываясь на стилях. Этот подход мне достался с тех пор, когда я внедрил механизм клиппинга 💪
Кстати бонусом еще сделал анимации при наведении. Т.к. мне недоступен реальный css с транзишенами, я реализовал что то типа useAnimatedState как аналог useState из react.js
Мало кто знает, но для создания своей "Игры мечты" помимо шейдеров я разрабатываю собственную библиотеку для создания пользовательских интерфейсов на игровом движке Defold. Вдохновляясь библиотекой React.js для веба, я делю интерфейс на шаблоны, макеты, умные и глупые компоненты. Это позволяет конструировать интерфейсы почти так же, как с помощью HTML-разметки, и рендерить их с использованием компонентов со своим состоянием и так далее. Я также разрабатываю аналог CSS для описания стилей.
Теперь к сути дела: у CSS есть свойство backdrop-filter, позволяющее применять различные эффекты к области позади UI-элемента. И вот на выходных я реализовал его в своей библиотеке! Теперь достаточно указать backdropFilter="blur(10px)" в стилях элемента, и все заработает. По сути, это послойный рендеринг, требующий немного больше вызовов отрисовки, но эффект того стоит. Механизм внутри рендер-скрипта автоматически разделяет интерфейс на нужные слои, основываясь на стилях. Этот подход мне достался с тех пор, когда я внедрил механизм клиппинга 💪
Кстати бонусом еще сделал анимации при наведении. Т.к. мне недоступен реальный css с транзишенами, я реализовал что то типа useAnimatedState как аналог useState из react.js
👍6🔥5
Недавно Жена мне подарила на день рождения книгу Джесси Шелла "Гейм Дизайн". Но... этому предшествовало мое глубокое разочарование в индустрии онлайн-курсов 🙈
Изначально я искал комплексную информацию о геймдизайне: что это такое, с чем его "едят", причем не только для новичков. Однако обнаружил, что большинство курсов, даже если они называются "Геймдизайн", на самом деле фокусируются на базовом программировании, изучении игровых движков и создании простейших платформеров. Мое разочарование усиливалось тем, что индустрия онлайн-образования, похоже, ориентирована на массового потребителя, предлагая поверхностные знания по принципу "галопом по Европам". Вместо глубокого погружения в психологию игрока, методы создания эмоционального отклика и способы трансляции нужного опыта, курсы предлагали лишь техническую сторону вопроса: "на какую кнопочку нажать, чтобы создать проект в Unity".
А я всего лишь искал более глубокое понимание геймдизайна как искусства создания увлекательного игрового опыта, а не просто набор технических навыков.
Похоже, я был настолько увлечён, что моя любимая решила изучить все статьи на хабре, посетить тематические форумы и узнать, что советуют люди. В результате теперь каждый день перед сном я читаю охренительную книгу. 🔥
Изначально я искал комплексную информацию о геймдизайне: что это такое, с чем его "едят", причем не только для новичков. Однако обнаружил, что большинство курсов, даже если они называются "Геймдизайн", на самом деле фокусируются на базовом программировании, изучении игровых движков и создании простейших платформеров. Мое разочарование усиливалось тем, что индустрия онлайн-образования, похоже, ориентирована на массового потребителя, предлагая поверхностные знания по принципу "галопом по Европам". Вместо глубокого погружения в психологию игрока, методы создания эмоционального отклика и способы трансляции нужного опыта, курсы предлагали лишь техническую сторону вопроса: "на какую кнопочку нажать, чтобы создать проект в Unity".
А я всего лишь искал более глубокое понимание геймдизайна как искусства создания увлекательного игрового опыта, а не просто набор технических навыков.
Похоже, я был настолько увлечён, что моя любимая решила изучить все статьи на хабре, посетить тематические форумы и узнать, что советуют люди. В результате теперь каждый день перед сном я читаю охренительную книгу. 🔥
👍5🔥4
Что по ценам нынче?
Вчера ночью нанял профессионального 3D-артиста смоделировать персонажа. С помощью нейросети я набросал примерное видение временного ГГ, которым буду управлять. Нейросеть выдала нужный вариант с попытки сотой, наверное, но даже при этом есть косяки, которые я решил исправить через ТЗ. Вообще все недочеты и лишние детали можно пофиксить через inpaint, но этим я решил не заморачиваться.
Выбирая профессионала, я исходил из того, насколько хорошо исполнитель владеет кисточкой, так как хотелось стилизацию и качественную прорисовку текстур. Итого из всего многообразия выбрал для себя 2 претендентов:
Один берет 35 тыс. рублей
Второй 20 тыс. рублей
Спойлер: выбрал того, что дешевле, и считаю это разумным. Я бы заплатил и 35, тем более у него работы гораздо серьезнее, но исполнитель был сильно перегружен, и мне не хотелось терять время, ожидая, когда до меня дойдет очередь.
В итоге взял исполнителя, который берет 20 тысяч, что считаю очень и очень мало, но человек действительно выдает хороший результат, и я дал ему шанс.
Прикладываю к посту мой образ, который я хочу) В будущем мне предстоит еще найти человека, который сделает риг 😆 Ну, вообще я и сам могу, но учусь уже делегировать задачи, время на выполнение которых я лучше потрачу на основную работу.
Вчера ночью нанял профессионального 3D-артиста смоделировать персонажа. С помощью нейросети я набросал примерное видение временного ГГ, которым буду управлять. Нейросеть выдала нужный вариант с попытки сотой, наверное, но даже при этом есть косяки, которые я решил исправить через ТЗ. Вообще все недочеты и лишние детали можно пофиксить через inpaint, но этим я решил не заморачиваться.
Выбирая профессионала, я исходил из того, насколько хорошо исполнитель владеет кисточкой, так как хотелось стилизацию и качественную прорисовку текстур. Итого из всего многообразия выбрал для себя 2 претендентов:
Один берет 35 тыс. рублей
Второй 20 тыс. рублей
Спойлер: выбрал того, что дешевле, и считаю это разумным. Я бы заплатил и 35, тем более у него работы гораздо серьезнее, но исполнитель был сильно перегружен, и мне не хотелось терять время, ожидая, когда до меня дойдет очередь.
В итоге взял исполнителя, который берет 20 тысяч, что считаю очень и очень мало, но человек действительно выдает хороший результат, и я дал ему шанс.
Прикладываю к посту мой образ, который я хочу) В будущем мне предстоит еще найти человека, который сделает риг 😆 Ну, вообще я и сам могу, но учусь уже делегировать задачи, время на выполнение которых я лучше потрачу на основную работу.
🔥8👍3
martianov_dev
Что по ценам нынче? Вчера ночью нанял профессионального 3D-артиста смоделировать персонажа. С помощью нейросети я набросал примерное видение временного ГГ, которым буду управлять. Нейросеть выдала нужный вариант с попытки сотой, наверное, но даже при этом…
#Субботний
Со мной случилась забавная история. Помните, я рассказывал, что выбрал двух исполнителей для моделирования моего персонажа? В итоге я остановился на первом мастере по нескольким причинам, но суть не в этом. Дело в том, что второй мастер (который заметно дороже) неожиданно начал работать над проектом без нашего согласования. Он даже успел сделать черновой вариант 3D-модели и отправил мне сообщение: мол, смотри, уже работаю, уточню несколько деталей. При этом мы ещё вообще не обсуждали начало работы!
Несмотря на то, что изначально я планировал отдать проект первому мастеру, я всё-таки решил дать и второму ту же задачу. Неделю спустя он прислал мне готовые рендеры персонажа – и они оказались просто офигенными! Прикол в том, что я тогда ещё даже не заплатил ему ни копейки, включая аванс. Но, конечно, потом я полностью рассчитался и оставил положительный отзыв. Работа получилась на высшем уровне: ретопология, hand-paint текстуры – всё сделано идеально. Теперь осталось дождаться результата от первого мастера и сравнить подход двух разных специалистов к одному техническому заданию.
Как только получу результат от другого мастера, то сразу запилю сравнение 👍
Со мной случилась забавная история. Помните, я рассказывал, что выбрал двух исполнителей для моделирования моего персонажа? В итоге я остановился на первом мастере по нескольким причинам, но суть не в этом. Дело в том, что второй мастер (который заметно дороже) неожиданно начал работать над проектом без нашего согласования. Он даже успел сделать черновой вариант 3D-модели и отправил мне сообщение: мол, смотри, уже работаю, уточню несколько деталей. При этом мы ещё вообще не обсуждали начало работы!
Несмотря на то, что изначально я планировал отдать проект первому мастеру, я всё-таки решил дать и второму ту же задачу. Неделю спустя он прислал мне готовые рендеры персонажа – и они оказались просто офигенными! Прикол в том, что я тогда ещё даже не заплатил ему ни копейки, включая аванс. Но, конечно, потом я полностью рассчитался и оставил положительный отзыв. Работа получилась на высшем уровне: ретопология, hand-paint текстуры – всё сделано идеально. Теперь осталось дождаться результата от первого мастера и сравнить подход двух разных специалистов к одному техническому заданию.
Как только получу результат от другого мастера, то сразу запилю сравнение 👍
👍6🔥3
+ Кстати
Сегодня оказался на созвоне с разработчиками игр на Defold Engine. Один из них задал мне вопрос: «Расскажи, над чем работаешь, какая у тебя идея?» Я начал рассказывать про технические аспекты проекта – что уже сделано, какие задачи впереди, что планирую добавить позже. Однако самую важную часть – суть самой игры – я специально обошел стороной.
В этот момент меня накрыло чувство замешательства. Ведь правда заключается в том, что я до сих пор не раскрывал, какую игру собираюсь создать. Возможно, потому что даже сам еще не полностью осознал её концепцию?
Для себя я составил следующий план:
1. Сначала сделаю демо-версию.
2. Потом займусь рендерами.
3. После этого опишу своё видение игры в тексте.
4. И наконец, опубликую всё это.
Пока же я предпочитаю придерживаться стратегии: не говорить о том, что ещё не завершено.
Сегодня оказался на созвоне с разработчиками игр на Defold Engine. Один из них задал мне вопрос: «Расскажи, над чем работаешь, какая у тебя идея?» Я начал рассказывать про технические аспекты проекта – что уже сделано, какие задачи впереди, что планирую добавить позже. Однако самую важную часть – суть самой игры – я специально обошел стороной.
В этот момент меня накрыло чувство замешательства. Ведь правда заключается в том, что я до сих пор не раскрывал, какую игру собираюсь создать. Возможно, потому что даже сам еще не полностью осознал её концепцию?
Для себя я составил следующий план:
1. Сначала сделаю демо-версию.
2. Потом займусь рендерами.
3. После этого опишу своё видение игры в тексте.
4. И наконец, опубликую всё это.
Пока же я предпочитаю придерживаться стратегии: не говорить о том, что ещё не завершено.
🔥4👍1
За последнюю неделю испытал срыв. Даже не знаю, с чем это связано: может, с перманентным состоянием, что тебя вот-вот уволят за низкую продуктивность, или с тем, что на втором фронте разработка идёт не всегда так гладко, как хочется. Разработка игры — это пот и кровь, вечная работа ради работы. Делаешь одну задачу, на неё приходит целых две.
Например, в игровом движке Defold отсутствует нормальная костная анимация. Нет, она как бы есть, но далека от желаемой функциональности. Поэтому я пишу свой C++ модуль для анимирования, и в целом выходит удачно. Потом шейдеры по-разному ведут себя на Windows и WebGL, решение этих проблем отнимает кучу часов. Плюс ко всему описываю обширный диздок моей игры, хотя бы для того, чтобы дизайнеры, которых я нанимаю, понимали, в каком стиле делать работу.
Итог: кранчу я каждый день с 10 утра до 10-11 вечера. Мне уже даже жена предлагает свою помощь — вы бы видели моё радостное лицо! Но я пока решил сам сделать демонстрационную версию, без этого никуда. Фиг знает, а вдруг я найду инвесторов?
Например, в игровом движке Defold отсутствует нормальная костная анимация. Нет, она как бы есть, но далека от желаемой функциональности. Поэтому я пишу свой C++ модуль для анимирования, и в целом выходит удачно. Потом шейдеры по-разному ведут себя на Windows и WebGL, решение этих проблем отнимает кучу часов. Плюс ко всему описываю обширный диздок моей игры, хотя бы для того, чтобы дизайнеры, которых я нанимаю, понимали, в каком стиле делать работу.
Итог: кранчу я каждый день с 10 утра до 10-11 вечера. Мне уже даже жена предлагает свою помощь — вы бы видели моё радостное лицо! Но я пока решил сам сделать демонстрационную версию, без этого никуда. Фиг знает, а вдруг я найду инвесторов?
👍5🔥5❤1
Media is too big
VIEW IN TELEGRAM
Что же я успел сделать за последнее время? Пока жду локацию от дизайнера, решил заняться анимацией персонажа. Сделал смешивание анимаций и создал некое подобие состояний. В ToDo добавил задачу по реализации сложных переходов между состояниями, например, из ходьбы в бег, затем в прыжок, падение и так далее. Дел на самом деле еще очень много. Кстати, так как игра планируется мультиплеерной, решил протестировать, как игроки могут взаимодействовать друг с другом "физически", а именно толкаться. Вот, показываю видео :)
👍5🔥5❤1
Media is too big
VIEW IN TELEGRAM
Создал тени от направленного источника, причём они ещё и каскадные! Пока без фильтров, но в будущем обязательно добавлю. В некотором смысле, тени от направленного источника сложнее реализовать, чем от точечного. Приходится разбираться с усечённым конусом, делить зоны детализации и так далее. Но в итоге получилось здорово — мир стал выглядеть более живым 👍
👍7🔥5❤2
Media is too big
VIEW IN TELEGRAM
С приближением праздников меня охватило желание подвести итоги года коротким видео о текущем состоянии игры. И вот что получилось! Дизайнер наконец-то завершил часть уровня, которую я с радостью демонстрирую. Конечно, не обошлось без технических нюансов, но я почти со всеми справился. Уже готово более 30 пропсов, хотя они еще нуждаются в подготовке перед внедрением в игру.
Глядя на проделанную работу, я чувствую, как душа наполняется теплом и гордостью за проект. Каждый элемент, каждая деталь – это частичка моего творчества и усердия.
Особенно хочется поблагодарить комьюнити Defold, кто помогал в этом году 😉
С наступающим!
Глядя на проделанную работу, я чувствую, как душа наполняется теплом и гордостью за проект. Каждый элемент, каждая деталь – это частичка моего творчества и усердия.
Особенно хочется поблагодарить комьюнити Defold, кто помогал в этом году 😉
С наступающим!
👍10🔥8❤2
На новогодних каникулах, как ностальгирующий динозавр, я решил вернуться к истокам программирования)) Так сказать после долгих лет купания в теплых водах интерпретируемых языков (этакий детский бассейн), я решил собрать граф движок BGFX под Linux, Windows и, возможно, под web через Emscripten. И тут-то я понял, какая это адская херня сборка библиотек, линковка и прочие радости жизни C++ разработчика.
Ну например, если в других языках уже придумали менеджеры зависимостей на все случаи жизни (чихнул - получи результат), то работая на плюсах, ты ощущаешь какую-то особую, почти интимную связь с компилятором.
Хорошо хоть существует cmake, без него пришлось бы, наверное, приносить жертвы древним богам плюсов чтобы код соизволил скомпилироваться.
Я скучал по этому безумию
Ну например, если в других языках уже придумали менеджеры зависимостей на все случаи жизни (чихнул - получи результат), то работая на плюсах, ты ощущаешь какую-то особую, почти интимную связь с компилятором.
Хорошо хоть существует cmake, без него пришлось бы, наверное, приносить жертвы древним богам плюсов чтобы код соизволил скомпилироваться.
Я скучал по этому безумию
🔥5❤3👍3👻2😨1