Новый квиз в TamaPupaBot и еще чуть-чуть новостей👻
одна из цитат философского квиза в онлайн-тамагочи TamaPupaBot
Мы этого ждали и это случилось! Вместе с Философской лабораторией (t.me/philabdan) подобрали и оформили для тебя 50 цитат, отражающих взгляды известных философов. Мне кажется, что получилось неплохо, а ты что думаешь?
Кстати, о квизах! Я работаю над увеличением времени ответа на вопросы, поэтому уже скоро проходить их станет еще приятнее! Огромное спасибо Алине К. за подробную обратную связь!
Последнее, но не менее важное: тамагочи использует почти 100 активных пользователей! Это очень приятно, тепло и греет душу. И мотивирует заниматься этим проектом дальше!
Ухаживать за телеграм-тамагочи и расширять свой кругозор можно по ссылке: https://t.me/tamapupabot
Премия «Оскар» в 2025 году за лучший анимационный полнометражный фильм присуждена анимационному фильму «Поток» (Flow), снятому латвийским режиссёром Гинтсом Зилбалодисом. Мультфильм повествует о приключениях кота во время потопа и примечателен тем, что создан независимой командой с ограниченным бюджетом в свободной системе 3D‑моделирования Blender. Работа над фильмом продолжалась пять с половиной лет.
В своих прошлых работах режиссёр использовал 3D‑пакет Maya, но в 2019 году перешёл на Blender, после появления в выпуске Blender 2.80 движка рендеринга EEVEE. EEVEE поддерживал рендеринг в режиме реального времени и позволял реализовать желаемый рабочий процесс. Одним из важнейших критериев выбора была скорость, не только рендеринга, но и работы с файлами, настройки освещения и создания общего стиля. В Blender также оказались все необходимые режиссёру инструменты.
TamaPupaBot (t.me/tamapupabot) — это образовательный Telegram-бот, в котором можно ухаживать за виртуальным питомцем и одновременно учиться. Такое вот внебрачное дитя тамагочи и методики интервального повторения.
Когда я придумал Пупу, первой реакцией стал испуг вперемешку с радостью. С одной стороны, у меня было очень много классных идей и вдохновения. С другой стороны нужны были силы и время на реализацию моего первого в жизни телеграм-бота, а я даже не знал, нужен ли он кому-то, кроме меня.
В итоге я заткнул рот своему перфекционизму и решил сделать MVP. Это оказалось отличной идеей: даже реализация базовой базы потребовала от меня много усилий и я даже обратился за сторонней помощью. А мог бы просто забить.
В итоге получился онлайн-тамагочи, в котором реализованы следующие функции:
1.Базовый уход.
Можно кормить Пупу, убирать какашки, давать ему играть и укладывать питомца спать. Эти действия влияют на сытость или настроение.
Несмотря на то, что эти механики реализованы на самом базовом уровне (и с косяками), этого достаточно для получения быстрого дофамина и регулярного использования бота.
2.Образовательные квизы.
Это игры, в которых нужно выбрать правильный вариант из предложенных. Успех влияет на настроение и повышает интеллект питомца. Вопросы могут повторяться, как в приложениях Memrise или Quizlet. Это помогает лучше запоминать правильные ответы.
Сейчас в боте есть всего 2 квиза: “Узнай художника по картине” (Арт-квиз) и “Выучи английские фразеологизмы”. Этого достаточно, чтобы пользователи протестировали механику и дали обратную связь.
3.Обратная связь.
В описании бота указан мой персональный контакт для вопросов и предложений, а в самом боте есть функция “написать Пупе”, которой люди очень даже активно пользуются без подсказок и просьб! Также я лично приглашаю новый пользователей со своего аккаунта, что дает мне возможность собирать очень подробные отзывы и узнавать из первых уст про сильные и слабые стороны моего Телеграм-бота.
Шото вроде вывода
TamaPupaBot не получился идеальным проектом, но он уже работает и имеет более 50 активных пользователей. Это дает силы и мотивацию на продолжение разработки, введение нового функционала и исправление глупых ошибок, сделанных ранее.
Поэтому если у тебя есть идея, не жди идеального момента — создай её в базовом виде и проверь, как на неё отреагируют люди. 🚀
Что такое MVP и почему лучше сделать плохо чем не сделать совсем?
MVP (Minimum Viable Product) — это базовая версия проекта, которая содержит самые важные функции, необходимые для проверки идеи. Главная цель MVP — не сделать сразу идеально и навсегда, а быстро протестировать гипотезу, собрать обратную связь, чтобы улучшать проект на основе реальных данных, а не догадок.
По моему субъективному мнению MVP должен быть:
Простым. Спроси себя, в чем главная фишка твоего проекта и поищи простые варианты ее реализации. Первые пользователи сами подскажут тебе, что можно улучшить и какие фичи было бы круто добавить в полноценную версию проекта.
Быстрым. Идеальный срок для реализации MVP - до 2 недель. Такие ограничения позволят тебе сфокусироваться на главном и не забросить проект на полпути.
Открытым для обсуждения. Оставь в свободном доступе свой контакт, форму обратной связи или другую возможность поделиться впечатлениями о плюсах и минусах твоего MVP. Так ты узнаешь, что нужно от твоего проекта реальным пользователям и что следует улучшить в первую очередь.
А что на твой взгляд важно в MVP? Расскажи в комментариях!
Необычное! Исходник прототипа игры Пинг-Понг на MatPlotLib (научная графика на python) с высоким FPS .
Ранее в моей >>статье на Хабр было рассмотрено применение PyGameдля построения графиков, а теперь, наоборот, делаем игру на системе построения научных графиков. В предыдущей версии при попытке вывода текста с высоким FPS возникали сильные "тормоза", В текущей версии эта проблема решена.
В коде для отрисовки всех элементов игры используются только объекты MatPlotLib: теннисные ракетки - это столбцовые диаграммы, мячик - это scatter диаграмма, само игровое поле - это объект figure из MatPlotLib, текст также выводится через встроенные в MatPlotLib функции. Для анимации используется встроенный в MatPlotLib объект Animation + update(). FPS=40 (сорок!).
P.S. желтая столбцовая диаграмма - это распределение координат по оси Y, в которых ракетка отбивает мячик. Обновляется при каждом ударе ракеткой по мячику.
ИИ‑ассистент Grok-3 оказался удобен для создания игр. Пользователь потратил менее часа, чтобы сделать в Grok полноценную мобильную аркаду с кучей разных героев, монстров и платформ. Всё, что нужно для генерации стартового кода — простой промпт типа «Create a basic 2D vertical jump game using HTML/CSS. The characters and platforms should be just shapes (will add assets later). Code everything in one file». В итоге Grok-3 нагенерил нужную графику, затем собрал работающую игру.
Опубликован справочник по Reddit для разработчиков видеоигр. Учебную подборку выпустил сооснователь маркетингового агентства FatPony Даниил Каменев.
Также в работе над справочником принимал участие лид-комьюнити акселератора Indie Go Александр Авраменко.
В документе подробно освещаются особенности социальной платформы: от целевой аудитории и правил публикации до разбора функционирования рейтинга и формата размещения ссылок.
Вторая половина справочника представляет собой поэтапную инструкцию по разогреву аккаунта. Также в документе не обошлось без словаря терминов, которые активно используются на Reddit, и описания ключевых сабреддитов, на которые стоит обратить внимание разработчику игр.
Разработчик решил узнать, какую информацию о нём собирают бесплатные игры на смартфоне. Результат оказался печальным. Например, iPhone выдал третьим лицам данные о зарядке, адрес, объём свободного места на телефоне, подключение наушников и даже значение яркости экрана. При этом, игре специально запретили собирать любые данные со смартфона. Такие запросы передаются каждую секунду. Потом разработчик нашёл рекламного брокера, у которого купил всю эту информацию о своих действиях со своего смартфона.
тут стоит 36 потомучто читаю кубик. (Извиняюсь всё таки думаю это общее количество нод тоесть 24 должно быть)
for (int i = 0; i < 36; i++) суть в том, что мы проходим по дереву чанков линейно как я понял, но всё равно если поставить i<100 будет buffer overflow. Когда в консольном варианте можно поставить хоть 300 - для того чтоб быть уверенным что прошлись по всему дереву
единственный момент у меня на тесте кейфреймы 0 1 50 90 и при таких кейфреймах не прочтется 90 кейфрейм чанка скейл, который в самом конце
чтобы попасть в конец файла в блок с кейфреймами надо поставить 40 и если кому-то будет интересно заменить массивы на px,py,pz в блоке scale tag
и при портировании из блендера (у меня лтс 4.2.3) надо в .3ds всё выбрать и везде поставить галочки(кроме Hierarchy, Collection), чтобы (Local Coordinates System зафиксировалось )
на данный момент читается только красный кубик, те модели кубированные не читаются покачто - они прочтены через ассимп
всё таки работает, там просто по мелочи досмотреть.
Практическая составляющая этого - это приближение к составлению своего формата, не на основе этого, а через практику, понять, как хотелось бы лучше. Очень большой минус этого формата, что не портируются нормали и их приходится считать после загрузки. Следующий минус для Блендера и GL, а может и для общей практики - он дублирует вершины. Тоесть, если Obj кинет просто координаты на индексах от 8 вершин, то тут будет 14 вершин и 12 индексов. Это если сравнивать кубы.
Почему важно регистрировать название компьютерной игры как товарный знак
Компьютерные игры — сфера с довольно высокой конкуренцией. Для создания хорошего названия, которое выделится среди общего перечня, нужно затратить много ресурсов. Однако появлением удачной идеи и развитием её в рамках продвижения бренда дело не ограничивается. Нужно зарегистрировать название компьютерной игры в качестве товарного знака для лучшей её защиты.
Что даёт регистрация
Свидетельство на товарный знак — это исключительное право на его использование. Если такое право официально не закрепить, возникают следующие риски:
Окажется, что похожее обозначение уже есть на рынке. Это может быть название неизвестной или даже ещё не существующей игры. Кто-то мог только вчера подать заявку на регистрацию похожего названия. Только потом у него будет право использовать товарный знак, а вам придётся начинать всё сначала.
Если кто-то другой имеет право на схожее обозначение, он может требовать удаления вашей игры с торговой площадки, а также взыскания компенсации.
Окажется, что обозначение в целом не охраноспособное. Возможно, в нём используются неохраняемые элементы или существуют другие несостыковки с Гражданским Кодексом.
При появлении названия на рынке патентный тролль зарегистрирует название на себя и будет требовать внушительные компенсации.
Кто-то другой использует ваше название и переманит часть потенциально ваших клиентов, а привлечь к ответственности за это не получится.
Кто-то другой захочет разработать на базе вашей игры свою и сделает запрос на оформление договора лицензии и франшизы, но без свидетельства на товарный знак полноценной передачи прав не получится. В итоге будет потерян дополнительный доход.
Свидетельство на товарный знак подтверждает право собственности. То есть позволяет привлекать к ответственности тех, кто посягает на эту собственность, а также свободно ею распоряжаться. К названиям компьютерных игр это тоже относится.
Примеры регистрации товарных знаков на компьютерные игры
Для начала стоит понимать, что даже при использовании не очень похожего на другое названия небольшой разработчик может сильно пострадать просто из-за неспособности осуществлять финансовые вложения в судебный спор с крупной студией. Так произошло с No Matter Studios, выпустившей игру с названием Prey for the Gods. С судебным иском к ним обратилась организация Bethesda за якобы нарушение прав на их товарный знак Prey.
Вот также несколько примеров свидетельств на товарные знаки компьютерных игр:
Я хочу защитить своих персонажей с помощью товарных знаков, когда мне лучше подать заявку?
Как известно, Гражданский кодекс РФ не запрещать регистрировать персонажей как товарные знаки. Защищается имя придуманного героя, его внешний облик (изображение) или совокупность имени и изображения.
Примеров оформления таких объектов в Роспатенте много:
Герои популярного мультфильма «Маша и Медведь» зарегистрированы под номерами 505856 и 505857;
Майор КГБ Сергей Нечаев (персонаж игры Atomic Heart) — числится в базе данных Роспатента под номером 1004498.
Серьезным портфелем подобной интеллектуальной собственности обладает, например, студия анимационного кино «Мельница». Она оформила свидетельства в Роспатенте не только на главных героев своей богатырской вселенной (князь — 510267, Змей Горыныч — 309186, Добрыня Никитич — 310285), но и второстепенных (Конь Юлий — 284283, есть даже слон — 333631).
Зачем нужно регистрировать персонажей как товарные знаки?
Представим ситуацию. Вы создаете популярную игру или мультфильм, комикс или иной контент, конструируете персонажа. Если его не зарегистрировать право на него в Роспатенте, то ушлые конкуренты-коммерсанты могут воспользоваться этой промашкой, выпустив любую продукцию под вашим брендом на рынок. Они получат максимальную прибыль и минимизируют, скорее всего, свои затраты: ведь качество изделия, появившегося в широком доступе, может быть отнюдь не самым лучшим. Все репутационные убытки в этом случае возлагаются на креативного предпринимателя, придумавшего персонажа.
Если же вы зарегистрируете своего героя в Роспатенте как товарный знак в максимально короткие сроки после создания, то, обнаружив нарушение со стороны других бизнесменов, вправе подать иск в суд, взыскав с них компенсацию.
А в практике подобные ситуации уже были?
Да.
В 2018 году коммерсант продал «интерактивный телефон», нарушив интеллектуальную собственность компании-создателя мультфильма «Маша и Медведь». Правообладатель, зарегистрировавший своих персонажей в Роспатенте как товарные знаки, потребовал взыскать 80 тысяч рублей (10 тысяч — за каждый факт несоблюдения требований законодательства). Суд частично удовлетворил иск и индивидуальный предприниматель, преступивший закон, заплатил 40 тысяч рублей. Стоимость телефона, ставшего предметом разбирательства, оценивалась в 380 рублей.
Так когда же подавать заявку?
Лучше сделать это заранее. Процесс регистрации товарного знака (даже по ускоренной процедуре) — процесс медленный, и вам же будет лучше, если к моменту выхода вашего творческого продукта на рынок, персонажи уже были защищены товарными знаками.
Тестирую, насколько концепция "Write once, run anywhere" работает на практике. Цель - один jar с 3D-игрой, который работает на 4х-платформах - J2ME, Windows, Linux, OS X. Кроме того, демку можно будет запустить на первых Android-смартфонах в мире (в Android dex вместо обычного jvm-байткода, поэтому не перечислил в списке основных платформ) и если у меня появится BlackBerry с GLES по типу 8900 - то и на нем. Само собой о разработке демки будет статья.
Дизайн коробки, игрового поля, программный код, видеоролики, музыка, шрифты и тексты, которые поясняют правила, — все это может защищаться свидетельствами и патентами.
Смежные права на игру возникают у всех создателей (например, тех, кто «подарил» героям свои движения и голос).
Если в игре используются неочевидные схемы взаимодействия между пользователями, то в этом случае разрешается оформить патент на изобретение. Аналогично следует действовать, если создатели придумали какой-нибудь интересный интерфейс (его можно зарегистрировать как промышленный образец или патент на дизайн).
Я создал интересную (и свою) сюжетную линию, а кто-то ее скопировал. Как мне защищаться?
Только в суде, соблюдая обязательный досудебный претензионный порядок.
В любом случае предстоит доказывать, что сценарные повороты, придуманные вами и заимствованные нарушителем, идентичны (а не прямо пародийны). Если правоприменитель установит, что использована была лишь идея, то в этом случае санкций не последует.
Учитывайте, что не всякое копирование идеи разрешено. Если конкурент взял концепт без серьезной модификации, сдублировал полностью размеры игрового поля, движение (и цвета) фигур, визуальные подсказки, то в этом случае (даже если придумка была выражена при помощи других технических решений) — разработчика признают виновным в нарушении авторских прав. Но то за рубежом.
Онлайн Патент ранее констатировал, что российская практика не имеет широко известных примеров разбирательств такого формата. Если в РФ споры и возникают, то могут решаться в досудебном порядке.
Как наиболее удобный вариант можно зарегистрировать игру как программу для ЭВМ в Роспатенте и даже внести ее в Реестр отечественного ПО. В последнем случае Вы сможете претендовать на существенные налоговые льготы.
Проект Minecraft 2 в разработке — создатель оригинала Нотч анонсировал продолжение любимой игры. Рабочее название — Adventureland. Сейчас разработчик выбирает сеттинг будущей игры: это будет космическое приключение или игра в стимпанк стиле.
Хронология:
В сентябре прошлого года Notch поделился ранним геймплеем своей новой игры, которая похожа на что‑то между Dungeons & Dragons и Super Hot — dungeon crawler с элементами rogue‑like.
1 января разработчик устроил опрос, где спросил, чего бы от него ждали больше — Minecraft 2 или другую новую игру. Minecraft выиграл с отрывом.
3 января Notch написал, что «по сути, анонсировал Minecraft 2», так как, во‑первых, этого от него и ждут и во‑вторых — его новая игра похожа на Minecraft.
«Мои намерения — быть ясным и честным по этому поводу, говоря, что духовные преемники обычно как‑то... знаете... выброшены на ветер. Трагично. Я боюсь, что моя следующая игра будет [выброшена на ветер], и стараюсь избегать этого. Так почему бы мне не сделать [духовного наследника Minecraft], чего люди действительно хотят и за что готовы дать мне, каким‑то образом, даже больше денег», — пояснил Notch.
Ранее я писал, что прохожу обучение на курсе от Unity Architect. Недавно была тема, посвященная MVC. И упор был сделан не на очередной разбор очередной реализации, а на выяснение причин, почему существует такое разнообразие трактовок. Из этого вытекают и некоторые следствия, о которых не часто рассказывают, но которые находят место в практике.
Про разнообразие подходов 🛠️ :
Причина такого раздрая — «так исторически сложилось». Когда по принципу «глухого телефона» революционный много десятилетий назад подход дошёл до наших современных дней.
Подробнее с этим можно ознакомиться в длинном исследовательском материале из двух частей на Хабре: #1 и #2. Текст объёмный и сложный. Но увлекательный. Для вдумчивого чтения (а иначе смысла нет) стоит заложить на обе статьи где-то 1 час.
А один из примеров реализации в геймдеве я шарил в этом посте.
Следствие 1️⃣:
MVC — это изначально история про взаимодействие с пользователем. Т. е. про UI. Соответственно, попытки затащить это в геймплей сделают из MVC не MVC (и даже не обязательно какой-то MVx). Т. к. для удобства использования в геймплее эту штуку приходится адаптировать.
Следствие 2️⃣:
Как бы ни был «приготовлен» MVC, кто-то обязательно скажет, что это неправильно. Или это не MVC, а какой-нибудь другой MVx. Это бесконечные бессмысленные споры, стоящие на противоречивых источниках.
Чтобы не маячить красным платком перед «искушённой» публикой, можно отойти от общеизвестного нейминга. Соблюсти идею разделения визуала и бизнес-логики, но назвать это иначе. Особенно легко это делается в геймплее.
Ведь задача — спроектировать всё хорошо, а не сдать экзамен по «эталонному соответствию канонам». Тогда на нападки в виде «но в MVx же...» можно отвечать «а это не MVx».
Следствие 3️⃣:
Эталонно View и Controller находятся на одном слое взаимодействия с пользователем. И в современных системах, где нет низкоуровневого кода по непосредственно рендерингу и обработке ввода, контроллер как-таковой не шибко нужен. Поэтому достаточно использовать только Model и View.
В качестве Model можно подготовить специальную прослойку, типа Facade, Adapter или Mediator, которая будет агрегировать внутри всю коммуникацию с необходимыми игровыми моделями и сервисами.
Например, нажалась кнопочка, медиатор из WalletModel снял монетки, в StorageModel положил конфетки, а у AdService запросил показ InterstitialAd.
В свою очередь View будет отвечать за всю логику представления (кнопочки, формочки, генерация карточек, анимации прокрутки, заполнение прогресс-баров и пр.) и передачу событий в Mediator.
Связку из View и Mediator я и в своей команде использую уже очень давно — это отлично себя показывает в проектах разных масштабов.
На каком-то из стримов K-Syndicate оговаривались, что используют двухуровневый шаблон и связующий слой тоже называют Mediator. Не нашёл, на каком именно, но у них был большой классный стрим по MVx в целом.
Заниматься этим, конечно, вообще было некогда. Поэтому почти месяц по чайной ложке в «свободное время» я практиковался в моушн-дизайне и учился монтировать и компенсировать отсутствие пригодного для записи роликов оборудования. В сравнении с прошлым роликом, на мой взгляд, звук уже накрутил получше.
Предыдущее видео снималось в полной импровизации без какого-либо сценария. Поэтому много времени ушло на нарезку и аккуратную склейку. Сейчас этой проблемы не было, но уже много времени ушло на поиск и реализацию визуальных эффектов.
⬇️ Какие выводы я сделал за два снятых ролика:
Лучше заранее потратить время на сценарий.
Лучше на записи обеспечить интересный визуальный ряд (хотя бы трансляцией экрана), чем заниматься этим на пост-продакшене.
Видео-блоггинг в соло требует колоссального кол-ва времени и навыков, никак не связанных с разработкой. Без команды качественно заниматься этим можно только в ущерб разработке и повышению компетенций (если не трогать семью, хобби, здоровье и пр. важные вещи).
Снимать видео я буду редко – лучше почаще на конференции поезжу 😂
Unity выпустили серию роликов о своей системе AI Navigation. Вышло три видео (#1, #2, #3). В целом, очень полезный для знакомства с системой контент — Unity вообще радуют последние годы в этом плане. Но меня во время просмотра посетила любопытная мысль 💡
AI Navigation — это новое название пакета NavMesh. И у старых версий была неприятная особенность: строил навигацию он только на плоскости XZ. И неприятность в том, что для 2D-игр Unity использует плоскость XY 👾
Соответственно, 2D-игры ради навигации были вынуждены или искать/изобретать другие решения (пример), или использовать костыль: "разворачивать" свои спрайты так, чтобы они лежали на плоскости XZ. Были даже отдельные решения, основанные на этом ухищрении 🩼 [Форум с обсуждением]
Т.к. уже давно не работал с 2D-проектами, не придавал этому значения. И сейчас смотрю на видео и вижу, как настраивается навигация на вертикальной стене, на плоскости XY. Похоже, Unity теперь умеет полноценно в навигацию для 2D. Кто в 2D уже пробовал и может подтвердить или опровергнуть ❓
Хочу поделиться свежим полезным видео с реализацией системы реплеев. И дополнить своими комментариями. Однажды такая фича может потребоваться, и было бы здорово знать, в какую сторону начинать думать.
🔎 Суть реплея:
Чтобы иметь возможность когда-то потом восстановить игровой процесс, необходимо во время этого игрового процесса записывать минимальный набор данных, необходимый для восстановления игровой сессии в конкретный момент времени. Всегда.
Чем меньше данных, тем более легковесным получится файл реплея. А это важно, ведь его надо хранить (ROM), читать (CPU), загружать (RAM) и возможно даже передавать по сети (Network).
Например, если поворот персонажа полностью восстанавливается из его направления движения, то достаточно записать только направление движения. И записывать его только тогда, когда оно изменится, а не просто каждые N сек. И т.д. Всё, как при синхронизации данных в мультиплеере.
Лучший вариант, когда игра детерминирована (т.е. при одинаковых вводных будет происходить всегда одно и то же). Тогда достаточно только записывать инпут от игрока с отметками времени и во время реплея его применять. Минимум данных, но детерминированность имеется (или хотя бы вообще возможна) не во всех проектах. Особенно в Unity с её недетерминированной физикой.
📐 Зачем нужен:
Помимо понятной для игрока функции «посмотреть, как эффектно я пробежал этот уровень» или возможности разрешить спорные моменты в соревновательных играх, эта механика может быть полезна в не пользовательских сценариях.
В сервисных играх реплей полезен для отправки сессии на валидацию сервером, чтобы уличить мошенника в нечестных манипуляциях.
Реплей может помочь с отладкой игры. Или с воспроизведением бага, который нашёл QA или какой-то игрок.
Реплеи, собираемые с игроков, можно анализировать и в результате совершенствовать пользовательский опыт (или монетизационные подходы).
По реплеям можно тестировать игровой баланс и прорабатывать его детальнее.
Реплеи можно использовать для создания маркетинговых материалов, т.к. на таком пост-продакшене можно усилить эффектность геймплея через иную настройку камеры, редактирование окружения, добавление всяческих эффектов и пр.
Т.е. отсутствие возможности реплея в самой игре как механики ещё не гарантирует её отсутствия как части проекта. И это стоит учитывать при проектировании очередного проекта.