Как стать автором
Обновить
1
0

Пользователь

Отправить сообщение

Как написать игру на Monogame, не привлекая внимания санитаров. Часть 3, уменьшаем энтропию

Время на прочтение9 мин
Количество просмотров2.4K

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

Читать далее
Рейтинг0
Комментарии0

Как установить лицензионную защиту кода на Python и обезопасить данные с помощью HASP?

Время на прочтение6 мин
Количество просмотров12K

Всем привет, я Вячеслав Жуйко – Lead команды разработки Audiogram в MTS AI.

При переходе от On-Cloud размещений ПО на On-Premises в большинстве случае перед вами неизбежно встанет задача защиты интеллектуальной собственности – и она особенно критична для рынка AI, где задействуются модели, обладающие высокой ценностью для компании. К тому же, в этой сфере широко используется интерпретируемый язык Python, ПО на котором содержит алгоритмы, являющиеся интеллектуальной собственностью компании, но фактически распространяется в виде исходных кодов. Это не является проблемой для On-Cloud решений, но в случае с On-Premises требует особой защиты как от утечек кода, так и самих данных.

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

Читать далее
Всего голосов 12: ↑11 и ↓1+14
Комментарии17

FIRE — на пенсию молодым + полезные ссылки

Время на прочтение5 мин
Количество просмотров30K

Зарплата в IT выгодно отличается от других сфер рынка, а благодаря доступности финансовых инструментов личным капиталом можно управлять эффективнее и проще. Как итог — у разработчиков есть крутая возможность самостоятельно накопить достаточно денег и выйти на пенсию сильно раньше, чем в среднем. Так ли это? Размышляем вместе с финансистами, аналитиками и просто IT-специалистами из России и за ее пределами о FIRE*. 20 полезных ссылок, чтобы разобраться в теме, внутри.


Присоединяйтесь к обсуждению и делитесь своим опытом.




* FIRE (financial independence, retired early) — концепция жизни, основанная на финансовой независимости и раннем уходе на пенсию
Читать дальше →
Всего голосов 17: ↑10 и ↓7+6
Комментарии40

Flutter на Python

Время на прочтение3 мин
Количество просмотров40K


Приветствую вас, дорогие любители и знатоки Python! Знали ли вы, что можно разрабатывать кросплатформенные приложения, используя всю мощь и выразительность своего любимого змеиного языка в связке с ныне популярным фреймворком Flutter? Оказывается, такая возможность есть! Всех заинтересовавшихся прошу под кат за деталями.
Читать дальше →
Всего голосов 25: ↑23 и ↓2+27
Комментарии34

Go To Memory

Время на прочтение9 мин
Количество просмотров43K

Как и многие языки, Go часто использует магию под названием хип (heap). Обычно, когда мы пишем наши джейсоно-гонятели, мы просто не задумываемся об этом, хоть и знаем, что это «где-то есть». Давайте попробуем заглянуть в кроличью нору поглубже и увидеть не только то, какими методами аллокатор Go старается облегчить программисту жизнь, но и то, из чего он состоит в целом.

Меня зовут Антон Киреев, я бэкенд-разработчик с опытом работы больше 11 лет. В настоящее время работаю техлидом в Авито. В жизни мне нравятся две вещи: приносить пользу своей работой и проводить свободное время с семьёй. Именно поэтому я люблю делать что-то быстро, но качественно, а потом отдыхать. Для этого я постоянно учусь и пытаюсь докапываться до сути вещей. Сегодня поговорим, как наша любимая Гошечка работает с памятью.

Читать далее
Всего голосов 44: ↑31 и ↓13+25
Комментарии14

Как теория Бартла о психотипах геймеров помогает в комьюнити-менеджменте

Время на прочтение8 мин
Количество просмотров3.3K

Профессия комьюнити-менеджера весьма нервная — с ней легко можно заработать себе какой-нибудь диагноз. Чтобы отсрочить этот момент и совладать с игровым сообществом, комьюнити-менеджеру важно научиться чувствовать настроение аудитории и понимать ее цели. Мне в этом помогла теория Ричарда Бартла о психотипах игроков. 

Всем привет, меня зовут Снежана Французова, я представляю студию BIT.GAMES. В этом тексте я расскажу про теорию Бартла не с точки зрения геймдизайна, к чему все привыкли, а с точки зрения комьюнити-менеджмента. С помощью этой классификации можно быстро распознать мотивацию каждого отдельного игрока, а затем направить его в нужную сторону: в одних случаях — на помощь проекту, в других — на построение социальных связей.

Кроме того, у каждого психотипа есть свои особенности монетизации. Это нужно учитывать, если вы стремитесь найти баланс между получением прибыли и построением здорового сообщества.

Читать далее
Всего голосов 16: ↑15 и ↓1+16
Комментарии1

Avalonia Tutorial: Реализация MVVM по шагам с примерами

Время на прочтение13 мин
Количество просмотров53K

Avalonia — это?


Avalonia – это кроссплатформенный XAML фреймворк для платформы .NET. Для многих разработчиков на WPF/UWP/Xamarin данный фреймворк будет интуитивно понятен и прост в освоении. Avalonia поддерживает Windows, Linux, macOS, также заявлена экспериментальная поддержка Android и iOS. Развивается проект при поддержке сообщества и является open-source.

Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии2

Язык программирования Zig

Время на прочтение14 мин
Количество просмотров44K

Первым комментарием к замечательной статье Субъективное видение идеального языка программирования оказалась ссылка на язык программирования Zig. Естественно, стало интересно, что же это такое за язык, который претендует на нишу C++, D и Rust. Посмотрел — язык показался симпатичным и в чем-то интересным. Приятный си-подобный синтаксис, оригинальный подход к обработке ошибок, встроенные сопрограммы. Данная статья является кратким обзором официальной документации с вкраплениями собственных мыслей и впечатлений от запуска примеров кода.
Читать дальше →
Всего голосов 36: ↑33 и ↓3+30
Комментарии44

5 способов, которыми игры пытаются вызвать зависимость

Время на прочтение10 мин
Количество просмотров189K
Итак, в новостях снова пишут, что кто-то еще умер из-за игромании. Да, опять Корея.

Какого ...? послушайте, я не пытаюсь доказать что видео игры — это героин. Я полностью понимаю, что в данном случае у жертвы было много проблем в жизни. Но, половина из вас знает что World of Warcraft затягивает и что доктора считают игровую зависимость серьёзной проблемой. А вопрос вот в чем: может быть какие-то игры намеренно разрабатывались, чтобы заставлять вас играть в них, даже если вы не получаете от этого удовольствия?
Давайте посмотрим как это работает
Всего голосов 320: ↑295 и ↓25+270
Комментарии250

Текстовые игры — новый старый инструмент для автора или «Сделаем Текстовые Квесты снова Великими!»

Время на прочтение9 мин
Количество просмотров24K

Про текстовые игры написано довольно много как на Хабре, так и на просторах интернета. Это один из самых первых жанров интерактивных развлечений с использованием ЭВМ и даже без него (просьба поделиться опытом НЕэлектронных текстовых игр в комментариях).

В данной статье я хочу мимолетом задеть вопрос истории и нынешней "полужизни" жанра текстовых игр, пофантазировать на тему будущего данного жанра, привести примеры текстовых игр, которые сейчас пользуются популярностью и подсказать об абсолютно новом переосмыслении старого инструмента для создания текстовых игр, о котором вы 99% не знаете. И все, конечно, исключительно на базе личного опыта.

Читать далее
Всего голосов 23: ↑22 и ↓1+23
Комментарии18

Батлрояль за 2 месяца: как мы обновили сетевой код и на 20% сократили траты на сервера

Время на прочтение9 мин
Количество просмотров9.7K

Оптимизация сетевого кода онлайн-шутера — это не только экономия на серверах и трафике, но еще и создание комфорта для игроков. Она особенно важна, когда на одной карте встречается огромное количество пользователей как, например, в батлрояле на 100 человек.

В этой статье расскажу о том, как мы обновили сетевой код для собственной королевской битвы на Unity, ввели систему сетевых чанков, контролируемый рандом и в результате сократили траты на сервера на 20%.

Читать далее
Всего голосов 44: ↑44 и ↓0+44
Комментарии10

Photon Plugin: защищаем игровой процесс от читеров

Время на прочтение7 мин
Количество просмотров6K

По мере роста популярности нашего онлайн-шутера читеры все активнее его атаковали. Мы решили строить комплексную оборону по всем фронтам, где одним из шагов стала защита игрового процесса. Тогда взлому подвергались параметры здоровья, урона и скорострельности, кулдауны, количество патронов и многое другое — то, от чего в первую очередь страдали честные игроки.

Мы используем Photon Cloud для сетевого взаимодействия игроков, поэтому сразу стали искать удобное решение на его основе. И нашли Photon Plugin, который закрыл все потребности. Изначально его вводили только для защиты, но потом стали использовать и при разработке новых фичей, где требуется серверная логика. Как мы его внедряли — рассказал под катом.

Читать далее
Всего голосов 39: ↑39 и ↓0+39
Комментарии6

Модель игрового цикла: как устроены хорошие игры

Время на прочтение23 мин
Количество просмотров23K

Потешу своё геймдизайнерское самолюбие и скажу, что у разработки игр и искусства много общего: ни та, ни другая область в достаточной мере не формализована и не изучена с научной точки зрения. Хотя попытки были: взять, к примеру, труд Иосифа Шиллингера «Математические основы искусств» из первой половины XX века.

Реальность такова, что при создании игры во многом приходится основываться на своих ощущениях, опыте, чуйке и косвенных признаках вроде обратной связи от игроков. Геймдизайн пока ещё не превратился в науку — и большой вопрос, произойдёт ли это когда-нибудь. Но думается, что каждый геймдизайнер хотя бы раз мечтал о методичке «Как сделать хорошую игру».

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

Читать далее
Всего голосов 35: ↑33 и ↓2+38
Комментарии14

Как написать квестовую RPG

Время на прочтение6 мин
Количество просмотров17K

Чистый лист — челлендж не только для художников, но и для геймдизайнеров. Здорово просто следовать за вдохновением в разработке игр, но иногда его нет и спасает методология. Перевели статью, где автор по шагам разбирает процесс создания квестовой RPG — с чего начать, как не отвлечься от основной идеи и что поможет в работе. 

Читать далее
Всего голосов 32: ↑32 и ↓0+32
Комментарии4

Маленькие секреты геймдизайнеров, заставляющие игрока ненавидеть вашу игру чуточку меньше

Время на прочтение8 мин
Количество просмотров45K
Три года назад ведущий геймдизайнер ArenaNet Дженнифер Шойрле завела в Твиттере очень интересный тред на тему «отличных игровых механик, скрытых от глаз игрока с целью достижения определенного эмоционального эффекта, реакции или поведения», где любой геймдизайнер мог поделиться своими внутриигровыми «фишками».

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

  • В Hellblade предупреждение перед игрой было тщательно продумано, чтобы заставить игроков поверить, будто в игре срабатывает система permadeath в случае, если игрок умирает слишком часто, хотя на самом деле ее там нет.
  • Pacman может огибать углы более резко, чем это делают призраки, тем самым наделяя игрока небольшим преимуществом.
  • Во многих шутерах последние очки здоровья стоят больше всей остальной шкалы, чтобы усилить чувство «выживания на грани». С той же целью в System Shock последняя пуля нанесет урон в 4 раза более сильный, чем остальные.
  • И, напротив, Shadow of Mordor слегка увеличивает здоровье некоторых врагов, чтобы бои длились дольше.
  • В Bioshock и Devil May Cry, находясь за спиной игрока, противники замедляют свою атаку.
  • В Xcom, если промахнуться много раз подряд, игрок получит скрытый бонус для последующих выстрелов. Кроме того, если игроки остаются пассивными слишком долго, враги усиливают свою агрессивность.
  • Похоже, что в Heartstone есть pity timers ― таймеры жалости. Многие другие игры позорно использовали их в более ранние годы.
  • В Resident Evil 4 после слишком большого количества смертей заспавнится меньше врагов, чтобы дать игроку больше шансов пройти трудный для него эпизод.
  • В любой гоночной игре реализован адаптивный ИИ, чтобы сделать соревнование более жестким.

