Pull to refresh
1
0
Роман Мигунов @Norton-nsk

Проект-менеджер

Send message

Как мы оптимизировали свой Theme Hospital под разные платформы

Reading time6 min
Views7.5K
image

Project Hospital — это игра об управлении зданием больницы со всеми стандартными аспектами жанра: динамическими сценами, создаваемыми игроком, множеством активных персонажей и объектов, развёрнутой системой UI. Чтобы заставить игру работать на разном оборудовании, нам пришлось приложить много усилий, и это стало отличным примером печально известной «смерти от тысячи порезов» — множества мелких шагов, решающих кучу очень специфических проблем и кучи времени, потраченного на профилирование.

Уровень производительности: чего мы хотели достичь


На раннем этапе разработки мы определились с основными параметрами: максимальной величиной сцен, уровнем производительности и системными требованиями.

Мы поставили перед собой задачу обеспечить поддержку не менее сотни активных и полностью анимированных персонажей на одном экране, трёх сотен активных персонажей суммарно, тайловых карт размером примерно 100x100 и до четырёх этажей в здании.

Мы твёрдо были уверены, что игра должна работать в 1080p с приличной частотой кадров даже на интегрированных графических картах, и саму по себе эту цель достичь было не так трудно: основным ограничивающим фактором является ЦП, особенно при увеличении объёмов больницы. Современные интегрированные видеокарты начинают испытывать проблемы только при разрешениях примерно от 2560 x 1440.

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

10 советов, как ревьюить код, который вам не нравится

Reading time4 min
Views18K
Я постоянно делаю коммиты в проекты open source (Red Hat и др.). И заметил, что больше всего времени отнимают негативные код-ревью, субъективные по сути. Чаще всего такое происходит с коммитами, где мейнтейнеру по какой-то причине не нравится ваше изменение. В лучшем случае такая стратегия код-ревью приводит к потере времени в бессмысленных спорах; в худшем случае он активно препятствует коммиту, создавая враждебную и элитарную среду.

Код-ревью должен быть объективным, кратким и, по возможности, содержать только определённые факты. Это не политический или эмоциональный спор, а технический. Его цель — продвижение вперёд, развитие проекта и всех участников. Любой коммит должен оцениваться только по существу, а не по субъективному мнению.
Читать дальше →
Total votes 46: ↑43 and ↓3+40
Comments35

Мелкая питонячая радость #7: три штуки по цене одной — консольная анимация, алгоритмы и отладка

Reading time2 min
Views11K

На этой неделе достаточно крупных мелких радостей не нашлось, зато нашлись 3 совсем мелкие мелкие радости.


termtosvg


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


image


Традиция, бесспорно, хорошая и правильная. Только записывать такие анимации бывает трудно/лень/некогда. Авторы termtosvg пристрелили всех зайцев одим выстрелом и дали программистам прекрасную штуку для записи консольных демок.

Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments9

Что разработчикам надо знать про бизнес

Reading time11 min
Views15K
Даже в очень крупных компаниях часто отношение к разработчикам, как к грибам: держат в темноте и кормят навозом. Пишите код, родные, и не высовывайтесь. Этот подход может быть удобен для многих (в том числе иногда — для самих разработчиков в случае не очень адекватного менеджмента), но с точки зрения бизнеса неоптимален. Моя позиция: разработчики должны иметь возможность узнавать всё то, что происходит в компании и на рынке, но без давления. Захотел — копнул и разобрался, не захотел — не надо.

Редко когда разработчик не хочет понимать, зачем и что он делает. Редко кто не хочет видеть влияния реализованных фич на мир вокруг. Да ладно, давайте будем честными: мы тут все или из-за денег, или из-за возможности делать что-то значимое. Деньги есть везде. А вот интересные проекты встречаются реже.

Я хочу поделиться процессом того, как у нас устроено такое информирование в команде Туту.ру. Возможно, кому-то оно покажется ликбезом, а кому-то будет полезным. Ну или вы подскажете, как сделать лучше.
Читать дальше →
Total votes 45: ↑43 and ↓2+41
Comments16

Инженерный подход к разработке ПО

Reading time25 min
Views38K

Как проверить идеи, архитектуру и алгоритмы без написания кода? Как сформулировать и проверить их свойства? Что такое model-checkers и model-finders? Требования и спецификации — пережиток прошлого?


Привет. Меня зовут Васил Дядов, сейчас я работаю программистом в Яндексе, до этого работал в Intel, ещё раньше разрабатывал RTL-код (register transfer level) на Verilog/VHDL для ASIC/FPGA. Давно увлекаюсь темой надёжности софта и аппаратуры, математикой, инструментами и методами, применяемыми для разработки ПО и логики с гарантированными, заранее определёнными свойствами.


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


Не буду лукавить: основная задача статьи — возбудить интерес. Так что в ней будет минимум пространных рассуждений и максимум конкретики.


Читать дальше →
Total votes 63: ↑61 and ↓2+59
Comments135

Курс Молодого Геймдизайнера: как считать баланс персонажей и снаряжения без математики

Reading time6 min
Views55K


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

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

Статья будет полезна тем, кому надо заняться балансом, но не знает с чего начать, а также начинающим геймдизайнерам, которые будут выбирать специализацию. Ну и всем, кто просто интересуется, чем занимаются ГД, когда не придумывают новые виды лутбоксов.
Читать дальше →
Total votes 69: ↑67 and ↓2+65
Comments38

Система мотивации разработчиков

Reading time5 min
Views13K
О том, как мы выбирали систему мотивации для разработчиков Calltouch, рассказывает руководитель разработки Роман Хохлов.


Источник изображения

Тема оценки эффективности персонала, расчетов KPI, мотивации и премирования стара, но будет жить еще долго. На форумах наталкиваемся на множество нескончаемых дискуссий и холиваров. С точки зрения оценки эффективности труда разработчиков, да и в ИТ в целом, ситуация еще сложнее — копий сломано не мало. Работа разработчика — это производство и интеллектуальный труд в тесной связке, которые оценить и измерить достаточно сложно. Плюс результат применения того или иного подхода напрямую зависит и от руководителя, и от команды, и от организации процесса — какие-то внедренные подходы работают, какие-то не работают и даже вредят.

Читать дальше →
Total votes 7: ↑3 and ↓4-1
Comments13

Ищем свободное парковочное место с Python

Reading time14 min
Views64K
image

Меня зовут Рушан, и я автор Telegram‑канала Нейрон. Не забудьте поделиться с коллегами или просто с теми, кому интересны такие статьи.

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

Поэтому я решил направить камеру в окно и использовать глубокое обучение, чтобы мой компьютер сообщал мне, когда освободится место:

image

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

Поэтому давайте немного развлечёмся и напишем точную систему уведомлений о свободной парковке с помощью Python и глубокого обучения
Читать дальше →
Total votes 110: ↑107 and ↓3+104
Comments53

10 нестандартных способов навредить SEO при смене CMS (+1 бонусный)

Reading time6 min
Views2.6K
В этой статье расскажу о тех проблемах, которые возникают, когда сайт меняет движок, а контроль SEO-специалиста при этом отсутствует. Материал будет полезен тем, кто самостоятельно продвигает свой сайт, а для коллег может стать лишним поводом освежить в голове знания (а может добавить в комментариях что-то новое).
Читать дальше →
Total votes 21: ↑16 and ↓5+11
Comments3

Создание игры Tower Defense в Unity, часть 1

Reading time29 min
Views19K

Поле


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

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

Туториал создавался в Unity 2018.3.0f2.


Поле, готовое к использованию в тайловой игре жанра tower defense.

Игра жанра Tower Defense


Tower defense — это жанр, в которой целью игрока является уничтожение толп врагов, пока они не добрались до своей конечной точки. Игрок выполняет свою цель, строя башни, которые атакуют врагов. У этого жанра очень много вариаций. Мы будем создавать игру с тайловым полем. Враги будут двигаться по полю в сторону своей конечной точки, а игрок будет создавать им препятствия.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments0

Хранение, резервное копирование и каталогизация фотографий

Reading time5 min
Views32K
Тут периодически пишут посты про то, как хранят и бэкапят свои фотографии — ну и просто файлы. В последнем таком посте написал достаточно длинный комментарий, немного подумал и решил всё же развернуть его в пост. Тем более, что несколько поменял метод бэкапа в облако, может будет полезно кому.

Домашний сервер, где происходит многое из описанного ниже:

image

Что надо сохранять?


Самое важное и объёмное у меня — фотографии. Изредка видео, но очень изредка — оно слишком много места занимает и слишком много времени отнимает, потому я его не слишком люблю, снимаю только короткие ролики, которые валяются в той же куче, где и фотографии. На текущий момент фотоархив у меня занимает примерно 1,6 терабайта и растёт где-то на 200 гигабайт в год. Другие важные вещи гораздо менее объёмны и с ними меньше вопросов в плане хранения и бэкапа, десяток-другой гигабайт можно распихать по куче бесплатных или очень дешевых мест, начиная от ДВД и заканчивая флэшками и облаками.
Читать дальше →
Total votes 27: ↑27 and ↓0+27
Comments103

Корпус для «малинки» с RetroPie — из устройства для просмотра слайдов

Reading time2 min
Views7.9K

Компактные устройства для просмотра слайдов через линзу выпускались во всём мире, и в СССР в том числе (примеры: 1 и 2). Сегодня внутрь такого прибора можно поместить Raspberry Pi Zero с небольшим дисплеем. Практически все винтажные детали, включая линзу и выключатель, при этом остаются на месте. К RetroPie автором «прикручена» тема в стиле «Звёздных войн» (разработчики — CoinJunkie и ArcadePunks).

От переводчика: RetroPie — лишь один из вариантов, vi за такой линзой будет тоже здорово смотреться даже без cool-retro-term, только вместо геймпада понадобится клавиатура. Колонка станет ненужной, потребляемый ток соответственно уменьшится.
Читать дальше →
Total votes 36: ↑36 and ↓0+36
Comments0

Стартап дня (сентябрь-октябрь 2018-го)

Reading time5 min
Views5K


Продолжая серию дайджестов «Стартап дня», сегодня я представляю самые интересные проекты за сентябрь-октябрь 2018 года. Если хотите ознакомиться с остальными, то прошу в мой блог. Записи доступны в Facebook, ВК, ICQ и Телеграм.
Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments2

Как правильно готовить продуктовую стратегию? Руководство для менеджеров продуктов

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

Помните правила великого Кутузова, который четко и ясно видел стратегические цели? Он считал, что стратегия должна всегда превалировать над тактикой. Для победы вполне допустимо пожертвовать отдельной битвой, ведь «главное не крепость взять, а войну выиграть».

image
Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments1

Чертова дюжина для PM: список книг для проджект-менеджеров

Reading time5 min
Views59K
Преподаватели Binary District подготовили список книг для будущих студентов курса Project Management in IT: это база, способная сделать из хорошего управленца лучшего. Список настолько хорош, что по крайней мере половину книг можно смело рекомендовать вообще всем, кто хочет стать лучшей версией себя.


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

Google Analytics. Синхронизация с пикселями Facebook, VK, Yandex, MyTarget

Reading time4 min
Views9.9K
Привет, Хабр! Со временем, маркетологам начинает хотеться делать воронки ремаркетинга по событиям, а потом еще и преследовать по всем каналам.

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

Чтобы было проще масштабировать ремаркетинг на другие системы, сейчас мы сделаем синхронизацию событий GA в Метрику, Facebook, VK, MyTarget.


Поехали!
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments2

Мифы и легенды Agile — oт фараонов до наших дней

Reading time6 min
Views12K
«Всё — яд, всё — лекарство; то и другое определяет доза.»
Парацельс



Принято отсчитывать историю Agile от февраля 2001 года, когда появился на свет довольно странный документ — Agile Manifesto. По большому счёту текст документа скомпонован из философских очевидностей (например, «простота — искусство не делать лишней работы») и спорных утверждений (например, «лучшие технические требования, дизайн и архитектура получаются у самоорганизованной команды»). Но этот документ странен не столько своим содержанием (мало ли что может прийти в голову на лыжном курорте), сколько эпичностью последовавших изменений в отрасли разработки программного обеспечения. В кратчайшее время появилось множество методик, реализующих методологию «гибкой» разработки, которые торжественным маршем пошли по миру, захватывая умы Исполнителей и кошельки Заказчиков. Адептами этот движ преподносится как некая волшебная пилюля, решающая всё. Дошло до того, что благородному дону честному программисту уже стало неприличным признаться в причастности к разработке ПО по традиционной ориентации методологии. Попробуем же разобраться в причинах и следствиях явления, на примере Scrum-а, как наиболее распространённого проявления Agile.
Читать дальше →
Total votes 33: ↑24 and ↓9+15
Comments33

Создание адаптивных изображений

Reading time53 min
Views13K
В Интернете найдется немало статей, посвященных адаптивным логотипам. Наиболее популярным примером является сайт Responsive Logos, который показывает различные варианты известных логотипов для разных размеров экрана. Когда я впервые увидел это, я подумал, что это не более, чем просто ловкий трюк. В конце концов, это просто div для спрайта большого изображения в качестве фона. Так было до того момента, пока я не услышал доклад на Smashing Conference от MikeRiethmuller под названием «За пределами медиазапросов». Кроме того, я настоятельно рекомендую прочитать его же статью «Большой потенциал SVG».



Я узнал две вещи, которые меня потрясли:

  1. При использовании SVG вы можете отказаться от атрибута viewBox и установить новую систему координат на вложенных элементах SVG путем применения нового viewBox. (Да, я знаю. Это звучит странно. Ниже я объясню все более подробно).
  2. Когда вы используете медиазапросы внутри SVG-файлов, а затем вставляете изображение через тег img или в качестве фонового изображения CSS, медиазапросы привязаны к ширине изображения. Практически такое же поведение, как и при использовании контейнерных запросов.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments3

Стартап: как дожить до раунда

Reading time8 min
Views3.5K
Большинство фаундеров стартуют на собственные деньги, и первый год жизни их проекты испытывают сильнейший финансовый голод. Как стартапу дожить до первых инвестиций? И на чем нельзя экономить на старте? Рассказывает Александр Антонов, основатель и генеральный директор образовательного онлайн-сервиса Puzzle English.

image
Читать дальше →
Total votes 10: ↑8 and ↓2+6
Comments4

Телефония дешевле чем бесплатно?

Reading time4 min
Views27K
«Бесплатно? Звучит дороговато!» — с подобными возгласами устаешь бороться. Также тяжело постоянно объяснять почему АТС бесплатна, что это принцип работы дать максимум и что нигде не заложены тысячи скрытых платежей.

zadarma

С этого лета специально для сомневающихся и желающих найти цену АТС в тарифах, мы ввели платные тарифные пакеты на облачную АТС Zadarma (при этом бесплатные условия остаются прежними). Зачем это было сделано и когда платный тариф может быть еще выгоднее чем бесплатный опишем ниже.
Читать дальше →
Total votes 29: ↑20 and ↓9+11
Comments133

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Date of birth
Registered
Activity