Как стать автором
Обновить
69
0
Kozinaka @OlegKozlov

Пользователь

Отправить сообщение

Почему налоговая не верит в айтишников-индивидуальных предпринимателей?

Время на прочтение2 мин
Количество просмотров93K

Сколько может зарабатывать айтишник на ИП? У ФНС свое мнение


Когда один человек много зарабатывает и честно платит налоги, налоговики смотрят со стороны и думают: «Как такое возможно? Наверняка у него масса помощников! Пусть и за них налоги заплатит!»

Рассказываем, как при наличии электронной подписи в пару кликов забыть о подобных притязаниях налоговой.
Читать дальше →
Всего голосов 125: ↑122 и ↓3+119
Комментарии233

Равномерное перемещение объекта вдоль кривой

Время на прочтение6 мин
Количество просмотров17K


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

Наверное, каждый имеющий отношение к теме знает или, по крайней мере, слышал, про кривые Безье, B-сплайны, сплайны Эрмита и прочие интерполяционные и сглаживающие сплайны и совершенно правильно предложил бы использовать в описанной ситуации один из них, но не всё так просто, как хотелось бы.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии18

Мои десять лет в геймдеве

Время на прочтение27 мин
Количество просмотров12K
Привет! Меня зовут Нико Туасон, я разработчик инди-игр из Филиппин. В этом году исполняется десять лет с того момента, как я начал свой путь в геймдеве. Я хотел бы поделиться с вами историей всей моей карьеры – провалами, триумфами, важными жизненными событиями. Надеюсь, вы не пожалеете, что потратили время на чтение.

2010 год: прыжок в неизвестность


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

Я азиат (да, филиппинцы тоже азиаты) и для моих родителей было бы неприемлемо, если бы я не был занят ни учёбой, ни работой, поэтому я подал документы в магистратуру по специальности «Мультимедиа» в Сингапуре. Они и понятия не имели, что вскоре после этого мне пришло письмо с отказом. Я всё говорил им, что моя заявка, мол, в процессе рассмотрения, а сам втайне работал над проектом «для себя» — своей первой игрой.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии12

Магические сигнатуры методов в C#

Время на прочтение9 мин
Количество просмотров30K

Представляю вашему вниманию перевод статьи The Magical Methods in C# автора CEZARY PIĄTEK.


Есть определенный набор сигнатур методов в C#, имеющих поддержку на уровне языка. Методы с такими сигнатурами позволяют использовать специальный синтаксис со всеми его преимуществами. Например, с их помощью можно упростить наш код или создать DSL для того, чтобы выразить решение проблемы более красивым образом. Я встречаюсь с такими методами повсеместно, так что я решил написать пост и обобщить все мои находки по этой теме, а именно:


  • Синтаксис инициализации коллекций
  • Синтаксис инициализации словарей
  • Деконструкторы
  • Пользовательские awaitable типы
  • Паттерн query expression
Читать дальше →
Всего голосов 82: ↑81 и ↓1+80
Комментарии70

На что ещё способны шаговые моторы? — Забивать голы в настольном хоккее

Время на прочтение5 мин
Количество просмотров18K
Создавая своего первого робота (Робот для настольного хоккея), а именно механическую часть, узнал много интересного для себя, чем и хочу поделиться.

Механика робота для настольного хоккея

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

Расскажу про 4 момента, на мой взгляд заслуживающих особого внимания:

  1. Разгон шагового мотора до максимальных оборотов.
  2. Одновременная работа массива из шаговых моторов через один контроллер.
  3. Охлаждение шаговых моторов и драйверов.
  4. Как избавиться от писка шаговых моторов.

В настольном хоккее Stiga Play-Off с каждой стороны по 6 игроков (вратарь и 5 на поле). У моего робота для настольного хоккея, в соответствии с количеством игроков — 6 роборук, по одной руке для каждого игрока, и каждую руку приводят в движение 2 мотора. Первый мотор перемещает игрока вперёд и назад, а второй мотор вращает клюшку. Итого задействовано 12 шаговых моторов.

Почему именно шаговые моторы? Мне понадобилась точность и аккуратность, а шаговый мотор как раз и обладает способностью вращать вал строго на заданное количество градусов/шагов. Но, кроме точности, понадобилась скорость, и тут начались проблемы и поиск решения.
Читать дальше →
Всего голосов 112: ↑111 и ↓1+110
Комментарии84

Thinking with Portals: создаём порталы в Unreal Engine 4

Время на прочтение32 мин
Количество просмотров19K
image

В этой статье я расскажу, как создавать порталы в Unreal Engine 4. Я не нашёл никаких источников, подробно описывающих такую систему (наблюдение сквозь порталы и проход через них), поэтому решил написать собственную.

Что такое портал?


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

Примеры порталов в играх (GIF)


Antichamber (2013 год) и Portal (2007 год)


Prey, 2006 год

Из трёх игр самой известной, вероятно, является Portal, однако лично меня всегда восхищала Prey и именно её я мечтал скопировать. Однажды я попробовал реализовать собственную версию в Unreal Engine 4, но не особо преуспел, потому что в движке не хватало функционала. Тем не менее, мне удалось провести вот такие эксперименты:


Однако только в новых версиях Unreal Engine мне наконец-то удалось добиться нужного эффекта:

Всего голосов 33: ↑31 и ↓2+29
Комментарии13

Чат-бот для Вконтакте на ASP.NET Core C#

Время на прочтение5 мин
Количество просмотров61K

В данной статье представлен пошаговый пример создания простого чат-бота в социальной сети VK на ASP.NET Core C#.


Глава 1. Подготовка


Начнем с создания и настройки сообщества.


Читать дальше →
Всего голосов 38: ↑36 и ↓2+34
Комментарии11

Создание собственной цветовой палитры

Время на прочтение4 мин
Количество просмотров44K
Адаптировано из нашей будущей книги «Рефакторинг UI»

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



Такой вычислительный и научный подход к выбору идеальной цветовой гаммы крайне соблазнителен, но не очень полезен.
Читать дальше →
Всего голосов 94: ↑92 и ↓2+90
Комментарии12

Слабые события в C#

Время на прочтение11 мин
Количество просмотров78K

От переводчика


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

Читать дальше →
Всего голосов 92: ↑75 и ↓17+58
Комментарии18

Создание разрушаемых мешей

Время на прочтение11 мин
Количество просмотров25K
image

Часть 1. Знакомство с Marching cubes


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

Вот пример из No Man’s Sky: видео.

Аналогичная техника применяется для отображения изображений с МРТ, metaball-ов и для вокселизации рельефа.

В этой части я расскажу о технике создания разрушаемого рельефа Marching Cubes, а в более общем применении — для создания плавного граничного меша твёрдого объекта. В этой статье мы начнём с рассмотрения двухмерной техники, затем трёхмерной, а в третьей части рассмотрим Dual Contouring. Dual Contouring — это более совершенная техника, создающая тот же эффект.
Всего голосов 30: ↑30 и ↓0+30
Комментарии3

N+6 полезных книг

Время на прочтение4 мин
Количество просмотров45K


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

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

Коллаборация — Мортен Хансен
Это инструкция по совместной работе и взаимодействию между людьми в команде и командами. Она меня здорово успокоила рядом исследований, например, тем, что вообще-то не надо заниматься нетворкингом, если ты занимаешься делом. Не надо знать 200-400 человек, чтобы найти нужного — надо знать 10 человек, каждый из которых знает по 50-100. А это в разы проще и эффективнее. Нетворкинг для интроверта — это прекрасно.
Читать дальше →
Всего голосов 43: ↑41 и ↓2+39
Комментарии16

Профилирование: оптимизация

Время на прочтение10 мин
Количество просмотров8.1K


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

Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии5

Профилирование: измерение и анализ

Время на прочтение13 мин
Количество просмотров16K


Привет, я Тони Альбрехт (Tony Albrecht), инженер в Riot. Мне нравится профилировать и оптимизировать. В этой статье я расскажу об основах профилирования, а также проанализирую пример С++-кода в ходе его профилирования на Windows-машине. Мы начнём с самого простого и будем постепенно углубляться в потроха центрального процессора. Когда нам встретятся возможности оптимизировать — мы внедрим изменения, а в следующей статье разберём реальные примеры из кодовой базы игры League of Legends. Поехали!

Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии6

PLF запуск — как запустить продукт, чтобы об этом кто-нибудь узнал

Время на прочтение13 мин
Количество просмотров33K


Собираюсь запускать несколько продуктов и понимаю, что нужно делать правильный запуск. И это не просто реклама в Директе и SEO-оптимизация, но и какие-то предстартовые действия. В одном из тренингов Лайк Центра я наткнулся на книжку «Запуск» (Launch) Джеффа Уокера. Её анонсировали как уникальный инструмент для успешного запуска продуктов, и я решил попробовать этот инструмент на себе. В нескольких статьях я расскажу, как это выглядит на практике. Но в этой статье только теория, т.е. конспект книги.

Джефф Уокер разработал уникальную методику запуска. Она состоит в том, что для запуска нужно произвести некоторую последовательность действий, которая поможет продать продукт и обеспечит доверие. Он назвал эту методику PLF: Product Launch Formula — формула запуска продукта. Она состоит из последовательностей, историй и триггеров.

Кто хочет нутром прочувствовать проблематику, — послушайте песню Uma2rmaH «Зависть».
Читать дальше →
Всего голосов 13: ↑10 и ↓3+7
Комментарии1

Загрузка реальных ландшафтов в Unity 3D

Время на прочтение6 мин
Количество просмотров42K


Введение


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

По этой теме тоже довольно много разного рода публикаций в сети. Однако, многие из них опираются на использование платных приложений или расширений для Unity. Существуют описания и «дешевых» методов, но основная масса их ориентирована на получение так называемых heightmap — черно-белых квадратных изображений местности, где градациями серого определяется относительных уровень высот в данной точке. Существует ряд способов генерации подобных карт высот с использованием например инструментария GDAL. И такой подход не лишен недостатков, связанных с достаточной громоздкостью процедуры создания карты высот и последующей привязкой к полученной местности. Поэтому, в данной статье будет изложен некий альтернативный подход и интересующиеся приглашаются под кат.
Читать дальше →
Всего голосов 37: ↑36 и ↓1+35
Комментарии20

Blast-off. От идеи до релиза

Время на прочтение6 мин
Количество просмотров7.8K
Всем привет! Я хочу рассказать историю разработки игры на Delphi от идеи до релиза.
Статья больше носит характер истории, без вникания в подробности реализации. Честно говоря, очень хочется написать про то, как мы строим картинку в игре, или локализуем её, как мы делали GUI, но это я выделю в отдельную статью, больше техническую, с кодом. Иначе эта окажется слишком большой. Кода тут не будет, но детали под катом. Прошу!



Application.Initialize;


Итак. Игра наша придумана была давно для конкурса разработки игр (джема) IGDC №77 — джампер Это было начало 2012 года. Игру мы делали в состоянии перманентного кранча аж две недели. Код вышел ужасным. Расширять было невозможно, порой возникали необъяснимые глюки, но в целом игра работала и некоторые товарищи умудрялись проводить в ней дни, недели. Пара человек залипали в течение месяца. Стало понятно, что реиграбельность у неё хорошая и надо бы её доделывать. Но, как я сказал выше, код был ужасен из-за скомканных сроков, так что доделок было сделано не очень много и всё благополучно забыто.
Всего голосов 28: ↑27 и ↓1+26
Комментарии24

Многозадачность. Как справиться с призраками посторонних дел

Время на прочтение7 мин
Количество просмотров34K
Автор иллюстрации: John Kenn

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

О многозадачности, а точнее о том как с ней справиться, в статье и пойдет речь.
Всего голосов 29: ↑27 и ↓2+25
Комментарии19

Как флитком управляет людьми в онлайновой игре с зашкаливающим уровнем паранойи

Время на прочтение15 мин
Количество просмотров42K


— Слышал, Слон флотом теперь командует?
— В смысле?
— Ну, помнишь, он админил?
— Да.
— Так ты сейчас обсмеёшься, его навыки управления оказались идеальными для управления кланом.

В общем, мне всегда очень хотелось перенять опыт командира флота в Eve Online. Есть такой феномен: люди объединяются в большие корпорации и альянсы, при этом ничего не получают за игру материально, но каким-то чудом все вместе делают общие задачи. Уроки управления местами покруче MBA. И первый — понимание, что Eve — это не космическая игра, а, скорее, соцсеть, к которой прикручена игра про космос. И вести себя надо именно как в соцсети. То есть управление корпорацией — это правильная подача контента.

Очень, очень многое у флиткома перекликается c тем, что нужно знать руководителю. И мне очень жаль, что этот диалог у нас не состоялся лет пять назад.
Читать дальше →
Всего голосов 74: ↑69 и ↓5+64
Комментарии115

«Во все тяжкие 2», Dark Forester — игра на дистанции в маленький плюс

Время на прочтение8 мин
Количество просмотров18K
Если вы не читали первой части истории, то эта часть вам будет не понятна или просто на просто покажется странной, о чем вообще пишет автор. Я пошел на поводу у читателей и все таки поменял порядок глав. Так что всем любителям UnityScript придется еще немного подождать.

Да и кстати, как это фото связано с Темным Лесником?

image

Итак, поехали дальше.

Горе разработчик очутился у родителей с женой и ребенком, в одной комнатушке в тридцать с лишним лет, не живя, с родителями с 18-ти. Основной компьютер сломан, Unity движок просрочен, куча долгов и безработица.
Читать дальше →
Всего голосов 54: ↑49 и ↓5+44
Комментарии59

Эффективный расчёт области видимости и линии взгляда в играх

Время на прочтение16 мин
Количество просмотров37K
image

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

image

Имея параметры видимости наблюдателя (направление взгляда, расстояние видимости и угол поля зрения), нам нужно найти видимую для него область, т.е. определить область видимости (field of view, FoV). Если препятствия отсутствуют, это будет сектор круга, состоящий из двух граней (радиусов) и соединяющей их дуги (см. Рис. 1). Кроме того, имея заданную точку мира, мы должны быстро определить, видима ли она для наблюдателя, т.е. необходимо обрабатывать запросы линии взгляда (line of sight, LOS) для заданной точки. Обе эти операции можно выполнить достаточно эффективно для использования при рендеринге в реальном времени.
Читать дальше →
Всего голосов 130: ↑126 и ↓4+122
Комментарии27
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность