Search
Write a publication
Pull to refresh
1
0
Александр @zorggroz

User

Send message

Реалистичный боевой ИИ для 2D-игры

Reading time6 min
Views14K
image

Хотя Close Quarters преимущественно является многопользовательской игрой, в ней всё равно должны присутствовать сложные ИИ-боты, чтобы игроки продолжали играть при плохом Интернет-соединении или отсутствии других онлайн-игроков. Кроме того, боты играют важную вспомогательную роль в некоторых режимах игры. Поэтому они должны вести себя правдоподобно и демонстрировать набор сложных поведений, в том числе использование укрытий, применение предметов в подходящее время, обход с флангов, бросание гранат и убегание от них.

Окружение и ограничения


Игровое окружение состоит из полигонов. Большинство полигонов блокирует движение, область видимости и стрельбу, однако есть и «низкие» полигоны, только блокирующие движение. Окружение плотно заставлено препятствиями и укрытиями.

ИИ тоже ограничен несколькими техническими факторами. Самый важный из них: сервер, на котором выполняются боты, когда онлайн находится мало игроков, должен быстро работать на недорогом VPS как минимум при десяти ботах. Кроме того, нагрузка на ЦП должна оставаться достаточно низкой, чтобы можно было выполнять несколько инстансов сервера на одном VPS без превышения лимита ЦП, и не при этом вызвать санкций со стороны поставщика услуг VPS.

70 офигенных видеокурсов от мировых звёзд

Reading time25 min
Views22K
image

Хотели бы вы поучиться освоению космоса у Криса Хэдфилда, разработке игр у создателя SimCity Уилла Райта, писательскому мастерству у Дэна Брауна, Нила Геймана или Малькольма Гладуэлла, актерскому мастерству у Натали Портман или Кевина Спейси, шахматам у Гарри Каспарова, а режиссуре у Мартина Скорсезе и Дэвида Линча?

Предлагаю вашему вниманию 70 курсов с MasterClass, они платные, но тот кто ищет, тот найдет и бесплатно.

А какие суперкрутые видеокурсы встречали вы?

А ещё, учите английский, без него никак, «нету ножек, нету мультиков».

Разработка игр
Освоение космоса
Кинопроизводство
Актерское мастерство и перформанс
Музыка
Писательство и журналистика
Кулинария и вино
Спорт, балет и покер
Мода и дизайн
Экономика, бизнес и лидерство
Научное мышление
Переговоры (от ФБР)
Экстремальная фотография
Сохранение природы

10 интересных репозиториев на GitHub, полезных любому разработчику

Reading time4 min
Views84K
Представляем вам перевод статьи Simon Holdorf, опубликованной на сайте medium.com. В ней вы найдете ссылки на полезные репозитории, с помощью которых можно прокачать навык разработки ПО.


Фото с ресурса Unsplash. Автор: Vishnu R Nair

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

Каждый из них имеет множество звезд на GitHub, что только подтверждает их популярность, актуальность и полезность. Одни репозитории научат вас чему-то новому, благодаря другим вы сможете создать какие-то классные штуки. В целом, используя их, можно основательно прокачать навык разработки программного обеспечения.
Читать дальше →

Превращение Synology NAS в игровой сервер

Reading time6 min
Views32K
Приветствую!

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

Как уже ясно из названия этой статьи, речь пойдет о настройке Synology NAS в роли игрового сервера.

Achtung — в статье много скриншотов (скриншоты кликабельны)!

Перед тем как приступить, вот список инструментов которые нам понадобятся:

Synology NAS — тут ограничений я не вижу, думаю подойдёт любой, если нет планов держать сервер на 10к игроков.

Docker — особых навыков не требуется, достаточно образно понимать принцип работы.

LinuxGSM — о том что из себя представляет LinuxGSM можно почитать на офф. сайте https://linuxgsm.com.

На данный момент (апрель 2020) на LinuxGSM доступно 105 игровых серверов.
Весь список можно посмотреть тут https://linuxgsm.com/servers.

Steam — маркет с играми.

Игровой сервер LinuxGSM имеет интеграцию с SteamCMD, то есть игровой сервер LinuxGSM можно будет использовать только для игр из Steam.
Читать дальше →

Создание roguelike в Unity с нуля: генератор подземелий

Reading time13 min
Views18K
image

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

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

Помните созданный нами класс Position? Вообще-то в Unity уже имеется встроенный класс, выполняющий точно такие же функции, но с немного более качественным управлением — его проще объявлять и обрабатывать. Этот класс называется Vector2Int. Поэтому перед началом мы удалим из MapManager.cs класс Position и заменим каждую переменную Position на переменную Vector2Int.


Это же надо проделать в нескольких местах скрипта DungeonGenerator.cs. Теперь давайте приступим к остальной части алгоритма.
Читать дальше →

9 лучших опенсорс находок за март 2020

Reading time2 min
Views23K

Доброго карантинного апреля, дамы и господа. Подготовил для вас подборку самых интересных находок из опенсорса за март 2020.


За полным списком новых полезных инструментов, статей и докладов можно обратиться в мой телеграм канал @OpensourceFindings (по ссылке зеркало, если не открывается оригинал).


В сегодняшнем выпуске.
Технологии внутри: Rust, TypeScript, JavaScript, Go, Python.
Тематика: веб разработка, тестирование, инструменты разработчика, администрирование и документирование.


Прошлый выпуск (аж ноябрь 2019!).

Читать дальше →

Как на Python подобрать экипировку для игрового перса

Reading time18 min
Views11K
Учимся находить лучшее для своего разбойника при помощи программирования. Также разбираемся, не водит ли нас программа «за нос».

image
Читать дальше →

Что в Белизне тебе моей или Справочное пособие по гипохлориту натрия («хлорке»)

Reading time31 min
Views233K
Не передать, насколько мне приятно это писать. Данная статья полностью профинансирована подписчиками канала LAB66. Ни один производитель описанных в тексте средств -  своего участия не проявил, так что никакой скрытой рекламы, чиcтый альтруизм и потребительский интерес :)

Сегодня читаем о самом простом, самом доступном и самом действенном антисептике — про гипохлорит натрия (он же «Белизна»). Совместимость с различными материалами, техника безопасности, свойства и эффективность не только против коронавируса, но и против страшной плесени и ее микотоксинов. В качестве «вишенки» — контрольная закупка магазинных отбеливателей и оценка их состава. Чтобы узнать как в эпоху пандемии нас дурят производители бытовой химии и прочий «менеджерский брат» — идем под кат. И обязательно закидываем в закладки. Эта информация пригодится еще не раз ;)


Даешь нормальную Белизну!

Где взять аудио для машинного обучения: подборка открытых библиотек с лицензией Creative Commons

Reading time3 min
Views4.3K
Небольшой дайджест для тех, кто разрабатывает модели машинного обучения.

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

Читать дальше →

Как я сгенерировал на Python тысячу лиц для своей игры

Reading time3 min
Views32K
На определённом этапе разработки своей игры я осознал, что мне нужна система диалогов с лицами-аватарами.

Поэтому я решил создать генератор лиц на основе знаменитой игры Papers, Please.


Генератор лиц Dukope (из Papers, Please)

Сбор данных


Я скачал примерно 50 портретов с pixabay.com (все изображения имеют лицензию CC и не требуют указания авторства).

Затем я вырезал фон каждого изображения в Photoshop (просто выбрал всё инструментом выделения многоугольника и нажал на Delete). В дальнейшем я планировал воспользоваться эффектом cutout , чтобы скрыть все недочёты.


Изображения с удалённым фоном
Читать дальше →

Находки аудиомана: где послушать музыку ушедших эпох

Reading time3 min
Views11K
Мы уже писали о различных музыкальных находках: картах звуков и дереве жанров. Сегодня продолжаем тему — говорим о сервисах, которые позволяют погрузиться в атмосферу прошлых лет.

Надеемся, что подборка поможет вам разнообразить фон во время работы из дома.

Введение в 3D: основы Three.js

Reading time8 min
Views108K

Cложность Web меняется ежедневно, и его возможности растут так же быстро, особенно с 3D-рендерингом. Кто только начинает вливаться в тему 3D — добро пожаловать под кат.


История жанра roguelike: от Rogue до Binding of Isaac

Reading time29 min
Views26K
image

Отдадим должное игре, ставшей прародительницей целого жанра. Имя ей Rogue.

Распространённость игр Roguelike росла на протяжении всех 40 лет существования жанра, даже несмотря на то, что в нём реализованы идеи, кажущиеся «анафемой» для популярности: высокая степень случайности, ASCII-графика, перманентная смерть (permadeath), огромная сложность и многое другое. Тем не менее, сегодня шагу нельзя ступить, не наткнувшись на игру, на которую по крайней мере не повлияли roguelike.

В духе историй об игровых жанрах (мы уже рассказывали о стратегиях реального времени [перевод], градостроительных играх, шутерах от первого лица [перевод], симуляторах [перевод: первая и вторая части], графических адвенчурах [перевод], гонках на картах и играх с открытым миром [перевод]) давайте теперь начнём разбираться, как мы к этому пришли и что это всё означает. Мы совершим экскурсию по дереву эволюции roguelike, начав с самой Rogue и пройдя весь путь до современных игр с «элементами roguelike».

Но для начала нам нужно ответить на важный вопрос.

Что такое «roguelike»?


Невозможно подобрать точное определение этому термину, кроме его буквального значения («игра наподобие Rogue»). Можно сказать, что roguelike — это путешествия по рандомизированным подземельям почти без сюжета или с полным его отсутствием; игрок сражается и с самим подземельем, и с монстрами внутри, бесконечно повторяя этот процесс, чтобы освоить схемы, содержание и системы, определяющие природу игры, пока не умрёт и не начнёт заново.

Но кое-кто пытался сузить это определение. Можно взять для примера «факторы высокого значения» Берлинской интерпретации, которые были приняты на Международной конференции по разработке roguelike 2008 года (International Roguelike Development Conference 2008). (Да, ежегодно проводится конференция для разработчиков roguelike, а также ещё одна для игроков.)
Читать дальше →

Собираем 8-битный компьютер: как уменьшить количество микросхем до шести

Reading time5 min
Views24K

Сочетание старого трюка с кодированием цветов в NTSC и современного железа позволяет собрать на удивление работоспособную машину

В 8-битных системах есть что-то перманентно притягательное: вы можете собрать автономную систему, достаточно мощную, чтобы поддерживать адекватное взаимодействие с пользователем, но достаточно простую, чтобы собрать и запрограммировать её самостоятельно. Большинство современных 8-битных машин, созданных любителями, завязаны на классических процессорах, которые жили в золотой век домашних компьютеров 1980-х годов, когда в качестве дисплеев использовали миллионы телевизоров. Вначале была идея собрать свою машину на базе процессора Motorola 6809 из той же эпохи. Я пытался использовать как можно меньше микросхем, но несмотря на мои старания, мне всё ещё нужно было 13 дополнительных микросхем для работы с ОЗУ и последовательной передачи данных. Тогда я задумался: а что, если я использую более современный 8-битный процессор? Насколько сильно при этом я смогу снизить количество необходимых мне микросхем?
Читать дальше →

Чем плоха СМС-аутентификация и как защититься от угона SIM-карты

Reading time6 min
Views28K
Привет, Хабр! В прошлой статье мы затронули тему, что аутентификация по СМС – не самый лучший способ многофакторной аутентификации. Такой способ используют многие веб-сервисы: соцсети, почтовые клиенты, платежные системы. Вдобавок номер телефона используется в качестве логина: для регистрации ВКонтакте, в Telegram и так далее. 

Если SIM-карту угонят, а СМС перехватят, последствия будут плачевны. Многие пользователи переписываются в мессенджерах с коллегами и партнерами, поэтому под угрозой окажутся не только личные данные, но и корпоративные.  Если в вашей компании  не используется корпоративная инфраструктура для общения, то незащищенные аккаунты сотрудников ставят под угрозу бизнес. Так что стоит позаботиться о безопасности заранее.

В этой статье возьмем несколько популярных сервисов и заменим СМС-аутентификацию на более безопасные способы. Заодно разберемся, как дополнительно защитить аккаунты от угона и спать спокойно.
На статью нас вдохновил лонгрид MyCrypto, посвященный защите от SIM-джекинга (SimJacking). Мы изучили их рекомендации и составили актуальный список для России. 

Читать дальше →

Ранжирование округов Москвы по стоимости аренды с Python

Reading time10 min
Views8.1K
Сейчас программирование все глубже и глубже проникает во все сферы жизни. А возможно это стало благодаря очень популярному сейчас python’у. Если еще лет 5 назад для анализа данных приходилось использовать целый пакет различных инструментов: C# для выгрузки (или ручки), Excel, MatLab, SQL, и постоянно “прыгать” туда сюда вычищая, сверяя и выверяя данные. То сейчас python, благодаря огромному количеству прекрасных библиотек и модулей, в первом приближении благополучно заменяет все эти инструменты, а в связке с SQL так вообще “горы свернуть можно”.

Итак, к чему я. Увлеклась я изучением такого популярного python’а. А лучший способ изучить что-либо, как вы знаете, — практика. А еще я интересуюсь недвижимостью. И попалась мне на глаза интересная задачка о недвижимости в Москве: проранжировать округа Москвы по усредненной стоимости аренды средней однушки? Батюшки, я подумала, да тут вам и геолокация, и выгрузка с сайта, и анализ данных — прекрасная практическая задача.

Воодушевившись замечательными статьями тут на Хабре (в конце статьи добавлю ссылки), приступим!
Читать дальше

Чем больше, тем хуже или почему важен игровой цикл

Reading time4 min
Views18K


По мере эволюции геймдизайна в течение последних 20 лет, продолжительность игр постоянно увеличивалась. В The Witcher 3 легко можно наиграть сотни часов, а Factorio или Dwarf Fortress можно вообще перепроходить не один раз.

Разработчики давно преследуют идею игр с бесконечной реиграбельностью. Отсюда и появились игры-сервисы. Многие геймдизайнеры (особенно на AAA-проектах) смотрят на игровой опыт как на десятки часов геймплея. А это не всегда хорошо.

Законы программирования

Reading time20 min
Views60K

Законы, теории, принципы и закономерности, полезные для разработчиков


Введение


Перевод репозитория github.com/dwmkerr/hacker-laws

При обсуждениях, связанных с разработкой ПО, люди часто говорят о различных законах. В данном репозитории хранятся ссылки и описания некоторых из наиболее известных из них.

Здесь содержатся объяснения некоторых законов, принципов и закономерностей, но нет никакой агитации в их пользу. Применять их или нет – это всегда вопрос спорный, и всё зависит от того, над чем вы работаете.

Законы


Закон Амдала


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

Создание виртуальных окружений и установка библиотек для Python 3 в IDE PyCharm

Reading time8 min
Views381K

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


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


Статья начинается с базовых вещей: с установки Python 3, инструментов разработки Pip и Virtualenv и среды разработки PyCharm в Windows и в Ubuntu. Для многих это не представляет трудностей и возможно, что уже всё установлено.


После чего будет то, ради чего задумывалась статья, я покажу как в PyCharm создавать и использовать виртуальные окружения и устанавливать в них библиотеки с помощью Pip.

Читать дальше →

5 инструментов геймдизайнера, которые помогут вашей игре

Reading time5 min
Views24K


Видеоигры существуют более 50 лет. За это время технологии скакнули от текстовой The Oregon Trail до фотореалистичной Red Dead Redemption 2. Не говоря уже о VR-тайтлах вроде Half-Life: Alyx, которая выходит в конце марта.

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

Information

Rating
Does not participate
Location
Россия
Registered
Activity