Media is too big
VIEW IN TELEGRAM
Наконец-то нормальный маркетинг для отечественного геймдева подъехал. Обязательно смотреть со звуком.
2😁8💩6🔥3
Скачал DLC Инстинкт истребления к Atomic Heart и там невоспитанный гусь начал ругаться, обзывался даже пиздоблядской хлаёбиной . При этом догнать его и дать люлей не получилось. После этого на время была потеряна воля к написанию новых постов, но потом я вспомнил, что примерно так же мы называли читеров, которые атаковали один из наших проектов.
В общем будет несколько постов про античит меры, кратко расскажу какие есть способы и что от чего помогает. Тема громадная, поэтому какие-то моменты я буду опускать, но если что велком в комментарии с вопросами.
Главное, что нужно понимать и с чем сложно смириться — серебряной пули нет, все равно любую систему можно взломать. Единственное на что мы можем влиять — это сложность, на сколько игра или приложение устойчиво к взлому. Таким образом можно сильно сужать круг хацкеров, чтобы вам докучали только самые мотивированные и прокаченные по технической части оппоненты.
Почему вообще стоит бороться с хакерами? Потому, что они создают читы, активно их распространяют и которыми пользуются обычные игроки, превращаясь из платящих в не платящих или в целом не дают стать платящим игроком. Убытки от этого могут быть огромными.
Стоит ли в свою игру сходу имплементировать все, что мы обсудим — нет, только некоторые штуки. В новом проекте стоит же организовать некоторые вещи таким образом, чтобы потом было возможно накрутить нужный функционал. Конкретика будет походу.
И так, нас интересует две области — локальные меры в билде и защита сетевого трафика. Начнем с второго.
Незашифрованный запрос можно перехватить, подменить в нем данные и передать игре. Исходящие запросы тоже самое. Таким образом прощупывая чувствительную информацию можно влиять на поведение игры и сервера. Что можно сделать?
- Валидация запросов — здесь все понятно, это база, останавливаться на этом не будем.
- Шифрование запросов. Если у вас их много, то лучше шифровать часть запросов, которые содержат чувствительные данные. Делается это асимметричным способом, например, с помощью RSA. Сервер шифрует данные публичным ключом, клиент расшифровывает приватным и читает данные. В обратную сторону аналогично.
Тут возникает 2 проблемы:
1. Что если запросы очень объемные? Ассиметричные способы шифрования имеют свой минус — ими можно шифровать небольшие объемы. Тот же RSA ключ 2048 бит сможет зашифровать максимум 245 байт. Таким способом историю покупок не передать. Поэтому в подобных случаях нужно использовать гибридный способ шифрования. Данные шифруются симметричным алгоритмом, например, AES. Ключ от AES шифруется с помощью RSA и все передается в запросе. Чтобы расшифровать такой запрос, сначала распаковывается ключ с помощью RSA, затем с помощью AES расшифровывается контентная часть.
2. Где хранить приватный ключ в клиенте, чтобы его не нашли? Об этом в следующем посте, потому что речь в целом пойдет о локальной части игры.
Замечу в начале, что наиболее надежный способ защиты — это дублирование логики на сервере. До клиента добраться гораздо проще чем до сервера. Поэтому важную логику там нужно дублировать. Это относится к тому, что лучше делать в начале нового проекта и сразу выстраивать архитектуру соответсвенно. Если у вас так, то большая часть проблем вас не коснется.
#техничка@cat_and_code
В общем будет несколько постов про античит меры, кратко расскажу какие есть способы и что от чего помогает. Тема громадная, поэтому какие-то моменты я буду опускать, но если что велком в комментарии с вопросами.
Главное, что нужно понимать и с чем сложно смириться — серебряной пули нет, все равно любую систему можно взломать. Единственное на что мы можем влиять — это сложность, на сколько игра или приложение устойчиво к взлому. Таким образом можно сильно сужать круг хацкеров, чтобы вам докучали только самые мотивированные и прокаченные по технической части оппоненты.
Почему вообще стоит бороться с хакерами? Потому, что они создают читы, активно их распространяют и которыми пользуются обычные игроки, превращаясь из платящих в не платящих или в целом не дают стать платящим игроком. Убытки от этого могут быть огромными.
Стоит ли в свою игру сходу имплементировать все, что мы обсудим — нет, только некоторые штуки. В новом проекте стоит же организовать некоторые вещи таким образом, чтобы потом было возможно накрутить нужный функционал. Конкретика будет походу.
И так, нас интересует две области — локальные меры в билде и защита сетевого трафика. Начнем с второго.
Незашифрованный запрос можно перехватить, подменить в нем данные и передать игре. Исходящие запросы тоже самое. Таким образом прощупывая чувствительную информацию можно влиять на поведение игры и сервера. Что можно сделать?
- Валидация запросов — здесь все понятно, это база, останавливаться на этом не будем.
- Шифрование запросов. Если у вас их много, то лучше шифровать часть запросов, которые содержат чувствительные данные. Делается это асимметричным способом, например, с помощью RSA. Сервер шифрует данные публичным ключом, клиент расшифровывает приватным и читает данные. В обратную сторону аналогично.
Тут возникает 2 проблемы:
1. Что если запросы очень объемные? Ассиметричные способы шифрования имеют свой минус — ими можно шифровать небольшие объемы. Тот же RSA ключ 2048 бит сможет зашифровать максимум 245 байт. Таким способом историю покупок не передать. Поэтому в подобных случаях нужно использовать гибридный способ шифрования. Данные шифруются симметричным алгоритмом, например, AES. Ключ от AES шифруется с помощью RSA и все передается в запросе. Чтобы расшифровать такой запрос, сначала распаковывается ключ с помощью RSA, затем с помощью AES расшифровывается контентная часть.
2. Где хранить приватный ключ в клиенте, чтобы его не нашли? Об этом в следующем посте, потому что речь в целом пойдет о локальной части игры.
Замечу в начале, что наиболее надежный способ защиты — это дублирование логики на сервере. До клиента добраться гораздо проще чем до сервера. Поэтому важную логику там нужно дублировать. Это относится к тому, что лучше делать в начале нового проекта и сразу выстраивать архитектуру соответсвенно. Если у вас так, то большая часть проблем вас не коснется.
#техничка@cat_and_code
5🔥10👍2
А вы видели анонс третей части Мора? "Мор. Утопия."
Наконец-то можно будет обчисть все урны в городе за Данковского.
https://youtu.be/Zb0C2WYUjkI?si=1qZDqiLT57wsC3A_
Наконец-то можно будет обчисть все урны в городе за Данковского.
https://youtu.be/Zb0C2WYUjkI?si=1qZDqiLT57wsC3A_
YouTube
Pathologic 3 Announce Trailer
Pathologic 3. Coming 2025. Wishlist Now:
https://store.steampowered.com/app/3199650/
https://store.steampowered.com/app/3199650/
😁3
Мы небольшой командой работаем над артхаусным проектом о девочке, которая в силу обстоятельств подменяет маму на почте и разносит письма по деревне, называется А Горюшко вслед собакою… Действие игры проходит в военное время, но в мирной деревни в дали от фронта. История основана на реальных воспоминаниях главной героини. Проект уже давно томится и наверное мог бы потерять актуальность, если бы не был таким необычным по визуальному стилю и сюжету.
Даже странно писать это, но игра выйдет до нового года, Стим уже апрувнул билд, осталось только дочинить самыесамые-самые последние баги.
За время разработки проект по сто раз откладывался и вытаскивался из ящика. Бывало, что в ящик кладет один член команды, а чуть позже достает другой и продолжает пилить. Так вот и сейчас Николай допиливает баги, а другой тиммейт пишет посты в бложек и делает мотивирующие локальные мемы, чтобы поддержать команду.
Если игра понравится — добавьте в желаемое, нам это важно. Игра в Steam
#девлог
Даже странно писать это, но игра выйдет до нового года, Стим уже апрувнул билд, осталось только дочинить самые
За время разработки проект по сто раз откладывался и вытаскивался из ящика. Бывало, что в ящик кладет один член команды, а чуть позже достает другой и продолжает пилить. Так вот и сейчас Николай допиливает баги, а другой тиммейт пишет посты в бложек и делает мотивирующие локальные мемы, чтобы поддержать команду.
Если игра понравится — добавьте в желаемое, нам это важно. Игра в Steam
#девлог
11🔥12❤5👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Приятная викторина незадолго до Нового Года. Мы решили разыграть ключики от А Горюшко вслед собакою... на Steam. А также хотим познакомить вас с нашими каналами. Перешлите этот пост друзьям, которым будет интересно поучаствовать.
Разыгрываем 3 ключа, бот случайно выберет 3х участников, итоги будут тут на канале 28 декабря в 15:00.
Для участия подписаться на:
1. Кот и Код - здесь про разработку игр
2. Сволоч и Борщ - здесь про геймдизайн
3. Клик на кнопку “Участвовать”
Разыгрываем 3 ключа, бот случайно выберет 3х участников, итоги будут тут на канале 28 декабря в 15:00.
Для участия подписаться на:
1. Кот и Код - здесь про разработку игр
2. Сволоч и Борщ - здесь про геймдизайн
3. Клик на кнопку “Участвовать”
🔥9
Листал ленту, захотел поделиться каналом @tochno_kesha Автор сильно изворачивается с стилизацией под PS1 и пикселизацию припудрив щепоткой крипоты.
Ну и в целом не боится экспериментов, в подборке скринов на последних 2х, он распечатал uv-карту, затем раскрасил цветными карандашами и отсканировал обратно. Результат вау. Сколько всего интересного можно так сделать. Взял себе на вооружение, воспользуюсь когда захочется сделать что-то еще вроде нашего Марево
Ну и в целом не боится экспериментов, в подборке скринов на последних 2х, он распечатал uv-карту, затем раскрасил цветными карандашами и отсканировал обратно. Результат вау. Сколько всего интересного можно так сделать. Взял себе на вооружение, воспользуюсь когда захочется сделать что-то еще вроде нашего Марево
🔥9 1
Под конец года сделал на заказ достаточно интересного telegram-бота. Можно потыкать тут, запущен пока в тестовом режиме: @hot_workshop_bot
Примечательно, что боты это такая интересная помесь сервисов, сайтов и массы упрощений. Например, в данном боте воплощены некоторые стандартные для сайтов механизмы: время сессии, хранение обезличенной инфы во время сессии, отправка формы, выгрузка из бота файлов, мониторинг работы бота, баг репорты админам, а также "админка". То есть кроме пользовательского меню — есть еще одно админское, где можно заменить PDFку для скачивания и отредактировать информационные разделы.
По функционалу получается что-то вроде малюсенького корпоративного сайта, но прямо тут в мессенджере. Жесткое упрощение на верстку и все пляски с размещением сайта. Даже сервер необязателен (хотя в данном случае он есть). Все готовое.
Примечательно, что боты это такая интересная помесь сервисов, сайтов и массы упрощений. Например, в данном боте воплощены некоторые стандартные для сайтов механизмы: время сессии, хранение обезличенной инфы во время сессии, отправка формы, выгрузка из бота файлов, мониторинг работы бота, баг репорты админам, а также "админка". То есть кроме пользовательского меню — есть еще одно админское, где можно заменить PDFку для скачивания и отредактировать информационные разделы.
По функционалу получается что-то вроде малюсенького корпоративного сайта, но прямо тут в мессенджере. Жесткое упрощение на верстку и все пляски с размещением сайта. Даже сервер необязателен (хотя в данном случае он есть). Все готовое.
Кот и код
Приятная викторина незадолго до Нового Года. Мы решили разыграть ключики от А Горюшко вслед собакою... на Steam. А также хотим познакомить вас с нашими каналами. Перешлите этот пост друзьям, которым будет интересно поучаствовать. Разыгрываем 3 ключа, бот…
🎉 Результаты розыгрыша:
Победители:
1. Васс (@gvassel)
2. Андрей (@korka451)
3. Leonid (@savidiy)
Проверить результаты
Победители:
1. Васс (@gvassel)
2. Андрей (@korka451)
3. Leonid (@savidiy)
Проверить результаты
🎉7❤2🦄1
Кот и код
🎉 Результаты розыгрыша: Победители: 1. Васс (@gvassel) 2. Андрей (@korka451) 3. Leonid (@savidiy) Проверить результаты
И так, друзья, викторина состоялась. Поздравляем победителей, я напишу вам в личку.
Забавно, что я тоже тыкнул «Участвовать», чтобы проверить как оно работает вообще. Но я настолько никогда не выигрываю в викторинах, что не выиграл даже в своей викторине на 30 человек. С другой стороны хорошо, не пришлось объясняться как устроитель конкурса в нем же и победил🌚
Забавно, что я тоже тыкнул «Участвовать», чтобы проверить как оно работает вообще. Но я настолько никогда не выигрываю в викторинах, что не выиграл даже в своей викторине на 30 человек. С другой стороны хорошо, не пришлось объясняться как устроитель конкурса в нем же и победил
Please open Telegram to view this post
VIEW IN TELEGRAM
😁11👾1
Спасибо всем, кто поддерживает посты реакциями. Отдельное спасибо тем, кто кидается звездами ⭐️
Telegram такая площадка, что нативного трафика тут нет, поэтому общение в постах происходит практический в том же узком кругу из треда в тред. Многих уже знаю по никам и аватаркам. Хочу узнать ваше мнение.
Мы тут на разные темы общаемся. Киньте в тред, что вам наиболее интересно в блоге? Например, технические посты из серии #техничка , #девлог, а может заметки про #игры или неважно что, просто интересно как кто-то живет своей технической жизнью. Почему вам вообще интересны такие микроблоги типа моего? Технические посты бывают занимают много времени на формулировки и написание, есть у меня ощущение, что может они нафиг не нужны.
Всех с наступающим, всем желаю понятных ошибок в коде в Новом году.🎄
Telegram такая площадка, что нативного трафика тут нет, поэтому общение в постах происходит практический в том же узком кругу из треда в тред. Многих уже знаю по никам и аватаркам. Хочу узнать ваше мнение.
Мы тут на разные темы общаемся. Киньте в тред, что вам наиболее интересно в блоге? Например, технические посты из серии #техничка , #девлог, а может заметки про #игры или неважно что, просто интересно как кто-то живет своей технической жизнью. Почему вам вообще интересны такие микроблоги типа моего? Технические посты бывают занимают много времени на формулировки и написание, есть у меня ощущение, что может они нафиг не нужны.
Всех с наступающим, всем желаю понятных ошибок в коде в Новом году.
Please open Telegram to view this post
VIEW IN TELEGRAM
74 16👍4❤2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Новогоднее настроение на любителя🎄
Потом расскажу, что за заяц такой
7🎄9❤1
Простых Telegram-ботов я делаю обычно в виде консольных приложений, потому, что им не нужны возможности WEB API. Чтобы потом такой консольный бот работал в линуксе в фоне, то нужно сделать service-файл для systemd - он отвязывает приложение от консоли и позволяет управлять им через systemctl. Так вот, когда в режиме написания драфта, чтобы приложение не вылетало по завершению, пишешь в Program.cs что-то вроде такой порнографии:
Такая конструкция способна загрузить незамысловатый проц на 100%, а например, Intel i7 11th Gen — процентов на 30%. Вот такая вот мелочь. Правильно делать выход через ивенты от системы, прокидывать токен для отмены в главные модули вашей программы:
Мораль — прибирайтесь вовремя, плохо не пишите, пишите хорошо.
#техничка
while (true)
{
var result = Console.ReadLine();
if (result != null && result.ToLower() == EXIT_COMMAND)
Environment.Exit(0);
}
Такая конструкция способна загрузить незамысловатый проц на 100%, а например, Intel i7 11th Gen — процентов на 30%. Вот такая вот мелочь. Правильно делать выход через ивенты от системы, прокидывать токен для отмены в главные модули вашей программы:
using var cts = new CancellationTokenSource();
AppDomain.CurrentDomain.ProcessExit += (_, _) =>
{
if (!cts.IsCancellationRequested)
cts.Cancel();
};
Console.CancelKeyPress += (_, e) =>
{
e.Cancel = true;
cts.Cancel();
};
Мораль — прибирайтесь вовремя, плохо не пишите, пишите хорошо.
#техничка
👍13 2🤔1🫡1
Планирую сходить на митап Индикатор Шрёдингера.
Проходит в Москве 18.01 (суббота) рядом с метро Преображенская площадь. Мне нравятся такие небольшие мероприятия, тут все сразу - нетворкинг, лекции и мое любимое — шоукейсы-плейтесты. В том числе можно залететь спикером или со своей игрой, подробнее что где как: https://news.1rj.ru/str/gamedev_moscow/619
Интересно, есть ли кто-то из присутствующих в МСК и может пойдет? Отпишите в комментах)
#события@cat_and_code
Проходит в Москве 18.01 (суббота) рядом с метро Преображенская площадь. Мне нравятся такие небольшие мероприятия, тут все сразу - нетворкинг, лекции и мое любимое — шоукейсы-плейтесты. В том числе можно залететь спикером или со своей игрой, подробнее что где как: https://news.1rj.ru/str/gamedev_moscow/619
Интересно, есть ли кто-то из присутствующих в МСК и может пойдет? Отпишите в комментах)
#события@cat_and_code
Telegram
Индикатор Шрёдингера (Москва)
Первый митап в 2025 году!
Приглашаем всех на мероприятие!
18 января в 14:00 встретимся для нетворкинга и обмена опытом по адресу Большая Черкизовская улица, 4к1, РГБМ • Библиотека для молодёжи.
Вас ждут:
• Лекции о геймдеве;
• Плейтесты;
• Круглый стол…
Приглашаем всех на мероприятие!
18 января в 14:00 встретимся для нетворкинга и обмена опытом по адресу Большая Черкизовская улица, 4к1, РГБМ • Библиотека для молодёжи.
Вас ждут:
• Лекции о геймдеве;
• Плейтесты;
• Круглый стол…
🔥8👍1