Pull to refresh
6
0
Send message

Возможно, вам не нужен ECS

Level of difficultyMedium
Reading time11 min
Views4.2K

Привет хабр.

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

Набор мнений очень сильно варьируется, но главная мысль проста - вам следует попробовать, а вернее нет, вам следует использовать ECS в вашей игре!
И если с первым я могу согласиться, то вот второе предлагаю обсудить.

Читать далее
Total votes 22: ↑19 and ↓3+20
Comments42

Всё что нужно знать про ECS

Reading time30 min
Views92K

Привет, Хабр! В этой статье я расскажу всё, что знаю про Entity-Component-System и попытаюсь развеять различные предубеждения об этом подходе. Здесь вы найдете много слов о преимуществах и недостатках ECS, об особенностях этого подхода, о том как с ним подружиться, о потенциальных граблях, о полезных практиках, а также в отдельном разделе коротко посмотрим на ECS фреймворки для Unity/C#.

Окунуться в мир ECS
Total votes 35: ↑34 and ↓1+36
Comments27

Пыль, пылевые клещи и их аллергены. Профилактика и защита

Reading time17 min
Views73K
Пыль и пылевые клещи в ней есть практически везде и всегда. Уничтожить их удается возможно только в условиях «чистых комнат» на производстве полупроводников. Приходится с этим мириться, и жить допуская, что все что нам под силу — уменьшить их количество. Считается, что если концентрация клещей < 100 штук на грамм пыли — аллергия у большинства не возникает. После того как пришлось пару-тройку минут чихать без остановки — у меня накопилось достаточно злобы, чтобы рассмотреть, что же представляет из себя пыль в квартире и что и кто в этой пыли живет. А теперь вот нашлось время, чтобы познакомить с «нашими маленькими друзьями» и читателей Хабра. В заметке рассуждения о некоторых особенностях биологии вездесущего домашнего паразита и методикам его контроля. То, что под катом можешь смело давать почитать жене, %username%!


Дружно скажем НЕТ пыли и ее обитателям
Total votes 90: ↑86 and ↓4+101
Comments85

Mkcert: валидные HTTPS-сертификаты для localhost

Reading time2 min
Views92K

В наше время использование HTTPS становится обязательным для всех сайтов и веб-приложений. Но в процессе разработки возникает проблема корректного тестирования. Естественно, Let’s Encrypt и другие CA не выдают сертификаты для localhost.

Традиционно есть два решения.
Читать дальше →
Total votes 65: ↑54 and ↓11+43
Comments35

Unity3D: Модификация делегата iOS приложения

Reading time15 min
Views3.9K
Думаю, многим в ходе разработке игры для iOS приходилось сталкиваться с тем, что возникает необходимость использовать тот или иной нативный функционал. Касаемо Unity3D, в данном вопросе может возникать очень много проблем: для того, чтобы внедрить какую-то фичу, приходится смотреть в сторону нативных плагинов, написанных на Objective-C. Кто-то в этот момент сразу отчаивается и забрасывает идею. Кто-то ищет готовые решения в AssetStore или на форумах, надеясь на то, что готовое решение уже существует. Если же готовых решений не существует, то самые стойкие из нас не видят другого выхода, кроме как погрузиться в пучину iOS программирования и взаимодействия Unity3D с Objective-C кодом.

Тех, кто выбирает последний путь (хотя, думаю, они и сами знают), ожидает множество проблем на этом нелегком и тернистом пути:

  • iOS — абсолютно незнакомая и обособленная экосистема, развивающаяся своим путем. Как минимум придется потратить довольно много времени, чтобы понять как можно подобраться к приложению, и где в недрах автоматически сгенерированного XCode проекта находится код взаимодействия Unity3D движка c нативной составляющей приложения.
  • Objective-C — довольно обособленный и мало на что похожий язык программирования. А когда речь заходит о взаимодействии с C++ кодом Unity3D приложения, то на сцену выходит «диалект» этого языка, под названием Objective-C++. Информации о нем совсем немного, большая ее часть древняя и архивная.
  • Сам протокол взаимодействия Unity3D с iOS приложением довольно скудно описан. Расчитывать стоит исключительно на туториалы энтузиастов в сети, которые пишут как разработать простейший нативный плагин. Мало кто при этом затрагивает более глубокие вопросы и проблемы, возникающие при потребности сделать что-то сложное.

Тех, кто хочет узнать о механизмах взаимодействия Unity3D с iOS приложением, прошу под кат.
Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments1

Вивисекция успеха

Reading time10 min
Views17K


В течение последних 13 лет я работаю в My.Com. Это очень большая компания, состоящая из более чем 10 разнообразных студий, делающих игры, в первую очередь мобильные. Такой масштаб подразумевает большую плотность запусков новых игр, где-то по 3-4 игры в год. Как вы понимаете, работа с таким потоком требует огромного умения оперативно и точно оценивать проекты на каждом этапе их создания.

И здесь главная сложность связана с проектами, демонстрирующими спорные результаты. Если со слабыми/сильными всё понятно, то вот с оценкой последних всегда возникают проблемы, так как задача уходит из плоскости оценки прямых показателей в плоскость оценки возможного потенциала проекта.
Читать дальше →
Total votes 34: ↑29 and ↓5+24
Comments5

typeof(T) vs. TypeOf⟨T⟩

Reading time12 min
Views21K
Иногда рефлексивные вызовы дороги в терминах производительности и не могут быть опущены.

В этой статье представлены паттерны, позволяющие существенно повысить производительность множественных рефлексивных вызовов посредством техники виртуализации (кэширования) результатов.

image
Читать дальше →
Total votes 17: ↑12 and ↓5+7
Comments229

Иллюзия пространства: как новый Spiderman рендерит помещения без геометрии

Reading time5 min
Views47K

В недавно выпущенной игре Marvel's Spider-Man во многих зданиях за окнами есть интерьеры. Они выглядят замечательно, но похоже, что их реализовали с помощью хитрого рендеринга — геометрии интерьеров на самом деле не существует и она сгенерирована шейдером. Я не видел никаких официальных заявлений Insomniac о том, как они это сделали, но исходя из того, как выглядит эффект, здесь с большой вероятностью реализована техника interior mapping, которую я придумал в 2007 году в процессе работы над диссертацией. Раньше я не писал о ней в блоге, поэтому сейчас подходящий момент для объяснения любопытного небольшого шейдера, который я придумал.

Давайте начнём с просмотра геймплея Marvel's Spider-Man. Игра выглядит просто потрясающе. Сайт Kotaku записал отдельный ролик, посвящённый окнам:


Как можно заметить примерно на 40 секунде видео, в самом деле комнаты не являются частью геометрии: там где очевидно должно быть окно, находится дверь. Кроме того, глядя в одну комнату с разных углов здания, мы видим разный интерьер. В некоторых случаях за углом здания даже находится стена. Всё это даёт нам понять, что комнаты имитируются. Тем не менее, с точки зрения перспективы они отображаются правильно и обладают реальной глубиной.
Total votes 90: ↑89 and ↓1+88
Comments38

Основные практики обеспечения безопасности iOS-приложений

Reading time9 min
Views13K


При разработке любого мобильного приложения, обрабатывающего пользовательские данные, важно уделить внимание безопасности. Особенно остро этот вопрос стоит для приложений, где фигурируют ФИО, номера телефонов, паспортов и другая личная информация. Наша компания разрабатывала и продолжает развивать несколько проектов такого рода, в частности приложения для клиентов российских банков. На основе этого опыта мы выработали набор требований безопасности, которым руководствуемся. Естественно, каждый год появляются новые технологии и возможности, а вместе с ними — новые особенности поведения и уязвимости. В этой статье мы зафиксировали основные пункты обеспечения безопасности iOS-приложений, актуальные на начало 2018 года.
Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments14

Нейронные сети для начинающих. Часть 1

Reading time7 min
Views1.6M
image

Привет всем читателям Habrahabr, в этой статье я хочу поделиться с Вами моим опытом в изучении нейронных сетей и, как следствие, их реализации, с помощью языка программирования Java, на платформе Android. Мое знакомство с нейронными сетями произошло, когда вышло приложение Prisma. Оно обрабатывает любую фотографию, с помощью нейронных сетей, и воспроизводит ее с нуля, используя выбранный стиль. Заинтересовавшись этим, я бросился искать статьи и «туториалы», в первую очередь, на Хабре. И к моему великому удивлению, я не нашел ни одну статью, которая четко и поэтапно расписывала алгоритм работы нейронных сетей. Информация была разрознена и в ней отсутствовали ключевые моменты. Также, большинство авторов бросается показывать код на том или ином языке программирования, не прибегая к детальным объяснениям.

Поэтому сейчас, когда я достаточно хорошо освоил нейронные сети и нашел огромное количество информации с разных иностранных порталов, я хотел бы поделиться этим с людьми в серии публикаций, где я соберу всю информацию, которая потребуется вам, если вы только начинаете знакомство с нейронными сетями. В этой статье, я не буду делать сильный акцент на Java и буду объяснять все на примерах, чтобы вы сами смогли перенести это на любой, нужный вам язык программирования. В последующих статьях, я расскажу о своем приложении, написанном под андроид, которое предсказывает движение акций или валюты. Иными словами, всех желающих окунуться в мир нейронных сетей и жаждущих простого и доступного изложения информации или просто тех, кто что-то не понял и хочет подтянуть, добро пожаловать под кат.
Читать дальше →
Total votes 70: ↑60 and ↓10+50
Comments64

Бухгалтерский учет для программистов

Reading time16 min
Views82K

Введение


Занимаюсь автоматизацией бухгалтерского учета 17 лет. После универа поработал как программист бухгалтерской программы. Выяснилось, что есть спрос на программистов этой программы. Поменял одну работу, вторую. Начал брать заказы на стороне. Выяснилось (или показалось), что выполнять заказы выгоднее, чем получать зарплату. Стал частным предпринимателем. Выяснилось (или опять показалось), что продавать программу выгоднее, чем программировать. Стал дилером. Оказалось, что выгоднее всего – подписка на обновления и обслуживание. Возможно, еще выгоднее сделать веб-сервис для онлайн-бухгалтерии…

В ходе работы приходилось нанимать программистов и обучать основам бухгалтерского учета. Когда обучал программистов бухучету, мне нравилось за час рассказать им всю базовую теорию. Приятно срывать покровы сложности и таинственности. Оказывается, курсы бухгалтеров никому не нужны. Нет такой науки. Разве что набор терминов, в которых путаются сами бухгалтера…
Читать дальше →
Total votes 51: ↑51 and ↓0+51
Comments182

Ожидания и реальность — наш опыт создания и продвижения мобильной игры

Reading time6 min
Views12K
image

Привет всем. Меня зовут Ярослав, сегодня я расскажу вам о том, как мы создавали мобильную игру Crazy Shapes Run Adventure — что уже успели прожить, а также самые интересные и полезные вещи, которые помогут вам избежать многих ошибок.

Предыстория


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

Зарождение идеи


Сначала хотели выбрать что-то другое, но остановились именно на идее приключенческого раннера для смартфонов и планшетов, потому что они пользуются огромным спросов во всех странах. И начали претворять задумки в жизнь.
Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments15

Почему мы не стали делать идеально: как менялась инфраструктура серверов War Robots

Reading time5 min
Views20K


Первый прототип (например, игры в новой для вас нише) часто делается «на коленке» из палок и самизнаетечего. Причем палки, как правило, тоже из этого самизнаетечего. И на то есть несколько причин.

Во-первых, от неудачной идеи будет не так жалко отказаться. А во-вторых, в погоне за перфекционизмом можно забыть о потребностях конечных пользователей или никогда не закончить работу даже над альфа-версией. Но что, если в вашу «глиняную» повозку стало набираться так много людей, что перестраивать её на ходу уже не кажется такой привлекательной идеей? Примерно это с нами и случилось.

Забегу вперед и расскажу, что сейчас DAU в наших проектах около 1,5 млн. Но так было не всегда.
Читать дальше →
Total votes 52: ↑51 and ↓1+50
Comments16

Пара способов отправить уведомления на смартфон со своего сервера

Reading time9 min
Views91K
В этом туториале я рассмотрю пошагово, как отправлять со своего сервера уведомления на свой (или не свой) смартфон, какие средства для этого понадобятся. Эти способы универсальны и подойдут для любого языка программирования, т.к. напрямую используют API гугла, без использования библиотек. Отправить можно на смартфоны с Android, iOS и в браузеры с поддержкой Push API (на сегодня это Chrome, Firefox и их производные).

В общем всем тем, кто давно хотел отправлять уведомления со своего домашнего сервера на свой смартфон, но не знал с чего начать, посвящается.
Хочу отправлять свои уведомления!
Total votes 49: ↑43 and ↓6+37
Comments81

Научные способы побороть усталость: ноотропы, кофе и нейротехнологии

Reading time17 min
Views121K


Недавно я заметил, что устал быть уставшим. Но можно ли это исправить? Я часто и много пью кофе – оно помогает, но ненадолго. А есть ли что-нибудь ещё не менее эффективное? В общем, после того как мне пришли эти мысли я решил закопаться в научную литературу: что известно про доказанные инструменты борьбы с усталостью. Как борются с усталостью биохакеры? Здесь я поделюсь личным расследованием того, что публикуют ученые о борьбе с усталостью.

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

Инициаторами таких исследований являются, как правило, вооруженные силы, и первоначально проводятся они для оптимизации профессий, требующих особую собранность и выносливость: летчики, пехотинцы, водители. Существует, однако, целое сообщество биохакеров (или даже – «нейрохакеров»), которые немедленно берут такие технологии «на вооружение» и начинают самостоятельно использовать их в домашних условиях.
Читать дальше →
Total votes 45: ↑43 and ↓2+41
Comments334

Как Angry Birds 2 за год увеличила доход в несколько раз

Reading time15 min
Views16K

После выпуска Angry Birds 2 в конце июля 2015 года игра получила смешанные отзывы. И Pocket Gamer, и IGN хвалили игру за превосходную графику и значительно улучшенный дизайн уровней, но корили Rovio за механику жизней в стиле Candy Crush и случайные уровни.

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

— Из обзора Angry Birds 2 на IGN

Если посмотреть на загрузки, то выпуск Angry Birds 2 стал огромным успехом. К концу 2015 года игра почти достигла рубежа в 50 миллионов загрузок. Однако с точки зрения доходов всё выглядело гораздо мрачнее: игра заработала «всего» около 10 миллионов долларов.



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

Вместо того, чтобы брать курс на простое добавление уровней, стокгольмский разработчик Angry Birds 2 принялся за работу. Обновления 2016 года добавили в игру несколько базовых механик, такие как повышение уровня птиц и рогатки, ежедневные задания и PvP-арена. В то же время стабильно и постепенно добавлялся новый контент уровней.
Total votes 11: ↑10 and ↓1+9
Comments9

WebGL: перевод игры с мобильной платформы на десктопную

Reading time6 min
Views8K
Создание десктопной версии мобильной игры стало настоящей исследовательской миссией для краснодарской студии Plarium. В этой статье мы расскажем, как перешли на технологию WebGL при переносе проекта Vikings: War of Clans на новую платформу.

image
Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments2

Как я слил 1000$ в продвижение игры и что из этого получилось

Reading time6 min
Views60K


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

Для многих знакома ситуация, делал-делал, а кроме друзей так и никто и не увидел игру, а ведь так старался! Под катом не будет расплывчатых формулировок или предположений по продвижению. Конкретно ссылки — конкретно результат. Поехали!
Читать дальше →
Total votes 82: ↑81 and ↓1+80
Comments79

Использование BSP-деревьев для создания игровых карт

Reading time9 min
Views27K
image

При заполнении области объектами (например, комнатами в подземелье) в случайном порядке вы рискуете тем, что всё будет слишком случайным. Результат может оказаться абсолютно бесполезным хаосом. В этом туториале я покажу, как использовать для решения этой проблемы двоичное разбиение пространства (Binary Space Partitioning, BSP).

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

Примечание: хоть код примеров и написан на AS3, концепцию можно использовать практически в любом другом языке.
Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments5

Пост-эффекты в мобильных играх

Reading time8 min
Views27K


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

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

Помимо того, что пост-эффекты (точнее — их не очень грамотное использование) являются предметом ненависти среди игроков, они также едва ли не единственный способ быстро и дешево «оживить» и «освежить» картинку. Насколько качественным получится это «оживление» и не обернется ли оно в результате «свежеванием», зависит по большей части от художников.
Читать дальше →
Total votes 46: ↑46 and ↓0+46
Comments8

Information

Rating
Does not participate
Registered
Activity