ГеймдевНаКровати

Channel
Logo of the Telegram channel ГеймдевНаКровати
@gamedevbedPromote
252
subscribers
Делюсь полезной инфой про разработку веб игр Ютуб: https://www.youtube.com/channel/UCH1y9fTzeeVx9liepPuVkHw
Привет! Заработался вчера и забыл прислать ссылку, сори.

https://youtube.com/live/dQ8C1HR5xOc

Сегодня хочу потестить OBS + Wow на винде, поэтому если кому скучно вечером, заходите пообщаться в гугл митс: https://calendar.app.google/aK9C3Wb6s8ZbVRAv8
Привет! С прошедшими праздниками! Надеюсь, отдохнули, набрались сил и готовы вершить великие дела!

Хотел предложить одну активность как повод для стримчанского, но перед этим коротенькая история.

Точка и Крестик

На днях, в очередной раз перечитывая статью про линейную алгебру, набрел на мысль, что наконец-то понял, что значит Dot и Cross опрерации над векторами(Юнити и другим разработчикам думаю знакомы эти панятия т.к. практически все движки имеют эти методы внутри класса Vector3).

Так вот, “открытием” для меня было, что Dot означает точка, а Cross - крестик.

Осталось запонмнить, что результатом Точки будет скаляр(т.е. число), а результатом Крестика - другой вектор.

Что именно означает результат уже дело третье, но не так сложно.

Надеюсь, что перестану путать эти операции)

Возвращаясь к стриму.

Активность

А что если нам собраться и поиграть в культовую игру World of Warcraft параллельно общаясь на разные темы(и не только по геймдеву)? Я что-то прям соскучился и было бы круто нырнуть с головой в Эльвинский Лес(или за кого вы играете?) и нагриндить пару синих шмоток и пораздовать люлей кому-нибудь… Недавно делал “плейтест” на sirus(пиратский сервер), там оч круто оказуалили геймплей, то что нужно для бородатых олдов с ограниченным временем. Не против и другие варианты рассмотреть, но хотелось бы что-то чиловое и ламповое без школьников(это я про CS) и задротских штук(всякие rts).

Женя путь инди @theindieway тоже придет!

Если не хотите играть можно просто поактивничать в чатике или гугл митс)

Когда: Суббота, 18 января, 11:00 по минску(мск)
Где: Ссылку на стрим и чатик пришлю в четверг.
Привет! Пора подводить итоги года!

Инди разработка

Моя игра Kingdom Heroes пробыла 3 недели в новинках на поки и уже выпала с главной страницы. Релиз получился в разы слабее, чем у моей первой игры. Думаю, тут два фактора:

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

Игра заработала ~2.5к+ евро на данный момент. Если суммарно заработает 5к - будет хорошо.

Что буду улучшать:

- нужно подобрать сеттинг для более широкой аудитории. Что-то роблоксо подобное будет отличным кандидатом.

- несмотря на неплохие метрики в Kingdom Heroes, игре не хватает глубины: играть становится скучно через 15-20 минут(такова судьба “кликеров”). Думаю сейчас над вариантами механик и кор лупа. У меня был прототип на тайкун, но тайкун в чистом исполнении тоже не очень интересен.

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



Разработка платформы

Я получил одобрение на возможность делиться с вами инфой по моей работе над платформой для создания игр!

Уже 3 месяца как работаю в команде и мы пилим свой “роблокс+майнкрафт”. Что хотелось бы выделить

- учить английский есть смысл, если есть цель. Т.к. работа на англ, то появилась оч большая мотивация поднять уровень. Закончил онлайн школу на b1. В новом году планирую пойти на b2. А пока закрепляю все знания на практике.

- Ближе познакомился с threejs. Пока мнение такое же, как и было - оч нишевая штука и дл я случая, если любите все свое писать.

- Уже 2 недели работаю с Codeium, круто помогает автодополнять какие-то простые штуки + создавать jsdoc аннотации к существующему коду(да, у нас есть легаси на JS).

- За последнее время работал над Системой Частиц, Оптимизацией звуковых ресурсов, добавлял новые Ноды в наш визуальный редактор кода. В общем, потрогал практически все уголки проекта, и это оч круто!


В общем, работа кипит, прогресс есть и это радует!
Привет! Давно не было технических заметок, а тут как раз на проекте было несколько интересных штук.

Уменьшили размер загружаемого мира с ~90мб до ~15мб

Как выяснилось, большую часть загружаемого контента составляют анимации и модели в формате glb.

Хоть glb и компактнее его младшего брата gltf, все равно требует дополнительных действий.

Чеклист для оптимизации glb/gltf:
- сохраняем gtlf как glb
- заходим https://gltf.report/ и проверяем вашу модель на наличие больших текстур. Если есть, пробуйте уменьшить разрешение и переведите в webp
- применяем draco/meshopt для оптимизации геометрии.
- если есть анимации, неплохо выполнить resample кадров
- и самое важное: проверьте, что ваш контент раздается через CDN с включенным сжатием. В нашем случае у нас Cloudfront и оказалось, что он не настроен применять gzip/brotli для gltf/glb.(Cloudflare, кстати, делает это автоматически, за что ему респект!)

На примере с файлом анимации, было 25мб, стало - 2мб.

Если нужна автоматизация, очень рекомендую написать скриптик использующий https://gltf-transform.dev и запускать через nodejs/bun как последний этап сборки проекта.

Чеклист для оптимизации текстур:
- уменьшаем разрешение до приемлемого уровня. У нас 512, некоторые текстуры даже 64.
- если позволяет браузерная совместимость, используем webp(или avif)

Для автоматизации посмотрите либу https://sharp.pixelplumbing.com/

Чеклист для оптимизации аудио:
- конвертируем wav/mp3 в ogg. Если хотите поддержать девайсы apple, то важно применить libvorbis(opus не поддерживается).
- удаляйте метаданные, иногда там могут лежать большие картинки(да да, например, обложка к альбому)

Автоматизировать пришлось через баш скриптец, но потом переписал на Bun.$ и напрямую вызываю ffmpeg с параметрами.

————————

Давайте завтра соберемся на стрим, как раз повод хороший) Как обычно, в 19:00 по минску/мск. Ссылку оставлю завтра.
Свершилось друзья! Я добрался до глобал релиза! Пойду выпью чая с мятой 🍵

В целом во время софт ланча ничего серьезного не вылезло.

Поднять c2p конверсию не смог… Кажется, проблема в иконке. Пока внес быстрый фикс(в виде текста +1 на самой иконке). Посмотрим, как это повлияет на статистику.

Очень радует плейтайм в районе 9 минут. Лучше, чем в деревне, и то хорошо!

Поиграть: https://poki.com/en/g/kingdom-heroes
Не знаю как у вас, но у меня не получается подружиться с AI ассистентами…

То ли я не умею промты составлять, то ли они пока оч не развитые.

Короче потратил 15 минут пытаясь заменить this_string на случайное значение сгенерированное на основе uuid v4, но так и не смог… В итоге за 3 минуты сделал ручками для 10 значений

Вот так было:

{
id: “this_string”,
}


Вот так хотелось:

{
id: “52edd085-ec51-49cf-b540-a092752fbb59”,
}


Как у вас дела с AI?
Привет! Вот над чем работаю сейчас!

Оч скоро починим мультиплеер и можно будет бегать вместе с другими игроками!

Можно забацать стримчанский, на котором расскажу, что за проект!
Постепенно перехожу в блюскай, так как количество всякой фигни и нерелевантного контента стало зашкаливать в тви. Так что давайте фоловиться и продвигать геймдев! https://bsky.app/profile/afrokick.bsky.social
А тем временем, конверсия подросла, как и процент дохода от прямых заходов в игру! Посмотрим, эффект ли это от софтланча и первопроходцев, или новая реальность.
Приветы! Встречаемся сегодня на стриме в 19:00 по минску/мск.

https://youtube.com/live/z9vDQnyhaiM?feature=share

Если возникнут проблемы с ютубом, пойдем на твитч!
Привет! Давно не было новостей от меня… За эти 4 недели не очень много больших изменений, но все же:

- получил первую ЗП спустя почти 2 года после ухода с предыдущего места работы. Не то, чтобы это было целью, но приятно)

- вся прошлая неделя была посвящена пересмотру рабочих планов и анализу продукта + знакомство с командой. Узнал много крутого. Например, что один из коллег работал в королевской семье пиарщиком 🤯

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

- в четверг, надеюсь, произайдет еще одно событие, которого я ждал оч долго. Поэтому, если стрим случится, то сможем осбудить “по горячим следам” так сказать!

- наиграл 6 часов в CS2, вспомнил былое. Можем организовать каточку, пишите в комментах! 😬

——

Хочу потихоньку возвращаться к прототипам и инди играм. Не то, чтобы много свободного времени, но хотя бы час-два в день хотелось бы вкладывать в свои проекты.

Сейчас обдумываю каким путем пойти: доделывать свой движок на BabylonJS или взять Playcanvas или что-то еще готовое. Свой двиг это круто, но требуется много времени чтобы запиливать базовые вещи.

Playcanvas выглядит оч перспективным под мои хотелки, поэтому выбор будет не легким.

HypeHype прикольная, но мне хочется владеть билдом и заливать игры на большее число площадок.

Делитесь как у вас дела, что делаете?
Ухх, падабаек много, значит тема интересная!

Встречаемся через часик на ютубе или твиче(если ютуб ляжет). До скорого!

Что будем делать:
🎁посмотрим что такое Colyseus;
🛠 накидаем простенький сервачок;
😼 попробуем написать клиент;

И все это за пару часов… Ну, как есть)

https://youtube.com/live/zov9liABHiI?feature=share

https://www.twitch.tv/afrokick
Please open Telegram to view this post
VIEW IN TELEGRAM
Всем привет 👋

Сегодня четверг, и это хороший повод сделать стрим!

Как вам идея обсудить мультиплеерные игры, насколько сложно их делать и даже сделать демку на базе Colyseus?(топ либа для создания мультиплеерных игр в вебе)

Если ютуб будет тупить, встретимся на твитче. Ссылку скину чуть позже!
Приветы! Если хотели накидать апишку/бэк для своей игры и рассматривали ноду, то советую глянуть в сторону Bun+Elysia.

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

1. Нет лишних инструментов и шагов.

Bun умеет бандлить, умеет рантайм, умеет устанавливать зависимости, и все это он делает оч быстро!

2. Elysia улучшает DX в разы(в сравнении с Express и даже Fastify)

- сразу интегрированы TypeScript и проверка типов в Runtime, засчет чего вы получаете проверку ввода и типы для Запросов/Ответов. Это очень помогает избежать ошибок, когда в контексте запроса ты обращаетесь к полю, которого нет, либо данные другого типа.

- У Elysia есть клиент(Eden), с помощью которого можно дергать API. При этом, у вас строгая типизация. Это что-то типа tRPC, только из коробки.

Из минусов:

- не видел пока каких-то больших проектов. Сам нарывался на пару багов в Bun(минорных). Но если берем мелкий/средний проект, то думаю все будет ок.

- зрелость/удобство. Если вам нужно первое, то пропускаем мимо) Если удобство, то точно советую попробовать, даже если вы разработчик с опытом(как я, например).

——

Я работаю с Bun уже год, использую для небольших утилит и как менеджер пакетов и раннер для задач. Вижу, как ребята улучшают продукт и сколько вкладывают ресурсов, не говоря уже насколько фанатичен Джаред(автор бана) по отношению к “сильнее/выше/быстрее”. Поэтому верю в команду, верю в продукт.

Писал даже небольшой бэк под свой мультиплеерный прототип Colyseus + Bun, и скорее всего, буду и дальше развивать именно эту связку.

PS Не писал отдельно про производительность(у Bun она выше в разы), т.к. при должной архитектуре врядли вы упретесь в node/bun. Скорее всего будут задержки на других уровнях.
Youtube трансляция не доступна для запуска… Что ж, давайте в Твиче как реальные пацаны(и девушки) https://www.twitch.tv/afrokick
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Love Center - Dating, Friends & Matches, NY, LA, Dubai, Global
Find friends or serious relationships easily