Pull to refresh
24
0
Игорь @Igor_Sib

User

Send message

Обобщённый поиск путей для ИИ в платформерах

Reading time10 min
Views11K

Предисловие


Если вы создаёте игру-платформер в стиле «беги и прыгай», то, возможно, уже задумывались о добавлении в неё ИИ. Он может управлять противниками, объектами, которые игрок должен преследовать, и так далее… И слишком часто ради простоты программист реализации отказывается от умного ИИ, что в результате приводит к тому, что ИИ не может справиться с хитрыми прыжками, особо умным игроком или движущимися объектами уровня.

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

Мы рассмотрим основную идею и создадим полную реализацию. Более сложные случаи, в том числе подвижные платформы/разрушаемые стены, мы рассмотрим в другой статье.

Эта техника использована в игре Nomera, см. на www.dotstarmoney.com или в Twitter.

e3iKSJ7.png


Прежде чем начать, проверьте, возможно, вы удастся реализовать более простой алгоритм, соответствующий упрощённой геометрии карты. Например, если коллизии в уровнях распознаются по сетке квадратов (как в большинстве 2D-игр). В таких случаях можно реализовать надёжный поиск путей ИИ с помощью более простых техник. Мой метод в основном подойдёт тем, кто хочет более «человечного» поведения ИИ.
Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments3

Какие налоги нужно платить при выводе доходов от приложений в Apple iTunes

Reading time7 min
Views31K
image

Разработчики постоянно задают нам вопросы о налогах, которые должны платить при выводе средств на российское лицо по договору с Apple. Поводом беспокойства служит известный Налог на Гугл, введенный с начала 2017 года.

Поэтому мы разместили в свободном доступе перевод последней редакции Apple Developer Program License Agreement Schedule 2 и подготовили налоговые комментарии к нему.

Кому интересно, смотрим далее.
Читать дальше →
Total votes 28: ↑28 and ↓0+28
Comments69

О культуре разработки в группах программистов

Reading time5 min
Views33K
«Почему ж всё так плохо?» — каждый раз я задаюсь этим вопросом, когда приходится иметь дело с очередным кодом, продуктом или API, созданными для внутренних нужд в непрофильной организации.

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

И деньги ничего не решают: ужасный код и ужасные продукты пишут как маленькие бедные ВУЗы, у которых денег хватает только на рабский труд аспирантов, так и крупные и богатые компании, включая IT-компании, включая зарубежные: несколько раз сталкивался с кодом, который писали зарубежные подрядчики и каждый раз от него хотелось рыдать и биться головой об стену.

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

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

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

Читать дальше →
Total votes 99: ↑91 and ↓8+83
Comments151

Магазины/разработчики/покупатели/издатели

Reading time10 min
Views10K
image

Все крупные магазины игр (Steam, GOG, Origin, Uplay, itch и т.д.) обслуживают различные группы людей одновременно. Многие из этих групп имеют противоположные интересы. Говоря упрощённо, их можно разделить на:

  1. Покупателей
  2. Разработчиков
  3. Издателей
  4. Сами платформы магазинов

Часто слышны жалобы на разные магазины (обычно на Steam). Но не всегда очевидно, кто жалуется, каковы его интересы, и как они влияют на интересы других групп. Если вы читаете эту статью, то, скорее всего, вам ближе интересы разработчиков, покупателей или обеих этих групп. Однако у всех групп есть собственные интересы, и они часто конфликтуют.
Total votes 23: ↑23 and ↓0+23
Comments10

Дизайн и математика игр-кликеров

Reading time25 min
Views86K
image

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

Что такое инкрементная игра?


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

В сущности, такова общая структура «инкрементной» игры. Она кажется простой, даже примитивной, но в игровом процессе есть неожиданная глубина и привлекательность. Стили игры могут быть разными — от коммерчески успешных и казуальных Clicker Heroes и AdVenture Capitalist до более экспериментальных или хардкорных примеров, таких как Candy Box, Cookie Clicker и Sandcastle Builder.


Cookie Clicker, самое начало.

Что же самое важное в инкрементной игре? Хотя в этом жанре есть множество вариаций и экспериментов, фундаментальными аспектами дизайна являются:

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

Именно цикл накопления, реинвестиций и ускорения определяет основы жанра и отличает его от игр, в которых присутствует просто увеличивающийся счёт. Например, в примечательной Cookie Clicker игрок стремится к росту количества «печенек», которое изначально увеличивается нажатием на огромное печенье, а потом тратит печенье на покупку апгрейдов, позволяющих создавать ещё больше печенья.
Читать дальше →
Total votes 53: ↑53 and ↓0+53
Comments36

Простая работа со Steamworks

Reading time9 min
Views42K


Unity, C#, Steamworks.NET и Facepunch.Steamworks


Введение


Как и большинству разработчиков игр, мне очень хочется выложить мою игру в Steam.

Как и большинству инди-разработчиков игр, мне не хватает доступа к ресурсам/знаниям, которые дали бы мне чётко понять, что же действительно значит «быть в Steam».

Сложно заполнить этот пробел в знаниях, потому что, несмотря на подробную документацию возможностей Steam, трудно понять, с чего начать в этом огромном хранилище документов и как связаны между собой его отдельные части. Кроме того, основные обсуждения платформы Steam проходят в закрытом форуме, доступном только для подтверждённых платформой через Steam Direct или реферальную ссылку Valve разработчиков. То есть для начинающих поиск ответов на простые вопросы может оказаться сложной задачей.

Поэтому я решил написать высокоуровневый обзор для людей, которые только начинают разбираться в том, как заставить Steam работать с их играми. В частности, я подробно рассмотрю Steamworks SDK, программную библиотеку Valve, предоставляющую доступ к таким аспектам, как мастерская (Workshop), таблицы лидеров (Leaderboards), достижения (Achievements) и так далее.

Steamworks хорошо задокументирована компанией Valve, но документация написана с точки зрения человека, использующего нативную библиотеку C++ и уже имеющего представление о том, как все эти функции пересекаются. Если это не ваш случай, то так даже лучше! Ниже представлено объяснение для другого человека, который пишет игру на языке более высокого уровня и просто хочет обеспечить простую интеграцию со Steamworks (а это возможно, я гарантирую!). Конкретнее, этот пост предназначен для людей, использующих в той или иной форме C#, а в идеале — работающих в игровом движке Unity.
Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments2

Кораблестроение 17 века и ваши неудачные проекты по разработке: найдите пять отличий

Reading time3 min
Views36K
На конференции Monitorama Пит Чеслок из Threat Stack провел параллель между историей строительства шведского корабля «Васа» и провальными проектами по разработке. Делимся с вами отрывком его выступления.

image

Корабль «Васа» должен был стать главным боевым кораблем шведского флота, но затонул с порывом ветра при первом же выходе из гавани в 1628 году, 53 члена экипажа погибли. Выживший капитан был немедленно отправлен в тюрьму: на допросе он клялся, что пушки были надежно закреплены, и экипаж был трезв. После расследования никто не был наказан или признан виновным, и инцидент был классифицирован как «Воля Божья». Почему затонул корабль и причем тут управление проектами?
Читать дальше →
Total votes 99: ↑96 and ↓3+93
Comments40

Игра в Бога, или как я «Волчий остров» писал

Reading time10 min
Views32K
Давным-давно, когда я еще учился в университете, я услышал что на математическом факультете в нашем вузе программистам задают интересную задачу: смоделировать так называемый «волчий остров». Суть ее примерно в следующем.



Что на картинке
Stop/Start — Запустить мир
Turn — Остановить мир
Restart — Пересоздать мир
Зеленые клетки — Клетки с травой. Чем зеленее, тем больше травы.
Маленькие зайцы и волки — щенки
Большие зайцы и волки — взрослые особи
Красные и синие полоски на пиктограммой зверей — текущая сытость. Красные — самцы, синие — самки.
Число в левом нижнем углу каждой клетки — количество существ на данной клетке
Внизу общее количество зайцев и волков, а также время, занявшее обработку последнего ход
Читать дальше →
Total votes 60: ↑56 and ↓4+52
Comments57

Генерация лабиринта алгоритмом Эллера в Unity

Reading time4 min
Views23K
Всем привет!

Сегодня хотелось бы рассказать о том, как генерировать лабиринты алгоритмом Эллера, и о том, как сделать красивую 3д визуализацию в Unity, чтобы потом использовать её в своих играх. Также немного рассказать о том, как можно настроить пост обработку внутри данного решения. И по традиции ссылка GitHub с самим генератором.


Читать дальше →
Total votes 29: ↑26 and ↓3+23
Comments8

Налоги на IT-бизнес в России

Reading time11 min
Views21K
Привет, Хабр! Продолжаю публикацию своей книги о юридических аспектах IT-бизнеса. Сегодня — про налоги и смежные вопросы. Учитывая, что в России налоговая система слабо дифференцирована по видам бизнеса, материал вполне подойдет и для «обычного», то есть нетехнологического предпринимательства.



Книга «Закон стартапа»:

  1. Стартапер vs. предприниматель
  2. Выбираем форму
  3. Регистрация
  4. Корпоративное управление
    Как юридически строится компания
  5. Текущая работа
    Договоры и как они работают
    Как проверить партнера по открытым источникам
  6. Налоги
    Что платит IT-бизнес в России?
  7. Государственная поддержка
  8. Цикл стартапа
    Как (в общем) работает венчурное инвестирование
  9. Венчурные сделки
  10. Венчурные фонды
  11. Интеллектуальная собственность
  12. Офшоры и ВЭД
    Преимущества и подводные камни офшоров

Читать дальше →
Total votes 30: ↑24 and ↓6+18
Comments44

5 бесплатных ассетов для Unity3D, которые облегчат процесс разработки

Reading time3 min
Views19K
Недавно мы выпустили обзор некоторых Unity ассетов для начинающего 2D разработчика.
Сегодня предлагаем вашему вниманию подборку из 5 бесплатных ассетов для Unity3D, максимально простых в использовании и полезных в работе. Данные ассеты призваны упростить некоторые аспекты разработки, а также сэкономить вам время за счет автоматизации определенных нудных задач.

Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments0

Как стать тимлидом и не взорваться

Reading time12 min
Views70K


Два года назад я начал негласно исполнять роль iOS-lead в компании Touch Instinct и формированием стабильной работы iOS-отдела. Спустя полгода это трансформировалось в официальную должность. Из-за отсутствия опыта у меня возникало огромное количество проблем, которые вызывали жжение в области верхней части кресла. Это происходило из-за ряда факторов:


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

Если вы стали лидом и первоначальная эйфория сменилась небольшим горением и унынием, то пара советов не будет лишней.

Читать дальше →
Total votes 92: ↑89 and ↓3+86
Comments24

Продвижение инди-игры на Steam Greenlight

Reading time11 min
Views96K
Всем, привет! Наша команда сейчас проходит важный этап становления любого разработчика игр — первый запуск игры на Steam Greenlight. Пока я готовил материал для этой статьи, наша игра вошла в ТОП-100 проектов на Greenlight, набрала почти 2000 голосов «ЗА» и через 12 дней получила зелёный свет.

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

image
Читать дальше →
Total votes 33: ↑31 and ↓2+29
Comments14

Делегаты и Лямбда выражения в C# .Net — Шпаргалка или коротко о главном

Reading time6 min
Views84K

Привет, Дорогой читатель!


Почти все кто мало-мальски работал в .Net знает что такое Делегаты (Delegates). А те кто не знает о них, почти наверняка хотя бы в курсе о Лямбда-выражениях (Lambda expressions). Но лично я постоянно то забываю о синтаксисе их объявления, то возвращаюсь к многостраничным объяснениям умных людей о том, как компилятор реагирует на подобные конструкции. Если у Вас случается такая проблема, то милости прошу!
Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments15

Как инди-игре обогнать Angry Birds?

Reading time6 min
Views22K
image

После того, как телефоны стали умнее многих своих владельцев, селфи получили широкое распространение. Делать свои автопортреты в любом, даже самом неподходящем для этого месте, стало любимым занятием пользователей социальных сетей и, прежде всего, Instagram. Тогда мне и пришла идея сделать игру на основе этого тренда. Я и мои коллеги из студии давно занимались разработкой игр на заказ. Был период, когда команда чувствовала себя сильно уставшей от одного из долгосрочных проектов. Я решил отвлечь разработчиков и предложил взять небольшой тайм-аут, чтобы поработать над своим инди-продуктом без заказчиков и издателей — все сделать своими силами.
Читать дальше →
Total votes 63: ↑47 and ↓16+31
Comments90

+32Гб на Яндекс.Диске навсегда

Reading time1 min
Views92K


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

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

Да и в любом случае, всегда наверное приятно получить что-то на халяву, даже если тебе это не очень нужно.

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

Акция длится до 3 июля.

Адрес промо-страницы: yandex.ru/set/lp/disk-32gb/0
Total votes 52: ↑45 and ↓7+38
Comments131

Как устроен поиск пакетных туров в стране, где люди не очень-то доверяют кредиткам

Reading time7 min
Views31K

Двухместный стандарт в Сочи в отеле Bridge Mountain стоит 86 рублей за сутки на человека на 1-6 апреля, и его можно взять отдельно от тура за 860 рублей на 5 ночей

5 лет назад мы обнаружили, что «Букинг» продаёт отели, всякие «Скайсканеры» и AWAD — авиабилеты, и голову поднимает AB&B. Но никто не продаёт туры целиком. Я тогда сказал своему другу: «Мужик, давай продавать туры. Это же очень просто сделать!»

А дальше начались такие круги ада, что мы несколько раз проклинали тот день. Началось всё с довольно простой задачи — синхронизации туров и их поиска. А прикол был в том, что если до нас у туроператора искали только руками из офисов, то с нашими поисками-сравнениями (на один запрос «Травелаты» поднимается около 500–600 туров в общем) мы просто клали их сервера к едрене фене. И туры не находились. Вообще, системы бронирования были сделаны в 90-х годах, а некоторые системы бронирования авиабилетов тащат легаси ещё чуть ли не со времён телеграфа.

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

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

Reading time14 min
Views85K


Перед вами наша выборка лучших конструкторов приложений, с краткой информацией о том, как ее проводили. В этом обзоре только зарубежные (в основном с рынка США) решения, а для жителей России (и стран СНГ) мы предлагаем воспользоваться нашим конструктором appropio.com, который делается с учетом специфики нашего рынка. Если чуть отвлечься, то в России совсем плохо приживаются конструкторы. На нашей памяти закрылись два — myapps & getshopapp, хотя наш опыт разработки под заказ показывает — мало кто из среднего и малого бизнеса может позволить себе сделать приложение за 500 000+ рублей, держа в уме не проверенные для многих гипотезы по возврату вложенных средств (хотя мы наблюдали продажи в размере 5 000 000 р. в сутки из мобильных приложений сегмента fashion). Мы напишем отдельную статью для Хабра с попытками ответить на вопрос: почему лучшие зарубежные конструкторы так и не «взлетели» на нашем рынке позже, что мы планируем сделать для обратного :) и т.п. Кажется, что основную роль здесь играет наша ментальность…
Читать дальше →
Total votes 29: ↑17 and ↓12+5
Comments10

Работа писателя в видеоиграх

Reading time7 min
Views14K
larian_dublin_logo
Привет, Хабр! Это снова Larian Studios. Нас очень тронул теплый прием и интерес, оказанный жителями Хабра нашей прошлой публикации, и поэтому, не теряя времени, мы решили написать что-нибудь еще.

В этот раз слово возьмет святая святых наших студии — отдел писателей и сценаристов. Так как по-русски они говорят еще не очень хорошо, я послужу переводчиком статьи, написанной специально для Хабра нашей писательницей Charlene Putney alphachar.

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

Так как это текст о писателях — картинок будет мало, а букв много.
Читать дальше →
Total votes 24: ↑24 and ↓0+24
Comments25

Синдром хронической усталости. Что это такое, причины и последствия

Reading time5 min
Views112K

Автор: Эдвард Гори

Синдром хронической усталости (СХУ) — снижение жизненного тонуса в организме и значительное нервное истощение. СХУ характеризуется десятками симптомов, но многие из них связаны и с другими нарушениями.

Большинство людей жалуются, что у них недостаточно жизненных сил. Вот основные причины снижения эффективности и жизненного тонуса:
Читать дальше →
Total votes 57: ↑40 and ↓17+23
Comments38

Information

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