Как стать автором
Обновить
0
0
Виктор @vikle

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

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

Atomic Design в веб-дизайне

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров11K

Веб-дизайн — постоянно эволюционирует, адаптируясь к новым технологиям и требованиям пользователей. Одним из последних инновационных подходов, зародившихся в веб-дизайн-сообществе, является атомарный веб-дизайн (Atomic Design).

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

Читать далее
Всего голосов 7: ↑4 и ↓3+3
Комментарии0

Как гражданину РФ открыть ИП и ТОО в Казахстане?

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

Продолжение про релокацию бизнеса на постсоветском пространстве. К плюсам релокации в РК можно отнести многие факторы, среди которых:

Читать далее
Всего голосов 7: ↑4 и ↓3+1
Комментарии6

Сравнение сборщиков мусора в Unity и .NET

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров8.7K

В этой статье я хотел бы рассказать о различиях между сборкой мусора в Unity (IL2CPP) и .NET. Несмотря на то что IL2CPP существует более 10 лет, я до сих пор встречаю недоумение, когда беседа заходит на тему Garbage Collector (GC) касательно Unity. Считать реализацию GC в .NET, ровно как и в JVM, единственным существующим решением — не верно. А тем более принимать такую реализации как "по умолчанию" используемую в Unity — есть заблуждение. Надеюсь эта статья будет полезной, даст верное понимание и устранит заблуждения. Ну а в конце статьи затронем грядущие серьезные изменения в Unity.

Читать далее
Всего голосов 18: ↑18 и ↓0+21
Комментарии8

IL2CPP: вызовы методов

Время на прочтение9 мин
Количество просмотров7.7K
Это четвертая статья из серии по IL2CPP. В ней мы поговорим о том, как il2cpp.exe генерирует код C++ для вызовов методов в управляемом коде.

Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии5

IL2CPP: экскурсия по генерируемому коду

Время на прочтение11 мин
Количество просмотров10K
Перед вами вторая статья из серии по IL2CPP. В этот раз мы поговорим о коде C++, генерируемом утилитой il2cpp.exe, а также рассмотрим представление управляемых типов в машинном коде, проверки во время выполнения, которые используются для поддержки виртуальной машины .NET, генерацию циклов и многое другое.


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

IL2CPP: обобщенная реализация

Время на прочтение8 мин
Количество просмотров6K
В предыдущей статье из серии по IL2CPP мы рассмотрели вызовы методов в генерируемом коде C++. Теперь мы поговорим об одной из самых важных особенностей кода IL2CPP – обобщенной реализации методов, позволяющей существенно уменьшить размер исполняемого файла IL2CPP. Стоит отметить, что обобщенная реализация также используется в средах выполнения Mono и .NET. В IL2CPP она изначально не поддерживалась и была добавлена только со временем.


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

Игра на ECS и как мы там живем

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров16K

Привет, Хабр.

Постараюсь описать наш опыт и к чему мы пришли работая над игрой на ECS. Код приведен для LeoEcs Lite, но сами мысли очень общие. Буду рад критике и вашим мыслям.

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии5

Что у ECS под капотом

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

Всем привет, это моя первая статья на Хабр. Давно хотел попробовать что-то написать, но всё никак не решался, да и темы подходящей не было. Наконец тема подвернулась, и пришло время закрыть этот гештальт =)

В данной статье я опишу общий принцип "подкапотной" работы ECS фреймворков и некоторые проблемы, с которыми столкнулся при написании своего.

Когда я только начал узнавать про ECS, всё это казалось очень красивым, но только на бумаге, и нужно было начать что-то на нём реально писать, чтобы на собственном опыте проверить всё, о чём пишут. Успел попробовать несколько фреймворков на разных движках и языках. В основном это был великолепный entt, который я прикручивал к Godot, и LeoECS на Unity. Родной Unity фреймворк я пробовать не стал, потому что, когда начинал своё знакомство, API у него менялось чуть ли не раз в месяц, что меня отпугнуло. 

В общем, получил достаточно опыта в использовании ECS на практике, но меня всё никак не покидал вопрос о том, как же оно работает под капотом. Есть пара хороших блогов о разработке ECS (от автора entt - https://skypjack.github.io/ и от автора flecs - https://ajmmertens.medium.com/), но все они давали мне недостаточно понимания как это можно сделать самому. В итоге я решил что лучший способ что-то понять — сделать это самому, поэтому мне пришлось писать свою ECS, как завещал старина Бендер =)

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии18

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

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

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

Окунуться в мир ECS
Всего голосов 35: ↑34 и ↓1+36
Комментарии27

Job System. Обзор с другой стороны

Время на прочтение14 мин
Количество просмотров25K
В новой версии unity 2018 года наконец официально добавили новую систему Entity component system или сокращенно ECS которая позволяет вместо привычной работы с компонентами объекта работать только с их данными.

Дополнительная же система задач предлагает вам использовать параллельные вычислительные мощности, чтобы улучшить производительность вашего кода.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии1

Человек не за бортом: зачем новеньким онбординг и как его проводить, чтобы первый день не стал последним + чек-лист

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров5.5K

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

***

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

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

Читать далее
Всего голосов 10: ↑6 и ↓4+5
Комментарии19

Генерирование полигональных карт для игр

Время на прочтение24 мин
Количество просмотров59K
Я хотел научиться генерировать интересные игровые карты, которые не обязательно были бы реалистичными, а также попробовать техники, с которыми раньше не работал. Обычно я создаю карты с другой структурой. Что можно сделать с тысячей полигонов вместо миллиона тайлов? Отчётливо различимые игроком области могут быть полезны для геймплея: местоположения городов, места квестов, территории для захвата или колонизации, ориентиры, точки поиска пути, зоны с разной сложностью и т.д. Я генерировал карты с помощью полигонов, а затем растеризировал их вот в такие карты:

image

Во многих процедурных генераторах карт, в том числе и некоторых моих предыдущих проектах, для генерирования карты высот используются функции шума (midpoint displacement, фракталы, diamond-square, шум Перлина и т.д.). Здесь я их не применял. Вместо неё я использовал структуру графов для моделирования элементов, определяемых ограничениями геймплея (высота, дороги, течение рек, места квестов, типы монстров) и функции шума для моделирования того, что не ограничивается геймплеем (форма побережья, расположение рек и деревьев).
Читать дальше →
Всего голосов 100: ↑99 и ↓1+98
Комментарии11

Ход «Voronoi»

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

Вместо предисловия


Урок русского языка в грузинской нерусской школе.
Учительница:
— Дэти, это нэльзя понять, это надо запомнить: ОТ ВАС пишется раздельно, а
КВАС — вместе.

Анекдот взят тут.

Введение


На написание статьи вдохновила игра «Wesnoth» — пошаговая стратегия с элементами RPG. В этой игре персонажи перемещаются по карте, состоящей из шестиугольных полигонов. Таким образом, окруженный со всех сторон персонаж может быть атакован шестью вражескими. По этой причине тактическая составляющая в игре очень важна. Возник вопрос: как повлияет на игровой процесс переход от карты с фиксированной геометрией полигонов на карту с произвольной геометрией?
Читать дальше →
Всего голосов 62: ↑56 и ↓6+50
Комментарии21

Создание игровых карт на основе диаграмм Вороного

Время на прочтение6 мин
Количество просмотров9.4K
Я написал статью о генерации полигональных карт при помощи диаграмм Вороного, но не объяснил, как писать её код. В этой статье я расскажу об основах создания вот таких карт с примерами кода на Javascript:


Многие люди хотят самостоятельно писать шум Вороного и симплекс-шум. Я обычно пользуюсь библиотеками. Вот чем я буду пользоваться:

  1. симплекс-шум: jwagner/simplex-noise.
  2. Вороной: mapbox/delaunator.

Если вы не работаете с Javascript, то для большинства языков тоже существуют библиотеки шума, а Delaunator был портирован на многие языки.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии1

Диаграмма Вороного и её применения

Время на прочтение25 мин
Количество просмотров125K
Доброго всем времени суток, уважаемые посетители сайта Хабрахабр. В данной статье я бы хотел рассказать вам о том, что такое диаграмма Вороного (изображена на картинке ниже), о различных алгоритмах её построения (за , — пересечение полуплоскостей, — алгоритм Форчуна) и некоторых тонкостях реализации (на языке C++).



Также будет рассмотрено много интересных применений диаграммы и несколько любопытных фактов о ней. Будет интересно!
Читать дальше →
Всего голосов 92: ↑89 и ↓3+86
Комментарии49

Как рисуется карта в Фараоне

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров13K

В свободное время я восстанавливаю старенькую, но довольно известную игру Pharaoh. Это ситибилдер, выпущенный в прошлом веке и разработанный Impressions Games. Технология рендеринга в этой игре была значительным достижением для своего времени и способствовала созданию впечатляющей атмосферы Древнего Египта, которая погружает игрока в проработанное окружение, удивляет вниманием к мелким деталям и передает богатство и разнообразие древнеегипетских пейзажей. В этой статье я опишу алгоритм отрисовки города, зданий, объектов, анимации и формат карты оригинальной игры.

Городу нужно больше рабочих...
Всего голосов 83: ↑83 и ↓0+83
Комментарии56

Доступное объяснение алгоритма коллапса волновой функции

Время на прочтение9 мин
Количество просмотров37K
Алгоритм коллапса волновой функции (Wavefunction Collapse Algorithm) учит компьютер импровизировать. На входе он получает архетипичные данные и создаёт процедурно генерируемые данные, похожие на исходные.


(Источник)

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


(Источник)

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

Большинство реализаций и объяснений коллапса волновой функции — это полная, оптимизированная по скорости версия алгоритма. Разумеется, все они важны и необходимы, но в них сложно разобраться с нуля. В этом посте я буду объяснять всё понятным я простым языком, сосредоточившись на версии Wavefunction с ограничениями, которую я назвал Even Simpler Tiled Model. Кроме того, я выложил пример реализации ESTM на Github. Код в нём неэффективный и медленный, но очень хорошо читаемый и подробно прокомментирован. Как только вы разберётесь в технологии, лежащей в основе ESTM, то станете ближе к пониманию более сложных версий алгоритма. Если хотите понять алгоритм коллапса волновой функции, то эта статья будет хорошим началом.
Читать дальше →
Всего голосов 56: ↑55 и ↓1+54
Комментарии19

Немного про особенности реализации Wave Function Collapse в нашей игре

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

В нашей прошлой игре разработка уровня занимала около трех месяцев, сейчас мы делаем тактическую стратегию и в ней планируется более 100 уровней. Увидев дикий ужас в глазах левел-дизайнера, мы решили, что “Лучше день потерять, потом за пять минут долететь!” и принялись за работу над автоматической генерацией уровней.

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

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии10

Разбираемся с алгоритмом коллапса волновой функции

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

После появления DeBroglie и Tessera меня много раз просили объяснить, как они работают. Генерирование может выглядеть как волшебство, но лежащие в его основе правила на самом деле просты.
Всего голосов 47: ↑47 и ↓0+47
Комментарии2

Алгоритм размещения тайлов на основе ограничений

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

В этом посте описывается алгоритм, используемый в Generate Worlds — инструменте, позволяющем пользователям создавать и исследовать процедурные миры построением небольших множеств воксельных тайлов. Я приведу краткое описание алгоритма, а в следующих постах расскажу о его преимуществах в скорости и гибкости по сравнению с другими методами. Чтобы подробнее узнать о том, что такое процедурная генерация на основе ограничений (constraint-based procedural generation) и о том, чем она интересна, рекомендую прочитать мой предыдущий пост.

Если вы хотите проверить свои силы в создании процедурных миров при помощи этой системы, то можете приобрести Generate Worlds. Если цена для вас слишком высока, то продолжайте чтение: этот пост даст вам информацию о том, как самостоятельно реализовать алгоритм Generate Worlds.
Читать дальше →
Всего голосов 27: ↑27 и ↓0+27
Комментарии2

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность