Премиум каналы

Кот и код: разработка игр и приложений

Про разработку игр и приложений на Unity и .Net, радость и боль программирования.

Последние публикации с канала

9го дня был на лекции от создателей игры Василиса и Баба Яга. Прям чего-то нового не услышал, но смог лично сказать девчонкам, что графика у них получается очень крутая. Трейлер в VK.

И еще раз утвердился в мысли, что интересные (нестандартные) проекты получаются у людей, которые имеют необычный бекграунд. То есть какой-то значительный опыт не из сферы геймдева. В данном случае - работа книжным иллюстратором, организация художественных постановок в театре кукол. Таким образом у этой творческой команды, создание игры - это дополнительный инструмент для самовыражения. А среди инди проектов этого года можно ожидать звездочку, которая будет светить вместе с другими, но мерцать чуть по-своему.

Игра на Steam

Telegram
Baba Yaga Games | Василиса и Баба Яга

Команда независимых разработчиков из Санкт-Петербурга

Сейчас работаем над игрой по мотивам русской народной сказки «Василиса Прекрасная». Это страшная история о путешествии к хозяйке запретного леса за волшебной силой.

12.03.2024 / 18:03

Чет прям в голос, жизненно))
@cat_and_code #мем

02.03.2024 / 19:03

Новые посты пишут те, у кого старые плохие долго думал я. 🌚

Тем не менее, заметил, что многие игнорируют тип данных record, который появился в С# 9. Хочу кратко пройтись чем он может быть полезен.

Когда нам нужен класс с данными, который в логике приложения нужно сравнивать с другими. Сделан для того, чтобы экономить время и не заниматься переопределением кучи методов: операторы == и !=, GetHashCode, Equals, ToString и конструктор.

Как он работает? Компилятор сам создаёт переопределения для всех необходимых методов. Что по сути превращает record в новых вкусный сахар.

Создание record, способ №1:

public record Name(int Value, string Str);
var n1 = new Name(1, “name1”);

В этом примере свойства под капотом создаются get. Но есть синтаксис, который все-таки позволяет менять значения после создания экземпляра.

n1 = n1 with { Value = 3 }; 


Что делает эта строчка? Создаётся новый экземпляр и записывается в n1, то есть запись выше равносильна такой:

n1 = new Name(3, n1.Str);


Способ №2, сразу с настройкой свойств как вам нужно. Тут уже без проблем можно присваивать новые значения через “=”.

public record Name(int Value, string Str)
{
public int Value {get; set;} = Value;
}

var n2 = new Name(2, “name2”);
n2.Value = 3;


В обоих случаях компилятор за нас сгенерирует конструктор и создаст все перегрузки методов сравнения. Сразу можно пользоваться:

if (n1 == n2) 


Повторюсь, что record - это сахар, разворачивается в class, поэтому есть поддержка всего, что мы любим:
- Наследование
- Могут быть abstract
- Могут быть sealed
- Поддерживают реализацию интерфейсов

#техничка
@cat_and_code

24.02.2024 / 11:02

Audio

Паттерн "Команда"
Обсуждаем один из наиболее используемых паттернов программирования и разбираем примеры применения.

Автор: @cat_and_code
#подкаст 2

15.10.2023 / 08:10

ComponentLurker

Классный инструмент для поиска по скрипту. Можно найти все префабы в проекте, где накинут выбранный скрипт. Дополнительно можно указать условие и найти префбы, где выбранное поле в скрипте имеет определённое значение. Например найти все префабы где ничего не прокинуто в интересующее поле.

https://github.com/vksokolov/ComponentLurker/

11.10.2023 / 08:10

Давайте поиграем в ответы на вопросы с собесов. Пишите свой ответ в комментариях.

Почему в профайлере памяти может быть такая картинка?

07.10.2023 / 07:10

Понравился выпуск про Нивал?

Anonymous Poll

43% - Послушал, понравилось

4% - Послушал, не понравилось

35% - Может послушаю когда-нибудь

17% - Не буду слушать

04.10.2023 / 06:10

Спасибо за ваши реакции под первым выпуском подкаста. Проголосуйте, пожалуйста, в опросе. Все вместе посмотрим на сколько в целом зашёл формат. И если у вас есть комментарии, пожелания, фидбек - напишите в комментариях. Так вы можете повлиять на будущие выпуски.

04.10.2023 / 06:10

Audio

Студия Nival
Выпуск про легендарную студию, зародившуюся в далёкие 90ые. Поговорим про их путь, проекты и выдающихся выходцев, которые во многом помогли сформировать геймдев в России.

Ссылки выпуска:
Аллоды: Печать тайны
Сайт Нивала

Автор: @cat_and_code
#подкаст 1

30.09.2023 / 08:09

Мало кто знает, что изначально я хотел вести не канал в Telegram, а сделать подкаст для программистов. Говорить об индустрии и наших технических темах в аудио формате через стриминговые сервисы.

Очень долго я планировал темы, форматы повествования, изучал аудиотехнику и даже записался и прошёл курс актёров озвучки, чтобы хоть как-то разобраться, как нормально работать с голосом, микрофоном и звуком. И я был очень далёк от этого. Стоит ли говорить, что каждый шаг, который я делал в направлении этой цели, оказывался гораздо сложнее, чем мои изначальные предположения? Возможно, об этом расскажу отдельно, а сейчас лучше к сути.

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

Завтра утром будет первый выпуск подкаста. 🔠🔠🅰️

Пока что в пилотном варианте, в виде аудиофайла прямо здесь на канале. Первый выпуск будет о истории геймдева, второй выйдет через 2 недели и будет техническим.
#подкаст

29.09.2023 / 07:09

Я чаще всего играю, сидя на диване, а не за столом. Меня особенно расстраивает, когда игры не имеют поддержки геймпада. И поэтому в нашей собственной игре (GVS) не может быть такого недочёта. Наконец-то дошла очередь, и я переделал "старую" систему ввода Unity на "новую", и теперь мы можем позволить себе настраивать управление как захочется. Так что в релизе оно точно будет.

А также я добавил настройку для подстройки дрифта стиков, потому что второе, что меня расстраивает, если в игре все-таки есть поддержка геймпада — это отсутствие такой настройки.
#девлог

27.09.2023 / 14:09

Какую мысль можно вынести из скандала с Unity? На данный момент они начирикали в Твиттере X, что извиняются, но не понятно за что. Толи за весь сыр-бор, толи за то, что не смогли нормально "продать" свою новую систему сборов и вернутся к нам, когда подготовят презентацию получше.

При этом сейчас разные слухи ходят о будущем Unity, в том числе, что его готовят к сливу. Но предлагаю абстрагироваться от подробностей и просто принять факт, что если будет какой-то негативный сценарий (не важно какой конкретно) и движок начнёт накрываться медным тазом, что это значит для нас?

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

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

Как действовать в таких условиях? Можно отнестись к этому, как к толчку, который мы давно ждали. Кому-то его не хватало, чтобы начать изучать Unreal и C++, Godot, серверный стек или что-то ещё. Не потому что корабль тонет и сейчас надо паниковать, а потому, что всегда стоит держать в голове, что рынок может поменяться, и нужно иметь план Б. Сейчас просто яркое напоминание об этом.

Какие-то технологии уходят, и на их место приходят новые. Можно вспомнить взлёт и падение популярности Xamarin. А также знания разных инструментов помогают подбирать эти инструменты под задачи, а не делать все одним и тем же молотком. Такие перемены всегда некомфортны, но для нас, как для специалистов, это возможность для развития.
#новость

18.09.2023 / 06:09
11.09.2023 / 11:09

У меня есть подборка мемов про разработку, но они лежат где попало и поэтому неудобно искать нужный к ситуации, хочется простой систематизации. Во-вторых прекрасным хочется делиться, а как мне кажется, здесь у нас вполне себе небольшое общество ценителей айтишных шутеек. И наконец, их наличие не испортит никакие другие посты и темы. Поэтому буду теперь иногда вкидывать с тегом для поиска.

Если у вас есть пара любимых мемов - киньте в коменты.

11.09.2023 / 11:09

Люблю встречать что-то эдакое в коде, обычно не свойственное для С#. Указатели как раз такой зверь, который встречается не часто. Их применение на мой взгляд не оправдано, потому что можно обойтись без них. Что характерно для их использования? Они работают в блоках unsafe кода. Это такие участки кода, где среда CLR не может отследить использование памяти и собрать мусор. Эта задача ложится на программиста. Потенциально опасное место для утечек и ошибок, особенно когда код пишется руками разных программистов.

Что можно сделать с помощью указателей? Например, грубо выражаясь, можно заставить value-объект вести себя как ссылочный.

int* pointer;
int anyValue = 100;
point = &pointer; // теперь указатель pointer ссылается на ту же область памяти, где записано значение anyValue
anyValue += 100;
Debug.Log($”{*pointer}”); // 200
*pointer = 500;
Debug.Log($”{anyValue}”); // 500

Ещё с помощью указателей можно получить адрес памяти, куда ссылается указатель, но это очень специфично. И конечно можно ссылать один указатель на другой, но здесь я ещё больше радуюсь данной возможности, но совсем не могу придумать применение в нашей сфере.

На самом деле мы работаем с указателями в шарпах чаще всего другими способами:
- Когда создаём объект через операцию new, которая возвращает указатель на объект после выделения памяти и вызова всех конструкторов
- Когда используем оператор as, среда проверяет совместимость типов и возвращает либо указатель, либо null. Warrior unit = wizard as Warrior;
- Когда пишем ключевое слово this мы обращаемся к указателю
- При упаковке значимых типов, они записываются в кучу и получают свою ссылку, то есть указатель
- При передачи параметров в методы мы можем использовать ключевые слова ref и out для значимых типов, где компилятор будет генерировать метаданные, описывающие параметр как передаваемый по ссылке
- Когда назначаем делегат - фактический назначаем указатель на функцию.
- Ну про ссылочные типы и говорить нечего…

Если у вас есть примеры из практики, где вы используете указатели в unsafe коде - поделитесь, интересно.
#техничка

04.09.2023 / 17:09

Марево. Так называется наша игра-финалист с конкурса “Лидеры цифровой трансформаций 2023”. Теперь я готов сказать пару слов о смысле участия в конкурсе и выложить ссылку для желающих поиграть.

В продолжение предыдущего поста про дежмы, я говорил о практической пользе, но психологический для программиста это обычные серые будни - развиваться, разбираться, искать лучшее решение, делать новое итд. Все мы ещё люди и поэтому на одних “нужных\полезных\правильных” вещах далеко не уедешь. Ещё нужна энергия и способность сохранять простой интерес к профессии годами. Поэтому пара философских мыслей в дополнение к ответу на вопрос. Здесь уже конкретно по нашему опыту на ЛЦТ 2023.

Мы вписались в конкурс под закрытие заявок и времени было мало. Проект наш заведомо небольшой и технический не сложный. Но у нас была цель - довести идею до ума и сдать его вовремя. Мы справились и потом неожиданно для себя попали в финал. Далее началось наше приключение, нас пригласили в Москву в инновационный кластер МГУ, там нас ждали новые испытания, дедлайны, лидеры отрасли, команды, лекции, выставки, диджеи, робо-собака и много другое. А также то, что мы сами себе организовали, когда преодолели все дедлайны - прогулка по летней Москве по локациям нашей игры всей командой и с винишком. Затем в финале мы вместе со всеми трепещали в ожидании результатов, чтобы узнать, что мы заняли 9ое место… и получили ещё шквал эмоций.

Я это все рассказываю, чтобы проиллюстрировать суть, к которой подвёл. Именно так создаются эмоции, дружба, совместные моменты, общие истории и именно так заряжается батарейка на новые свершения.

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

Скачать проект можно по ссылке: https://rayonist.itch.io/marevo

А во втором нашем канале более высоковибрационное описание проекта

@cat_and_code
#события #девлог

15.08.2023 / 19:08
Отзывы: - 0
Поделитесь вашим мнением! Оставьте отзыв:

Похожие

Избранное