Search
Write a publication
Pull to refresh
4
0
Send message

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

Reading time10 min
Views11K


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

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

Используем ее и мы в своем мобильном мультиплеерном шутере Dino Squad.

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

Выбираем канал для точки доступа Wi-Fi. Исчерпывающее руководство

Reading time9 min
Views331K
2,4 ГГц — это плохо. 5 ГГц — это хорошо. 6 ГГц — это ещё лучше, но послезавтра. Все это знают, кого я тут учу, в самом деле. Всё это хорошо, только делать-то что, когда ты такой, как умный, открываешь какой-нибудь Wi-Fi Explorer, а там сатанизм и этажерки, как на скриншоте?



Шаг первый — поплакать. Шаг второй — нырнуть под кат. Вопрос простой, а ответ — нет.
Когда это нас останавливало?

20 платформ для заработка на тестировании

Reading time7 min
Views297K
Чтобы протестировать веб-сайты из дома, вы должны быть знакомы с интернетом и хорошо говорить по-английски. Вам также понадобится базовое оборудование, такое как компьютер с микрофоном и камерой и стабильное подключение к Интернету. Большинство тестов занимает от 5 до 25 минут, и в среднем компании платят 10 долларов за тест.


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

История одной блокировки и разблокировки в Google Play

Reading time5 min
Views11K
Все началось в 6 утра 12 мая. На связанную с нашими аккаунтами почту пришло «письмо несчастья».

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


Почта no-reply как бы намекала...
Читать дальше →

Разработка, оптимизация и релиз на Unity игры Synthety

Reading time4 min
Views4.8K
image

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

Немного коротко обо всем.

Игра Synthety в жанре квест — приключение. Цель игры найти выход с текущей локации на следующую. Для этого необходимо общаться с персонажами, взаимодействовать с окружающими предметами, решать головоломки и прочее. От начала разработки и до релиза игры пролетели около полугода. Игра разрабатывалась на движке Unity на языке C#. В данном посте хотелось бы поделиться советами и подсказками в разработке и релизе игры.
Читать дальше →

Собеседую программистов на Java. Единый набор вопросов для любого уровня

Reading time4 min
Views28K
В своей карьере мне приходилось быть и разработчиком, и менеджером, и даже один раз «CTO» в небольшом стартапе. И, разумеется, приходилось проводить большое количество собеседований кадидатов. Поэтому для себя я выработал такие правила проведения технических собеседований:

  • всем кандидатам задавать одинаковые вопросы,
  • вопросы должны быть такие, чтобы на них ответил и junior, и senior, но по разному,
  • после трёх вопросов должен быть понятен уровень кандидата.

И вот такие три вопроса для Java-разработчиков у меня получились.
Читать дальше →

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

Reading time3 min
Views4.2K
image

Иногда “добрые люди” интересуются какую бы новую акцию придумать, чтобы повысить средний чек игроков, конвертировать неплатящих в платящих или, чем черт не шутит, увеличить LTV. Вопрошающие в большинстве случаев не идут дальше банальностей вроде “предложить больше ништяков за меньшие деньги” или “побрейнштормить”. А между тем, монетизационных концепций т.е. принципов на которых строится монетизация в играх, не так чтоб очень много. Я бы даже сказал — совсем немного и вместо того, чтобы придумывать что-то из головы, высматривать в остатках кофейной гущи или выкуривать из бабушкиного гербария, стоило бы присмотреться к уже существующим играм и совершить перенос их подхода к себе. Под “переносом” понимаю не тупое “сдирание”/копирование, как это обычно бывает, а адаптацию под свой конкретный случай.

О том, как это можно делать см. в продолжении статьи.
Читать дальше →

Как я использую AirDrop вместо Тиндера

Reading time10 min
Views174K


В устройствах Apple есть прекрасная функция Airdrop — она сделана для пересылки данных между устройствами. При этом никакой настройки и предварительного сопряжения устройств не требуется, все работает из коробки в два клика. Для передачи данных используется надстройка над Wi-Fi, и поэтому данные передаются с огромными скоростями. При этом используя некоторые трюки, можно не просто пересылать файлы, но и узнать телефонный номер человека, находящегося с тобой в одном вагоне метро.

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

Под катом я расскажу за всю хурму.
Компания RUVDS.COM не несёт ответственности за повторение действий описанных в данном материале.
Читать дальше →

Принципы SOLID в картинках

Reading time4 min
Views534K


Если вы знакомы с объектно-ориентированным программированием, то наверняка слышали и о принципах SOLID. Эти пять правил разработки ПО задают траекторию, по которой нужно следовать, когда пишешь программы, чтобы их проще было масштабировать и поддерживать. Они получили известность благодаря программисту Роберту Мартину.

В Сети множество отличных статей, где рассказывается о принципах SOLID, но иллюстрированных среди них мне практически не попадалось. Из-за этого таким людям со склонностью к визуальному восприятию информации – таким, как я – бывает сложно схватывать суть и не отвлекаться.

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

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

Ну, приступим.
Читать дальше →

Реализация тумана войны из Civilization VI в Unity

Reading time17 min
Views13K

Эффект тумана войны из Civilization VI — отличный пример простой структуры вычислительного шейдера (compute shader). Если вы всегда хотели узнать об основах программирования таких шейдеров, то этот туториал для вас. Вы сможете понять его даже без знания шейдеров и программирования на C#; более опытные разработчики могут пропустить введение.

Анализ эффекта


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


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

Телеграм-каналы о разработке игр: часть 2

Reading time2 min
Views13K
Привет! Я инди-разработчик и автор канала о разработке игр. Год назад я уже делал похожую подборку, но с тех пор набралось много не менее интересных геймдев-блогов.

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

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

Reading time10 min
Views14K
Примерно год назад мы в DataLine запустили сервис для поиска и анализа уязвимостей в ИТ-приложениях. В основе сервиса – облачное решение Qualys, про работу которого мы уже рассказывали. За год работы с решением мы провели 291 сканирование для разных сайтов и накопили статистику по распространенным уязвимостям в веб-приложениях. 

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


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

Самомотивация технаря: уравнение прокрастинации, эффект шредера и трюки с едой

Reading time14 min
Views32K
Привет! Меня зовут Игорь, я занимаюсь машинным обучением в Lamoda. До этого я несколько лет работал в науке, что сильно сформировало мое мышление в технарскую сторону.

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

Этими находками я решил поделиться в этой статье.

  • Поговорим про мотивацию самого себя, а не кого-то другого;
  • Узнаем, что такое мотивационное уравнение и как его использовать;
  • Разберём, как влиять на факторы мотивации;
  • И какие есть сервисы и инструменты для этого.

Это статья не про мотивацию сотрудников Lamoda, а про мотивацию, которую я нашел для себя.

image

Поля расстояний Raymarching-а: объяснение и реализация в Unity

Reading time24 min
Views30K
image

Raymarching — это достаточно новая техника, используемая для рендеринга сцен реального времени. Она особенно интересна тем, что полностью вычисляется в шейдере экранного пространства. Другими словами, рендерер не получает доступа к данным мешей и сцена отрисовывается на одном четырёхугольнике, покрывающем всю область видимости камеры. Объекты в сцене задаются аналитическим уравнением, описывающим кратчайшее расстояние между точкой и поверхностью всех объектов сцены (поэтому полностью техника называется полями расстояний Raymarching-а). Оказывается, что даже при наличии только этой информации мы можем создавать поразительно сложные и красивые сцены. Более того, благодаря тому, что мы не используем полигональные меши (и вместо них применяются математические уравнения), здесь, в отличие от традиционного рендерера, можно задавать идеально плавные поверхности.


Snail Иниго Килеза была полностью создана при помощи raymarching. Другие примеры подвергнутых raymarching-у сцен можно найти на Shadertoy.

В этой статье мы сначала расскажем о фундаментальных понятиях и теории raymarching, а затем покажем, как реализовать простейший raymarcher в игровом движке Unity. Далее мы продемонстрируем, как на практике встроить raymarching в настоящую игру на Unity, позволив объектам с raymarching-ом перекрываться обычными GameObjects.

Полный код можно найти в этом репозитории Github.

Блендинг террейна и меша в Unity

Reading time9 min
Views6.3K
Всем привет, в июне OTUS вновь запускает курс «Разработчик игр на Unity». В преддверии старта курса, мы подготовили перевод интересного материала по теме.




Сегодня мы поговорим о том, как делать блендинг меша с террейном (или с другими мешами) в Unity. Это руководство довольно продвинутое, но я постарался разбить его на отдельные этапы. Предполагается, что у вас есть общие навыки работы с Unity и базовое знание С#. Руководство разработано для amplify, но я думаю, что его можно также применить и к Shader Graph. Это мое первое руководство, поэтому надеюсь, что оно получится достаточно понятным. Если вы захотите что-то добавить, дайте знать. Я включил сюда стартовый набор, в котором есть некоторые дополнительные шейдеры для этого проекта, а также базовый комплект для начала работы. Все файлы проекта из сегодняшнего руководства доступны моим патронам за $5, но в ближайшем будущем, они будут доступны всем желающим.
Читать дальше →

Пишем пошаговую PvP-арену с одновременными ходами

Reading time9 min
Views5.8K
В этой статье расскажу о том, что подтолкнуло к созданию игры в таком необычном жанре, что это вообще за жанр такой, как продвигалась разработка, с какими трудностями мы столкнулись, и как меньше чем за год работы по вечерам нам удалось создать полностью играбельный прототип.


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

Книгообзор: Голден Кришна. «Хороший интерфейс — невидимый интерфейс»

Reading time8 min
Views6.8K
Сегодня предлагаем обзор книги автора с чудесным именем Голден Кришна, одно время работавшего на должности ведущего дизайнера Samsung. Эта небольшая, на 250 страниц книга, вышедшая в 2016 году, стала бестселлером и рекомендуется не только дизайнерам, но и вообще инженерам, программистам и менеджерам. Я считаю ее особенно актуальной для разработчиков устройств Интернета вещей.

Основная идея книги в том, что в последнее время в компьютерной индустрии стало преобладать когнитивное искажение: под интерфейсом понимают исключительно графический интерфейс (GUI). Все дизайнеры мира настолько застряли в парадигме «нужен экран, а на экране нужно приложение», что это стало вредить индустрии, в особенности в разработке устройств Интернета вещей — их тоже стремятся снабжать экранами, тогда как физические устройства обладают гораздо более богатым спектром возможностей взаимодействия.

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

Источник: Как развиваться Junior дизайнеру
Читать дальше →

Айзек Азимов: Откуда людям приходят новые идеи?

Reading time7 min
Views19K
Эссе Айзека Азимова о творчестве от 1959 года. Айзек Азимов (1920–1992) – американский писатель и профессор биохимии Бостонского университета, известный как автор научно-фантастических и научно-популярных произведений. Азимов считается одним из «большой тройки» писателей-фантастов своего времени наряду с Робертом Хайнлайном и Артуром Кларком.

Заметка Артура Обермайера, друга автора:

В 1959 году я работал ученым в Allied Research Associates в Бостоне. Компания была порождением MIT и изначально изучала воздействие ядерного оружия на конструкции летательных аппаратов. Компания заключила с ARPA контракт с аббревиатурой GLIPAR (Guide Line Identification Program for Antimissile Research) с целью выявления наиболее творческих подходов к созданию противоракетной оборонительной системы. Правительство понимало, что сколько бы ни было потрачено на совершенствование и дополнение существующих технологий, они все равно останутся неудовлетворительными. Они хотели, чтобы мы и несколько других подрядчиков думали нестандартно.

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

Мой топ бесплатных инструментов для разработчиков

Reading time4 min
Views31K
Это перевод статьи с ресурса dev.to. Ее автор Fayaz Ahmed делится списком своих любимых инструментов для разработчиков.



Я разрабатываю такие проекты, как Tvflix, GSON, Appy Dev, а также множество различных микропроектов, поэтому увлекаюсь поиском бесплатных инструментов для моей работы.

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

USB over IP в домашних условиях

Reading time4 min
Views57K
Иногда возникает желание работать с устройством, подключенным по USB, не держа его на столе рядом с ноутбуком. У меня таким устройством является китайский гравёр с лазером на 500 мВт, штука довольно неприятная при близком контакте. Помимо непосредственной опасности для глаз, в процессе работы лазера выделяются токсичные продукты горения, поэтому устройство должно находится в хорошо проветриваемом помещении, и желательно изолированно от людей. А как же таким устройством управлять? Ответ на данный вопрос я случайно нашел, просматривая репозиторий OpenWRT в надежде найти достойное применение старенькому роутеру D-Link DIR-320 A2. Для подключения решил использовать описываемый на Хабре ранее USB over IP tunnel, однако все инструкции по его установке успели потерять актуальность, поэтому пишу свою.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity