В третьей части данного дневника мы из созданной ранее заготовки начнем собирать наш мир. Будет сделана генерация карты, а также проведен необходимый рефакторинг кода.
Пользователь
Как установить лицензионную защиту кода на Python и обезопасить данные с помощью HASP?
Всем привет, я Вячеслав Жуйко – Lead команды разработки Audiogram в MTS AI.
При переходе от On-Cloud размещений ПО на On-Premises в большинстве случае перед вами неизбежно встанет задача защиты интеллектуальной собственности – и она особенно критична для рынка AI, где задействуются модели, обладающие высокой ценностью для компании. К тому же, в этой сфере широко используется интерпретируемый язык Python, ПО на котором содержит алгоритмы, являющиеся интеллектуальной собственностью компании, но фактически распространяется в виде исходных кодов. Это не является проблемой для On-Cloud решений, но в случае с On-Premises требует особой защиты как от утечек кода, так и самих данных.
Рассказываю реальную историю решения этой, казалось бы, не самой тривиальной задачи. Итак, обо всем по порядку.
FIRE — на пенсию молодым + полезные ссылки
Зарплата в IT выгодно отличается от других сфер рынка, а благодаря доступности финансовых инструментов личным капиталом можно управлять эффективнее и проще. Как итог — у разработчиков есть крутая возможность самостоятельно накопить достаточно денег и выйти на пенсию сильно раньше, чем в среднем. Так ли это? Размышляем вместе с финансистами, аналитиками и просто IT-специалистами из России и за ее пределами о FIRE*. 20 полезных ссылок, чтобы разобраться в теме, внутри.
Присоединяйтесь к обсуждению и делитесь своим опытом.
* FIRE (financial independence, retired early) — концепция жизни, основанная на финансовой независимости и раннем уходе на пенсию
Flutter на Python
Приветствую вас, дорогие любители и знатоки Python! Знали ли вы, что можно разрабатывать кросплатформенные приложения, используя всю мощь и выразительность своего любимого змеиного языка в связке с ныне популярным фреймворком Flutter? Оказывается, такая возможность есть! Всех заинтересовавшихся прошу под кат за деталями.
Go To Memory
Как и многие языки, Go часто использует магию под названием хип (heap). Обычно, когда мы пишем наши джейсоно-гонятели, мы просто не задумываемся об этом, хоть и знаем, что это «где-то есть». Давайте попробуем заглянуть в кроличью нору поглубже и увидеть не только то, какими методами аллокатор Go старается облегчить программисту жизнь, но и то, из чего он состоит в целом.
Меня зовут Антон Киреев, я бэкенд-разработчик с опытом работы больше 11 лет. В настоящее время работаю техлидом в Авито. В жизни мне нравятся две вещи: приносить пользу своей работой и проводить свободное время с семьёй. Именно поэтому я люблю делать что-то быстро, но качественно, а потом отдыхать. Для этого я постоянно учусь и пытаюсь докапываться до сути вещей. Сегодня поговорим, как наша любимая Гошечка работает с памятью.
Как теория Бартла о психотипах геймеров помогает в комьюнити-менеджменте
Профессия комьюнити-менеджера весьма нервная — с ней легко можно заработать себе какой-нибудь диагноз. Чтобы отсрочить этот момент и совладать с игровым сообществом, комьюнити-менеджеру важно научиться чувствовать настроение аудитории и понимать ее цели. Мне в этом помогла теория Ричарда Бартла о психотипах игроков.
Всем привет, меня зовут Снежана Французова, я представляю студию BIT.GAMES. В этом тексте я расскажу про теорию Бартла не с точки зрения геймдизайна, к чему все привыкли, а с точки зрения комьюнити-менеджмента. С помощью этой классификации можно быстро распознать мотивацию каждого отдельного игрока, а затем направить его в нужную сторону: в одних случаях — на помощь проекту, в других — на построение социальных связей.
Кроме того, у каждого психотипа есть свои особенности монетизации. Это нужно учитывать, если вы стремитесь найти баланс между получением прибыли и построением здорового сообщества.
Avalonia Tutorial: Реализация MVVM по шагам с примерами
Avalonia — это?
Avalonia – это кроссплатформенный XAML фреймворк для платформы .NET. Для многих разработчиков на WPF/UWP/Xamarin данный фреймворк будет интуитивно понятен и прост в освоении. Avalonia поддерживает Windows, Linux, macOS, также заявлена экспериментальная поддержка Android и iOS. Развивается проект при поддержке сообщества и является open-source.
Язык программирования Zig
Первым комментарием к замечательной статье Субъективное видение идеального языка программирования оказалась ссылка на язык программирования Zig. Естественно, стало интересно, что же это такое за язык, который претендует на нишу C++, D и Rust. Посмотрел — язык показался симпатичным и в чем-то интересным. Приятный си-подобный синтаксис, оригинальный подход к обработке ошибок, встроенные сопрограммы. Данная статья является кратким обзором официальной документации с вкраплениями собственных мыслей и впечатлений от запуска примеров кода.
5 способов, которыми игры пытаются вызвать зависимость
Какого ...? послушайте, я не пытаюсь доказать что видео игры — это героин. Я полностью понимаю, что в данном случае у жертвы было много проблем в жизни. Но, половина из вас знает что World of Warcraft затягивает и что доктора считают игровую зависимость серьёзной проблемой. А вопрос вот в чем: может быть какие-то игры намеренно разрабатывались, чтобы заставлять вас играть в них, даже если вы не получаете от этого удовольствия?
Текстовые игры — новый старый инструмент для автора или «Сделаем Текстовые Квесты снова Великими!»
Про текстовые игры написано довольно много как на Хабре, так и на просторах интернета. Это один из самых первых жанров интерактивных развлечений с использованием ЭВМ и даже без него (просьба поделиться опытом НЕэлектронных текстовых игр в комментариях).
В данной статье я хочу мимолетом задеть вопрос истории и нынешней "полужизни" жанра текстовых игр, пофантазировать на тему будущего данного жанра, привести примеры текстовых игр, которые сейчас пользуются популярностью и подсказать об абсолютно новом переосмыслении старого инструмента для создания текстовых игр, о котором вы 99% не знаете. И все, конечно, исключительно на базе личного опыта.
Батлрояль за 2 месяца: как мы обновили сетевой код и на 20% сократили траты на сервера
Оптимизация сетевого кода онлайн-шутера — это не только экономия на серверах и трафике, но еще и создание комфорта для игроков. Она особенно важна, когда на одной карте встречается огромное количество пользователей как, например, в батлрояле на 100 человек.
В этой статье расскажу о том, как мы обновили сетевой код для собственной королевской битвы на Unity, ввели систему сетевых чанков, контролируемый рандом и в результате сократили траты на сервера на 20%.
Photon Plugin: защищаем игровой процесс от читеров
По мере роста популярности нашего онлайн-шутера читеры все активнее его атаковали. Мы решили строить комплексную оборону по всем фронтам, где одним из шагов стала защита игрового процесса. Тогда взлому подвергались параметры здоровья, урона и скорострельности, кулдауны, количество патронов и многое другое — то, от чего в первую очередь страдали честные игроки.
Мы используем Photon Cloud для сетевого взаимодействия игроков, поэтому сразу стали искать удобное решение на его основе. И нашли Photon Plugin, который закрыл все потребности. Изначально его вводили только для защиты, но потом стали использовать и при разработке новых фичей, где требуется серверная логика. Как мы его внедряли — рассказал под катом.
Модель игрового цикла: как устроены хорошие игры
Потешу своё геймдизайнерское самолюбие и скажу, что у разработки игр и искусства много общего: ни та, ни другая область в достаточной мере не формализована и не изучена с научной точки зрения. Хотя попытки были: взять, к примеру, труд Иосифа Шиллингера «Математические основы искусств» из первой половины XX века.
Реальность такова, что при создании игры во многом приходится основываться на своих ощущениях, опыте, чуйке и косвенных признаках вроде обратной связи от игроков. Геймдизайн пока ещё не превратился в науку — и большой вопрос, произойдёт ли это когда-нибудь. Но думается, что каждый геймдизайнер хотя бы раз мечтал о методичке «Как сделать хорошую игру».
Сегодня я поделюсь с вами своей несовершенной методичкой. Чтобы работать над игрой было легче, я всегда держу под рукой модель игрового процесса — и внутри поста мы посмотрим, как эта модель реализована в знакомых вам играх.
Как написать квестовую RPG
Чистый лист — челлендж не только для художников, но и для геймдизайнеров. Здорово просто следовать за вдохновением в разработке игр, но иногда его нет и спасает методология. Перевели статью, где автор по шагам разбирает процесс создания квестовой RPG — с чего начать, как не отвлечься от основной идеи и что поможет в работе.
Маленькие секреты геймдизайнеров, заставляющие игрока ненавидеть вашу игру чуточку меньше
Этот тред собрал огромное количество откликов и мог бы послужить отличным сборником всяческих геймдизайнерских уловок, таких как:
- В Hellblade предупреждение перед игрой было тщательно продумано, чтобы заставить игроков поверить, будто в игре срабатывает система permadeath в случае, если игрок умирает слишком часто, хотя на самом деле ее там нет.
- Pacman может огибать углы более резко, чем это делают призраки, тем самым наделяя игрока небольшим преимуществом.
- Во многих шутерах последние очки здоровья стоят больше всей остальной шкалы, чтобы усилить чувство «выживания на грани». С той же целью в System Shock последняя пуля нанесет урон в 4 раза более сильный, чем остальные.
- И, напротив, Shadow of Mordor слегка увеличивает здоровье некоторых врагов, чтобы бои длились дольше.
- В Bioshock и Devil May Cry, находясь за спиной игрока, противники замедляют свою атаку.
- В Xcom, если промахнуться много раз подряд, игрок получит скрытый бонус для последующих выстрелов. Кроме того, если игроки остаются пассивными слишком долго, враги усиливают свою агрессивность.
- Похоже, что в Heartstone есть pity timers ― таймеры жалости. Многие другие игры позорно использовали их в более ранние годы.
- В Resident Evil 4 после слишком большого количества смертей заспавнится меньше врагов, чтобы дать игроку больше шансов пройти трудный для него эпизод.
- В любой гоночной игре реализован адаптивный ИИ, чтобы сделать соревнование более жестким.
Список можно продолжать и продолжать. Это настоящий кладезь подсказок от успешных геймдизайнеров.
В данной статье мы еще больше углубимся в эту тему и попытаемся уловить смысл таких трюков сквозь призму опыта игрока.
Важнейшие заблуждения о разработке игр
Мы не смогли пройти мимо этой статьи и с радостью предлагаем вам ее перевод. Поскольку в будущем году у нас большие планы по геймдизайну и разработке игр, считаем, что здесь рассмотрены принципиальные вопросы, которые многим подскажут, как разрабатывать игры правильно, и куда двигаться дальше.
Пример создания Makefile для Go-приложений
Что такое Makefile-ы?
Makefile — невероятно полезный инструмент автоматизации, который можно использовать для запуска и сборки приложений не только на Go, но и на большинстве других языков программирования.
Его часто можно увидеть в корневом каталоге множества Go приложений на Github и Gitlab. Он широко используются в качестве инструмента для автоматизации задач, которые часто сопровождают разработчиков.
Если вы используете Go для создания веб-сервисов, то Makefile поможет решить следующие задачи:
- Автоматизация вызова простых команд, таких как: compile, start, stop, watch и т. д.
- Управление специфичными для проекта переменными окружения. Он должен подключать файл .env.
- Режим разработки, который автоматически компилируется при изменении.
- Режим разработки, который показывает ошибки компиляции.
- Определение GOPATH для конкретного проекта, чтобы мы могли хранить зависимости в папке vendor.
- Упрощенный мониторинг файлов, например, make watch run = «go test. / ...»
Обучение с подкреплением в Super Mario Bros. Сравнение алгоритмов DQN и Dueling DQN
Этой весной Питерская Вышка и JetBrains впервые провели проектную смену для старшеклассников — Школу по практическому программированию и анализу данных. В течение пяти дней 50 участников со всей страны работали над групповыми проектами по машинному обучению, NLP, мобильной и web-разработке.
Первое место заняла команда Deep Q-Mario — ребята создали нейронную сеть, которая использует reinforcement learning для обучения агента играть в Super Mario Bros. В этом посте они рассказывают, какие алгоритмы использовали и с какими проблемами столкнулись (например, в какой-то момент Марио просто отказался прыгать).
Настройка инструментов стандартной библиотеки Golang для production
Привет, Хабр, меня зовут Богданов Илья, я работаю ведущим инженером в команде веб-разработки. Сегодня я вам расскажу, как настроить стандартную библиотеку Golang так, чтобы избежать неожиданных ошибок в production.
Моя статья ориентирована в основном на начинающих разработчиков, но ветераны Go тоже, вероятно, смогут узнать что-то новое. Коротко о чем будет статья:
• о том, как не ловить ошибки соединения с базой данных на production;
• http.Client и что не так с клиентом по умолчанию;
• http.Server и его подводные камни;
• и, наконец, рассмотрим пару занятных проблем, не связанных напрямую с настройкой стандартной библиотеки.
Популярные задачи для собеседований бэкенд-разработчиков на Go и их решения
Я живу в Ташкенте, и когда учился в университете — начал учить Python, чтобы писать ботов. Боты — это узбекский хлеб, у нас на них построено вообще все. Например, никто не делает приложения для заказа еды, все только в мессенджерах.
Я учил язык по статьям из интернета — просто брал каркас и дальше дописывал, смотрел где что падает, постоянно решал задачи на leetcode. Писал я тогда ужасно, но что было, то было. Мне нравилось, но чем больше я углублялся, тем сильнее раздражали скорость выполнения, ограничения параллелизма и динамическая типизация.
Тогда я решил попробовать Go.
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность