Search
Write a publication
Pull to refresh
0
0
Send message

Процедурные миры из простых тайлов

Reading time14 min
Views21K
image

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


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

Бухгалтерский учет для программистов

Reading time16 min
Views84K

Введение


Занимаюсь автоматизацией бухгалтерского учета 17 лет. После универа поработал как программист бухгалтерской программы. Выяснилось, что есть спрос на программистов этой программы. Поменял одну работу, вторую. Начал брать заказы на стороне. Выяснилось (или показалось), что выполнять заказы выгоднее, чем получать зарплату. Стал частным предпринимателем. Выяснилось (или опять показалось), что продавать программу выгоднее, чем программировать. Стал дилером. Оказалось, что выгоднее всего – подписка на обновления и обслуживание. Возможно, еще выгоднее сделать веб-сервис для онлайн-бухгалтерии…

В ходе работы приходилось нанимать программистов и обучать основам бухгалтерского учета. Когда обучал программистов бухучету, мне нравилось за час рассказать им всю базовую теорию. Приятно срывать покровы сложности и таинственности. Оказывается, курсы бухгалтеров никому не нужны. Нет такой науки. Разве что набор терминов, в которых путаются сами бухгалтера…
Читать дальше →

Принципы гештальта в дизайне пользовательского интерфейса

Reading time6 min
Views110K


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



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

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

UI, который сам обучает игрока управлению

Reading time12 min
Views10K

[Прим. пер.: в играх с нестандартными элементами управления разработчикам нужно научить игроков пользоваться всеми возможностями. Одним из вариантов решения этой проблемы стал реализованный студией Juicy Beast играбельный UI игрового меню.]

В мае 2013 года мы участвовали в геймджеме ToJam и за три дня создали игру. Так родилась оригинальная версия Toto Temple.

Примерно год спустя и после множества изменений, мероприятий и даже заключения партнёрского соглашения с Ouya игра Toto Temple эволюционировала в более качественную и отточенную Toto Temple Deluxe!
Читать дальше →

Невероятно эффектная цветомузыка на Arduino и светодиодах

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

Чего только самобытные мастера не придумают. От трехцветных моргалок до лазерных многолучевых установок с управлением по MIDI интерфейсу.



Как большой поклонник, так называемых адресных светодиодов, хочу показать вам очень простую и удивительную цветомузыку. Я вообще такой ни разу не видел. Пока не собрал за один вечер. Итак, визуализатор звука!

Мастер-класс «Почему Стив Джобс любил шрифты» (Алексей Каптерев)

Reading time19 min
Views218K


Привет, Хабр! Давно у нас в блоге не было расшифровок мастер-классов. Исправляемся. В этом посте вас ждет грандиозное путешествие в мир шрифтов от древнейших времен до наших дней. Если вы хотите понять, каким образом шрифты влияют на наши эмоции и наконец научиться отличать гуманистический гротеск от ленточной антиквы — добро пожаловать под кат. И да, там очень много картинок. Передаем слово автору.




Шутка, написанная гарнитурой Times, на 10 % смешнее той, что написана гарнитурой Arial. Почему? Чёрт знает. Лучшее объяснение, которое я видел: юмор ассоциируется с агрессией, с остротой, с остроумием — а Times выглядит более острым, чем Arial.


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

Первыми закрываются компании где ставится много задач. Статистика использования системы управления проектами YouGile

Reading time4 min
Views30K
Что самое важное в организации команды? Может построить планы?

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

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



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

Как рендерит кадр движок Unreal Engine

Reading time23 min
Views58K


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

Поскольку у нас есть доступ к исходному коду, мы можем изучить исходники рендерера, чтобы понять, что он делает, однако это довольно объёмная часть движка, а пути рендеринга сильно зависят от контекста, поэтому проще будет исследовать чистый низкоуровневный API (иногда заглядывая в код, чтобы заполнить пробелы).
Читать дальше →

Эволюционные вычисления: учим табуретку ходить

Reading time15 min
Views40K
image


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

Деловая переписка на английском языке: фразы и советы

Reading time18 min
Views633K
Елена Соловьева, менеджер проектов в компании Лаборатория Касперского, специально для блога Нетологии поделилась советами о том, как вести деловую переписку с иностранными коллегами и партнерами на английском языке. Статья участвует в конкурсе.

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

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

[Перевод] Круглее круга: оптические эффекты при проектировании интерфейсов

Reading time9 min
Views42K
Какой «круг»воспринимается как самый «круглый»?

image

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

Как создать визуально пропорциональные иконки, правильно расположить объекты разных форм и выполнить идеальное скругление углов. В посте представлено более 50 изображений.
Читать дальше →

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

Reading time9 min
Views47K


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.
Читать дальше →

Цвет в дизайне интерфейсов: инструкция по применению

Reading time7 min
Views57K


Как создать чистый интерфейс, используя всего лишь один цвет? Вы узнаете из этой статьи. Перевод «Я люблю ИП».


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


У меня есть другое мнение на этот счёт: теория цвета бесполезна.


Но если теория цвета не является прочной основой для выбора цвета в дизайне интерфейсов, то что тогда является?


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


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


Я знаю, что это звучит немного странно. Но послушайте меня, я дам вам практическую инструкцию для адаптации цвета в вашем дизайне.


Вы готовы? Тогда поехали.

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

Сударь, ваша команда — не команда

Reading time5 min
Views57K
За свои 12 лет работы в сфере разработки ПО, мне посчастливилось поработать в команде только два раза. Хотя я сменил порядка десяти мест работы. Но попробовав раз, ем и сейчас… Т.к. я не жадный, и готов своими достижениями делиться с сообществом, то решил я предпринять попытку вывести из равновесия неумных руководителей, которые до сих пор не осознали важность команды, а также тех руководителей, которые профессионально занимаются самообманом — мол, они строят команду, а на деле — тьфу, а не команда.
Читать дальше →

Как побороть распространенные артефакты графики

Reading time4 min
Views26K
Художники нарисовали яркую графику, программисты встроили ее в игру, аниматоры добавили движения — казалось бы, все, готово. Но нет, менеджерам не нравится:

«Надо убрать серые пятна и белые линии. Тут пульсирующая кнопка дергается, там прогресс-бар лесенкой идет».

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



Небольшой опрос для тех, кто уже знает откуда берутся артефакты. Что делать в такой ситуации?

  1. Нужна мощная видеокарта и свежие драйверы;
  2. Стоит сделать скачиваемые наборы графики для всех возможных разрешений экрана;
  3. У квадратных текстур с размерами степени двойки нет таких проблем;
  4. Это все из-за сжатия графики (PVRTC/DXT5/ETC1/...);
  5. В графическом редакторе придется слегка размазать края;
  6. Так и должно было получиться, ведь мы не подготовили графические данные;
  7. Поможет только антиалиасинг;
  8. Нужны текстуры и таргеты в режиме premultiplied alpha.

Какой вариант ответа правильный, почему именно он и как побороть артефакты графики читайте под катом.
Читать дальше →

Планетарный ландшафт

Reading time51 min
Views22K
Трудно поспорить, что ландшафт — неотъемлемая часть большинства компьютерных игр на открытых пространствах. Традиционный метод реализации изменения рельефа окружающей игрока поверхности следующий — берем сетку (Mesh), представляющую из себя плоскость и для каждого примитива в этой сетке производим смещение по нормали к этой плоскости на значение, конкретное для данного примитива. Говоря простыми словами, у нас есть одноканальная текстура размером 256 на 256 пикселей и сетка плоскости. Для каждого примитива по его координатам на плоскости берем значение из текстуры. Теперь просто смещаем по нормали к плоскости координаты примитива на полученное значение(рис.1)


Рис.1 карта высот + плоскость = ландшафт

Почему это работает? Если представить, что игрок находится на поверхности сферы, и радиус этой сферы чрезвычайно велик по отношению к размеру игрока, то искривлением поверхности можно пренебречь и использовать плоскость. Но что если не пренебрегать тем фактом, что мы находимся на сфере? Своим опытом построения такого рода ландшафтов я хочу поделиться с читателем в данной статье.
Читать дальше →

Случайное распределение урона в RPG

Reading time9 min
Views30K
image

Для вычисления урона от атаки в таких настольных ролевых играх, как Dungeons & Dragons, используются броски урона. Это логично для игры, чей процесс основан на бросках кубиков. Во многих компьютерных RPG урон и другие атрибуты (сила, очки магии, ловкость и т.д.) вычисляются по похожей системе.

Обычно сначала пишется код вызова random(), а затем результаты корректируются и подстраиваются под нужное игре поведение. В этой статье будут рассмотрены три темы:

  1. Простые корректировки — среднее значение и дисперсия
  2. Добавление асимметрии — отбрасывание результатов или добавление критических попаданий
  3. Полная свобода в настройке случайных чисел, неограниченная возможностями кубиков
Читать дальше →

Зачем нашим генам нас убивать? Эволюционное объяснение

Reading time12 min
Views63K
В посте про старение и менопаузу как генетические механизмы популяционного контроля я упомянул, что рассматриваю старение как одну из разновидностей процесса запрограммированного феноптоза (убийства особи). В обсуждении ожидаемо всплыл лосось, причем всплыл брюхом кверху — беднягу резко убивает выброс гормонов почти сразу после нереста. Для меня лосось является символом заложенной в нас программы самоубийства, но ничего экстраординарного в нём нет — примеров активного, резкого феноптоза в природе полно.

Самые простые и известные всем такие примеры — это одноцветные (или монокарпические) растения: пшеница или кукуруза, например. Или цветы. Причем среди них есть и многолетние виды, и если некоторым из них вовремя удалить цветки, то эти растения не умрут, а продолжат жить и даже, возможно, зацветут опять. В то же время некоторые деревья живут тысячелетиями. Это отлично демонстрирует, что есть особи с активным феноптозом, а есть особи без него. Что означает, что биологическим системам стареть вовсе не обязательно.

Кстати, активное самоубийство есть и у одноклеточных — дрожжей, например. Так, старые дрожжи уходят в апоптоз, когда ресурсов начинает не хватать, а популяция превышает определенный предел. А если наступают “голодные времена”, то уйти в апоптоз может и до 95% популяции, превратившись в корм для оставшихся 5%, которые трансформируются в споры и пытаются дождаться лучших времен, чтобы возродить колонию.

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

Можно ли пойти против своего возраста

Reading time11 min
Views45K

Существует удивительная взаимосвязь между образом мыслей и старением


image

В 1979 году психолог Элен Лэнгер и её студенты восстановили старый монастырь в городе Питерборо, штат Нью-Гэмпшир, так, чтобы он выглядел перенесённым из 1959 года. Они пригласили группу стариков возрастом за 70 лет провести в этом монастыре неделю, и жить там так, как они жили в 1959 году, «когда компьютер от IBM занимал целую комнату, а американские женщины только познакомились с колготками», – писала Лэнгер. Её идея состояла в том, чтобы вернуть людей в то время, когда они были моложе и здоровее, и посмотреть, повлияет ли это на них психологически.

Каждый день Лэнгер со студентами встречались с испытуемыми для обсуждения «текущих» событий. Они говорили о запуске первого искусственного спутника в США, вхождение Фиделя Кастро в Гавану и его шествие по Кубе, о том, как Балтимор Кольтс выиграли кубок чемпионов NFL. Они обсуждали «свежие» книги: «Голдфингер» Яна Флеминга и «Исход» Леона Юриса. Они смотрели на выступления Эда Салливана, Джека Бенни и Джеки Глисона на чёрно-белом телевизоре, слушали джаз от Нэта Кинга Коула по радио, и смотрели на Мэрилин Монро в фильме «Некоторые любят погорячее». Всё происходящее переносило людей в 1959 год.
Читать дальше →

Старение и менопауза — две программы популяционного контроля

Reading time8 min
Views47K
Что такое старение? Запрограммированное убийство. А менопауза? Запрограммированная кастрация. Два механизма популяционного контроля, которые гены отточили за миллиарды лет.

Почему гены поступают с нами так жестоко? По той же причине, по которой они делают всё остальное — чтобы максимизировать интеграл своего воспроизводства во времени. То есть им важен не сиюминутный максимум числа своих копий, а площадь под кривой числа этих копий во времени. Как мудрые экономисты, картели генов стремятся не к взрывному росту, чреватому обвалом, а к стабильному, долгосрочному sustainable growth в бесконечность.

Зачем генам нужно себя копировать? Затем же, зачем электрону “нужно” на максимально низкую орбиталь, а свободному радикалу — кого-нибудь да окислить. Так уж заведено в нашей вселенной. И, кстати, стремление к максимизации энтропии, похоже, вообще лежит в основе феномена живых систем (саморепликаторов) — по крайней мере, если выкладки Джереми Ингланда верны.

Ну да ладно, давайте вернемся на два уровня абстракции выше — от физики к биологии. Тут как-то привычней. Для чего генам нужны механизмы популяционного контроля? На интуитивном уровне это понятно даже ребёнку. Ведь недаром почти любой человек, впервые слышащий предложение остановить старение, сразу задаётся вопросом: «А как быть с перенаселением?».
Читать дальше →

Information

Rating
8,029-th
Registered
Activity