Лето 2021 года выдалось жарким не только из-за погоды, но и новостей из мира Ransomware. В конце мая группа DoppelPaymer произвела, пользуясь маркетинговым термином, "ребрендинг", переименовав свои новые программы-вымогатели в Grief (Pay OR Grief). А в июне-июле группы DarkSide и REvil друг за другом последовательно исчезли из публичного пространства после громких атак на компании Colonial Pipeline и Kaseya соответственно. Под конец июля на рынок групп, зарабатывающих вымогательством, вышел новой игрок – BlackMatter. Но вот новый ли?
Эдуард @BIanF
Разработчик
Подключаем устройства Intel для интернета вещей к Microsoft Azure IoT Suite
9 min
8.1KTranslation
Если подключить устройства для IoT, основанные на микроконтроллерах Intel, к PAAS-решению Microsoft Azure IoT Suite, получится среда для реализации бесчисленного множества проектов в области интернета вещей. Сегодня мы расскажем об особенностях Azure IoT Suite и поговорим о том, как связывать с этим набором облачных служб Intel Edison, Intel Curie и шлюзы от Intel.
+27
Делаем работу нашего гейм-дизайнера в Unity удобнее и приятнее
9 min
41KTutorial
Добрый день, Хабр. В эфире снова я, Илья Кудинов, QA-инженер компании Badoo. В свободное от основной работы время я занимаюсь разработкой игрушек на Unity 3D и решил в качестве эксперимента написать статью об одной из проблем, с которой столкнулась наша команда. Я являюсь основным разработчиком, и наш гейм-дизайнер в «гробу видал» копание в моем коде с какой бы то ни было целью (разделение труда — одно из величайших достижений цивилизации), значит, моя обязанность — предоставить ему все необходимые рычаги управления и настройки геймплея в виде удобных визуальных интерфейсов. Благо Unity сам по себе имеет достаточно удобные (кхе-кхе) готовые интерфейсы и ряд методов их расширения. И сегодня я расскажу вам о некоторых приемах, которые делают жизнь нашего гейм-дизайнера проще и удобнее, а мне позволяют не биться головой о клавиатуру после каждого его запроса. Надеюсь, они смогут помочь каким-нибудь начинающим командам или тем, кто просто упустил эти моменты при изучении Unity.
Сразу скажу, что наша команда все еще активно учится и развивается, хоть мы уже и выпустили дебютную игру. И если «дедлайны не горят», то я предпочитаю разбираться в каких-то вещах сам, а не обращаться к экспертам и различным best practices. Поэтому что-то из рассказанного мною может оказаться не оптимальным или банальным. Буду очень рад, если в таких случаях вы подскажете мне более удобные решения в комментариях и личных сообщениях. Ну и в целом информация здесь скорее базового уровня.
Сразу скажу, что наша команда все еще активно учится и развивается, хоть мы уже и выпустили дебютную игру. И если «дедлайны не горят», то я предпочитаю разбираться в каких-то вещах сам, а не обращаться к экспертам и различным best practices. Поэтому что-то из рассказанного мною может оказаться не оптимальным или банальным. Буду очень рад, если в таких случаях вы подскажете мне более удобные решения в комментариях и личных сообщениях. Ну и в целом информация здесь скорее базового уровня.
+38
Сертификация в Apple Developer Center простым и понятным языком
12 min
137KКратко о главном
В Apple Developer Center с незапамятных времен применяется довольно мудреная система сертификации ваших приложений на каждом из ключевых этапов — разработка, тестирование и публикация.
Зачастую при первом погружении в эту систему у начинающих (и не только) разработчиков возникают серьезные проблемы с пониманием того, как функционирует Apple Developer Center (будем называть его «девцентр» для простоты). В результате, мне в процессе профессиональной деятельности не раз приходилось наблюдать на новых местах работы огромные свалки из профилей и сертификатов в девцентре, в результате чего приходилось приступать к «разбору завалов».
При этом, в сети довольно не такой большой выбор материалов на эту тему. Конечно, в официальной документации Apple все хорошо структурировано и очень подробно описано, но зачастую просто не хватает времени на изучение такого количества материала. Как правило, хочется быстро понять, что именно и в каком порядке нужно сделать для корректной работы приложения на этапах разработки, тестирования и при публикации его в магазин App Store. В русском же сообществе подобных материалов, собранных в одном месте и в удобном доступе, я не видел вовсе, поэтому и решил написать эту статью. Для всех интересующихся — добро пожаловать под кат.
+19
Sound Manager для небольших игр и прототипов на Unity
6 min
32KВоспроизвести звук в Unity просто. Нужно создать компонент AudioSource прикрепить к нему звуковой файл в виде AudioClip и вызвать audioSource.Play() из скрипта. Или даже поставить автовоспроизведение на при создании объекта(Play on Awake).
Сложности начинаются когда звуков в игре становится много. Их все нужно расставить, прописать приоритеты. Звуки отдельно, музыку отдельно. При регулировке громкости звуков и музыки раздельно тоже сложности. Можно, конечно, регулировать громкость разных каналов в AudioMixer, но он не работает в WebGL. А Webplayer сейчас считается устаревшим.
А если какой то звук повторяется несколько раз подряд(например игрок быстро нажимает на кнопку и играет звук клика), то хорошо бы чтобы тот не обрывался на середине, а начинался новый, не мешая предыдущим. Да еще и при включении паузы звуки игры нужно ставить на паузу, а звуки меню нет. Из коробки такая возможность в Unity есть, но почему то доступна только из скрипта и не все о ней знают.
В общем хочется простой и удобный SoundManager, создание которого я и опишу. Для крупных проектов он не подойдет, а вот для прототипов и небольших игр вполне.
Сложности начинаются когда звуков в игре становится много. Их все нужно расставить, прописать приоритеты. Звуки отдельно, музыку отдельно. При регулировке громкости звуков и музыки раздельно тоже сложности. Можно, конечно, регулировать громкость разных каналов в AudioMixer, но он не работает в WebGL. А Webplayer сейчас считается устаревшим.
А если какой то звук повторяется несколько раз подряд(например игрок быстро нажимает на кнопку и играет звук клика), то хорошо бы чтобы тот не обрывался на середине, а начинался новый, не мешая предыдущим. Да еще и при включении паузы звуки игры нужно ставить на паузу, а звуки меню нет. Из коробки такая возможность в Unity есть, но почему то доступна только из скрипта и не все о ней знают.
В общем хочется простой и удобный SoundManager, создание которого я и опишу. Для крупных проектов он не подойдет, а вот для прототипов и небольших игр вполне.
+10
+26
После прочтения применить. 25 книг для игрового разработчика
8 min
119KПредлагаю подборку всегда актуальных книг по программированию, геймдизайну и концепт-арту для новичков и бывалых бойцов геймдева. Конечно, во главе профессионального развития стоит практика, но эти книги сэкономят ваше время и позволят не выдумывать велосипед заново.
+13
Как подружить HTML5 с мобильными ОС
11 min
20KTutorial
“Ты совсем рехнулся с этим WebGL!”, как-то заявил мне знакомый разработчик: “Изучаешь новый движок ради одной платформы?!”
А ведь и, правда, работая с Unity, я получаю доступ ко многим платформам. Работая с Blend4Web — только к одной. Крупные компании могут позволить себе использовать несколько технологий для качественного портирования игры, в случае инди — это большая проблема.
И что, разрабатывая браузерный проект не с Unity, я ставлю крест на остальных платформах? Честно, этот разговор сильно поколебал мою решимость. Но недавно я услышал о фреймворках, с помощью которых можно чудесным образом портировать HTML5 на множество мобильных платформ.
Не все оказалось так просто. Хотя удалось найти пару многообещающих инструментов, которые показали приличные результаты.
А ведь и, правда, работая с Unity, я получаю доступ ко многим платформам. Работая с Blend4Web — только к одной. Крупные компании могут позволить себе использовать несколько технологий для качественного портирования игры, в случае инди — это большая проблема.
И что, разрабатывая браузерный проект не с Unity, я ставлю крест на остальных платформах? Честно, этот разговор сильно поколебал мою решимость. Но недавно я услышал о фреймворках, с помощью которых можно чудесным образом портировать HTML5 на множество мобильных платформ.
Не все оказалось так просто. Хотя удалось найти пару многообещающих инструментов, которые показали приличные результаты.
+12
Работа с освещением в Unity — теория и практика
13 min
182KВ видеоиграх красивое освещение в реальном времени сильно бьёт по производительности, что особенно заметно на мобильных устройствах. Таким образом, разработчики вынуждены искать методы обхода этой проблемы. Lightmapping — технология, сохраняющая информацию об освещении в текстуру, что позволяет высвободить вычислительные ресурсы под другие нужды.
В этой статье я познакомлю читателя с теорией освещения в играх, опишу процесс создания “лайтмапа” в Unity 5 и поделюсь рядом советов.
В этой статье я познакомлю читателя с теорией освещения в играх, опишу процесс создания “лайтмапа” в Unity 5 и поделюсь рядом советов.
+38
Практическое руководство по взлому (и защите) игр на Unity
7 min
209KTutorial
Translation
Когда речь идёт о программном обеспечении, термин «взлом» зачастую ассоциируют с пиратством и нарушением авторских прав. Данная статья не об этом; напротив, я решительно не одобряю любые действия, которые прямо или косвенно могут навредить другим разработчикам. Тем не менее, эта статья всё же является практическим руководством по взлому. Используя инструменты и методы о которых далее пойдёт речь, вы сможете проверить защиту собственной Unity игры и узнаете, как обезопасить её от взлома и кражи ресурсов.
+30
Как научиться делать игры: полезные ресурсы
9 min
111KКогда я начинал строить свою карьеру в игровой индустрии шесть лет назад, то часто задавался вопросами по геймдеву. Начиная от поиска общего понимания того, как разрабатываются и оперируются онлайн-игры, до частных вопросов типа того, как лучше рекламировать конкретную игру. Тогда было мало структурированной информации по созданию и продвижению игр, новичку разобраться и найти ответы было исключительно сложно. Практически единственным источником информации был собственный опыт и консультации более опытных коллег. Сейчас ситуация кардинально изменилась. Информации по игровой индустрии настолько много, что рискуешь в ней просто утонуть. Для того, чтобы упростить процесс получения нужных мне знаний, я структурировал и делал себе пометки по всем источникам информации о геймдеве. Далее в статье предлагаю всю эту информацию в удобной форме для общего пользования.
+46
Самый простой и самый сложный Builder на Java
9 min
38KОдин из часто рассматриваемых паттернов — паттерн Builder. В основном рассматриваются варианты реализации «классического» варианта этого паттерна:
MyClass my = MyClass.builder().first(1).second(2.0).third("3").build();
Паттерн прост и понятен как табурет, но чувствуется какая-то недосказанность — то минимальный вариант объявляется антипаттерном, то более сложные случаи игнорируются. Хотелось бы исправить этот момент, рассмотрев предельные случаи и определив минимальную и максимальную границы сложности этого паттерна.
Итак, расссмотрим их:
+19
Альтернативы Google Play и App Store или как живет Китай без Google Play
3 min
235KRecovery Mode
Альтернативные сторы не столь популярны в России, но являются неотъемлемой частью китайского мобильного рынка, где Google Play заблокирован. Глядя на Андроид, некоторые китайские компании запустили собственные iOS сторы. При этом устанавливать игры и приложения с таких сторов можно и на обычные iPhone (не Jailbreak). Это одна из особенностей, которую было бы неплохо распространить по всему миру, ведь монополия официальных сторов это не есть хорошо. На российском рынке альтернативный стор запустил пока только Яндекс. Но его доля очень маленькая, поэтому его пока сложно назвать конкурентом Google Play. Возможно в будующем ситуация изменится, в первую очередь за счет выхода китайских сторов на другие рынки, так например уже многие слышали про приложение – Mobogenie. Но мы решили разместить более полный список альтернативных приложений, которые существую на сегодняшний день.
+12
Чудо свершилось. Вышла «отвязанная» версия Arduino Mega Server
6 min
55KРеволюция о которой так долго говорили большевики свершилась. Теперь вы можете взять карточку памяти microSD, записать на неё файлы дистрибутива AMS и ваша Arduino превратиться в маленькое (или большое, это как посмотреть) чудо. Вам больше не нужны «костыли» с поддержкой стороннего сервера, Arduino Mega Server стал полностью автономным и вполне «юзабельным» в одиночном режиме работы. И это открывает для всех нас очень интересные перспективы.
+28
Глава 1. «Что такое Виртуальные Миры и как они возникли». Перевод книги Ричарда Бартла «Designing Virtual Worlds»
15 min
17KПриглашаю всех присоединиться к переводу книги. За перевод первой главы спасибо Лилии Кутуевой.
Начало тут.
Несмотря на то, что могут быть (и есть) и более фундаментальные определения этого понятия, тем не менее, Виртуальные Миры (ВМ) всегда придерживаются определенных условий, отличающих их от других родственных виртуальных пространств. Самыми основными будут следующие:
Игровой чат не является ВМ, потому что не имеет заданных физических параметров. Варгейм-стратегия не проецирует игрока на персонажа, которым он играет. Игра по электронной почте не происходит в режиме реального времени. Игра с одним игроком не является многопользовательской. Мир шутера от первого лица неустойчив.
В некоторых примерах аргументы не столь однозначны. Например, являются ли настольные РИ виртуальными мирами? Нет, потому что они не автоматизированы, но уже недалеки от этого. Может ли образовательный МПМ из двух игроков быть назван виртуальным? Возможно. Будет ли таковым мир игры на 500 игроков, мир столь большой, что некоторые игроки могут никогда друг с другом и не встретиться? Да, но это спорный вопрос.
На поверку определить, является ли мир виртуальным или нет, довольно легко – достаточно проверить его происхождение. Если его устройство в значительной степени списано с устройства существующего ВМ, почти наверняка это – ВМ; если же нет, тогда почти наверняка это не он.
Начало тут.
Несмотря на то, что могут быть (и есть) и более фундаментальные определения этого понятия, тем не менее, Виртуальные Миры (ВМ) всегда придерживаются определенных условий, отличающих их от других родственных виртуальных пространств. Самыми основными будут следующие:
- В основе ВМ лежат базовые автоматизированные правила, которые побуждают игроков производить в нем изменения (однако, они не могут менять сами правила, которые дают им такую возможность). Таковы физические основы ВМ.
- Игроки играют своих персонажей «внутри» мира. Они могут обладать частичным или полным влиянием на войско, команду или группу людей, но в этом мире есть лишь одна игровая сущность, которой они представлены и с которой прочно связаны – это их персонаж. Поэтому и все взаимодействия с миром и другими игроками опосредованы этим персонажем.
- Взаимодействие с миром осуществляется в режиме реального времени. Соответственно, когда вы что-то в нем делаете, можете ожидать немедленной ответной реакции.
- Этот мир – многопользовательский.
- Этот мир – стабилен (по крайней мере, до некоторой степени).
Игровой чат не является ВМ, потому что не имеет заданных физических параметров. Варгейм-стратегия не проецирует игрока на персонажа, которым он играет. Игра по электронной почте не происходит в режиме реального времени. Игра с одним игроком не является многопользовательской. Мир шутера от первого лица неустойчив.
В некоторых примерах аргументы не столь однозначны. Например, являются ли настольные РИ виртуальными мирами? Нет, потому что они не автоматизированы, но уже недалеки от этого. Может ли образовательный МПМ из двух игроков быть назван виртуальным? Возможно. Будет ли таковым мир игры на 500 игроков, мир столь большой, что некоторые игроки могут никогда друг с другом и не встретиться? Да, но это спорный вопрос.
На поверку определить, является ли мир виртуальным или нет, довольно легко – достаточно проверить его происхождение. Если его устройство в значительной степени списано с устройства существующего ВМ, почти наверняка это – ВМ; если же нет, тогда почти наверняка это не он.
+11
Некоторый опыт разработки игры на Unity3D
6 min
37KНе считаю себя опытным программистом и тем более серьезным разработчиком игр. Я человек, который увлекается программированием и у меня немного получается. Статья не претендует называться учебным материалом, или наставлением.
Скриношты для привлечения внимания:
Стоит ли заниматься подобным, не имея серьезных знаний в разработке игр, моделировании, программировании? Ответа на вопрос от меня не последует, он у каждого будет свой. С уверенностью могу сказать точно — я не пожалел. Я попытаюсь кратко и четко выделить и описать узкие места с которыми я столкнулся, проложить карту по граблям.
Unity3d с недавних пор разрешено использовать бесплатно и на всю мощь. Я долго метался между несколькими движками, но c# оказался для меня решающим преимуществом. Кроме того, в Unity3d очень удобный способ построения пользовательского интерфейса. Для тех кто не боится Lua, также могу посоветовать Project Anarchy, или Unreal Engine 4 если не брезгуете визуальным программированием. У меня сложилось впечатление, что Unity3D прекрасно подходит для мобильной разработки. К сожалению у Unity3D слабое русскоязычное комьюнити и нередко приходится лезть на официальный qa.
Скриношты для привлечения внимания:
Моральная сторона вопроса
Стоит ли заниматься подобным, не имея серьезных знаний в разработке игр, моделировании, программировании? Ответа на вопрос от меня не последует, он у каждого будет свой. С уверенностью могу сказать точно — я не пожалел. Я попытаюсь кратко и четко выделить и описать узкие места с которыми я столкнулся, проложить карту по граблям.
Unity3d
Unity3d с недавних пор разрешено использовать бесплатно и на всю мощь. Я долго метался между несколькими движками, но c# оказался для меня решающим преимуществом. Кроме того, в Unity3d очень удобный способ построения пользовательского интерфейса. Для тех кто не боится Lua, также могу посоветовать Project Anarchy, или Unreal Engine 4 если не брезгуете визуальным программированием. У меня сложилось впечатление, что Unity3D прекрасно подходит для мобильной разработки. К сожалению у Unity3D слабое русскоязычное комьюнити и нередко приходится лезть на официальный qa.
+12
Unity 5 uNet – новая сетевая подсистема. Этюд по авторитарной архитектуре
8 min
38KRecovery Mode
Пример реализации сетевой архитектуры в Unity3D с авторитарным сервером
В виду того, что:
а) старые сетевые принципы Unity3D, как говорится, устарели;
б) я всё равно не понимал, как у меня заработало то колдунство.
в) назойливо появился новый метод и начал прыгать в глаза при каждом запуске Unity.
я решил, что надо в сетевом обмене разобраться плотнее и устранить область “here be dragons”.
+10
In App Purchase с помощью Soomla. Быстро и просто
6 min
15KВ последнее время пришлось интегрировать внутриигровые покупки в свою игру и встал вопрос, а какой же плагин для этого использовать под Unity3D? Есть такие вещи как OpenIAB, Prime31, Unibill и Soomla. Более мелкие вещи брать в расчет не будем, ибо некоторые из них либо не обновляются вообще, либо имеют какие-то критические проблемы. Кто хочет знать, почему выбор пал именно на Soomla, и как его интегрировать прошу под кат.
+13
Spring без XML. Часть 2
9 min
20KTutorial
И снова день добрый. Пост в продолжение публикации «Spring + Java EE + Persistence, без XML. Часть 1».
Если вы хотите с этой части начать, либо не осталось проекта сделанного в предыдущей части, можете скачать его с github.
Схема простая:
В этой части мы рассмотрим как хранятся отношения многие-ко-многим на уровне объектов сущностей;
доделаем распределения прав пользователям;
сделаем простейший REST-controller;
сделаем регистрацию новых пользователей (только для админа);
и все это без XML.
Содержание
1. Введение
1.1 Подгружаем проект
1.2 Что мы будем делать в этой части?
2. Фиксим распределение ролей между пользователями
2.1 Работа с базой
2.2 Пишем код
3. Создаем контроллер UsersController
3.1 Реализуем создание нового пользователя
3.2 Добавляем работу с конкретным пользователем
4. Для желающих запустить готовый проект
5 Заключение
1. Введение
1.1 Подгружаем проект
Если вы хотите с этой части начать, либо не осталось проекта сделанного в предыдущей части, можете скачать его с github.
Схема простая:
- Заходите из консоли в папку с проектами IDEA
- git clone github.com/MaxPovver/ForHabrahabr.git
- cd ForHabrahabr/
- git checkout withauth
- Готово, теперь можете грузить проект в студию так же как описано в первой части.
1.2 Что мы будем делать в этой части?
В этой части мы рассмотрим как хранятся отношения многие-ко-многим на уровне объектов сущностей;
доделаем распределения прав пользователям;
сделаем простейший REST-controller;
сделаем регистрацию новых пользователей (только для админа);
и все это без XML.
+8
Как реализовать конвертацию из растра в черно-белый вектор на сайте
3 min
26KВсе графические файлы делятся на два глобальных типа — растровые и векторные. Иногда нужно сделать конвертацию из растра в черно-белый вектор. Например, для трассировки черно-белых иконок, QR-кодов, штрих-кодов, картинок с растровыми надписями, чеков или картинок в блоге.
+14
Information
- Rating
- Does not participate
- Location
- Санкт-Петербург и область, Россия
- Registered
- Activity
Specialization
Mobile Application Developer, Game Developer