Контрразведка. Очень примечательный проект. Российская бесплатная синглплеер игра на мобилку с обучающей исторической составляющей. Симпатичная, много механик, созданная на деньги грантов. Искренне приглашаю скачать и ознакомиться - RuStore, Play Market и App Store. У меня же тут мои впечатления.
Минусы: Точки роста:
⁃ Смертельно кривое управление. Это то, с чем ты борешься всю игру. Тут даже сказать нечего, думаю просто не дотянули. На джойстике было бы идеально.
⁃ Иногда ты в ступоре потому что не знаешь куда идти, что делать. Мне напоминает старые игры, где игрока ещё не водили за руку. Так было на сеге или в старых квестах.
⁃ Левел дизайн. В самом начале игры ты упираешься в невидимую стену и выглядит этот именно как баг. Потом тоже упираешься куда попало, но уже знаешь как с этим быть.
⁃ Баги. Их много. Какие-то триггеры на уровнях не срабатывают и казалось бы все на этом - дедлок. Помогают кривые коллайдеры, можно их продавить и пройти дальше. Вынуждающих прекратить игру багов при этом нет.
Часть 2
#игры
⁃ Смертельно кривое управление. Это то, с чем ты борешься всю игру. Тут даже сказать нечего, думаю просто не дотянули. На джойстике было бы идеально.
⁃ Иногда ты в ступоре потому что не знаешь куда идти, что делать. Мне напоминает старые игры, где игрока ещё не водили за руку. Так было на сеге или в старых квестах.
⁃ Левел дизайн. В самом начале игры ты упираешься в невидимую стену и выглядит этот именно как баг. Потом тоже упираешься куда попало, но уже знаешь как с этим быть.
⁃ Баги. Их много. Какие-то триггеры на уровнях не срабатывают и казалось бы все на этом - дедлок. Помогают кривые коллайдеры, можно их продавить и пройти дальше. Вынуждающих прекратить игру багов при этом нет.
Часть 2
#игры
❤4
Это вторая часть про Контрразведку. Часть 1
Порадовало:
⁃ Игра честно бесплатная и это сингл плеер на мобилку. Даже звучит странно. На сколько могу заметить, например, Apple Arcade себя позиционирует как стор с премиальными мобильными играми. И вот только там я видел подобные примеры.
⁃ Стильная графика. Хороший баланс проработки, деталей и выбранный визуальный стиль. Да, есть к чему прикопаться, но эмоции приятные, разглядывать хочется.
⁃ Хорошей анимации и их много. Хотя и многих переходов между состояниями нет, это не мешает.
⁃ Не напряжено вписали исторические сводки. Вообще этот момент очень напоминает мне 2 вещи. Я делал обучающий детский проект для музея на деньги гос. гранта. И там была специфика, что проект должен однозначно реализовывать тему заявки гранта. У меня там все внимание было на обучающих хинтах, фотках к ним и озвучке этого справочного материала. Тут тоже есть такой след. Второй проект, который приходит на ум, бесспорно крутой и известный - Чёрная книга. Про мифы и сказания Пермского края. Там все мифы вписаны в геймплей, вам реально надо разбираться в ста сортах чертей, чтобы решать игровые задания и влиять на сюжет. А народные песни излечивают главного героя. Это мои домыслы, но не удивлюсь, если среди инвестиций Чёрной книги тоже есть гранты.
Впечатления от контрразведки положительные, очень надеюсь, что они докрутят недочёты, но сильно сомневаюсь в этом. В целом вообще чудо, что такой проект вышел. Немного находясь в теме, знаю, что денег в грантах в притык и даже меньше. Буду следить за новостями.
#игры
Порадовало:
⁃ Игра честно бесплатная и это сингл плеер на мобилку. Даже звучит странно. На сколько могу заметить, например, Apple Arcade себя позиционирует как стор с премиальными мобильными играми. И вот только там я видел подобные примеры.
⁃ Стильная графика. Хороший баланс проработки, деталей и выбранный визуальный стиль. Да, есть к чему прикопаться, но эмоции приятные, разглядывать хочется.
⁃ Хорошей анимации и их много. Хотя и многих переходов между состояниями нет, это не мешает.
⁃ Не напряжено вписали исторические сводки. Вообще этот момент очень напоминает мне 2 вещи. Я делал обучающий детский проект для музея на деньги гос. гранта. И там была специфика, что проект должен однозначно реализовывать тему заявки гранта. У меня там все внимание было на обучающих хинтах, фотках к ним и озвучке этого справочного материала. Тут тоже есть такой след. Второй проект, который приходит на ум, бесспорно крутой и известный - Чёрная книга. Про мифы и сказания Пермского края. Там все мифы вписаны в геймплей, вам реально надо разбираться в ста сортах чертей, чтобы решать игровые задания и влиять на сюжет. А народные песни излечивают главного героя. Это мои домыслы, но не удивлюсь, если среди инвестиций Чёрной книги тоже есть гранты.
Впечатления от контрразведки положительные, очень надеюсь, что они докрутят недочёты, но сильно сомневаюсь в этом. В целом вообще чудо, что такой проект вышел. Немного находясь в теме, знаю, что денег в грантах в притык и даже меньше. Буду следить за новостями.
#игры
👍3
Почему когда мы пишем [SerializeField] напротив поля List оно появляется в инспекторе, а когда напротив поля типа Dictionary инспектор нам его не рисует?
Если вкратце, то Unity ленивые жопы. Либо, как сказал мой друг, они планируют купить Odin, где это реализовали.
Суть в том, что Unity добавили стандартную сериализацию для всех базовых и встроенных типов, а также типов наследуемых от UnityEngine.Object. Плюс для любых (почти) классов, явно помеченных атрибутом [System.Serializable].
Так вот, List по сути это дженерик класс. А дженерики не сериализуются, то есть во вьюшке так писать нельзя:
#техничка
Если вкратце, то Unity ленивые жопы. Либо, как сказал мой друг, они планируют купить Odin, где это реализовали.
Суть в том, что Unity добавили стандартную сериализацию для всех базовых и встроенных типов, а также типов наследуемых от UnityEngine.Object. Плюс для любых (почти) классов, явно помеченных атрибутом [System.Serializable].
Так вот, List по сути это дженерик класс. А дженерики не сериализуются, то есть во вьюшке так писать нельзя:
public class MyView : MonoBehaviourМагия в том, что Unity написали персональный серилизатор для листа. А для дикшаря не написали. При настоящем и неподдельном желании можно написать свой сериализатор самостоятельно. А также есть способ добавить свой собственный класс, унаследованный от Dictionary или любого дженерика и выводить его в инспекторе. Суть в том, чтобы сразу определить тип, таким образом:
{
// Инспектор ничего не нарисует
[SerializeField] private MyClass<AnyType> _myClass;
}
public class GenericClass<T>Для Dictionary тоже могу написать пример, если тема интересна. В целом проблема старая как Юнити и есть костыли для решения. Даже не знаю почему решил об этом рассказать, как будто просто пригорело в очередной раз. Может кто-то, знает причину почему у юнитистов руки до сих пор так и не дошли до этой фичи.
{
public T Value;
}
[Serializable]
public class MyClass : GenericClass<int> { }
public class MyView : MonoBehaviour
{
// Будет в инспекторе
[SerializeField] private MyClass _myClass;
}
#техничка
👍5
Недавно делал пост про то, что мы ищем Юнити-девелоперов себе в компанию. И хочется немного подтолкнуть тех, кто может ещё, думает мне написать и не хватает решающего толчка чтобы это сделать.
Ищу я классного чела, не просто в компанию, а конкретно себе в проектную команду. Работать будем над мидкорным Idle RPG - MightyParty. Широкий стек технологий и масса пространства для творчества.
Кроме моего проекта, есть и другие. А также есть вариант присоединиться к межпроектной технической команде над созданием разных тулз и расширений. Это если вы любите копать в глубину и у вас айтишная бородатая душа.
Чтобы лучше донести, что нужно будет делать я лично переписал разделы в описании вакансии на hh "Чем предстоит заниматься" и "Круто, если ты". В общем ребят, пишите в ЛС, расскажу подробнее какие проекты.
PS: Реально старались сделать особое описание вакансии, чтобы передать общий вайб. Получилось?)
Ищу я классного чела, не просто в компанию, а конкретно себе в проектную команду. Работать будем над мидкорным Idle RPG - MightyParty. Широкий стек технологий и масса пространства для творчества.
Кроме моего проекта, есть и другие. А также есть вариант присоединиться к межпроектной технической команде над созданием разных тулз и расширений. Это если вы любите копать в глубину и у вас айтишная бородатая душа.
Чтобы лучше донести, что нужно будет делать я лично переписал разделы в описании вакансии на hh "Чем предстоит заниматься" и "Круто, если ты". В общем ребят, пишите в ЛС, расскажу подробнее какие проекты.
PS: Реально старались сделать особое описание вакансии, чтобы передать общий вайб. Получилось?)
Telegram
Кот и код
Знаю, что сейчас многие в процессе поиска работы, а у нас в компании только что открылась вакансия на позицию Unity Developer. Вот описание вакансии на hh, но тут я могу неофициально дополнить, что ищем ребят от мидла и выше, локации - Сербия, Грузия, RF.…
👍2
Чем отличается Composition Root от Service Locator?
Иногда легко запутаться потому, что такие решения визуально похожи. Какой-то огромный класс с какой-то регистрацией всех подряд систем. Хочется максимально быстро определить, что он делает и чего ждать в проекте.
Composition Root
Его назначение внедрить зависимости во все объекты, которые создаёт. В ручном режиме, в методе сборки систем есть определённый порядок инициализации. Сначала создаются системы, которые не имеют зависимостей, например, WebClient, InputSystem. Далее системы с зависимостью на первую группу, например, контроллер управления персонажем с зависимостью на InputSystem. Далее третья группа с зависимостями на первые две. И так далее.
Таким образом создаются все объекты игры, которые имеют все необходимые зависимости на этапе создания. Тоже самое но в автоматическом режиме и со своими наворотами делают DI-контейнеры, например, Zenject. Хранить эти объекты и предоставлять к ним доступ CR не обязан, но может.
Service Locator
Должен хранить в себе все сервисы, которые создаёт и отдавать их всем кто попросит. При регистрации своих сервисов локатор не обязан заниматься внедрением зависимостей, например, он может регистрировать созданные ранее объекты.
Таким образом вы в любом месте игры можете обратиться по статическому методу у локатора и попросить нужную службу. Именно по этому его называют анти-паттерном. Можете сказать чем он лучше синглтона? 😏
А по факту в игре вы можете увидеть гибрид, который отвечает признакам и того и другого. Но главный признак локатора - это метод, с помощью которого вы можете получить прямой доступ к какой-либо службе откуда угодно. Совсем кратко: правильный CR внедряет зависимость, SL предоставляет доступ.
Вот такие мысли в слух. Появились, когда тут на днях пошёл изучить новый проект. Если у вас есть свои истории и дополнения про эти паттерны - делитесь, интересно почитать.
#техничка
Иногда легко запутаться потому, что такие решения визуально похожи. Какой-то огромный класс с какой-то регистрацией всех подряд систем. Хочется максимально быстро определить, что он делает и чего ждать в проекте.
Composition Root
Его назначение внедрить зависимости во все объекты, которые создаёт. В ручном режиме, в методе сборки систем есть определённый порядок инициализации. Сначала создаются системы, которые не имеют зависимостей, например, WebClient, InputSystem. Далее системы с зависимостью на первую группу, например, контроллер управления персонажем с зависимостью на InputSystem. Далее третья группа с зависимостями на первые две. И так далее.
Таким образом создаются все объекты игры, которые имеют все необходимые зависимости на этапе создания. Тоже самое но в автоматическом режиме и со своими наворотами делают DI-контейнеры, например, Zenject. Хранить эти объекты и предоставлять к ним доступ CR не обязан, но может.
Service Locator
Должен хранить в себе все сервисы, которые создаёт и отдавать их всем кто попросит. При регистрации своих сервисов локатор не обязан заниматься внедрением зависимостей, например, он может регистрировать созданные ранее объекты.
Таким образом вы в любом месте игры можете обратиться по статическому методу у локатора и попросить нужную службу. Именно по этому его называют анти-паттерном. Можете сказать чем он лучше синглтона? 😏
А по факту в игре вы можете увидеть гибрид, который отвечает признакам и того и другого. Но главный признак локатора - это метод, с помощью которого вы можете получить прямой доступ к какой-либо службе откуда угодно. Совсем кратко: правильный CR внедряет зависимость, SL предоставляет доступ.
Вот такие мысли в слух. Появились, когда тут на днях пошёл изучить новый проект. Если у вас есть свои истории и дополнения про эти паттерны - делитесь, интересно почитать.
#техничка
🔥4👍1
Когда Hogwarts Legacy и Atomic Heart борются за то, кого из них геймеры пройдут первым, я решил запустить BioShock.
В BioShock есть мини игра для взлома устройств (на скрине). Сама игра 2007 года. Мини игры обычно позволяют разбавить основной геймплей. И получается! Чувствуешь жёсткую скуку занимаясь взломом. Я попытался вспомнить примеры годных мини игр, но такое ощущение, что их не делают интересными в больших проектах.
Например, взлом замков в Thief. Но он тривиальный. Взлом устройств в Киберпанке - на мой вкус вообще неказистый. Хороший пример, пожалуй, Гвинт в Ведьмаке.
Вспоминаю затягивающие примеры там, где из мини игр состоит большая часть геймплея. Для меня это квесты. Но многие механики играются всего 1 раз за всю игру.
Интересно, почему для мини игр часто используют неинтересные механики. Хотелось бы вдохновиться качественной подборкой. Наподобие такого ролика про 100 игровых механик или вот такой сайт, где тоже разложена сотня механик. Может кто-то, может накинуть ещё подобных референсов.
#игры
В BioShock есть мини игра для взлома устройств (на скрине). Сама игра 2007 года. Мини игры обычно позволяют разбавить основной геймплей. И получается! Чувствуешь жёсткую скуку занимаясь взломом. Я попытался вспомнить примеры годных мини игр, но такое ощущение, что их не делают интересными в больших проектах.
Например, взлом замков в Thief. Но он тривиальный. Взлом устройств в Киберпанке - на мой вкус вообще неказистый. Хороший пример, пожалуй, Гвинт в Ведьмаке.
Вспоминаю затягивающие примеры там, где из мини игр состоит большая часть геймплея. Для меня это квесты. Но многие механики играются всего 1 раз за всю игру.
Интересно, почему для мини игр часто используют неинтересные механики. Хотелось бы вдохновиться качественной подборкой. Наподобие такого ролика про 100 игровых механик или вот такой сайт, где тоже разложена сотня механик. Может кто-то, может накинуть ещё подобных референсов.
#игры
Из разряда очень интересно, но бесполезно или не бесполезно. Кому как. Почему при переборе List<T> через foreach нельзя менять коллекцию?
Устроено это таким образом, что List хранит номер своей версии и при создании Enumerator'а в этот номер записывается в аналогичное поле в нем. И далее при вызове MoveNext(), происходят проверки этой версии каждый вызов. Таким образом, если версия не совпадает - вылетает знакомая ошибка
Зачем это сделано? Здесь уже мои личные рассуждения. Например, при работе с for таких проблем у нас нет. Дело в том, что в цикле for мы самостоятельно можем контролировать текущий индекс и логику по которой будем бегать по списку. Например, сделать обратный цикл с конца к началу или зачем-то брать только чётные индексы. Кстати, foreach под капотом содержит тот же for. Но у нас нет к нему доступа. Можем только перебрать все элементы по порядку. Таким образом, изменение коллекции извне становится небезопасным и неуправляемым действием.
Если представить аналогию с автомобильной коробкой передач, то for - ручная, а foreach - автоматическая. И логично, что автоматическая устроена сложнее, но имеет защиту от ошибок использования.
#техничка
Устроено это таким образом, что List хранит номер своей версии и при создании Enumerator'а в этот номер записывается в аналогичное поле в нем. И далее при вызове MoveNext(), происходят проверки этой версии каждый вызов. Таким образом, если версия не совпадает - вылетает знакомая ошибка
"Collection was modified; enumeration operation may not execute."
Что может изменить версию листа? Её изменение, а точнее инкрементация происходит во время операций над листом: запись по индексу, изменение количества элементов в коллекции, изменения порядка элементов (сортировки).Зачем это сделано? Здесь уже мои личные рассуждения. Например, при работе с for таких проблем у нас нет. Дело в том, что в цикле for мы самостоятельно можем контролировать текущий индекс и логику по которой будем бегать по списку. Например, сделать обратный цикл с конца к началу или зачем-то брать только чётные индексы. Кстати, foreach под капотом содержит тот же for. Но у нас нет к нему доступа. Можем только перебрать все элементы по порядку. Таким образом, изменение коллекции извне становится небезопасным и неуправляемым действием.
Если представить аналогию с автомобильной коробкой передач, то for - ручная, а foreach - автоматическая. И логично, что автоматическая устроена сложнее, но имеет защиту от ошибок использования.
#техничка
🔥3
Кто IAP настраивал? Напрягает проблема, что Unity не сетапит Google Licence Key через настройку в сервисах. Если попытаться отправить ключ будет сообщение "You are not authorized to set the license key". Ошибка на не зависит от пользователя, под которым я залогинен, даже для владельца она воспроизводится. На Юнити-форуме, данная проблема засветилась ещё в 2020. Предлагается альтернативный сетап через Dashboard, но в Юньке данное поле все равно останется пустым. А я не люблю неподконтрольные настройки, по ощущениям как будто играть в игрушку, к которой нет инструкции. (Спасибо нейронке за уместную аналогию для сравнения, лучше и не скажешь) В общем, кто-то в курсе на сколько это критично?
🤔2🍓1
Почта 1 день-min.gif
13.3 MB
Давно хотел показать наш проект. "Горюшко в след собакою" - это визуальная новелла с сложным и эмоциональным сюжетом. История основана на воспоминаниях главной героини, сохранённых в диктофонных записях, заметках и письмах. Игра ведёт повествование от лица девочки Нади, которая служит почтальонкой и вынуждена доставлять родным солдат вести с фронта. История повествует о надеждах, заботе и ценности семьи.
В Steam есть демка, если будет интересно, добавьте в желаемое. На релизе, вероятно, она будет выложена за какую-то сумму, но очевидно, что подобный артхаусный проект не преследует амбициозных финансовых целей.
Мы, как разработчики игр, обладаем творческим потенциалом и в разных наших проектах можем сосредоточить его на разных задачах. Мы можем развлечь игрока, помочь убить время, "заставить" его платить, чему-то научить, что-то рассказать и многое другое. Этот проект является носителем исторической составляющей, хранит память о событиях Великой Отечественной Войны и повествует о жизни людей в тот период.
#девлог
В Steam есть демка, если будет интересно, добавьте в желаемое. На релизе, вероятно, она будет выложена за какую-то сумму, но очевидно, что подобный артхаусный проект не преследует амбициозных финансовых целей.
Мы, как разработчики игр, обладаем творческим потенциалом и в разных наших проектах можем сосредоточить его на разных задачах. Мы можем развлечь игрока, помочь убить время, "заставить" его платить, чему-то научить, что-то рассказать и многое другое. Этот проект является носителем исторической составляющей, хранит память о событиях Великой Отечественной Войны и повествует о жизни людей в тот период.
#девлог
👍7🔥6
Если бы вас кто-то спросил “Зачем нам заниматься поддержкой архитектуры в проекте?”, вы бы смогли чётко ответить сходу? Продолжаю неспеша читать Мартина и мне очень понравился абзац, где он кратко отвечает на этот вопрос. Думаю, всем пригодится для следующих серьёзных переговоров, где вы будете бороться за технические спринты.
"Главное предназначение архитектуры — поддержка жизненного цикла системы. Хорошая архитектура делает систему лёгкой в освоении, простой в разработке, сопровождении и развёртывании. Конечная её цель — минимизировать затраты на протяжении срока службы системы и максимизировать эффективность программиста."
#техничка
"Главное предназначение архитектуры — поддержка жизненного цикла системы. Хорошая архитектура делает систему лёгкой в освоении, простой в разработке, сопровождении и развёртывании. Конечная её цель — минимизировать затраты на протяжении срока службы системы и максимизировать эффективность программиста."
#техничка
This media is not supported in your browser
VIEW IN TELEGRAM
У меня, как правило, все пет-проекты, это какой-то челендж, испытательный полигон для новых подходов, плагинов, технологий и так далее. Но в ГВС я могу позволить себе делать такие штуки)
#девлог
#девлог
🔥5👍2🍌2
Когда я решил создать свой канал, я брал в пример небольшие блоги, где ребята рассказывают о своих проектах и, в целом, больше ведут девлог. Не могу сказать, что у меня получается так же, но мне нравится следить за их проектами, они вдохновляют меня на что-то своё. Можно подсмотреть этапы, как приживаются или вытесняются какие-то идеи. Проекты развиваются на глазах. Моя находка - канал Alex Osh Punch. Автор-художник, делает свою новеллу, пишет много постов на тему применения Midjourney. Что ИИ выдаёт в исходнике и что получается после доработки. Изначально я познакомился с автором через его статью на DTF про создание персонажа
🔥3
Понадобилось плотно поработать с большим количеством логов в рабочем проекте, масса тестовых билдов, чинить платёжку. И для просмотра логов, я раньше просто открывал их через Rider, просто потому, что привык. Затем через Notepad++. Второй вариант гораздо лучше умеет работать с ними, например, выводить только строки с нужным ключом в строке. Но мне комфортно оставаться внутри IDE и было бы круто по клику переходить в область кода, где пишется лог. Я поинтересовался какие есть плагины. Нашёлся Ideolog - плагин от Jetbrains.
Самое главное, что о нем нужно знать - это установка на скрине, включается при открытии файлов с расширением .log, далее выделяем область в лог и жмём Alt+Enter - он предложит варианты что и как фильтровать. Подробнее на странице блога JB.
Если у кого есть вбросы по эффективной работе с логами - вкиньте, плиз.
#техничка
Самое главное, что о нем нужно знать - это установка на скрине, включается при открытии файлов с расширением .log, далее выделяем область в лог и жмём Alt+Enter - он предложит варианты что и как фильтровать. Подробнее на странице блога JB.
Если у кого есть вбросы по эффективной работе с логами - вкиньте, плиз.
#техничка
🔥8
Я тут долго болел и поэтому пропал, но сейчас уже становится получше и начинаю возвращаться в рабочий ритм.
Пока болел много думал о работе, развитии и о том как держать баланс и не выгорать. Хочу поделиться постом на эту тему, который недавно запостил Soer - Опыт против знаний. Ну и пользуясь случаем порекомендовать его канал. Он, конечно, не нуждается в моем представлении, скажу только, что на мой взгляд он один из немногих глубоких программистов, который активно делится знаниями.
Пока болел много думал о работе, развитии и о том как держать баланс и не выгорать. Хочу поделиться постом на эту тему, который недавно запостил Soer - Опыт против знаний. Ну и пользуясь случаем порекомендовать его канал. Он, конечно, не нуждается в моем представлении, скажу только, что на мой взгляд он один из немногих глубоких программистов, который активно делится знаниями.
❤3⚡1👍1
Я за последний год для себя открыл голосового помощника - Алису. Начиналось, все как у всех - “Включи музыку”, “Скажи погоду” и потом подъехали устройства умного дома. 12 лет назад я занимался системами умного дома, мы ставили системы в квартиры, коттеджи, офисы и др. Тогда из более-менее доступных и норм по качеству для частного потребителя были только дорогущие системы, типа KNX. Чтобы их инсталлировать нужно было проходить обучение в Германии и получать сертификат. Умный дом был для больших бюджетов, кто мог себе позволить проектирование и ремонт конкретно под эту систему. Надо было заранее понять что тебе нужно, без возможности пощупать или как-то проверить свои реальные потребности. И конечно, не было таких умных голосовых интерфейсов. Поэтому для меня сейчас отдельный кайф, что можно свою систему расширять постепенно, дополняя её устройствами и менять настройки на лету с телефона. Устройства стоят копейки, относительно того, как в интеграционных системах. Сейчас у меня уже масса сценариев и устройств, которые работают в одной системе: свет, шторы, обогреватели, вентиляция, ТВ, музыка и компы.
Недавно для меня этого стало мало и наступил новый этап интереса - я начал писать навыки для Алисы. Это такие программы, которые можно запускать на устройствах с Алисой (с телефонов или колонок). Посмотрите каталог Яндекса, там можно залипнуть.
Возможно, я вызову интерес пощупать создание навыков, поэтому пару слов откуда можно начать. У Яндекса хорошая документация и куча контента на этот счёт. Все можно делать на родных шарпах в .NET Core. Когда начал копать мне только не хватило лаконичного примера с навыком, чтобы побыстрее вникнуть как и что работает. Поэтому я сделал такой репозиторий, где есть пример кода, инструкции и полезные ссылки. Думаю, сэкономит вам несколько часов на старте.
Я пока делаю приватные навыки для личного использования, для меня это развлечение и возможность пощупать что-то не клиентское… Чтобы сделать что-то нормальное нужен плюс-минус бекэндерский стек, не свойственный Unity-разработчику, всякая муть вроде Docker, Nginx\Apache, какая-нибудь СУБД и администрирование всего этого на сервере под Линуксом.
А ну и навыки вполне могут быть играми. В каталоге их масса. Может и решусь тоже что-то запилить. А главное, никаких плясок с графикой, шейдерами, оптимизацией итп😬
Недавно для меня этого стало мало и наступил новый этап интереса - я начал писать навыки для Алисы. Это такие программы, которые можно запускать на устройствах с Алисой (с телефонов или колонок). Посмотрите каталог Яндекса, там можно залипнуть.
Возможно, я вызову интерес пощупать создание навыков, поэтому пару слов откуда можно начать. У Яндекса хорошая документация и куча контента на этот счёт. Все можно делать на родных шарпах в .NET Core. Когда начал копать мне только не хватило лаконичного примера с навыком, чтобы побыстрее вникнуть как и что работает. Поэтому я сделал такой репозиторий, где есть пример кода, инструкции и полезные ссылки. Думаю, сэкономит вам несколько часов на старте.
Я пока делаю приватные навыки для личного использования, для меня это развлечение и возможность пощупать что-то не клиентское… Чтобы сделать что-то нормальное нужен плюс-минус бекэндерский стек, не свойственный Unity-разработчику, всякая муть вроде Docker, Nginx\Apache, какая-нибудь СУБД и администрирование всего этого на сервере под Линуксом.
А ну и навыки вполне могут быть играми. В каталоге их масса. Может и решусь тоже что-то запилить. А главное, никаких плясок с графикой, шейдерами, оптимизацией итп
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6🤝2❤1
Я немного затронул тему навыков и как вы понимаете, они работают обращаясь на сервер к web API приложению.
Очень крутой в плане простоты использования сервис Cloud Functions в Яндекс.Облаке. Суть такая: не нужно поднимать никаких серверов, вы просто загружаете zip-архив своего проекта, указываете среду выполнения\язык программирования, задаёте точку входа и… все. Сервис сам деплоит все необходимые ресурсы, устанавливает nuget-пакеты и даже будет балансировать нагрузку при необходимости. Вы получаете url для обращения к вашему приложению с SSL и сразу на домене. С бесплатным лимитом 1 000 000 вызовов функции в месяц. Вариант считай идеальный для небольших приложений, а главное, что не нужно выходить за рамки .NET.
Этой мой подход, когда мне понадобилось сделать “простой сервер”. Он вполне пойдет, чтобы запилить, например, таблицу рейтингов или менеджер каких-то игровых событий для игры. Главное тут - скорость развёртки и почти тот же самый стек для Unity-разработчиков.
Другой подход. Мне сегодня мой коллега с работы (тоже Unity-разработчик) скинул свою статью, где он разбирает типовую задачу с участием серверной части. Задача: сделать простой сервер и обращаться к этому серверу с клиента на Unity. Статья-инструкция на reddit про создание сервера.
Написано очень подробно и прям маст хев, если есть задача погрузиться в настройку своего сервера. Но если стоит задача быстро собрать MVP бекэнда - то долго и сложно: создай сервер, настрой подключение (можно упростить используя встроенный ssh, а не PuTTY), настрой сервер. Вероятно не будет домена и SSL, а это может стать проблемой для подключения к ещё каким-нибудь сторонним сервисам - значит тоже, подлежит настройке. Ещё нужно будет туда залить само приложение и настроить его работу.
Если уж я начал про сервис функций, то стоит ещё добавить, что есть встроенные средства отладки и мониторинга. Сразу после заливки приложения можно отправить реквесты и посмотреть респонзы (см. на скрине в комментах). Ясно, что на своём VDS такого нет.
Итог такой: если надо быстро, то я бы использовал Я.функции или подобные Serverless-решения. Но если вам в целом интересна бекэнд-тема, несомненно, захочется научиться самому настраивать все необходимое окружение и такие мануалы по настройке на вес золота.
Очень крутой в плане простоты использования сервис Cloud Functions в Яндекс.Облаке. Суть такая: не нужно поднимать никаких серверов, вы просто загружаете zip-архив своего проекта, указываете среду выполнения\язык программирования, задаёте точку входа и… все. Сервис сам деплоит все необходимые ресурсы, устанавливает nuget-пакеты и даже будет балансировать нагрузку при необходимости. Вы получаете url для обращения к вашему приложению с SSL и сразу на домене. С бесплатным лимитом 1 000 000 вызовов функции в месяц. Вариант считай идеальный для небольших приложений, а главное, что не нужно выходить за рамки .NET.
Этой мой подход, когда мне понадобилось сделать “простой сервер”. Он вполне пойдет, чтобы запилить, например, таблицу рейтингов или менеджер каких-то игровых событий для игры. Главное тут - скорость развёртки и почти тот же самый стек для Unity-разработчиков.
Другой подход. Мне сегодня мой коллега с работы (тоже Unity-разработчик) скинул свою статью, где он разбирает типовую задачу с участием серверной части. Задача: сделать простой сервер и обращаться к этому серверу с клиента на Unity. Статья-инструкция на reddit про создание сервера.
Написано очень подробно и прям маст хев, если есть задача погрузиться в настройку своего сервера. Но если стоит задача быстро собрать MVP бекэнда - то долго и сложно: создай сервер, настрой подключение (можно упростить используя встроенный ssh, а не PuTTY), настрой сервер. Вероятно не будет домена и SSL, а это может стать проблемой для подключения к ещё каким-нибудь сторонним сервисам - значит тоже, подлежит настройке. Ещё нужно будет туда залить само приложение и настроить его работу.
Если уж я начал про сервис функций, то стоит ещё добавить, что есть встроенные средства отладки и мониторинга. Сразу после заливки приложения можно отправить реквесты и посмотреть респонзы (см. на скрине в комментах). Ясно, что на своём VDS такого нет.
Итог такой: если надо быстро, то я бы использовал Я.функции или подобные Serverless-решения. Но если вам в целом интересна бекэнд-тема, несомненно, захочется научиться самому настраивать все необходимое окружение и такие мануалы по настройке на вес золота.
❤3👍1🤔1