Список можно продолжать и продолжать. Это настоящий кладезь подсказок от успешных геймдизайнеров.

В данной статье мы еще больше углубимся в эту тему и попытаемся уловить смысл таких трюков сквозь призму опыта игрока.


Читать дальше →
Всего голосов 67: ↑63 и ↓4+78
Комментарии117

Важнейшие заблуждения о разработке игр

Время на прочтение8 мин
Количество просмотров60K
Здравствуйте, коллеги.

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


Читать дальше →
Всего голосов 80: ↑79 и ↓1+78
Комментарии99

Пример создания Makefile для Go-приложений

Время на прочтение7 мин
Количество просмотров34K
В этом руководстве мы рассмотрим, как разработчик Go может использовать Makefile при разработке собственных приложений.

image

Что такое Makefile-ы?


Makefile — невероятно полезный инструмент автоматизации, который можно использовать для запуска и сборки приложений не только на Go, но и на большинстве других языков программирования.

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

Если вы используете Go для создания веб-сервисов, то Makefile поможет решить следующие задачи:

  • Автоматизация вызова простых команд, таких как: compile, start, stop, watch и т. д.
  • Управление специфичными для проекта переменными окружения. Он должен подключать файл .env.
  • Режим разработки, который автоматически компилируется при изменении.
  • Режим разработки, который показывает ошибки компиляции.
  • Определение GOPATH для конкретного проекта, чтобы мы могли хранить зависимости в папке vendor.
  • Упрощенный мониторинг файлов, например, make watch run = «go test. / ...»
Читать дальше →
Всего голосов 36: ↑31 и ↓5+26
Комментарии4

Обучение с подкреплением в Super Mario Bros. Сравнение алгоритмов DQN и Dueling DQN

Время на прочтение8 мин
Количество просмотров5.9K

Этой весной Питерская Вышка и JetBrains впервые провели проектную смену для старшеклассников — Школу по практическому программированию и анализу данных. В течение пяти дней 50 участников со всей страны работали над групповыми проектами по машинному обучению, NLP, мобильной и web-разработке.  

Первое место заняла команда Deep Q-Mario — ребята создали нейронную сеть, которая использует reinforcement learning для обучения агента играть в Super Mario Bros. В этом посте они рассказывают, какие алгоритмы использовали и с какими проблемами столкнулись (например, в какой-то момент Марио просто отказался прыгать).

Читать далее
Всего голосов 6: ↑5 и ↓1+5
Комментарии0

Настройка инструментов стандартной библиотеки Golang для production

Время на прочтение14 мин
Количество просмотров9.3K

Привет, Хабр, меня зовут Богданов Илья, я работаю ведущим инженером в команде веб-разработки. Сегодня я вам расскажу, как настроить стандартную библиотеку Golang так, чтобы избежать неожиданных ошибок в production.

Моя статья ориентирована в основном на начинающих разработчиков, но ветераны Go тоже, вероятно, смогут узнать что-то новое. Коротко о чем будет статья:

о том, как не ловить ошибки соединения с базой данных на production;
http.Client и что не так с клиентом по умолчанию;
http.Server и его подводные камни;
и, наконец, рассмотрим пару занятных проблем, не связанных напрямую с настройкой стандартной библиотеки.

Читать далее
Всего голосов 9: ↑8 и ↓1+7
Комментарии2

Популярные задачи для собеседований бэкенд-разработчиков на Go и их решения

Время на прочтение7 мин
Количество просмотров56K

Я живу в Ташкенте, и когда учился в университете — начал учить Python, чтобы писать ботов. Боты — это узбекский хлеб, у нас на них построено вообще все. Например, никто не делает приложения для заказа еды, все только в мессенджерах. 

Я учил язык по статьям из интернета — просто брал каркас и дальше дописывал, смотрел где что падает, постоянно решал задачи на leetcode. Писал я тогда ужасно, но что было, то было. Мне нравилось, но чем больше я углублялся, тем сильнее раздражали скорость выполнения, ограничения параллелизма и динамическая типизация.

Тогда я решил попробовать Go.

Читать далее
Всего голосов 36: ↑29 и ↓7+31
Комментарии17

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность