<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>Chaotic Game Design</title><subtitle>несколько шире, чем просто про гейм-дизайн

локально, нерегулярно, несалатно</subtitle><author><name>Chaotic Game Design</name></author><id>https://teletype.in/atom/chaoticgamedesign</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/chaoticgamedesign?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@chaoticgamedesign?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=chaoticgamedesign"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/chaoticgamedesign?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-04-04T09:41:29.655Z</updated><entry><id>chaoticgamedesign:gdblogs</id><link rel="alternate" type="text/html" href="https://teletype.in/@chaoticgamedesign/gdblogs?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=chaoticgamedesign"></link><title>Game Design Blogs</title><published>2022-08-22T05:54:34.076Z</published><updated>2022-08-22T05:54:34.076Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/d9/0c/d90c89c8-e59e-4d17-b7fe-98d775c597fd.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/98/b5/98b552b9-e078-4c91-944c-de5ac906852c.jpeg&quot;&gt;Некоторое время назад по геймдев каналам разошёлся список с интересными интервью представителей индустрии. Его основная идея: «хватит смотреть Ромеро и Кармака, есть другие замечательные дизайнеры и разработчики». Однако… список состоит в основном из мастодонтов индустрии: Сигэру Миямото, Тодд Говород, Хидео Кодзима и так далее. Кто о них не слышал? По сути мы не далеко ушли от «Ромеро и Кармака». Предлагаю список блогов, которые пишутся глобально менее известными людьми, но не менее эрудированными в своих областях.</summary><content type="html">
  &lt;figure id=&quot;hAti&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/98/b5/98b552b9-e078-4c91-944c-de5ac906852c.jpeg&quot; width=&quot;1280&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;eZjI&quot;&gt;Некоторое время назад по геймдев каналам разошёлся &lt;a href=&quot;https://t.me/aushestov/359&quot; target=&quot;_blank&quot;&gt;список&lt;/a&gt; с интересными интервью представителей индустрии. Его основная идея: «хватит смотреть Ромеро и Кармака, есть другие замечательные дизайнеры и разработчики». Однако… список состоит в основном из мастодонтов индустрии: Сигэру Миямото, Тодд Говород, Хидео Кодзима и так далее. Кто о них не слышал? По сути мы не далеко ушли от «Ромеро и Кармака». Предлагаю список блогов, которые пишутся глобально менее известными людьми, но не менее эрудированными в своих областях.&lt;/p&gt;
  &lt;nav&gt;
    &lt;ul&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#PCre&quot;&gt;На русском&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#L2XT&quot;&gt;На английском&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_2&quot;&gt;&lt;a href=&quot;#1Yrr&quot;&gt;Game Design&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_2&quot;&gt;&lt;a href=&quot;#mTcz&quot;&gt;Level Design&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_2&quot;&gt;&lt;a href=&quot;#CW52&quot;&gt;UX Design&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/nav&gt;
  &lt;h2 id=&quot;PCre&quot;&gt;На русском&lt;/h2&gt;
  &lt;p id=&quot;WG84&quot;&gt;• &lt;a href=&quot;http://aushestov.ru/&quot; target=&quot;_blank&quot;&gt;Анатолий Шестов&lt;/a&gt; (Executive Producer, Owlcat Games)&lt;/p&gt;
  &lt;p id=&quot;QlES&quot;&gt;• &lt;a href=&quot;https://torick.ru/&quot; target=&quot;_blank&quot;&gt;Святослав Торик&lt;/a&gt; (Head of Game Design, Dragon Machines)&lt;/p&gt;
  &lt;p id=&quot;9yk0&quot;&gt;• &lt;a href=&quot;http://nomoteshi.com/&quot; target=&quot;_blank&quot;&gt;Александр Номотеши&lt;/a&gt; (ex-Game Designer, Zeptolab)&lt;/p&gt;
  &lt;p id=&quot;Ye3R&quot;&gt;• &lt;a href=&quot;http://skobelev.su/&quot; target=&quot;_blank&quot;&gt;Василий Скобелев&lt;/a&gt; (Level Designer, Pixonic)&lt;/p&gt;
  &lt;p id=&quot;bL4b&quot;&gt;• &lt;a href=&quot;https://level-design.ru/&quot; target=&quot;_blank&quot;&gt;Михаил Кадиков&lt;/a&gt; (Level Designer, Crytek)&lt;/p&gt;
  &lt;h2 id=&quot;L2XT&quot;&gt;На английском&lt;/h2&gt;
  &lt;h3 id=&quot;1Yrr&quot;&gt;Game Design&lt;/h3&gt;
  &lt;p id=&quot;Jhtk&quot;&gt;• &lt;a href=&quot;https://jb-dev.net/&quot; target=&quot;_blank&quot;&gt;Javier Barn&lt;/a&gt; (Product Manager, King)&lt;/p&gt;
  &lt;p id=&quot;Ick6&quot;&gt;• &lt;a href=&quot;http://gangles.ca/&quot; target=&quot;_blank&quot;&gt;Matthew Gallant&lt;/a&gt; (Game Director, Naughty Dog)&lt;/p&gt;
  &lt;p id=&quot;caZP&quot;&gt;• &lt;a href=&quot;https://harshalkarvande.medium.com/&quot; target=&quot;_blank&quot;&gt;Harshal Karvande&lt;/a&gt; (Game Designer, Rovio)&lt;/p&gt;
  &lt;p id=&quot;B5Gh&quot;&gt;• &lt;a href=&quot;http://pushing-buttons.blogspot.com/&quot; target=&quot;_blank&quot;&gt;Eric Williams&lt;/a&gt; (Game Director, Santa Monica Studio)&lt;/p&gt;
  &lt;p id=&quot;xXRZ&quot;&gt;• &lt;a href=&quot;https://emshort.blog/2020/01/&quot; target=&quot;_blank&quot;&gt;Emily Short&lt;/a&gt; (Narrative Designer, Sunless Sea)&lt;/p&gt;
  &lt;p id=&quot;XgIO&quot;&gt;• &lt;a href=&quot;https://lostgarden.home.blog/&quot; target=&quot;_blank&quot;&gt;Daniel Cook&lt;/a&gt; (Chief Creative Officer, Spry Fox)&lt;/p&gt;
  &lt;p id=&quot;JigQ&quot;&gt;• &lt;a href=&quot;http://subtractivedesign.blogspot.com/2013/02/making-platforming-games.html&quot; target=&quot;_blank&quot;&gt;Kynan Pearson&lt;/a&gt; (Creative Director, Discord)&lt;/p&gt;
  &lt;p id=&quot;X9q7&quot;&gt;• &lt;a href=&quot;http://www.raphkoster.com/&quot; target=&quot;_blank&quot;&gt;Raph Koster&lt;/a&gt; (ex-Chief Creative Officer, Sony)&lt;/p&gt;
  &lt;p id=&quot;EOxu&quot;&gt;• &lt;a href=&quot;http://keithburgun.net/&quot; target=&quot;_blank&quot;&gt;Keith Burgun&lt;/a&gt; (Game Designer, Indie)&lt;/p&gt;
  &lt;p id=&quot;pZVG&quot;&gt;• &lt;a href=&quot;http://www.designer-notes.com/&quot; target=&quot;_blank&quot;&gt;Soren Johnson&lt;/a&gt; (ex-Game Designer, Firaxis Games)&lt;/p&gt;
  &lt;p id=&quot;gvxJ&quot;&gt;• &lt;a href=&quot;https://m.youtube.com/c/MortdogTFT/featured&quot; target=&quot;_blank&quot;&gt;Stephen Mortimer&lt;/a&gt; (Design Director, Riot)&lt;/p&gt;
  &lt;p id=&quot;GsHb&quot;&gt;• &lt;a href=&quot;https://www.youtube.com/c/Farlands&quot; target=&quot;_blank&quot;&gt;Stanislav Costiuc&lt;/a&gt; (ex-Game Designer, Ubisoft)&lt;/p&gt;
  &lt;h3 id=&quot;mTcz&quot;&gt;Level Design&lt;/h3&gt;
  &lt;p id=&quot;8YRt&quot;&gt;• &lt;a href=&quot;https://www.johnsto.co.uk/design/&quot; target=&quot;_blank&quot;&gt;Dave Johnston&lt;/a&gt; (ex-Level Designer, Valve)&lt;/p&gt;
  &lt;p id=&quot;0Ivi&quot;&gt;• &lt;a href=&quot;http://www.davidshaver.net/&quot; target=&quot;_blank&quot;&gt;David Shaver&lt;/a&gt; (Level Designer, Blizzard)&lt;/p&gt;
  &lt;p id=&quot;4Pat&quot;&gt;• &lt;a href=&quot;http://www.mikebarclay.co.uk/&quot; target=&quot;_blank&quot;&gt;Michael Barclay&lt;/a&gt; (Level Designer, Naughty Dog)&lt;/p&gt;
  &lt;p id=&quot;fXC2&quot;&gt;• &lt;a href=&quot;https://jaredemitchell.com/about/&quot; target=&quot;_blank&quot;&gt;Jared Mitchell&lt;/a&gt; (Level Designer, Life is Strange: True Colors)&lt;/p&gt;
  &lt;p id=&quot;3Qkx&quot;&gt;• &lt;a href=&quot;https://andrewyoderdesign.com/&quot; target=&quot;_blank&quot;&gt;Andrew Yoder&lt;/a&gt; (ex-Level Designer, Warframe)&lt;/p&gt;
  &lt;h3 id=&quot;CW52&quot;&gt;UX Design&lt;/h3&gt;
  &lt;p id=&quot;5YHq&quot;&gt;• &lt;a href=&quot;http://www.cand.land/home&quot; target=&quot;_blank&quot;&gt;David Candland&lt;/a&gt; (UX Design Director, WB Games)&lt;/p&gt;
  &lt;p id=&quot;twW9&quot;&gt;• &lt;a href=&quot;https://www.mattbutlerux.com/&quot; target=&quot;_blank&quot;&gt;Matt Butler&lt;/a&gt; (UX Design Director, Activision)&lt;/p&gt;
  &lt;p id=&quot;Eqkw&quot;&gt;• &lt;a href=&quot;https://celiahodent.com/category/blog/&quot; target=&quot;_blank&quot;&gt;Celia Hodent&lt;/a&gt;(ex-UX Design Director, Epic Games)&lt;/p&gt;
  &lt;p id=&quot;ED2j&quot;&gt;Приятного чтения / просмотра!&lt;/p&gt;
  &lt;p id=&quot;CMkf&quot;&gt;У некоторых значится «ex-» должность. Я не стал писать их текущую позицию, ведь кто-то ушел из индустрии, стал независимым или просто не говорит где работает… поэтому выбрал одну из самых «высоких» должностей, которую авторы занимали.&lt;/p&gt;

</content></entry><entry><id>chaoticgamedesign:gamebalanceresources</id><link rel="alternate" type="text/html" href="https://teletype.in/@chaoticgamedesign/gamebalanceresources?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=chaoticgamedesign"></link><title>Ресурсы по математике для гейм-дизайнера</title><published>2022-08-15T14:32:04.989Z</published><updated>2025-01-12T19:39:02.720Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/bd/52/bd52677a-17d0-4801-a9da-9faf8c53e523.png"></media:thumbnail><category term="matematika" label="математика"></category><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/1c/6c/1c6c893f-4934-456c-9210-8299ad200bb1.png&quot;&gt;Математика играет важную роль в гейм-дизайне, особенно если вы занимаетесь балансом. В этой заметке будет обзорный тур по ресурсам, которые могут помочь как в работе, так и на собеседовании. Большинство задач, связанных с игровым балансом, опираются на теорию вероятностей и математическую статистику, поэтому основной упор в материалах сделан именно на эти области.</summary><content type="html">
  &lt;p id=&quot;TVSI&quot;&gt;Математика играет важную роль в гейм-дизайне, особенно если вы занимаетесь балансом. В этой заметке будет обзорный тур по ресурсам, которые могут помочь как в работе, так и на собеседовании. Большинство задач, связанных с игровым балансом, опираются на теорию вероятностей и математическую статистику, поэтому основной упор в материалах сделан именно на эти области.&lt;/p&gt;
  &lt;nav&gt;
    &lt;ul&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#Xsbz&quot;&gt;Game Development&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#SszB&quot;&gt;Научно-популярная литература&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#4MUO&quot;&gt;Портал в Data Science&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#rX5K&quot;&gt;Учебники&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#c1sQ&quot;&gt;Онлайн&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#OS9l&quot;&gt;Задачники&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#tAWA&quot;&gt;Заключение&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#8zkm&quot;&gt;Вы прочитали всё?&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/nav&gt;
  &lt;h2 id=&quot;Xsbz&quot;&gt;Game Development&lt;/h2&gt;
  &lt;p id=&quot;QqkD&quot;&gt;&lt;em&gt;difficulty: medium&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;7Wrb&quot;&gt;Начнём с книг, которые имеют прямо отношение к разработке игр. В них не так много математики, написаны они просто, и имеют самое прямое отношение к гейм-дизайну.&lt;/p&gt;
  &lt;ul id=&quot;OuSU&quot;&gt;
    &lt;li id=&quot;Wsh2&quot;&gt;&lt;em&gt;Игровой Баланс (Ian Schreiber) — &lt;/em&gt;единственная книга [известная мне], полностью посвященная балансу: транзитивность, кривые стоимости, системы рейтинга и многие другие умные слова отлично раскрываются на её страницах. Для закрепления знаний используются упражнения. Более того, последняя часть книги полностью посвящена таблицам — крайне важному инструменту гейм-дизайнеров.&lt;br /&gt;&lt;a href=&quot;https://habr.com/ru/companies/piter/articles/758126/&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;Более подробно про книгу.&lt;/em&gt;&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;ul id=&quot;wLKH&quot;&gt;
    &lt;li id=&quot;9ld5&quot;&gt;&lt;em&gt;Virtual Economies: Design and Analysis (Vili Lehdonvirta &amp;amp; Edward Castronova) &lt;/em&gt;— книга с углублением в тему экономики с примерами из EVE Online. Автор лично работал над EVE, а также является профессор экономической социологии и цифровых социальных исследований в Оксфордском институте. К сожалению, в книге больше воды, чем в первой, но, тем не менее, интересные идеи и концепции можно найти.&lt;/li&gt;
    &lt;li id=&quot;MNot&quot;&gt;&lt;em&gt;Игра в цифры (Василий Сабиров) &lt;/em&gt;— книга не про гейм-дизайн, а аналитику, но аналитика и баланс всегда идут рука об руку, ведь без неё практически невозможно узнать, а работает ли ваш теоретический баланс в реальной среде и как правильно скорректировать его на основе данных. Data-driven [&lt;em&gt;-oriented&lt;/em&gt;] подход — наше всё.&lt;br /&gt;&lt;a href=&quot;https://habr.com/ru/companies/ruvds/articles/546306/&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;Неплохая выжимка.&lt;/em&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;ddkA&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/1c/6c/1c6c893f-4934-456c-9210-8299ad200bb1.png&quot; width=&quot;469&quot; /&gt;
    &lt;figcaption&gt;&lt;em&gt;Ian Schreiber, Game Balance&lt;/em&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;SszB&quot;&gt;Научно-популярная литература&lt;/h2&gt;
  &lt;p id=&quot;kYrs&quot;&gt;&lt;em&gt;difficulty: easy&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;uD7i&quot;&gt;К сожалению (или счастью), баланс строится на математических моделях, а они, как следует из термина, на математике. Многие не любят читать учебники по ней и разбираться в её тонкостях. На помощь здесь приходит научпоп. Он не уходит в глубины доказательств, но при этом даёт необходимые базовые знания.&lt;/p&gt;
  &lt;ul id=&quot;zxyG&quot;&gt;
    &lt;li id=&quot;y39x&quot;&gt;&lt;em&gt;Серия «Образовательная Манга»&lt;/em&gt; — коллекция про статистику, тервер, машинное обучение и всё-всё. В каждой из них есть уникальный сюжет, который проводит нас через весь материал. Вдобавок есть упражнения и выкладки с доказательствами для особо интересующихся читателей. В моих заметках частенько можно встретить вырезки из данной серии. &lt;/li&gt;
    &lt;li id=&quot;9y8v&quot;&gt;&lt;em&gt;Математика с дурацкими рисунками и Математический анализ в безумном мире (Орлин Бен) &lt;/em&gt;— две книги, которые описывают концепции из школьной алгебры и начала матанализа с «дурацкими рисунками» [&lt;em&gt;хотя я считаю их прекрасными&lt;/em&gt;]. Знание матанализа совершенно не обязательно для хорошего дизайнера, но иногда понимание производной помогает для анализа функции, а интеграла для сложных расчетов (которые, впрочем, вероятно можно выполнить и другими способами). &lt;/li&gt;
    &lt;li id=&quot;0Mh8&quot;&gt;&lt;em&gt;Игра случая&lt;/em&gt; (&lt;em&gt;Джозеф Мазур) &lt;/em&gt;— когда-нибудь слышали задачу о печатающей обезьяне? В ней спрашивается: сможет ли обезьяна (если дать ей сколько угодно времени), нажимающая случайным образом на кнопки клавиатуры компьютера, написать первую строку из сонета Шекспира? Книга расскажет о нескольких подобных увлекательных задачах в виде историй. Они, в свою очередь, затрагивают закон больших чисел, теорию скрытых переменных и закон действительно больших чисел — эти знания вам точно пригодятся в работе.&lt;/li&gt;
    &lt;li id=&quot;LGFZ&quot;&gt;&lt;em&gt;Статистика и котики&lt;/em&gt; (&lt;em&gt;Владимир Савельев) &lt;/em&gt;— справочник по статистике с простыми примерами. Как мне кажется, данный материал не стоит читать как учебник, потому что всё очень поверхностно и бегло. Никаких упражнений и доказательств, голые факты.&lt;/li&gt;
    &lt;li id=&quot;1Mch&quot;&gt;&lt;em&gt;Как лгать при помощи статистики (Дарелл Хафа)&lt;/em&gt; — классическая книга, которая учит критически подходить к статистическим данным и их интерпретации. Несмотря на провокационное название, она показывает, как данные могут быть представлены так, чтобы вводить в заблуждение или формировать определённый нарратив. Для гейм-дизайнеров это особенно полезно: вы сможете корректно показывать игрокам информацию [&lt;em&gt;причём определение корректности каждый может определить для себя сам&lt;/em&gt;], а также правильно интерпретировать аналитические данные, избегая ошибок в работе с игровыми метриками.&lt;br /&gt;&lt;a href=&quot;https://habr.com/ru/articles/698180/&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;Обзор всей книги.&lt;/em&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;zDZC&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/ce/46/ce46d478-d000-4f87-8f99-1befd6d038d2.png&quot; width=&quot;1532&quot; /&gt;
    &lt;figcaption&gt;&lt;em&gt;Син Такахаси, Занимательная статистика&lt;/em&gt; &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;4MUO&quot;&gt;Портал в Data Science&lt;/h2&gt;
  &lt;p id=&quot;3k6I&quot;&gt;&lt;em&gt;difficulty: medium&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;X44M&quot;&gt;Коллегам, занимающимся Data Science, тоже часто приходится опираться на статистику, так почему бы не почитать то, что читают они?&lt;/p&gt;
  &lt;ul id=&quot;DHVG&quot;&gt;
    &lt;li id=&quot;ISdd&quot;&gt;&lt;em&gt;Доверительное АB тестирование (Кохави Р., Тан Д., Сюй Я.)&lt;/em&gt; — гейм-дизайнерам часто приходится работать с A/B тестами: проводить эксперименты, следить за их корректностью и делать выводы. Культура A/B тестирования достаточно сложна, и, чтобы избежать базовых ошибок, стоит ознакомиться с этой книгой. Она поможет лучше понять, как правильно сетапить эксперименты, интерпретировать результаты и учитывать все нюансы.&lt;/li&gt;
    &lt;li id=&quot;GkP5&quot;&gt;&lt;em&gt;Практическая статистика для специалистов Data Science (Питер Брюс, Эндрю Брюс, Питер Гедек)&lt;/em&gt; — эта книга станет отличным пособием для тех, кто хочет глубже разобраться в основах статистики, необходимых для работы с данными, но не уходить в дебри. Авторы наглядно объясняют ключевые концепции на базовом уровне: от анализа данных и визуализации до проверки гипотез и машинного обучения.&lt;/li&gt;
    &lt;li id=&quot;NBAn&quot;&gt;&lt;em&gt;Заставьте данные говорить (Алексей Колокольников)&lt;/em&gt; — гейм-дизайнерам нередко приходится визуализировать данные, будь то для внутреннего анализа, общения с коллегами или демонстрации игрокам. Эта книга поможет научиться строить понятные, информативные и эффектные графики, избегая визуального &amp;quot;шума&amp;quot;.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;wV34&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/cc/d2/ccd2ee02-cd5d-44a8-a3cb-d3c36d03fd46.png&quot; width=&quot;258.75&quot; /&gt;
    &lt;figcaption&gt;Классный график?&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;rX5K&quot;&gt;Учебники&lt;/h2&gt;
  &lt;p id=&quot;yf7l&quot;&gt;&lt;em&gt;difficulty: hard&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;bMH9&quot;&gt;Если вы хотите хардкора, то можно обратиться к настоящим учебникам. Если первые главы будут понятны большинству, то для оставшихся необходимы начальные знания математического анализа. Личные рекомендации:&lt;/p&gt;
  &lt;ul id=&quot;d0db&quot;&gt;
    &lt;li id=&quot;I2oL&quot;&gt;&lt;em&gt;Письменный Д.Т., Конспект лекций по теории вероятностей и математической статике.&lt;/em&gt;&lt;/li&gt;
    &lt;li id=&quot;gY7D&quot;&gt;&lt;em&gt;Гмурман В.Е, Теория вероятностей и математическая статистика.&lt;/em&gt;&lt;/li&gt;
    &lt;li id=&quot;p58J&quot;&gt;&lt;em&gt;В. Феллер, Введение в теорию вероятностей и ее приложение в двух томах.&lt;/em&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;ieVV&quot;&gt;Все учебники похожи по базовому содержанию и структуре, но &amp;quot;сок&amp;quot; отличается, так, например, Гмурман значимую часть книге посвящает проверке статистических гипотез.&lt;/p&gt;
  &lt;p id=&quot;ZFui&quot;&gt;Многие также рекомендуют Вентцель E.С., но по моему мнению, данный учебник написан более сложным языком, чем другие. &lt;/p&gt;
  &lt;h2 id=&quot;c1sQ&quot;&gt;Онлайн&lt;/h2&gt;
  &lt;p id=&quot;ctwl&quot;&gt;&lt;em&gt;difficulty: custom&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;Wcwl&quot;&gt;В эпоху интернета было бы глупо не воспользоваться его дарами. &lt;/p&gt;
  &lt;ul id=&quot;rbc5&quot;&gt;
    &lt;li id=&quot;k12q&quot;&gt;&lt;a href=&quot;https://www.devtodev.com/education/online-course/mathematics-in-game-design&quot; target=&quot;_blank&quot;&gt;Математика в геймдизайне&lt;/a&gt; от dev2dev — онлайн курс, который покрывает необходимый минимум.&lt;/li&gt;
    &lt;li id=&quot;78Tz&quot;&gt;&lt;a href=&quot;https://www.youtube.com/channel/UC0JB7TSe49lg56u6qH8y_MQ&quot; target=&quot;_blank&quot;&gt;GDC&lt;/a&gt; — самая большая конференция разработчиков видеоигр в мире. Море полезного контента, в частности по балансу и экономике. Мои любимые доклады:&lt;/li&gt;
    &lt;ul id=&quot;cu55&quot;&gt;
      &lt;li id=&quot;DLnW&quot;&gt;&lt;a href=&quot;https://youtu.be/7rqfbvnO_H0&quot; target=&quot;_blank&quot;&gt;Slay the Spire: Metric Driven Design and Balance&lt;/a&gt;&lt;/li&gt;
      &lt;li id=&quot;N86k&quot;&gt;&lt;a href=&quot;https://youtu.be/8YJ53skc-k4&quot; target=&quot;_blank&quot;&gt;Changing the Time Between Shots for the Sniper Rifle from 0.5 to 0.7 Seconds for Halo 3&lt;/a&gt;&lt;/li&gt;
      &lt;li id=&quot;qYM4&quot;&gt;&lt;a href=&quot;https://youtu.be/aX8f1lE09uY&quot; target=&quot;_blank&quot;&gt;Balancing the Economy for Albion Online&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
    &lt;li id=&quot;cSug&quot;&gt;&lt;a href=&quot;https://www.youtube.com/c/Machinationsio&quot; target=&quot;_blank&quot;&gt;Machinations&lt;/a&gt; — веб-инструмент для симуляции игровых систем, но у разработчиков есть &lt;a href=&quot;https://www.youtube.com/c/Machinationsio&quot; target=&quot;_blank&quot;&gt;ютуб канал&lt;/a&gt;. На нём периодически проводятся вебинары с приглашенными гостями, например, с Шрайбером про &lt;a href=&quot;https://youtu.be/PW-XwqhPTjc&quot; target=&quot;_blank&quot;&gt;4X and Abstraction in Game Design&lt;/a&gt;. На семинарах не стоит надеяться увидеть или услышать идеальную формулу баланса, но на них определенно можно найти новые подходы к дизайну или концепции. &lt;/li&gt;
  &lt;/ul&gt;
  &lt;h2 id=&quot;OS9l&quot;&gt;Задачники&lt;/h2&gt;
  &lt;p id=&quot;tRez&quot;&gt;Пришло время готовиться к собеседованию. Где же это делать? &lt;/p&gt;
  &lt;ul id=&quot;IHTt&quot;&gt;
    &lt;li id=&quot;ASb0&quot;&gt;Открытые тестовые. Таких можно найти очень много, например, &lt;a href=&quot;http://aushestov.ru/гейм-дизайн/&quot; target=&quot;_blank&quot;&gt;вот тут&lt;/a&gt;. &lt;/li&gt;
    &lt;li id=&quot;Uhqc&quot;&gt;&lt;a href=&quot;https://gdcuffs.com/dop-game/&quot; target=&quot;_blank&quot;&gt;Dungeons of Probability&lt;/a&gt; — небольшая игра, в которой надо решать простые задачки на теорвер.&lt;/li&gt;
    &lt;li id=&quot;SUfE&quot;&gt;&lt;a href=&quot;https://www.mathedu.ru/text/mosteller_50_zanimatelnyh_veroyatnostnyh_zadach_1975/p4/&quot; target=&quot;_blank&quot;&gt;Мостеллер Ф., 50 занимательных вероятностных задач с решениями&lt;/a&gt; — сборник задач на тервер. Говорят, что если прорешать все задачи из сборника, то любое тестовое покажется пустышкой. На самом деле почти так и есть, потому что идей решения задач на теорию вероятностей с дискретными случайными величинами не так уж и много, а другие дают редко.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;dorq&quot;&gt;Заодно можно открыть любой из учебников и прорешать задачки оттуда. Обычно они интереснее тех, что дают на тестовых (по очевидным причинам). &lt;/p&gt;
  &lt;figure id=&quot;8013&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://gdcuffs.com/wp-content/uploads/2021/05/image-1024x644.png&quot; width=&quot;1024&quot; /&gt;
    &lt;figcaption&gt;&lt;em&gt;Dungeons of Probability&lt;/em&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;tAWA&quot;&gt;Заключение&lt;/h2&gt;
  &lt;p id=&quot;jPBQ&quot;&gt;Надеюсь, вы нашли в этой заметке что-то полезное для себя и вдохновились укрепить свои знания в математике. Однако важно помнить, что математика не ограничивается только теорией вероятностей и математической статистикой. Стоит обратить внимание и на другие её разделы, такие как:&lt;/p&gt;
  &lt;ul id=&quot;wt4a&quot;&gt;
    &lt;li id=&quot;IwsE&quot;&gt;&lt;strong&gt;Математический анализ&lt;/strong&gt; — чтобы разобраться в дифференциальном и интегральном исчислении, что может быть полезным при анализе сложных игровых экономик.&lt;/li&gt;
    &lt;li id=&quot;5Hp2&quot;&gt;&lt;strong&gt;Линейная алгебра&lt;/strong&gt; — для работы с системами линейных уравнений и понимания таких фундаментальных понятий, как векторы, матрицы и операторы.&lt;/li&gt;
    &lt;li id=&quot;olxo&quot;&gt;&lt;strong&gt;Дискретная математика&lt;/strong&gt; — для более глубокого погружения в комбинаторику, например, изучение чисел Каталана, Стирлинга, Белла и других концепций может значительно упростить решение некоторых задач.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;89xk&quot;&gt;Разумеется, изучать всё это стоит только в том объёме, который соответствует вашим потребностям. Более того, без многих из этих знаний можно прекрасно обойтись в работе, &lt;em&gt;но с ними — и интереснее, и местами легче&lt;/em&gt;.&lt;/p&gt;
  &lt;figure id=&quot;6FAa&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/47/6e/476e6cb6-95da-4abd-aba3-9cb101ab2319.jpeg&quot; width=&quot;672&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;8zkm&quot;&gt;Вы прочитали всё?&lt;/h2&gt;
  &lt;ul id=&quot;lsqr&quot;&gt;
    &lt;li id=&quot;wsEi&quot;&gt;&lt;a href=&quot;https://education.yandex.ru/journal/matematika-v-data-science&quot; target=&quot;_blank&quot;&gt;https://education.yandex.ru/journal/matematika-v-data-science&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;EZYK&quot;&gt;&lt;a href=&quot;https://habr.com/ru/articles/541064/&quot; target=&quot;_blank&quot;&gt;https://habr.com/ru/articles/541064/&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;N3SJ&quot;&gt;&lt;a href=&quot;https://blog.skillfactory.ru/knigi-analitiku-dannyh/&quot; target=&quot;_blank&quot;&gt;https://blog.skillfactory.ru/knigi-analitiku-dannyh/&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;

</content></entry><entry><id>chaoticgamedesign:doomscarydarkfast</id><link rel="alternate" type="text/html" href="https://teletype.in/@chaoticgamedesign/doomscarydarkfast?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=chaoticgamedesign"></link><title>DOOM: SCARYDARKFAST</title><published>2022-08-08T13:22:35.638Z</published><updated>2022-08-08T14:29:47.924Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/bb/9c/bb9cdce9-24b2-40b8-88e3-bb138701202f.png"></media:thumbnail><category term="knigi" label="книги"></category><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/13/47/134751ad-b2cb-4935-a651-b5196c6e5653.jpeg&quot;&gt;Наконец-то добрался до непрочитанных книг про разработку игр: «История Серии Zelda», «Hey, Listen!», «Mass Effect: восхождение к звездам». В основном они состоят из многочисленных интервью и забавных историй, и почти не затрагивают процессы разработки. Лишь малая часть содержания посвящена анализу: почему было сделано так, а зачем было сделано это, чего хотелось добиться этим... Ответов на эти вопросы почти нет, поэтому я практически потерял желание читать такие книги. Вот добрался до последней, надежды на что-то хорошее почти не осталось. И о чудо, я ошибся! Это была «DOOM. Как в битвах с демонами закалялся новый жанр».</summary><content type="html">
  &lt;h2 id=&quot;g6cu&quot;&gt;Книги&lt;/h2&gt;
  &lt;p id=&quot;yJgL&quot;&gt;Наконец-то добрался до непрочитанных книг про разработку игр: «История Серии Zelda», «Hey, Listen!», «Mass Effect: восхождение к звездам». В основном они состоят из многочисленных интервью и забавных историй, и почти не затрагивают процессы разработки. Лишь малая часть содержания посвящена анализу: почему было сделано так, а зачем было сделано это, чего хотелось добиться этим... Ответов на эти вопросы почти нет, поэтому я практически потерял желание читать такие книги. Вот добрался до последней, надежды на что-то хорошее почти не осталось. И о чудо, я ошибся! Это была «DOOM. Как в битвах с демонами закалялся новый жанр».&lt;/p&gt;
  &lt;figure id=&quot;Mvky&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/13/47/134751ad-b2cb-4935-a651-b5196c6e5653.jpeg&quot; width=&quot;1280&quot; /&gt;
    &lt;figcaption&gt;Разворот книги. Есть картинки!&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Mmjn&quot;&gt;В SCARYDARKFAST в разы больше рассуждений на тему гейм-дизайна и около. Многие вещи подкинули мне почву для размышлений. Начнём с цитаты Кевина Клауда, которая идеально описывает, каким должен быть шутер:&lt;/p&gt;
  &lt;blockquote id=&quot;b83Z&quot;&gt;Если в шутере неинтересно бегать и стрелять, то вы в полной заднице. Если это не весело, то у вас не получится популярного шутера, что бы вы туда ни добавляли. У каждого жанра свои сильные вторы, и в шутере... Если бегать и стрелять не весело, если это ощущается неестественным, не задействует спинной мозг и не наделяет игрока силой, то я полагаю, вы пролетели.&lt;/blockquote&gt;
  &lt;h2 id=&quot;GUxa&quot;&gt;Документация&lt;/h2&gt;
  &lt;p id=&quot;3BoH&quot;&gt;В начале разработки Том Холл создал «&lt;a href=&quot;https://5years.doomworld.com/doombible/doombible.pdf&quot; target=&quot;_blank&quot;&gt;Библию DOOM&lt;/a&gt;». Своего рода концепт док игры. Он содержит много полезной информации и описаний, задающих тон игры. Как мне кажется, устанавливать такие «правила» на раннем этапе разработки крайне полезно, потому что в дальнейшем помогает быстро отсекать бредовые идеи.&lt;/p&gt;
  &lt;p id=&quot;djpo&quot;&gt;Также в документе стоит выделить две полезные секции, о которых порой забывают:&lt;/p&gt;
  &lt;ol id=&quot;1qu0&quot;&gt;
    &lt;li id=&quot;ALbW&quot;&gt;Глоссарий. Команда должна общаться на одном языке, и он должен быть зафиксирован;&lt;/li&gt;
    &lt;li id=&quot;s09S&quot;&gt;Random Extremely Important Info Too Small To Rate Having Its Own Section. Немного дополнительных сведений, которые могут лишь косвенно влиять на производство, например, время работы и номер ближайшее пиццерии, но при этом улучшать его.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;IO6z&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/eb/9f/eb9fd50f-2e31-4fad-954a-f97f411feb20.png&quot; width=&quot;1782&quot; /&gt;
    &lt;figcaption&gt;Глоссарий.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;6x7J&quot;&gt;Враги&lt;/h2&gt;
  &lt;blockquote id=&quot;lbKq&quot;&gt;Детали могут быть незаметными, но их влияние на геймдизайн и геймплей абсолютно. В играх всё решают цифры.&lt;/blockquote&gt;
  &lt;p id=&quot;T4ef&quot;&gt;Абсолютно согласен с этой мыслью. Единственное, не стоит забывать, что математический баланс — это поиск оптимального решения, а геймдизайнерский — наивысшей точки фана. Фан в шутерах во многом зависит от врагов и какие же первые враги были в последнем предрелизном пресс-демо DOOM?&lt;/p&gt;
  &lt;ul id=&quot;KuVo&quot;&gt;
    &lt;li id=&quot;204W&quot;&gt;Зомби — рядовой враг / массовка;&lt;/li&gt;
    &lt;li id=&quot;HGnt&quot;&gt;Барон ада — танк / босс;&lt;/li&gt;
    &lt;li id=&quot;ESas&quot;&gt;Потерянная душа — раздражитель / камикадзе;&lt;/li&gt;
    &lt;li id=&quot;Cq8f&quot;&gt;Какодемон — летающий.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;bFkg&quot;&gt;Задача каждого врага не просто убить игрока, а вызвать у него определенные эмоции. Таким образом, 4 врагов было достаточно, чтобы сделать фан, который пришелся по нраву прессе. Более того, какодемон оказался крайне виральным. Вопрос, а можно ли на таком количестве врагов прототипировать шутеры? Кажется, что да, потому что они покрывают необходимые дистанции атаки и уровни геометрии.&lt;/p&gt;
  &lt;figure id=&quot;pvGm&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://wompampsupport.azureedge.net/fetchimage?siteId=7575&amp;v=2&amp;jpgQuality=100&amp;width=700&amp;url=https%3A%2F%2Fi.kym-cdn.com%2Fentries%2Ficons%2Fmobile%2F000%2F033%2F302%2Fcover1.jpg&quot; width=&quot;700&quot; /&gt;
    &lt;figcaption&gt;Милашка.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Kx2R&quot;&gt;Для усиления всеобщей взаимосвязи, которое идеально вписывается в неистовый хаос, было решено сделать friendly-fire между монстрами. Если зомби окажется на линии огня и получит урон от своего, казалось бы, союзника, то он возьмет его как цель своей следующей атаки вместо игрока. Вот, что говорит Ромеро:&lt;/p&gt;
  &lt;blockquote id=&quot;lvnK&quot;&gt;Монстры настолько одержимы, что выжили из умри убивают друг друга. Им плевать, что уничтожать, они просто хотят поубивать всех, даже друг друга.&lt;/blockquote&gt;
  &lt;p id=&quot;4HLW&quot;&gt;&lt;a href=&quot;https://www.gamers.org/pub/idgames/lmps/tyson/weapons&quot; target=&quot;_blank&quot;&gt;Подробный разбор&lt;/a&gt; оружия и врагов от Джоржа Белла.&lt;/p&gt;
  &lt;h2 id=&quot;DVwy&quot;&gt;Дизайн Пространства&lt;/h2&gt;
  &lt;p id=&quot;4NLG&quot;&gt;Игрок и монстры должны где-то сражаться, а именно на аренах. Основные правила дизайна уровне освящены в &lt;a href=&quot;https://youtu.be/ptHurafdCoQ&quot; target=&quot;_blank&quot;&gt;John Romero&amp;#x27;s Level Design Rules&lt;/a&gt;. Не буду повторяться, поэтому рассмотрим другие не менее интересные моменты.&lt;/p&gt;
  &lt;p id=&quot;dsEn&quot;&gt;E3M6 «Mt. Erebus» — первая карта, которая идеально подходит для режима &lt;em&gt;deathmatch&lt;/em&gt;. Её создатель, Тим Уиллитс, говорит следующее:&lt;/p&gt;
  &lt;blockquote id=&quot;gBWb&quot;&gt;Если вы делаете карту для «смертельного боя» и вам хочется сделать её лучшей на свете, следуйте формуле создания других величайших карт для такого режима, и вам ждёт успех. Всё очень просто. В центре — большая комната с этажами разной высоты, ещё надо добавить снаружи пару проходов и переходов — и всё, дело в шляпе.&lt;/blockquote&gt;
  &lt;figure id=&quot;eDyN&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://www.quakeworld.nu/w/images/c/c6/Dm6.jpg&quot; width=&quot;400&quot; /&gt;
    &lt;figcaption&gt;DM6 «Dark Zone» из Quake следуте шаблону.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;aLPE&quot;&gt;Как не самый опытный дизайнер уровней, взял себе этот подход на заметку.&lt;/p&gt;
  &lt;p id=&quot;z3yh&quot;&gt;А вот так выглядит E3M2 «Slough of Despair»:&lt;/p&gt;
  &lt;figure id=&quot;9cN7&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://3dwarehouse.sketchup.com/warehouse/v1.0/publiccontent/ce1f3cfc-80d9-4872-9f08-395fea32167b&quot; width=&quot;910&quot; /&gt;
    &lt;figcaption&gt;E3M2 «Slough of Despair».&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;rSgA&quot;&gt;Начинаешь невольно задумываться, а что если дизайнеры матч-3 стали делать уровни в виде силуэтов после игры в DOOM? &lt;/p&gt;
  &lt;p id=&quot;BL3s&quot;&gt;Какие же отношения выстраиваются между игроком и пространством? В DOOM игрок находится в реактивных отношениях с ним, а не в проактивных, как, например, в Far Cry (&lt;a href=&quot;http://www.mikebarclay.co.uk/proactive-vs-reactive-combat/&quot; target=&quot;_blank&quot;&gt;Proactive vs Reactive Combat&lt;/a&gt;). Таким образом, в проактивных играх игровой процесс несколько замедляется из-за тактических элементов: какое оружие взять, что выкинуть из инвентаря, как напасть на врага. В DOOM хотелось всё это минимизировать, поэтому, например, в игре нет перезарядки. &lt;/p&gt;
  &lt;blockquote id=&quot;cOd0&quot;&gt;Все прятки нужно было убрать. Если я могу пригнуться или укрыться за чем-нибудь и впитывать урон как губка, то зачем вообще учиться играть? Где здесь вызов? Я начинал с аркадных автоматом, а там скорость — это всё.&lt;/blockquote&gt;
  &lt;p id=&quot;pSev&quot;&gt;Вот что говорит Ромеро по поводу динамики игры.&lt;/p&gt;
  &lt;p id=&quot;g4qo&quot;&gt;Серия прогрессировала, а вместе с ней и правила. Так в DOOM 2016 можно столкнуться с «математически выверенными» аренами, их математика заключается в том, что если игрока прижмут к стене, у него должны оставаться один-два варианта для отступления и маневра. Появляется двойной прыжок и механика добиваний, так игра провоцирует вас бежать и убивать врагов всё больше и больше. Враги же в свою очередь стараются сократить дистанцию до игрока, чтобы нанести сокрушительный удар. Всё движется!  &lt;/p&gt;
  &lt;h2 id=&quot;TrNG&quot;&gt;Заключение&lt;/h2&gt;
  &lt;p id=&quot;Z3C5&quot;&gt;Конечно же, я покрыл не весь материал книги, а лишь выдернул самые яркие для себя моменты. Возможно книга получилась такой интересной, потому что автор – учёный-искусствовед, который в своей научной диссертации анализировали FPS, а ещё он креативный директор The Chinese Room (&lt;em&gt;Dear Esther, Everybody&amp;#x27;s Gone to the Rapture&lt;/em&gt;). Так, если кто-то думал брать или не брать книгу, то смело берите. Хотя со своими советами я опоздал на пару лет... но лучше поздно, чем никогда.&lt;/p&gt;
  &lt;figure id=&quot;iImS&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/1b/52/1b527527-0f72-40dd-8ba4-668886d9a1ed.gif&quot; width=&quot;267&quot; /&gt;
  &lt;/figure&gt;

</content></entry><entry><id>chaoticgamedesign:ltf-diagram</id><link rel="alternate" type="text/html" href="https://teletype.in/@chaoticgamedesign/ltf-diagram?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=chaoticgamedesign"></link><title>LtF Диаграмма</title><published>2022-07-26T06:28:02.326Z</published><updated>2022-07-26T09:46:41.938Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/e4/d8/e4d87854-ce6a-4397-b553-7d74a59f794c.png"></media:thumbnail><category term="dokumentaciya" label="документация"></category><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/58/73/587319d0-d947-4f1c-b5f8-e7bfb2207dc6.jpeg&quot;&gt;Любая игра состоит из набора механик, которые объединяются в системы, которые в свою очередь и образуют игру. У многих начинающих разработчиков есть желание добавить всё что-угодно в игру, потому что «это ж блин классная штука!». У бизнес акул желание убрать как можно больше, чтобы попасть в намеченные сроки. Вопрос! Можно ли как-то понять значимость фичи? Да, можно, и именно диаграмма Джеффа Чена в этом и может помочь. </summary><content type="html">
  &lt;p id=&quot;AhYm&quot;&gt;Любая игра состоит из набора механик, которые объединяются в системы, которые в свою очередь и образуют игру. У многих начинающих разработчиков есть желание добавить всё что-угодно в игру, потому что «это ж блин классная штука!». У бизнес акул желание убрать как можно больше, чтобы попасть в намеченные сроки. Вопрос! Можно ли как-то понять значимость фичи? Да, можно, и именно диаграмма Джеффа Чена в этом и может помочь. &lt;/p&gt;
  &lt;figure id=&quot;45GU&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/58/73/587319d0-d947-4f1c-b5f8-e7bfb2207dc6.jpeg&quot; width=&quot;750&quot; /&gt;
    &lt;figcaption&gt;Оставить волнения. Рассматриваемая диаграма будет полезенее.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;JYZh&quot;&gt;Кто такой Чен? Дизайнер, который когда-то работал в Activision, где и придумал данный подход. Во время анализа чужих игр (чем он и занимался в рабочее время) он понял, что значимость фичи надо измерять совместно с другими фичами, то есть измерять влияние одной фичи на другие.&lt;/p&gt;
  &lt;p id=&quot;i5Xq&quot;&gt;Так сформировался принцип: &lt;em&gt;«Любая фича в игре ценна только в той мере, в какой она влияет (или находится под влиянием) на другие фичи игры»&lt;/em&gt;. Ключевой идеей здесь является концепция «влияния». Одна фича находится под влиянием другой только в том случае, если она каким-то образом задействуется её.&lt;/p&gt;
  &lt;p id=&quot;wRSp&quot;&gt;Введем следующие обозначения:&lt;/p&gt;
  &lt;ul id=&quot;UWhy&quot;&gt;
    &lt;li id=&quot;M1Su&quot;&gt;=&amp;gt; влияние одной фичи на другую;&lt;/li&gt;
    &lt;li id=&quot;sgiu&quot;&gt;&amp;lt;=&amp;gt; совместное влияние.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;qpLt&quot;&gt;Например, если в игре можно убивать монстров, чтобы получать экспу, чтобы становиться сильнее, чтобы убивать более классных монстров, получаем: &lt;em&gt;Комбат =&amp;gt; XP =&amp;gt; Прокачка =&amp;gt; Комбат&lt;/em&gt;. Более простой пример: если мир вокруг изменяем, то он подвержен влиянию, например, в Minecraft: &lt;em&gt;Инструменты =&amp;gt; Мир&lt;/em&gt;, иначе система мира не находится под влиянием (но может влиять!)&lt;/p&gt;
  &lt;figure id=&quot;98N4&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/35/23/3523f0dc-17b3-44c3-8db7-694715887bcd.png&quot; width=&quot;1288&quot; /&gt;
    &lt;figcaption&gt;Диаграмма ресурсов в виде цикла. &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;oDDs&quot;&gt;Попробуем изобразить всё это в виде диаграммы, а не кор-лупа (или любого другого лупа). Каждая фича — прямоугольник, связи — стрелки. &lt;/p&gt;
  &lt;p id=&quot;SU0l&quot;&gt;Полная диаграмма выдуманной Action / Adventure игры (почти как &lt;em&gt;Ratchet and Clank&lt;/em&gt;):&lt;/p&gt;
  &lt;figure id=&quot;ucZK&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/f1/98/f19808e2-ecb2-454f-9b04-76fd1e7510db.png&quot; width=&quot;2248&quot; /&gt;
    &lt;figcaption&gt;Пример LtF диаграммы для выдуманной игры.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;bYSL&quot;&gt;Получается, что чем больше стрелок указывает на какой-либо блок, тем важнее этот блок для общего дизайна. Интересная особенность этой диаграммы заключается в том, что, взяв общее среднее число ссылок на фичи (количество линков, разделенные на количество фич), получим отношением ссылок к фичам или просто &lt;strong&gt;Links-to-Features / score&lt;/strong&gt;. Это число является показателем того, насколько связаны между собой ваши функции. Перефразировав принцип, озвученный выше: чем больше LtF, тем лучше. Точно так же для «категорий» фич можно посчитать LtF, чтобы определить, какие части вашей игры вносят наибольший вклад. Например, LtF категории «world» — единица (не фичи!).&lt;/p&gt;
  &lt;p id=&quot;vp6n&quot;&gt;Если бы при разработке выдуманной игры потребовалось что-то фичекать, то можно было, например, пожертвовать хабом или испытаниями и наградами за них, так как их вклад в LtF минимален.&lt;/p&gt;
  &lt;p id=&quot;Usl1&quot;&gt;Так суть всего этого процесса просто понять, а насколько связаны ваши системы и нет ли чего-то «просто так». Ведь на любое «просто так» сжигаются ресурсы (материальные, человеческие, креативные, etc).&lt;/p&gt;
  &lt;p id=&quot;bs9i&quot;&gt;&lt;a href=&quot;http://www.chaoticstupid.com/measuring-feature-cohesion-with-chen-diagrams/&quot; target=&quot;_blank&quot;&gt;Оригинал этой статьи&lt;/a&gt; я нашел в блоге Майкла Стаута. Я примерно её перевёл, где-то что-то сократив, где-то изменив, в процессе сделал следующие выводы:&lt;/p&gt;
  &lt;ol id=&quot;aT9Z&quot;&gt;
    &lt;li id=&quot;Y6NE&quot;&gt;Бессмысленно выделять прокси ресурсы или производные, потому что это просто +1 фича и +1 линк. Например, в оригинале был Level от XP, но ведь Level — это просто более удобный вид представления XP;&lt;/li&gt;
    &lt;li id=&quot;g9p8&quot;&gt;Стрелок получается очень много, поэтому имеет смысл рассматривать системы на разных уровнях. Например, бой можно рассмотреть более детально и понять, какие механики внутри него более значимые, а какие менее;&lt;/li&gt;
    &lt;li id=&quot;YJoa&quot;&gt;У экономических систем заведомо больше LtF, так как связей банально больше, чем у мировых, поэтому сравнивать их между собой не совсем корректно;&lt;/li&gt;
    &lt;li id=&quot;w5Pr&quot;&gt;Имеет смысл разделять действия и ресурсы на 2 группы поменьше: core и meta, чтобы отслеживать всё по отдельности (см. пункт 2);&lt;/li&gt;
    &lt;li id=&quot;V5WM&quot;&gt;Наличие большого LtF — не залог успеха, это простой большой LtF.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;vdLx&quot;&gt;Кстати, в оригинале диаграмма называется «Chen Diagram», но это название уже забито за особой диаграммой для баз данных, поэтому пусть будет диаграмма LtF. &lt;/p&gt;

</content></entry><entry><id>chaoticgamedesign:approximation</id><link rel="alternate" type="text/html" href="https://teletype.in/@chaoticgamedesign/approximation?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=chaoticgamedesign"></link><title>Интерполяция, экстраполяция и аппроксимация</title><published>2022-07-16T17:44:35.191Z</published><updated>2022-07-16T18:20:44.871Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/48/57/4857dbb3-77c4-4a02-8562-35383d641ae0.png"></media:thumbnail><category term="matematika" label="математика"></category><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/35/44/35446f32-48bc-4cc9-ab0a-60f1c84d4caf.png&quot;&gt;Интерполяция, экстраполяция, аппроксимация — замечательные слова, которые звучат как магия и делают её. Однако иногда юные разработчики путают названия заклинаний, что иногда мешает в коммуникации или даже разработке. Так что же это такое и как используется в разработке игр? Сейчас разберемся на примерах.</summary><content type="html">
  &lt;figure id=&quot;0fls&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/35/44/35446f32-48bc-4cc9-ab0a-60f1c84d4caf.png&quot; width=&quot;1280&quot; /&gt;
    &lt;figcaption&gt;Магия вне Хогвартса.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;deIq&quot;&gt;Интерполяция, экстраполяция, аппроксимация — замечательные слова, которые звучат как магия и делают её. Однако иногда юные разработчики путают названия заклинаний, что иногда мешает в коммуникации или даже разработке. Так что же это такое и как используется в разработке игр? Сейчас разберемся на примерах.&lt;/p&gt;
  &lt;p id=&quot;ET3P&quot;&gt;Небольшая математическая вводная, которая необходима для плодотворного диалога:&lt;/p&gt;
  &lt;ul id=&quot;5zhZ&quot;&gt;
    &lt;li id=&quot;9wuN&quot;&gt;Функция — правило зависимости одной величины от другой.&lt;/li&gt;
    &lt;li id=&quot;OKLk&quot;&gt;Полином (многочлен) — выражение, состоящее из переменных и коэффициентов, которое включает только операции сложения, вычитания, умножения, деления и возведения переменных в степень. &lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;rbhs&quot;&gt;Например, y = x^2 - 5x + 25 — функция и полином второй степени.&lt;/p&gt;
  &lt;p id=&quot;uqrd&quot;&gt;Теперь можно переходить к сути.&lt;/p&gt;
  &lt;h2 id=&quot;oGRF&quot;&gt;Интерполяция&lt;/h2&gt;
  &lt;p id=&quot;jHK8&quot;&gt;Предположим, что мы делаем простенький point-and-click. Игрок сейчас находится в точке &lt;em&gt;A&lt;/em&gt;, и щелкает в &lt;em&gt;B&lt;/em&gt;. Как плавно его переместить из &lt;em&gt;A&lt;/em&gt; в &lt;em&gt;B&lt;/em&gt;? Необходимо построить какую-то функцию, которая обязательно проходит через точки начало и конца и находит значения между ними. Вот и есть простой пример интерполяции.&lt;/p&gt;
  &lt;p id=&quot;TiLU&quot;&gt;&lt;strong&gt;Интерполяция&lt;/strong&gt; — приближенное нахождение &lt;em&gt;промежуточных&lt;/em&gt; значений между известными.&lt;/p&gt;
  &lt;p id=&quot;jSfY&quot;&gt;Интерполяция бывает очень разной и зависит от вводных. Предположим, что у нас есть большой открытый мир и точки интереса. При первом заходе в мир камера должна красиво пролететь между всеми точками и подсветить их. Пусть координаты точек:&lt;/p&gt;
  &lt;ol id=&quot;qjiN&quot;&gt;
    &lt;li id=&quot;U4Wj&quot;&gt;(0, 1);&lt;/li&gt;
    &lt;li id=&quot;6wgx&quot;&gt;(1, 1);&lt;/li&gt;
    &lt;li id=&quot;oecT&quot;&gt;(2, 0.5);&lt;/li&gt;
    &lt;li id=&quot;dexG&quot;&gt;(3, 0.3).&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;woe2&quot;&gt;Если применить метод &lt;a href=&quot;https://ru.wikipedia.org/wiki/Линейная_интерполяция&quot; target=&quot;_blank&quot;&gt;линейной интерполяции&lt;/a&gt;, то получится ломанная:&lt;/p&gt;
  &lt;figure id=&quot;CSvo&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/dd/1c/dd1c21aa-c963-44b7-b1e7-8fe00547bdd2.png&quot; width=&quot;1840&quot; /&gt;
    &lt;figcaption&gt;Пример ломанной, где точки «соединены»соединены методом линейной интерполяции.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;2Xr5&quot;&gt;Однако ломанная убивает «плавность» и, например, в случае с камерой могут потеряться красивые виражи и залеты к точкам. Если хочется получить «плавность», то нужно построить полином, а значит применить соответствующую интерполяцию, например, &lt;a href=&quot;https://ru.algorithmica.org/cs/algebra/interpolation/&quot; target=&quot;_blank&quot;&gt;метод Лагранжа&lt;/a&gt;. &lt;/p&gt;
  &lt;p id=&quot;NTRm&quot;&gt;&lt;/p&gt;
  &lt;figure id=&quot;XxRd&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c3/b1/c3b1083e-acb2-420a-b12d-707a1d6b364f.png&quot; width=&quot;1840&quot; /&gt;
    &lt;figcaption&gt;Пример интерполяции методом Лагранжа.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;HMoJ&quot;&gt;Вот и готова функция (траектория), по которой полетит игровая камера. Мы нашли значения между точками интереса, то есть проинтерполировали.&lt;/p&gt;
  &lt;p id=&quot;2Jmk&quot;&gt;Полезные видео по интерполяции и чуть более углубленно, почему оно работает так:&lt;/p&gt;
  &lt;ol id=&quot;AA3a&quot;&gt;
    &lt;li id=&quot;24A8&quot;&gt;&lt;a href=&quot;https://youtu.be/4S6G-zenbFM&quot; target=&quot;_blank&quot;&gt;Lagrange Interpolation&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;GouB&quot;&gt;&lt;a href=&quot;https://youtu.be/j155J5x6Pq0&quot; target=&quot;_blank&quot;&gt;Cosine Interpolation&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;i1jx&quot;&gt;&lt;a href=&quot;https://youtu.be/aVwxzDHniEw&quot; target=&quot;_blank&quot;&gt;The Beauty of Bézier Curves&lt;/a&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;co4n&quot;&gt;Вот, вы когда-нибудь задумывались что такое Lerp и Slerp в Unity? Это же просто Linear Interpolation и Spherical Linear Interpolation.&lt;/p&gt;
  &lt;h2 id=&quot;q1Hr&quot;&gt;Экстраполяция&lt;/h2&gt;
  &lt;figure id=&quot;eh0a&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://ru.algorithmica.org/cs/algebra/img/extrapolation.png&quot; width=&quot;461&quot; /&gt;
    &lt;figcaption&gt;Не моё хобби.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;kuHf&quot;&gt;Методы экстраполяции во многих случаях сходны с методами интерполяции, но их основная задача кардинально отличается. &lt;/p&gt;
  &lt;p id=&quot;lKtP&quot;&gt;&lt;strong&gt;Экстраполяция&lt;/strong&gt; — приближенное нахождение &lt;em&gt;последующих&lt;/em&gt; значений по известным предыдущим.&lt;/p&gt;
  &lt;p id=&quot;m48m&quot;&gt;Например, мы делаем мультиплеерный FPS шутер. Игрок находится в позиции &lt;em&gt;X &lt;/em&gt;и нажимает кнопку &amp;quot;&lt;em&gt;W&lt;/em&gt;&amp;quot; в течение последней секунды. Можно предположить, что он будет продолжать это делать в следующую секунду, потому что это наиболее частое поведение в нашей игре, поэтому можно экстраполировать положение, в котором он будет в следующем кадре. &lt;/p&gt;
  &lt;p id=&quot;myIs&quot;&gt;Ещё несколько полезных ссылок:&lt;/p&gt;
  &lt;ol id=&quot;HIFH&quot;&gt;
    &lt;li id=&quot;UrJ6&quot;&gt;&lt;a href=&quot;https://youtu.be/rD90rTjy5Yo&quot; target=&quot;_blank&quot;&gt;Интерполяция и экстраполяция на примере Planteside 2&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;WitJ&quot;&gt;&lt;a href=&quot;https://blog.devgenius.io/day-84-of-game-dev-using-pre-and-post-extrapolation-in-timeline-cf3a72dc7485&quot; target=&quot;_blank&quot;&gt;Using Pre and Post Extrapolation in Timeline (Unity)&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;RjaD&quot;&gt;&lt;a href=&quot;https://habr.com/ru/post/302394/&quot; target=&quot;_blank&quot;&gt;Серия из 4 статей про мультиплеер в быстрых играх (перевод)&lt;/a&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;yGm7&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/92/0f/920fe40b-74a9-4ed5-9c2d-d35e26855a02.png&quot; width=&quot;1762&quot; /&gt;
    &lt;figcaption&gt;Пример экстраполяции методом Лагранжа. Пунктиранная часть — экстраполяция.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;TinK&quot;&gt;Аппроксимация&lt;/h2&gt;
  &lt;p id=&quot;ydqC&quot;&gt;Аппроксимация — приближенное представление сложной функции более простой, имеющей минимальное отклонение от исходной.&lt;/p&gt;
  &lt;p id=&quot;Ittu&quot;&gt;Такую операцию можно легко сделать в Google Sheets / Excel:&lt;/p&gt;
  &lt;ol id=&quot;4ixD&quot;&gt;
    &lt;li id=&quot;Ekix&quot;&gt;Выбираем необходимый диапазон данных;&lt;/li&gt;
    &lt;li id=&quot;wTX6&quot;&gt;Строим по этим данным диаграмму;&lt;/li&gt;
    &lt;li id=&quot;5Tn6&quot;&gt;Включаем линию тренда в настройках диаграммы.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;Roei&quot;&gt;Линия тренда — это функция, предназначенная для отображения модели или тренда на графике. В отличии от интерполяции она необязательно проходит через имеющиеся данные, а может быть лишь около.&lt;/p&gt;
  &lt;figure id=&quot;uA23&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/45/bc/45bc2293-7dee-43a5-b1c4-27e223d5df11.png&quot; width=&quot;220.49038461538458&quot; /&gt;
    &lt;figcaption&gt;Пример настройки линии тренда&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;wZC5&quot;&gt;Выбора типа линии остаётся за исследователем, также как и особые настройки конкретного типа (например, порядок полиномиального приближения).&lt;/p&gt;
  &lt;p id=&quot;EmFJ&quot;&gt;Два важных свойства линии тренда:&lt;/p&gt;
  &lt;ol id=&quot;spUX&quot;&gt;
    &lt;li id=&quot;w2Cc&quot;&gt;&lt;em&gt;Ярлык &amp;gt; уравнение&lt;/em&gt; покажет уравнение функции, что в последствии можно (и нужно) использовать;&lt;/li&gt;
    &lt;li id=&quot;BwxK&quot;&gt;&lt;em&gt;R2 (Коэффициент детерминации)&lt;/em&gt; — значение, которое измеряется от 0 до 1 и показывает, как хорошо линия тренда описывает имеющиеся значения.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;JYPJ&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/75/68/7568e6fe-b299-4dc2-a91c-555cadbec450.png&quot; width=&quot;2576&quot; /&gt;
    &lt;figcaption&gt;Манга «Регрессивный Анализ»&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;6lAQ&quot;&gt;Уходить в регрессивный анализ не хотелось бы, потому что это требует отдельной заметки (ха-ха, серии лекций в курсе математической статистики). Однако вот &lt;a href=&quot;https://habr.com/ru/post/350668/&quot; target=&quot;_blank&quot;&gt;базовая статья&lt;/a&gt;.&lt;/p&gt;
  &lt;p id=&quot;6NMl&quot;&gt;По итогу получается вот такой график:&lt;/p&gt;
  &lt;figure id=&quot;yF4E&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ee/e9/eee9f763-8531-48fe-b570-1388a05678ed.png&quot; width=&quot;1518&quot; /&gt;
    &lt;figcaption&gt;Диаграмма из Google Sheets с построенной линией тренда.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;TdlO&quot;&gt;Коэффициент детерминации — единичка, значит функция проходит через все имеющие точки и может заодно выступать интерполяцией. Если задуматься, то на самом деле получился просто «приведенный» полином Лагранжа. &lt;/p&gt;
  &lt;p id=&quot;wXKP&quot;&gt;Рассмотрим другой пример, пусть наши точки имеющие следующие координаты:&lt;/p&gt;
  &lt;ol id=&quot;fSAn&quot;&gt;
    &lt;li id=&quot;5YMw&quot;&gt;(0, 1);&lt;/li&gt;
    &lt;li id=&quot;WVOU&quot;&gt;(1, 2.05);&lt;/li&gt;
    &lt;li id=&quot;X42x&quot;&gt;(2, 2.9);&lt;/li&gt;
    &lt;li id=&quot;FcvU&quot;&gt;(3, 4.1).&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;WXPn&quot;&gt;Если приглядеться и подумать, то они практически образуют линейную зависимость. Метод Лагранжа естественно выдаст полином 3 степени, а вот аппроксимировать можно линейно, тогда R-квадрат будет 0.93. В точности почти не теряем, но выиграем за счет значительного упрощения функции. &lt;/p&gt;
  &lt;figure id=&quot;QwgX&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e2/00/e200374a-f59b-48c8-9f0e-61dfe23ed03e.png&quot; width=&quot;1710&quot; /&gt;
    &lt;figcaption&gt;Зеленная линия — график линейно функции. Фиолетовая — метод Лагранжа.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;RyEY&quot;&gt;Что использовать остаётся на откуп исследователю. Здесь было бы логичнее пренебречь простотой, так как в абстрактном примере мы строим функцию пролета камеры, а ей нужны красивые «виражи», а не просто прямой пролёт.&lt;/p&gt;
  &lt;p id=&quot;uldz&quot;&gt;Конечно же, метод аппроксимации заодно может выступать и экстраполяцией. Этим можно пытаться пользоваться при деконстракте других игр, но с осторожностью, а то может получиться как на одном из мемов выше.&lt;/p&gt;
  &lt;p id=&quot;7XHA&quot;&gt;PS Как можно было догадаться, интерполяция и экстраполяция — особые виды аппроксимации.&lt;/p&gt;
  &lt;h2 id=&quot;bcyE&quot;&gt;Заключение&lt;/h2&gt;
  &lt;p id=&quot;SBSF&quot;&gt;Надеюсь, что каждый разобрался, что означает каждый из трёх терминов и когда его применять, а также что они могут быть разные внутри себя. &lt;/p&gt;
  &lt;p id=&quot;7lqZ&quot;&gt;Сами вычисления вышли очень поверхностные и без дополнительных комментариев, потому что в небольшую заметку они никак бы не влезли. Для полноценного понимания каждого из названных методов необходимо прослушать ни одну лекцию по математическому анализу и вычислительной математике. &lt;/p&gt;
  &lt;p id=&quot;ILbu&quot;&gt;Напоследок:&lt;/p&gt;
  &lt;ol id=&quot;w2zG&quot;&gt;
    &lt;li id=&quot;pXve&quot;&gt;Интерполяция — внутри;&lt;/li&gt;
    &lt;li id=&quot;1Osa&quot;&gt;Экстраполяция — вовне;&lt;/li&gt;
    &lt;li id=&quot;4KAj&quot;&gt;Аппроксимация — примерно везде.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;0I4p&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/6d/5c/6d5cdd85-5f4b-42e8-89b9-6c8d68714ffc.gif&quot; width=&quot;848&quot; /&gt;
    &lt;figcaption&gt;Линейная интерполяция. Метод Лагранжа. Метод Наименьших Квадратов (Линейная Аппроксимация).&lt;/figcaption&gt;
  &lt;/figure&gt;

</content></entry><entry><id>chaoticgamedesign:figma</id><link rel="alternate" type="text/html" href="https://teletype.in/@chaoticgamedesign/figma?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=chaoticgamedesign"></link><title>Figma как инструмент гейм-дизайнера</title><published>2022-07-12T12:20:27.707Z</published><updated>2022-07-12T20:45:12.471Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/14/8b/148b98f5-a381-4091-acd5-134064cb4a05.png"></media:thumbnail><category term="instrumenty" label="инструменты"></category><summary type="html">&lt;img src=&quot;https://img3.teletype.in/files/6c/a1/6ca10495-2cd0-4d4a-aed5-34a9b562c164.png&quot;&gt;User Interface — неотъемлемая часть любой игры, и вам как геймдизайнерам так или иначе придется его проектировать для художников по интерфейсам и инженерам. Во время этого процесса придётся создать несколько вещей:</summary><content type="html">
  &lt;p id=&quot;dxuS&quot;&gt;User Interface — неотъемлемая часть любой игры, и вам как геймдизайнерам так или иначе придется его проектировать для художников по интерфейсам и инженерам. Во время этого процесса придётся создать несколько вещей:&lt;/p&gt;
  &lt;ul id=&quot;hd98&quot;&gt;
    &lt;li id=&quot;Gu7m&quot;&gt;UX Flow — абстрактная карта экранов и связей между ними с возможными действиями юзера / системы;&lt;/li&gt;
    &lt;li id=&quot;bDB7&quot;&gt;Wireframe — черновой экран;&lt;/li&gt;
    &lt;li id=&quot;3Pcu&quot;&gt;Карта экранов — связанные wireframes.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;uWAA&quot;&gt;Всё это помогает отследить логику переходов и показать что ожидается от интерфейса. Не будем останавливаться на том, зачем это надо, потому что уже достаточно материалов на этом тему написано:&lt;/p&gt;
  &lt;ol id=&quot;YCrZ&quot;&gt;
    &lt;li id=&quot;kk6e&quot;&gt;&lt;a href=&quot;https://progamedev.net/kak-sostavlyat-user-experience-flow/&quot; target=&quot;_blank&quot;&gt;Как составлять User Experience Flow&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;olGE&quot;&gt;&lt;a href=&quot;https://dtf.ru/gamedev/18185-karta-ekranov-v-razrabotke-igrovogo-interfeysa&quot; target=&quot;_blank&quot;&gt;Карта экранов в разработке игрового интерфейса&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;UJ61&quot;&gt;&lt;a href=&quot;https://www.devtodev.com/education/online-course/gdd-basic-course/lecture-5&quot; target=&quot;_blank&quot;&gt;Инструментарий для ГДД&lt;/a&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;uTEy&quot;&gt;К сожалению, очень часто предлагается использовать разные инструменты под каждый из пунктов, мол накидывать экран в &lt;a href=&quot;https://balsamiq.com&quot; target=&quot;_blank&quot;&gt;Balsamiq&lt;/a&gt;, а карту экранов или флоу в &lt;a href=&quot;https://miro.com/login/&quot; target=&quot;_blank&quot;&gt;Miro&lt;/a&gt;. Однако, как показывает практика, чем больше инструментов и всяких проектов в них, тем сложнее что-то найти и связь вместе. Именно поэтому в своей рабочей практике я использую &lt;a href=&quot;https://www.figma.com/&quot; target=&quot;_blank&quot;&gt;Figma&lt;/a&gt; и всё делаю там. Сейчас расскажу, как это происходит и какие есть хитрости.&lt;/p&gt;
  &lt;h2 id=&quot;KeD0&quot;&gt;Подготовительные работы&lt;/h2&gt;
  &lt;p id=&quot;0YKq&quot;&gt;Регистрируемся, создаём пустой проект, а в нём 3 страницы:&lt;/p&gt;
  &lt;ol id=&quot;Qw8F&quot;&gt;
    &lt;li id=&quot;qc61&quot;&gt;Flow — тут будет наш UX Flow;&lt;/li&gt;
    &lt;li id=&quot;i8ir&quot;&gt;Wireframes — мокапы экранов и карта экранов;&lt;/li&gt;
    &lt;li id=&quot;cpqI&quot;&gt;References — рефы UI.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;WCmK&quot;&gt;К сожалению, в бесплатной версии Figma это лимит. Можно отказаться от References и заменить их на User Interface, где будут финальные версии экранов, отрисованные художником. Другой вариант — купить премиум подписку. &lt;/p&gt;
  &lt;figure id=&quot;fdMA&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/6c/a1/6ca10495-2cd0-4d4a-aed5-34a9b562c164.png&quot; width=&quot;1686&quot; /&gt;
    &lt;figcaption&gt;Страницы располагаются в меню «Pages»&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;vSVn&quot;&gt;Всё, что ещё нужно уметь делать в Figma:&lt;/p&gt;
  &lt;ol id=&quot;08SL&quot;&gt;
    &lt;li id=&quot;Bd9D&quot;&gt;Создавать фигуры (квадрат, круг) — иконка квадратика в верхнем баре;&lt;/li&gt;
    &lt;li id=&quot;tXI9&quot;&gt;Создавать текст — буква «T» в верхнем баре.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;h2 id=&quot;qDur&quot;&gt;Flow&lt;/h2&gt;
  &lt;p id=&quot;QNbb&quot;&gt;В каждой студии под флоу понимается что-то своё и частенько состоит из разных логических блоков, я выделяю следующие:&lt;/p&gt;
  &lt;ol id=&quot;psLC&quot;&gt;
    &lt;li id=&quot;9zyw&quot;&gt;Процесс — начало игры, геймплей, любая другая игровая активность;&lt;/li&gt;
    &lt;li id=&quot;qG5Q&quot;&gt;Экран — что-то, что видит игрок и как-то может переходить на соседние экраны;&lt;/li&gt;
    &lt;li id=&quot;EmOy&quot;&gt;Проверка — &lt;strong&gt;системная&lt;/strong&gt; проверка, например, первая ли это игровая сессия за день.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;5PR5&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e3/8b/e38b20b2-b7fe-4bce-94c6-eb4db21a642c.png&quot; width=&quot;1646&quot; /&gt;
    &lt;figcaption&gt;Блоки стоит обозначать в легенде, чтобы все знали, что есть что. Вдобавок у фигмы есть полезный функционал в виде &lt;a href=&quot;https://vc.ru/design/396584-chto-takoe-komponenty-v-figma-i-kak-oni-pomogut-sdelat-rabotu-bystree&quot; target=&quot;_blank&quot;&gt;компонентов&lt;/a&gt;. &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;MqUK&quot;&gt;Предположим, что мы делаем Archero 2.0:&lt;/p&gt;
  &lt;figure id=&quot;G7ji&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/62/7d/627dbe0b-4d5b-4bbf-833f-a0a71d9bdff1.png&quot; width=&quot;1874&quot; /&gt;
    &lt;figcaption&gt;Пример очень простого UX Flow.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;ol id=&quot;QpZv&quot;&gt;
    &lt;li id=&quot;EPAw&quot;&gt;Расширилась легенда: появились обозначения стрелок от условия;&lt;/li&gt;
    &lt;li id=&quot;4hnF&quot;&gt;Обрисовался начальный флоу:&lt;/li&gt;
    &lt;ol id=&quot;B0Uw&quot;&gt;
      &lt;li id=&quot;Ijyh&quot;&gt;Если новый игрок, то запустить тутор. Иначе главный экран;&lt;/li&gt;
      &lt;li id=&quot;Wfkj&quot;&gt;С главного экрана можно перейти в геймплей при наличии достаточного количества энергии. Если нет, то предложить докупить энергию;&lt;/li&gt;
      &lt;li id=&quot;w3nN&quot;&gt;После геймплея всегда открывать результаты.&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/ol&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;zvDZ&quot;&gt;Стрелки в Figma — боль, но привыкнуть и приспособиться можно.&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;MxAm&quot;&gt;Wireframes&lt;/h2&gt;
  &lt;p id=&quot;5SOk&quot;&gt;После флоу можно переходить на уровень ниже, то есть прикидывать экраны. &lt;/p&gt;
  &lt;p id=&quot;vyPZ&quot;&gt;Перед этим процессом хорошо бы изучить рефы и заполнить соответствующую страницу, чтобы не изобретать велосипед:&lt;/p&gt;
  &lt;figure id=&quot;vPDo&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/f0/d2/f0d2acf5-27ce-40f2-9805-99aa03ae48ef.png&quot; width=&quot;2342&quot; /&gt;
    &lt;figcaption&gt;Рефы хранятся как кому удобно, но желатльно, чтобы каждое изображение было внутри &lt;a href=&quot;https://ux.pub/editorial/kak-rabotaiut-ghruppy-i-frieimy-v-figma-3f9n&quot; target=&quot;_blank&quot;&gt;Frame&lt;/a&gt;, так как его название отоброжается.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;CBCr&quot;&gt;Wireframes также создаём с помощью Frame, но теперь имеет смысл выбрать конкретный размер из предложенного списка:&lt;/p&gt;
  &lt;figure id=&quot;hOfN&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/23/e5/23e57804-8460-4adb-96dc-2b90c13e9b86.png&quot; width=&quot;259&quot; /&gt;
    &lt;figcaption&gt;Для примера будем использовать iPhone 13 mini.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;7ueW&quot;&gt;Frame называем так, как называется экран на Flow.&lt;/p&gt;
  &lt;figure id=&quot;PFWj&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/62/b5/62b5ba41-2493-48b9-987f-7ce2c419ef76.png&quot; width=&quot;2048&quot; /&gt;
    &lt;figcaption&gt;Для иконок удобно использовать различные плагины, например, Material Design от Google.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;hh7s&quot;&gt;На фрейм набрасываем кнопки, бары, иконки, всё что нам надо. Главное не переборщить. &lt;/p&gt;
  &lt;p id=&quot;ootB&quot;&gt;Как только экран готов, желательно объединить элементы внутри него в группы, чтобы в случае чего их было проще выключать / включать, перемещать, увеличивать, etc.&lt;/p&gt;
  &lt;figure id=&quot;aSWv&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/7a/40/7a40372b-16d6-4d70-94ff-5293b3f31686.png&quot; width=&quot;1606&quot; /&gt;
    &lt;figcaption&gt;Два экрана с группами.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;uacJ&quot;&gt;Screens Map&lt;/h2&gt;
  &lt;p id=&quot;EfP5&quot;&gt;Карту экранов будем делать непосредственно на странице с wireframes, причём она сразу же будет и &lt;strong&gt;интерактивным прототипом&lt;/strong&gt;.&lt;/p&gt;
  &lt;ol id=&quot;jpW5&quot;&gt;
    &lt;li id=&quot;WkME&quot;&gt;Выбираем Prototype в настройках вместо Design;&lt;/li&gt;
    &lt;li id=&quot;tvNH&quot;&gt;Выделяем нужную кнопку на экране;&lt;/li&gt;
    &lt;li id=&quot;TUV2&quot;&gt;Создаем связь между кнопкой и нужным экраном;&lt;/li&gt;
    &lt;li id=&quot;Vabt&quot;&gt;Определяем настройки перехода, например, полный переход на экран или оверлей. &lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;tS8l&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/7f/a0/7fa0027a-de31-4471-ba81-4b765753bb2b.png&quot; width=&quot;2376&quot; /&gt;
    &lt;figcaption&gt;Пример открытия оверлэя.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;fxHM&quot;&gt;Пока будет включен режим прототипа, то будут отображаться все связи, которые и отражают карту экранов:&lt;/p&gt;
  &lt;figure id=&quot;Twxm&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/93/63/9363965f-dd29-4045-a8be-3d830c62fb8c.png&quot; width=&quot;1438&quot; /&gt;
    &lt;figcaption&gt;Простенькая карта экранов.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;yYbT&quot;&gt;У одного экрана может быть несколько состояний, например, у главного: достаточно энергии для старта геймплея или нет. В таком случае имеет смысл прокинуть между ними «чит» и обозначить, что он не доступен игрокам.&lt;/p&gt;
  &lt;figure id=&quot;ptrm&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/ba/1a/ba1ae401-a9a6-4a4f-b6cc-bc7ccc9b13f6.png&quot; width=&quot;1186&quot; /&gt;
    &lt;figcaption&gt;Пример простого чита, который перекидывает на главный экран, но с 0 энергией.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;oyJw&quot;&gt;Способов сделать «читы» — много, главное их как-то помечать, например, через желтый цвет и начало текста со знака процента. При желании их можно сделать хитрее, чтобы при большом количестве состояний экранов карта экрана не разрасталась. Однако в этот раз на этом останавливаться не будем.&lt;/p&gt;
  &lt;p id=&quot;LWmD&quot;&gt;Более того, теперь можно запустить кликабельный прототип через кнопку «Present»:&lt;/p&gt;
  &lt;figure id=&quot;9gki&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/3e/c0/3ec07e49-c85d-403b-8d8d-06dc341da396.gif&quot; width=&quot;2880&quot; /&gt;
    &lt;figcaption&gt;Пример простенького прототипа и «читов». Удобно, что показывается сразу на выбранном девайсе.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;OW9m&quot;&gt;Заключение&lt;/h2&gt;
  &lt;p id=&quot;a5pk&quot;&gt;Figma — крайне удобный инструмент, потому что:&lt;/p&gt;
  &lt;ol id=&quot;MAPl&quot;&gt;
    &lt;li id=&quot;DvSq&quot;&gt;Можно создавать несколько страниц в одном прототипе;&lt;/li&gt;
    &lt;li id=&quot;t1vx&quot;&gt;Есть возможность строить как флоу, так и накидывать сами экраны;&lt;/li&gt;
    &lt;li id=&quot;4TWG&quot;&gt;Доступен функционал объединения экранов в карту и кликабельный прототип.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;4T5e&quot;&gt;К тому же, иногда Figma упрощает диалог с UI/UX дизайнером. Как и у любого инструмента, у неё есть свои минусы, например, не очень удобные стрелки на этапе UX Flow. Однако небольшие минусы часто чинятся плагинами от сообщества, которых очень много.&lt;/p&gt;
  &lt;p id=&quot;UPmX&quot;&gt;Полезные ссылки для дальнейшего изучения:&lt;/p&gt;
  &lt;ol id=&quot;oClU&quot;&gt;
    &lt;li id=&quot;pw2I&quot;&gt;&lt;a href=&quot;https://vc.ru/design/387113-kak-uluchshit-organizaciyu-proektov-v-figma&quot; target=&quot;_blank&quot;&gt;Как улучшить организацию проектов в Figma&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;kwyF&quot;&gt;&lt;a href=&quot;https://youtu.be/jk1T0CdLxwU&quot; target=&quot;_blank&quot;&gt;Intro to Figma - Beginners guide to Figma Basics&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;ML86&quot;&gt;&lt;a href=&quot;https://youtu.be/XrF7-Ds-0YQ&quot; target=&quot;_blank&quot;&gt;How to Create Game Prototypes in Figma&lt;/a&gt;&lt;/li&gt;
  &lt;/ol&gt;

</content></entry><entry><id>chaoticgamedesign:darkmonetization</id><link rel="alternate" type="text/html" href="https://teletype.in/@chaoticgamedesign/darkmonetization?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=chaoticgamedesign"></link><title>Dark Monetization</title><published>2022-06-30T07:44:24.847Z</published><updated>2022-06-30T12:27:59.747Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img1.teletype.in/files/4c/da/4cda2b44-df0f-4c57-b74f-a4b9a37be784.png"></media:thumbnail><category term="monetizaciya" label="монетизация"></category><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/9b/1e/9b1e60e7-557b-4521-80b4-8890f54a8bef.gif&quot;&gt;Пока мобильная Diablo зарабатывает $24 млн за пару недель, игроки пытаются посчитать цену для максимальной прокачки персонажа, а энтузиасты создают симуляторы прокачки, другой небольшой проект зарабатывает мало и его продюсер отправляет дизайнера разобраться, что же с этим делать.</summary><content type="html">
  &lt;p id=&quot;fg0h&quot;&gt;Пока мобильная Diablo &lt;a href=&quot;https://appmagic.rocks/google-play/diablo-immortal/com.blizzard.diablo.immortal&quot; target=&quot;_blank&quot;&gt;зарабатывает $24 млн за пару недель&lt;/a&gt;, игроки пытаются посчитать цену для максимальной прокачки персонажа, а энтузиасты создают &lt;a href=&quot;https://dimi777.github.io/diablo-rift-simulator/&quot; target=&quot;_blank&quot;&gt;симуляторы прокачки&lt;/a&gt;, другой небольшой проект зарабатывает мало и его продюсер отправляет дизайнера разобраться, что же с этим делать.&lt;/p&gt;
  &lt;p id=&quot;dPgy&quot;&gt;Дизайнер посмотрел на аналитику, потом на карту метрик, почесал голову и решил, что как-то тяжко разбираться во всех этих странных аббревиатурах и проще применить «темные» техники монетизации. Вот что он придумал... &lt;/p&gt;
  &lt;nav&gt;
    &lt;ul&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#GUut&quot;&gt;I. Неожиданные кнопки&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#LbMY&quot;&gt;II. Отрицательная скидка&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#TLea&quot;&gt;III. Умный ежедневный бонус&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#Kk8P&quot;&gt;IV. Платная реклама&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#AHAZ&quot;&gt;V. Умная реклама&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#EJwQ&quot;&gt;Заключение&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/nav&gt;
  &lt;figure id=&quot;LKOi&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/9b/1e/9b1e60e7-557b-4521-80b4-8890f54a8bef.gif&quot; width=&quot;500&quot; /&gt;
    &lt;figcaption&gt;Кто же заманил молодого специалиста на темную сторону? &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Y2vP&quot;&gt;&lt;em&gt;Продюсер, дизайнер и проект выдуманные.&lt;/em&gt;&lt;/p&gt;
  &lt;h2 id=&quot;GUut&quot;&gt;I. Неожиданные кнопки&lt;/h2&gt;
  &lt;p id=&quot;jdJr&quot;&gt;При входе в проект игрокам поочередно показывается несколько офферов. Специальных предложений, которые игрок может купить, а может и закрыть. &lt;/p&gt;
  &lt;figure id=&quot;MgwU&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/fa/58/fa5896b4-ec21-4d50-973d-d78ac229058f.png&quot; width=&quot;2880&quot; /&gt;
    &lt;figcaption&gt;Пример оффера&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;vmnW&quot;&gt;Дизайне подметил, что большинство игроков:&lt;/p&gt;
  &lt;ol id=&quot;BUGF&quot;&gt;
    &lt;li id=&quot;jX82&quot;&gt;Не покупают ничего;&lt;/li&gt;
    &lt;li id=&quot;mdqu&quot;&gt;Не смотрят офферы, а просто закрывают их.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;OLUd&quot;&gt;Было решено поменять кнопку местами «купить» и «ок» на последнем оффере, чтобы игроки случайно нажимали на первую.&lt;/p&gt;
  &lt;figure id=&quot;9jaA&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/54/e9/54e9c0c0-80b5-456a-b35d-05ddcd400372.gif&quot; width=&quot;2880&quot; /&gt;
    &lt;figcaption&gt;Игрок попадается. Гифка замедлена, чтобы понять идею.  Так называемый roflfer.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Gwgr&quot;&gt;Опа! Вот и первые успехи. Парочка игроков попалась.&lt;/p&gt;
  &lt;h2 id=&quot;LbMY&quot;&gt;II. Отрицательная скидка&lt;/h2&gt;
  &lt;p id=&quot;Mcih&quot;&gt;Раз игрок «случайно» покупает оффер, то почему бы не сделать его необычным? например, отрицательным?&lt;/p&gt;
  &lt;figure id=&quot;IDKZ&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e9/0e/e90ee50a-3053-4291-a5ab-0baa1eaf5400.png&quot; width=&quot;2880&quot; /&gt;
    &lt;figcaption&gt;Отрицательный оффер.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;TLea&quot;&gt;III. Умный ежедневный бонус&lt;/h2&gt;
  &lt;p id=&quot;ANyQ&quot;&gt;Игрок успешно купил оффер. Самое время собирать ежедневные бонусы, которые так любит наш игрок. Тут дизайнер придумал следующее: не просто выдавать награду за вход, а спрашивать у игрока за какой день, по его мнению, он должен получить награду?&lt;/p&gt;
  &lt;figure id=&quot;fp9L&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e4/55/e4551a0d-7e96-4d1a-beaa-b04afc59b5c0.png&quot; width=&quot;2880&quot; /&gt;
    &lt;figcaption&gt;Экран мини-игры «Daily reward»&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;6Hqz&quot;&gt;Элементы экрана:&lt;/p&gt;
  &lt;ul id=&quot;0B7v&quot;&gt;
    &lt;li id=&quot;d2MH&quot;&gt;Ввод дня осуществляется посредством слайдера;&lt;/li&gt;
    &lt;li id=&quot;44gW&quot;&gt;Если была нажата кнопка «idk», выдать награду дня.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;8q9r&quot;&gt;Проверка введенго дня:&lt;/p&gt;
  &lt;ul id=&quot;PyZ8&quot;&gt;
    &lt;li id=&quot;qpFb&quot;&gt;Если был введен корректный день, выдать удвоенную награду дня;&lt;/li&gt;
    &lt;li id=&quot;k2R9&quot;&gt;Иначе сбросить прогресс по дням и предложить просмотр рекламы, чтобы восстановить прогресс.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;YAiQ&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b0/50/b050f261-5be9-4ee0-9e1a-cb8003c79496.png&quot; width=&quot;2880&quot; /&gt;
    &lt;figcaption&gt;Экран поражения в мини-игре «Daily reward»&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;TqqR&quot;&gt;Элементы экрана «поражения»:&lt;/p&gt;
  &lt;ul id=&quot;H3Bg&quot;&gt;
    &lt;li id=&quot;3jwJ&quot;&gt;Если была нажата кнопка «Watch AD», показать рекламу, восстановить прогресс и выдать награду дня;&lt;/li&gt;
    &lt;li id=&quot;D9gD&quot;&gt;Если была нажата кнопка «Ignore», выдать прогресс первого дня.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;WFc3&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/10/f0/10f075bc-72da-4f3c-bdee-bc85305a3f61.gif&quot; width=&quot;394&quot; /&gt;
    &lt;figcaption&gt;Удивительно, что метод ввода дня — обычный слайдер, а не что-то вроде &lt;a href=&quot;https://qz.com/679782/programmers-imagine-the-most-ridiculous-ways-to-input-a-phone-number/&quot; target=&quot;_blank&quot;&gt;этого&lt;/a&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;Kk8P&quot;&gt;IV. Платная реклама&lt;/h2&gt;
  &lt;p id=&quot;UO5S&quot;&gt;Дизайнер задумался. Если в большинстве игр есть функция отключения рекламы, то почему бы не пойти от обратного? Пусть игрок платит за возможность посмотреть рекламу, ведь просмотр рекламы:&lt;/p&gt;
  &lt;ol id=&quot;VNG2&quot;&gt;
    &lt;li id=&quot;UDHj&quot;&gt;Увлекательное занятие;&lt;/li&gt;
    &lt;li id=&quot;Arbd&quot;&gt;Даёт различные бонусы. &lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;G4r5&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/9b/70/9b70899a-9740-48c5-8e42-0b97829563a4.png&quot; width=&quot;2880&quot; /&gt;
    &lt;figcaption&gt;Экран покупки рекламы&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;57HO&quot;&gt;Теперь, если игрок ввел неправильно значение в мини-игре ежедневного бонусы и решил восстановить свой прогресс через просмотр рекламы, то ему придётся перед этим ещё и купить возможность её посмотреть.&lt;/p&gt;
  &lt;h2 id=&quot;AHAZ&quot;&gt;V. Умная реклама&lt;/h2&gt;
  &lt;p id=&quot;YYRW&quot;&gt;Как заботливый разработчик, дизайнер решил убедиться, что пользователь внимательно посмотрел рекламу. В связи с чем, после каждого просмотра появляется окошко, в котором игрок должен выбрать тему только что просмотренный рекламы.&lt;/p&gt;
  &lt;figure id=&quot;IWgF&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ed/0d/ed0d6a48-a50e-4e07-8a89-f07ac7d5174d.png&quot; width=&quot;2880&quot; /&gt;
    &lt;figcaption&gt;Экран выбора темы рекламы&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;ul id=&quot;7oW1&quot;&gt;
    &lt;li id=&quot;jq1J&quot;&gt;Если игрок ответил правильно, то просмотр рекламы засчитывается;&lt;/li&gt;
    &lt;li id=&quot;eStu&quot;&gt;Иначе предлагается посмотреть рекламу ещё раз на тех же условиях, в случае отказа просмотр не засчитывается.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;sCAb&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://www.meme-arsenal.com/memes/be330beccc561d20b83f248ebcaadfca.jpg&quot; width=&quot;300&quot; /&gt;
    &lt;figcaption&gt;Разработчиик после внедрения всех этих фич&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;EJwQ&quot;&gt;Заключение&lt;/h2&gt;
  &lt;p id=&quot;uDf1&quot;&gt;Вот и всё! Пять «гениальных» фич, которые повысили доход проекта в раз и он даже превзошел Diablo.&lt;/p&gt;
  &lt;p id=&quot;DesD&quot;&gt;&lt;strong&gt;Конечное же, всё это шутки и сатира. Это совершенно ужасные примеры, которые ни к чему хорошему не приведут. Пожалуйста, не делайте так.&lt;/strong&gt;&lt;/p&gt;

</content></entry><entry><id>chaoticgamedesign:radarchart</id><link rel="alternate" type="text/html" href="https://teletype.in/@chaoticgamedesign/radarchart?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=chaoticgamedesign"></link><title>Radar Chart and Its Power</title><published>2022-06-23T08:19:52.468Z</published><updated>2022-06-23T12:13:28.942Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/22/f4/22f41b96-e596-46c4-a769-37377c3f91e5.png"></media:thumbnail><category term="tablicy" label="таблицы"></category><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/3a/13/3a13c768-1b4d-4dae-9f2c-2e8f61d1f925.jpeg&quot;&gt;Вы когда-нибудь слышали про лепестковые диаграммы (aka web chart, spider chart, star plot, cobweb chart, irregular polygon, polar chart, и Kiviat diagram). Если да, то круто! Нет? Тогда присаживайтесь, сейчас разберемся, что это такое и когда пригождается.</summary><content type="html">
  &lt;p id=&quot;xGe2&quot;&gt;Вы когда-нибудь слышали про лепестковые диаграммы (&lt;em&gt;aka web chart, spider chart, star plot, cobweb chart, irregular polygon, polar chart, и Kiviat diagram&lt;/em&gt;). Если да, то круто! Нет? Тогда присаживайтесь, сейчас разберемся, что это такое и когда пригождается.&lt;/p&gt;
  &lt;p id=&quot;2EPq&quot;&gt;Предположим, что у нас в игре есть некая сущность с каким-то набором характеристик, и игроку надо показать какая сущность в чём лучше, в чём хуже, а ещё желательно посчитать «крутости» сущностей.&lt;/p&gt;
  &lt;p id=&quot;5k5o&quot;&gt;Тут нам на помощь и приходит такой вид графика, потому что с его помощью легко визуализировать набор характеристик сущности и в последствии использовать для сравнения.&lt;/p&gt;
  &lt;nav&gt;
    &lt;ul&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#dlol&quot;&gt;Подготовительные работы&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#67tp&quot;&gt;Построение диаграммы&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#57rO&quot;&gt;Power&lt;/a&gt;&lt;/li&gt;
      &lt;li class=&quot;m_level_1&quot;&gt;&lt;a href=&quot;#MNbi&quot;&gt;Заключение&lt;/a&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/nav&gt;
  &lt;figure id=&quot;6mEG&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/3a/13/3a13c768-1b4d-4dae-9f2c-2e8f61d1f925.jpeg&quot; width=&quot;1280&quot; /&gt;
    &lt;figcaption&gt;Например, в каждой из игр серии Pokemon можно встретить такую диаграмму.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;dlol&quot;&gt;Подготовительные работы&lt;/h2&gt;
  &lt;p id=&quot;DgLu&quot;&gt;Пусть в выдуманном проекте буду роботы (&lt;em&gt;кхе-кхе, это уже классика примеров, надо придумать что-то ещё&lt;/em&gt;), у каждого из которых есть статы:&lt;/p&gt;
  &lt;ol id=&quot;p5EG&quot;&gt;
    &lt;li id=&quot;8j0e&quot;&gt;&lt;em&gt;HPs&lt;/em&gt; — здоровье;&lt;/li&gt;
    &lt;li id=&quot;5NIL&quot;&gt;&lt;em&gt;DEF&lt;/em&gt; — защита;&lt;/li&gt;
    &lt;li id=&quot;iQrz&quot;&gt;&lt;em&gt;SPD&lt;/em&gt; — скорость;&lt;/li&gt;
    &lt;li id=&quot;PlnR&quot;&gt;&lt;em&gt;DMG&lt;/em&gt; — урон;&lt;/li&gt;
    &lt;li id=&quot;kMEO&quot;&gt;&lt;em&gt;DEX&lt;/em&gt; — ловкость.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;bGXN&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c1/76/c176b716-0b26-44b8-92f8-cdb2b1e66a09.png&quot; width=&quot;1372&quot; /&gt;
    &lt;figcaption&gt;Несколько выдуманных роботов&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;obNL&quot;&gt;Выделяем нужные значения и строим &lt;strong&gt;лепестковую диаграмму&lt;/strong&gt;:&lt;/p&gt;
  &lt;figure id=&quot;a1iJ&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/03/e2/03e20775-5499-477c-8b0d-4a9fbc27a4b0.png&quot; width=&quot;580&quot; /&gt;
    &lt;figcaption&gt;Диаграмма&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;bT5t&quot;&gt;Однако есть огромная проблема. У величин разные максимальные и минимальные значения, то есть &lt;em&gt;DMG&lt;/em&gt; может быть в один пределах, а &lt;em&gt;SPD&lt;/em&gt; в совершенно других. В случае примера:&lt;/p&gt;
  &lt;ol id=&quot;uIo8&quot;&gt;
    &lt;li id=&quot;RUtT&quot;&gt;&lt;em&gt;HPs&lt;/em&gt;: [50; 100];&lt;/li&gt;
    &lt;li id=&quot;eDE9&quot;&gt;&lt;em&gt;DEF&lt;/em&gt;: [10; 200];&lt;/li&gt;
    &lt;li id=&quot;bBTp&quot;&gt;&lt;em&gt;SPD&lt;/em&gt;: [1; 10];&lt;/li&gt;
    &lt;li id=&quot;ZTCH&quot;&gt;&lt;em&gt;DMG&lt;/em&gt;: [100; 1000];&lt;/li&gt;
    &lt;li id=&quot;Vbtz&quot;&gt;&lt;em&gt;DEX&lt;/em&gt;: [1; 10];&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;P7j4&quot;&gt;Соответственно, если оставить всё как есть, то график будет выглядеть криво, так как &lt;em&gt;DMG&lt;/em&gt; будет всегда выделяться, а &lt;em&gt;SPD&lt;/em&gt; и &lt;em&gt;DEX&lt;/em&gt; будут совершенно незаметны. Следовательно, надо перейти к относительными величинам. Будем считать, какой % составляет каждая из величин от её отрезка допустимых значений:&lt;/p&gt;
  &lt;p id=&quot;hxOy&quot; data-align=&quot;center&quot;&gt;&lt;em&gt;value - minValue / maxValue - minValue&lt;/em&gt;&lt;/p&gt;
  &lt;ul id=&quot;mLD2&quot;&gt;
    &lt;li id=&quot;3Imn&quot;&gt;&lt;em&gt;value&lt;/em&gt; — конкретное значение величины;&lt;/li&gt;
    &lt;li id=&quot;6q2J&quot;&gt;&lt;em&gt;minValue&lt;/em&gt; — минимальное значение, например, у &lt;em&gt;DEX&lt;/em&gt; оно 1;&lt;/li&gt;
    &lt;li id=&quot;rMsj&quot;&gt;&lt;em&gt;maxValue&lt;/em&gt; — максимальное, например, у &lt;em&gt;SPD&lt;/em&gt; оно 10.&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;EscD&quot;&gt;Например, если &lt;em&gt;HPs&lt;/em&gt; = 75, то его относительно значение - 50%.&lt;/p&gt;
  &lt;p id=&quot;QWhh&quot;&gt;Как определять минимальное и максимальное значения остается на откуп дизайнера. В примере они заданы ручками, а можно, например, искать минимум и максимум каждой из величин среди всех сущностей.&lt;/p&gt;
  &lt;p id=&quot;BG9e&quot;&gt;Теперь в таблице есть 2 листа:&lt;/p&gt;
  &lt;ol id=&quot;dZtP&quot;&gt;
    &lt;li id=&quot;rSyN&quot;&gt;&lt;em&gt;Robots&lt;/em&gt;. Содержит роботов, у каждого есть брат, который отражает относительные значения величин.&lt;/li&gt;
    &lt;li id=&quot;zMYP&quot;&gt;&lt;em&gt;Stats&lt;/em&gt;. Содержит статы.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;ncft&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/82/c7/82c7dc46-9485-467c-ab7f-8f0cfc07053f.png&quot; width=&quot;1374&quot; /&gt;
    &lt;figcaption&gt;Лист с роботами&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;TJ3J&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/25/43/25435739-5e5c-46e4-aacb-771b43f39ccc.png&quot; width=&quot;409.00000000000006&quot; /&gt;
    &lt;figcaption&gt;Лист с характеристиками&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;fqUM&quot;&gt;Если инженеры должны делать гибкий код, то дизайнеры — гибкие таблицы, поэтому было сделано следующее:&lt;/p&gt;
  &lt;ol id=&quot;SR1W&quot;&gt;
    &lt;li id=&quot;B7qX&quot;&gt;Именованный диапазон характеристик &lt;em&gt;StatsData;&lt;/em&gt;&lt;/li&gt;
    &lt;li id=&quot;PIWo&quot;&gt;Дублирующие данные диапазона &lt;em&gt;StatsData&lt;/em&gt; на листе роботов через &lt;em&gt;=ТРАНСП(StatsData), &lt;/em&gt;так как данные используются для расчета относительных значений, а огромное число &lt;em&gt;=VLOOKUP&lt;/em&gt; не очень хорошо; &lt;/li&gt;
    &lt;li id=&quot;sH1Y&quot;&gt;Общая формула для расчета всех относительных значений, &lt;em&gt;=ARRAYFORMULA(ЕСЛИ(D6:6 &amp;gt; 0; ОКРУГЛ((D6:6 - D$2:$2) / (D$3:$3 - D$2:$2); 2); &amp;quot;&amp;quot;))&lt;/em&gt;, то есть мы считаем не каждую характеристику по отдельности, а берем всю строку и делаем с ней одинаковые действия, а именно:&lt;/li&gt;
    &lt;ol id=&quot;Loca&quot;&gt;
      &lt;li id=&quot;y5zS&quot;&gt;Проверяем, что абсолютные значения больше 0;&lt;/li&gt;
      &lt;li id=&quot;seo3&quot;&gt;Если всё ок, то считаем какой процент составляет каждая из характеристик из соответствующего ей диапазона;&lt;/li&gt;
      &lt;li id=&quot;ivFS&quot;&gt;Иначе пустая строчка.&lt;/li&gt;
    &lt;/ol&gt;
    &lt;li id=&quot;MXyT&quot;&gt;Специальное выделение для столбца &lt;em&gt;ID&lt;/em&gt;, так как оно считается само;&lt;/li&gt;
    &lt;li id=&quot;gF8L&quot;&gt;Особое обозначение имён дополнительных роботов, начинающиеся с «#».&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;39K0&quot;&gt;Важные моменты:&lt;/p&gt;
  &lt;ol id=&quot;Dou8&quot;&gt;
    &lt;li id=&quot;InFJ&quot;&gt;Специальные выделения стоит фиксировать, например, в условном &lt;em&gt;Sheets Style Guide&lt;/em&gt;; &lt;/li&gt;
    &lt;li id=&quot;SjH1&quot;&gt;Особое символы дублирующих или расчетных данных также стоит фиксировать;&lt;/li&gt;
    &lt;li id=&quot;tYyT&quot;&gt;Всё это было сделано лишь для того, чтобы при добавлении/удалении характеристики ничего не могло сломаться;&lt;/li&gt;
    &lt;li id=&quot;qv27&quot;&gt;Дополнительные данные по-умолчанию скрыты;&lt;/li&gt;
    &lt;li id=&quot;1Yca&quot;&gt;На абсолютные значения были накинуты кастомные проверки вида &lt;em&gt;=ЕСЛИ(И(C4 &amp;gt;= C$2; C4 &amp;lt;= C$3); 1; 0)&lt;/em&gt;, то есть значение должно попадать в отрезок допустимых&lt;em&gt;.&lt;/em&gt;&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;C0Zx&quot;&gt;Кстати, для удобства добавления роботов стоит сделать отдельный макрос, который будет создавать пустышку-робота и его относительные данные, а сразу после их прятать. Пример его использования будет ниже.&lt;/p&gt;
  &lt;h2 id=&quot;67tp&quot;&gt;Построение диаграммы&lt;/h2&gt;
  &lt;p id=&quot;l6ne&quot;&gt;Подготовительные работы завершены. Теперь построим сводную таблицу, где будут только необходимые значения, то есть отфильтруем все данные с диапазона роботов: будем использовать только те, что начинаются с &amp;quot;#&amp;quot;. Далее выделяем данные и строим &lt;strong&gt;лепестковую диаграмму&lt;/strong&gt;.&lt;/p&gt;
  &lt;figure id=&quot;pKrh&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/c4/58/c4581567-da3e-4a52-9e21-065801d7d20c.png&quot; width=&quot;2526&quot; /&gt;
    &lt;figcaption&gt;Пример диаграммы&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;y2zm&quot;&gt;По настройкам диаграммы:&lt;/p&gt;
  &lt;ol id=&quot;OAin&quot;&gt;
    &lt;li id=&quot;54dw&quot;&gt;Строки/столбцы включены (в нашем случае);&lt;/li&gt;
    &lt;li id=&quot;VxcG&quot;&gt;Сглаживание отключено в стиле диаграммы.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;sW8I&quot;&gt;Готово! У нас есть диаграмма, через которую мы можем сравнивать роботов или смотреть на их характеристики в более удобном виде.&lt;/p&gt;
  &lt;h2 id=&quot;57rO&quot;&gt;Power&lt;/h2&gt;
  &lt;p id=&quot;0k8e&quot;&gt;Бывают ситуацию, когда игроку надо сравнить две сущности, и часто для такого используется некий сводный параметр, частно называемый &lt;em&gt;Power&lt;/em&gt;. В случае, когда визуализация характеристик происходит посредством лепестковой диаграммы, логично посчитать площадь каждого получившегося многоугольника.&lt;/p&gt;
  &lt;p id=&quot;ByT1&quot;&gt;Для расчета эффективности имеет смысл разбить весь получившийся многоугольник на треугольники, рассчитать площадь каждого, а потом просуммировать их.&lt;/p&gt;
  &lt;figure id=&quot;MVph&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/43/b1/43b1c927-03dd-43a1-8bbf-8feb5f301664.png&quot; width=&quot;2042&quot; /&gt;
    &lt;figcaption&gt;Один из треугольник на диаграмме &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;quYF&quot;&gt;Каждый треугольник образуется двумя соседними характеристиками, например, &lt;em&gt;HPs&lt;/em&gt; и &lt;em&gt;DEF&lt;/em&gt;. Его площадь посчитаем по формуле двух сторон и угла между ними:&lt;/p&gt;
  &lt;ol id=&quot;GO6v&quot;&gt;
    &lt;li id=&quot;12E5&quot;&gt;Синус угла находим через количество характеристик &lt;em&gt;N&lt;/em&gt;. =&lt;em&gt;SIN(РАДИАНЫ(360/N))&lt;/em&gt;, так как весь круг, то есть 360° разбивается на &lt;em&gt;N&lt;/em&gt; равных частей;&lt;/li&gt;
    &lt;li id=&quot;Bd5k&quot;&gt;Стороны — значения характеристик;&lt;/li&gt;
    &lt;li id=&quot;hk1y&quot;&gt;Перемножаем величины из предыдущих пунктов, делим на два, получаем площадь одного треугольника. Осталось так сделать с каждыми соседними характеристиками, то есть треугольниками.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;6lHk&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/29/e2/29e2a65d-26f3-462b-9980-85648fd0ab7e.png&quot; width=&quot;1548&quot; /&gt;
    &lt;figcaption&gt;Формула для мощности&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Otz4&quot;&gt;Важно понимать, что полученный &lt;em&gt;power&lt;/em&gt; стоит показывать игроку, но использовать его в реальных расчетах может быть не так эффективно, так как не все характеристики могут быть равноценны и независимы.&lt;/p&gt;
  &lt;p id=&quot;RL4J&quot;&gt;В процессе проценты стали просто числами, но сути это не меняет. Теперь точно всё!&lt;/p&gt;
  &lt;p id=&quot;kdJ0&quot;&gt;&lt;a href=&quot;https://docs.google.com/spreadsheets/d/1LqtmbtJItBDIRkNT1JQJ0iFx0G6nzPDUoRlvAqHjG1M/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;Таблица доступна по ссылке.&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;TrpJ&quot;&gt;Определенно в таблице есть минусы, например, отсутствие истории обновлений, фильтра по роботам и так далее... но идея раскрыта.&lt;/p&gt;
  &lt;figure id=&quot;co0k&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/02/43/0243efa2-a8f1-43d2-9ec4-1d92adaede31.gif&quot; width=&quot;1916&quot; /&gt;
    &lt;figcaption&gt;Пример работы макроса&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;MNbi&quot;&gt;Заключение&lt;/h2&gt;
  &lt;p id=&quot;q3ia&quot;&gt;Знание о существовании такого вида диаграммы может пригодиться, потому что она сильно упрощает визуализацию характеристик и мощи сущности. Игрок может бегло посмотреть на диаграмму и понять, какие есть слабые / сильные стороны у объекта или в чём он уступает другому объекту.&lt;/p&gt;
  &lt;p id=&quot;AT9d&quot;&gt;Однако, у неё есть определенные минусы:&lt;/p&gt;
  &lt;ol id=&quot;GVvb&quot;&gt;
    &lt;li id=&quot;pKml&quot;&gt;Наличие большого количества переменных создает много осей, что делает диаграмму сложной для восприятия;&lt;/li&gt;
    &lt;li id=&quot;BsQo&quot;&gt;Нахождение нескольких сущностей на одной диаграмме делает ее трудночитаемой, поэтому обычно используют не более 3;&lt;/li&gt;
    &lt;li id=&quot;lQtO&quot;&gt;Трудности могут возникнуть при сравнении значений на разных осях, поскольку они могут иметь различную шкалу абсолютного измерения и вносить разный вклад в настоящую эффективность сущности, даже несмотря на то, что в примере мы их нормализовали.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;zMwh&quot;&gt;Примеры в реальных проектах:&lt;/p&gt;
  &lt;figure id=&quot;srbE&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0b/cd/0bcd35f5-6724-4e35-b0ba-6c86b16f0069.jpeg&quot; width=&quot;1280&quot; /&gt;
    &lt;figcaption&gt;Final Fanasy VII The First Soldier&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;B0kK&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/67/33/67338af1-901b-46fd-9afe-2ca7ff0d3470.jpeg&quot; width=&quot;960&quot; /&gt;
    &lt;figcaption&gt;Tales of Zestiria&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;yz3c&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/80/d9/80d960f4-4fb5-46ac-bb05-9001940ffa1e.jpeg&quot; width=&quot;1280&quot; /&gt;
    &lt;figcaption&gt;Forza Horion 5&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;ddfY&quot;&gt;Примеров ещё много: &lt;em&gt;PUBD, FIFA, Stellaris, Tennis Manager, Captain Tsubasa, etc&lt;/em&gt;. В некоторых из них, например, в &lt;em&gt;Wild Rift&lt;/em&gt;, используется как отображение стиля игры игрока.&lt;/p&gt;
  &lt;figure id=&quot;JBLC&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e7/ec/e7ecb175-aa10-4576-9c44-0dabf655b8a9.jpeg&quot; width=&quot;1024&quot; /&gt;
    &lt;figcaption&gt;Wild Rift&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;WbFR&quot;&gt;Теперь точно всё! Графиков сегодня было много, самое время поиграть в какой-нибудь тайкун, где их будет не меньше, например, в &lt;em&gt;&lt;a href=&quot;https://store.steampowered.com/app/1220140/Cartel_Tycoon/&quot; target=&quot;_blank&quot;&gt;Cartel Tycoon&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
  &lt;blockquote id=&quot;uh0y&quot;&gt;Сюжетный бизнес-симулятор Cartel Tycoon вдохновлен историей наркоторговли в 80-х годах. Расширяйте свою сеть и поглощайте другие, не привлекая внимания конкурентов и властей.&lt;/blockquote&gt;
  &lt;figure id=&quot;coX0&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://gamazavr.ru/media/products/product/14818702/screenshot_1920_1080_5MkLJ54.jpg&quot; width=&quot;1920&quot; /&gt;
    &lt;figcaption&gt;Г Р А Ф И К И&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;hef6&quot;&gt;&lt;a href=&quot;https://t.me/chaoticgamedesign&quot; target=&quot;_blank&quot;&gt;by Chaotic Game Design&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>chaoticgamedesign:configsmap</id><link rel="alternate" type="text/html" href="https://teletype.in/@chaoticgamedesign/configsmap?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=chaoticgamedesign"></link><title>Configs Map</title><published>2022-06-21T08:55:44.199Z</published><updated>2022-06-21T08:55:44.199Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img4.teletype.in/files/f6/81/f681f1a5-be85-424b-89ac-bce9cfe24688.png"></media:thumbnail><category term="dokumentaciya" label="документация"></category><summary type="html">&lt;img src=&quot;https://telegra.ph/file/c349c8c7b91957ab0c11a.png&quot;&gt;Дизайнеры испокон веков были покорным слугами разработчиков: тз, диздок, карта экранов, мокап экрана и так далее. Всё это очень нужно и важно иметь на проекте. Однако меня всегда удивляло, что дизайнеры часто забывают про своё удобство. Документация отличная, в Unity всё удобно разложено по папкам, а вот конфиги… С конфигами чаще всего беда. Представьте, что вы пришли на проект, в котором более десятка различных таблиц с огромным числом зависимостей и ваша задача разобраться во всём этом. Тут на помощь и приходит карта конфигов.</summary><content type="html">
  &lt;p id=&quot;JOoG&quot;&gt;Дизайнеры испокон веков были покорным слугами разработчиков: тз, диздок, карта экранов, мокап экрана и так далее. Всё это очень нужно и важно иметь на проекте. Однако меня всегда удивляло, что дизайнеры часто забывают про своё удобство. Документация отличная, в Unity всё удобно разложено по папкам, а вот конфиги… С конфигами чаще всего беда. Представьте, что вы пришли на проект, в котором более десятка различных таблиц с огромным числом зависимостей и ваша задача разобраться во всём этом. Тут на помощь и приходит карта конфигов.&lt;/p&gt;
  &lt;figure id=&quot;eZwd&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/c349c8c7b91957ab0c11a.png&quot; width=&quot;1808&quot; /&gt;
    &lt;figcaption&gt;Если вы ожидали такую карту, то можете смело закрывать статью&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;nIdh&quot;&gt;Перед тем как ответить на вопрос, а что же за зверь такой - карта конфигов, сделаем пару шагов назад, а потом шаг в сторону и окажемся на пути разработчиков. Они часто имеют дело с &lt;strong&gt;базами данных &lt;/strong&gt;- набором связанных таблиц через установленные отношения-правила (это не всегда так, но опустим детали). Таблица - это сущность, отношения - связи, так получается система, которую можно визуализировать в виде блок схемы:&lt;/p&gt;
  &lt;figure id=&quot;AXEV&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/365532a103714642a8a88.png&quot; width=&quot;2021&quot; /&gt;
    &lt;figcaption&gt;ERD БД Олимпийских Игр&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;vEb6&quot;&gt;Выше показан пример диаграммы, которая отражает систему олимпийских игр. Есть сущности (таблицы): человек, событие, игры и так далее, а между ними связи. Связи нас интересует меньше, потому что используется более сложная нотация, чем нам нужна.&lt;/p&gt;
  &lt;p id=&quot;D8O8&quot;&gt;Теперь делаем шаги в обратном направлении и порядке, чтобы снова попасть на путь дизайнеров. Главное по дороге не потерять только что полученные знания, о том, как можно визуализировать БД.&lt;/p&gt;
  &lt;p id=&quot;CaXW&quot;&gt;Представим, что мы делаем простенький Tower Defense, в котором игрок должен проходить уровни, состоящие из волн врагов. Наши конфиги:&lt;/p&gt;
  &lt;ol id=&quot;KR6h&quot;&gt;
    &lt;li id=&quot;YHpr&quot;&gt;Missions - таблица миссий&lt;/li&gt;
    &lt;li id=&quot;e1S7&quot;&gt;Locations - таблица локаций&lt;/li&gt;
    &lt;li id=&quot;vbSH&quot;&gt;Enemies - таблица врагов&lt;/li&gt;
    &lt;li id=&quot;t3Mq&quot;&gt;Behaviours - таблица поведений&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;JPah&quot;&gt;Миссия состоят из волн, которые в свою очередь состоят из спавнов врагов. Каждый враг обладает каким-то поведением и характеристиками, а также миссия разворачивается на какой-то локации. Визуализируем:&lt;/p&gt;
  &lt;ol id=&quot;hiZt&quot;&gt;
    &lt;li id=&quot;qtMU&quot;&gt;Таблицы - mind maps (в случае &lt;a href=&quot;https://miro.com/app/dashboard/&quot; target=&quot;_blank&quot;&gt;Miro&lt;/a&gt;)&lt;/li&gt;
    &lt;li id=&quot;gVU4&quot;&gt;Столбцы (или строки?) таблицы - ветви mind map&lt;/li&gt;
    &lt;li id=&quot;siZE&quot;&gt;Зависимости - стрелки с указанием от чего к чему и что вписывать&lt;/li&gt;
    &lt;li id=&quot;tJBe&quot;&gt;Около карт ещё удобно оставлять заметки, чтобы подсветить наиболее важные и неочевидные моменты&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;jR4v&quot; class=&quot;m_retina&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/a9c19f61ccdbd9ca9af62.png&quot; width=&quot;1041&quot; /&gt;
    &lt;figcaption&gt;Configs Map для выдуманного проекта&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;khZ1&quot;&gt;Вуаля, теперь онбординг нового дизайнера будет происходить быстрее, а ему будет проще разобраться в конфигах, потому что зависимости между ними раскрыты и визуализированы. Конечно же, это не отменяет того, что в ГДД должны быть описаны конфиги, которые используются.&lt;/p&gt;
  &lt;p id=&quot;xlPC&quot;&gt;Кстати, минутка интересных фактов из мира математики. Самая первая карта в заметке покрашена в 4 цвета не просто так - именно этого количества цветов достаточно, чтобы никакие соседние области не имели одинаковой раскраски. Подробнее про теорему (да-да, это теорема) можно почитать в &lt;a href=&quot;https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE_%D1%87%D0%B5%D1%82%D1%8B%D1%80%D1%91%D1%85_%D0%BA%D1%80%D0%B0%D1%81%D0%BA%D0%B0%D1%85&quot; target=&quot;_blank&quot;&gt;википедии&lt;/a&gt;, а прикладную часть &lt;a href=&quot;https://habr.com/ru/post/346710/&quot; target=&quot;_blank&quot;&gt;вот тут&lt;/a&gt;. Если кто-то вдруг очень заинтересовался, то рекомендую к прочтению книгу профессора Стюарта «&lt;em&gt;Невероятные Числа&lt;/em&gt;» (&lt;em&gt;Professor Stewart&amp;#x27;s Incredible Numbers&lt;/em&gt;). Каждая глава книги посвящена какому-то числу, так в главе 4 (про число 4 соотвественно) поднимается и эта теорема.&lt;/p&gt;
  &lt;figure id=&quot;rnDp&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/0cb6c5c356a1c7850f15b.png&quot; width=&quot;2658&quot; /&gt;
    &lt;figcaption&gt;Пара страниц из книги&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;709M&quot;&gt;Кто куда, а я пойду играть в &lt;em&gt;Mini Metro&lt;/em&gt;. Буду считать, что станции - это конфиги, перегрузку которых нельзя допустить, а пассажиры - новые дизайнеры на проекте, которые и пытаются разобраться во всех тонкостях местных таблиц.&lt;/p&gt;
  &lt;figure id=&quot;ST8t&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/3ebbd00164182afb96739.png&quot; width=&quot;1920&quot; /&gt;
    &lt;figcaption&gt;Система конфигов в какой-нибудь ММО&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;9t5Z&quot;&gt;&lt;a href=&quot;https://www.databasestar.com/sample-database-olympic-games/&quot; target=&quot;_blank&quot;&gt;Источник примера ERD&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;LX3u&quot;&gt;by &lt;a href=&quot;https://t.me/chaoticgamedesign&quot; target=&quot;_blank&quot;&gt;Chaotic Game Design&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>chaoticgamedesign:googlesheetsnightmare</id><link rel="alternate" type="text/html" href="https://teletype.in/@chaoticgamedesign/googlesheetsnightmare?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=chaoticgamedesign"></link><title>Google Sheets Nightmare</title><published>2022-06-20T18:12:52.662Z</published><updated>2022-06-21T08:57:16.839Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/64/1e/641e396c-177d-4cbc-a7d9-6364a32bbc01.png"></media:thumbnail><category term="tablicy" label="таблицы"></category><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/52/11/521101f2-fc96-4c92-be19-c88888cce689.jpeg&quot;&gt;Многие из гейм-дизайнеров целыми днями сидят в таблицах. После рабочего дня они идут заниматься своими делами, а потом наступает время сна. Естественно дизайнеры видят сны про таблицы: идеальный баланс, корректно построенные графики, удобные макросы… но иногда снятся кошмары. Жуткие сны с ужасными таблицами.</summary><content type="html">
  &lt;p id=&quot;jONd&quot;&gt;Многие из гейм-дизайнеров целыми днями сидят в таблицах. После рабочего дня они идут заниматься своими делами, а потом наступает время сна. Естественно дизайнеры видят сны про таблицы: идеальный баланс, корректно построенные графики, удобные макросы… но иногда снятся кошмары. Жуткие сны с ужасными таблицами.&lt;/p&gt;
  &lt;figure id=&quot;iB8z&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/52/11/521101f2-fc96-4c92-be19-c88888cce689.jpeg&quot; width=&quot;302.00000000000006&quot; /&gt;
    &lt;figcaption&gt;Типичный кошмар про таблицы.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;7h7k&quot;&gt;Например, как-то раз я видел сон, в котором начинающий дизайнер начал строить таблицу с середины листа. Таблицу естественно он переименовывать не стал, ведь всем очевидно, что «&lt;em&gt;Новая Таблица 0456&lt;/em&gt;» — это та самая таблица.&lt;/p&gt;
  &lt;figure id=&quot;5OLa&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/c064e102851e690cf3f83.png&quot; width=&quot;2786&quot; /&gt;
    &lt;figcaption&gt;Начальная таблица.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;MH1E&quot;&gt;Сразу за этим последовало прекрасное форматирование:&lt;/p&gt;
  &lt;ol id=&quot;G4gk&quot;&gt;
    &lt;li id=&quot;EhJX&quot;&gt;Яркая заливка ячеек;&lt;/li&gt;
    &lt;li id=&quot;45hE&quot;&gt;Модные шрифты;&lt;/li&gt;
    &lt;li id=&quot;PXT2&quot;&gt;Разный кегель.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;rseT&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/6d2195744868d15feb140.png&quot; width=&quot;2786&quot; /&gt;
    &lt;figcaption&gt;Таблица начинает преобразоываться.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;HdtX&quot;&gt;Задача на день была простая: сравнить эффективность роботов (не будем уходить от классики). Урон и здоровье каждого известны. Формула знакома каждому джуну — просто перемножаем величины, чтобы получить мощь.&lt;/p&gt;
  &lt;p id=&quot;jST9&quot;&gt;Однако у нашего коллеги возникла гениальная идея. Он добавил в формулу магические преобразования, а потом написал очень полезное примечание, которое всё расставило на свои места. Округлять значения не надо, ведь, чем больше знаков после запятой, тем лучше. Кстати, тоже самое можно сказать и про формулы — чем больше магических преобразований, тем точнее баланс.&lt;/p&gt;
  &lt;figure id=&quot;G0Ou&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/f4fa979a6937ac35ef135.png&quot; width=&quot;2786&quot; /&gt;
    &lt;figcaption&gt;Таби с посчитанной мощью. Внимание на формлу и примечание.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;4gdp&quot;&gt;Ох, точность и класс робота были забыты! Ничего, сейчас всё будет исправлено. Точность (&lt;em&gt;Accuracy&lt;/em&gt;) измеряется в проекте от 0 до 1, и есть 3 класса: &lt;em&gt;Light&lt;/em&gt;, &lt;em&gt;Medium&lt;/em&gt; и &lt;em&gt;Heavy&lt;/em&gt;. В зависимости от класса конечная мощь умножается на определенный коэффициент, а урон умножается на точность.&lt;/p&gt;
  &lt;figure id=&quot;YZf4&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/fe3bbd9ae6df03bf38b90.png&quot; width=&quot;2788&quot; /&gt;
    &lt;figcaption&gt;Таблица с классами и точностью. Некоторые значения специально выделены.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;AXus&quot;&gt;В спешке автор сокращает &lt;em&gt;Accuracy&lt;/em&gt; до &lt;em&gt;ACR&lt;/em&gt;, ведь какая разница, а на поля не вешает валидацию, ведь зачем оно надо? ошибок то не будет! Хотя, если приглядеться, то можно заметить, что в &lt;em&gt;ACR&lt;/em&gt; проскочила двойка (&lt;em&gt;G9&lt;/em&gt;), а в &lt;em&gt;Class&lt;/em&gt; какой-то новый класс (&lt;em&gt;I14&lt;/em&gt;). Формула расчета стала больше, может быть стоило разделить её на несколько строк? Ну, нет, еще терпит. Роботов, кстати, тоже стало больше, но закреплять строку автор не решился. Да и тем более, она по середине листа.&lt;/p&gt;
  &lt;p id=&quot;M8BF&quot;&gt;Переход к заключительному этапу — сравнению мощностей. Это было решено сделать через относительное сравнение каждого робота с самым мощным. Сказано — сделано.&lt;/p&gt;
  &lt;figure id=&quot;Sx2H&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/bea9b7cecff5f0a5b0828.png&quot; width=&quot;2788&quot; /&gt;
    &lt;figcaption&gt;В таблице полявляются дополнительные поля и диаграмма. &lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Q9dC&quot;&gt;Наш персонаж находит максимум (на всякий еще и минимум) через стандартные функции, применяя их к диапазону. Можно было бы использовать именованные диапазоны (&lt;em&gt;named ranges&lt;/em&gt;), но это как-то сложно непонятно да и зачем? Диаграмма строится по щелку пальца, кажется, что видоизменять её смысла нет, всё легко читается.&lt;/p&gt;
  &lt;p id=&quot;wdSl&quot;&gt;Потребовалось сравнить легких роботов. Было решено создать дополнительный лист, который называется «&lt;em&gt;Лист2&lt;/em&gt;», а на нем своего рода сводную таблицу.&lt;/p&gt;
  &lt;ol id=&quot;FlvF&quot;&gt;
    &lt;li id=&quot;hTFR&quot;&gt;С «&lt;em&gt;Лист1&lt;/em&gt;»перетащить нужные данные с помощью &lt;em&gt;=ARRAYFORMULA&lt;/em&gt;;&lt;/li&gt;
    &lt;li id=&quot;kQhz&quot;&gt;Создать столбец &lt;em&gt;Flag&lt;/em&gt;, который проверят, что класс равен легкому;&lt;/li&gt;
    &lt;li id=&quot;Qo3o&quot;&gt;Пересчитать &lt;em&gt;Result&lt;/em&gt;;&lt;/li&gt;
    &lt;li id=&quot;1vB8&quot;&gt;Покрасить всё в модные цвета.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;JJ9B&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/2f6e286e1187484da0f75.png&quot; width=&quot;2788&quot; /&gt;
    &lt;figcaption&gt;Своего рода сводная таблица.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;72yN&quot;&gt;Дизайнер допускает небольшую ошибку, забывая, что сравнивает легких не между собой, а с самым крутым роботом в игре, который, кстати, не легкий, но ничего страшного! Может быть это была такая задача... На этом он заканчивает свой рабочий день и счастливый идет заниматься своими делами.&lt;/p&gt;
  &lt;p id=&quot;BBjN&quot;&gt;Я же проснулся весь в поту, потому что такой кошмар давно не снился. Сразу же зашел в таблицы и сделал свою версию, где:&lt;/p&gt;
  &lt;ol id=&quot;DgV9&quot;&gt;
    &lt;li id=&quot;0bBL&quot;&gt;Адекватные названия листов;&lt;/li&gt;
    &lt;li id=&quot;ItTn&quot;&gt;Простое форматирование;&lt;/li&gt;
    &lt;li id=&quot;hGUG&quot;&gt;Отдельные листы для важных сущностей/абстракций, например, классов;&lt;/li&gt;
    &lt;li id=&quot;65IS&quot;&gt;Понятные формулы и примечания к ним.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;xnow&quot;&gt;Кстати, сами формулы баланса могут быть сложные, но не стоит с ними мудрить, а уж тем более использовать магические коэффициенты. Если они выходят на несколько строк, то не поленитесь их разбить на логические блоки, чтобы их было проще читать. Всё объясняйте!&lt;/p&gt;
  &lt;figure id=&quot;8JCY&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/e22ebce1658daa6fb55f1.png&quot; width=&quot;2788&quot; /&gt;
    &lt;figcaption&gt;Мой вариант таблицы.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;giWs&quot;&gt;Таким образом, я использовал:&lt;/p&gt;
  &lt;ol id=&quot;xcMG&quot;&gt;
    &lt;li id=&quot;TqAf&quot;&gt;Закреплние строки;&lt;/li&gt;
    &lt;li id=&quot;4ewS&quot;&gt;Проверку данных в нужных столбцах;&lt;/li&gt;
    &lt;li id=&quot;oZOW&quot;&gt;Именованные диапазоны в формулах;&lt;/li&gt;
    &lt;li id=&quot;g35z&quot;&gt;Филтр.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;d1Be&quot;&gt;Кстати, проверка данных подсветила ошибки. Фильтр же просто частенько может пригодиться, для него я ещё специально сделал столбец &lt;em&gt;ID&lt;/em&gt;.&lt;/p&gt;
  &lt;p id=&quot;4uDc&quot;&gt;Далее создал сводную таблицу через заложенный функционал, поэтому, например, её форматирование не было изменено. Многие привыкли к такому, поэтому пусть так и будет.&lt;/p&gt;
  &lt;figure id=&quot;6BOD&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/3d887caa8333ac4a77e35.png&quot; width=&quot;2788&quot; /&gt;
    &lt;figcaption&gt;Сводная таблица. Шутка про неё: «A pivot table walks into a bar and orders a beer. It says, “Put me in the same tab, will ya?”».&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;5Zue&quot;&gt;Заодно я разделил листы по цвету и листу со сводной таблицей приписал &lt;em&gt;PT&lt;/em&gt; (&lt;em&gt;&lt;strong&gt;P&lt;/strong&gt;ivot &lt;strong&gt;T&lt;/strong&gt;able&lt;/em&gt;), но что же такое &lt;em&gt;Update Log&lt;/em&gt;? Это просто лист, в котором удобно обозначать изменения, которые были внесены в таблицу. Если в офлайн конфиге всё можно отследить через VSC (при условии, что команда пишет вменяемы коммиты), то тут чуть сложнее.&lt;/p&gt;
  &lt;figure id=&quot;h6Ep&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/9c/b4/9cb4b7aa-4e58-4eb0-be36-af526ef009db.gif&quot; width=&quot;2788&quot; /&gt;
    &lt;figcaption&gt;Использование макроса.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;kWNR&quot;&gt;На этом у меня всё! Кстати, я сам мог допустить где-то ошибки и/или что-то сделать лучше, но это всё было сразу после сна :D&lt;/p&gt;
  &lt;p id=&quot;i3K9&quot;&gt;&lt;a href=&quot;https://docs.google.com/spreadsheets/d/13_k7kKtCV0VUGb6-o9FiieIJN50sHlCu1j_-P3TeSmw/edit?usp=sharing&quot; target=&quot;_blank&quot;&gt;Таблицы можно посмотреть тут.&lt;/a&gt;&lt;/p&gt;
  &lt;p id=&quot;Xq71&quot;&gt;Любите таблицы и уважайте своих коллег.&lt;/p&gt;
  &lt;p id=&quot;hHt3&quot;&gt;Во что же можно поиграть? Я мог бы посоветовать &lt;em&gt;EVE Online&lt;/em&gt;, но это слишком банально. Кажется, что &lt;a href=&quot;https://store.steampowered.com/app/413150/Stardew_Valley/&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;Stardew Valley&lt;/em&gt;&lt;/a&gt; — идеальный кандидат на роль игры, в которую можно играть и параллельно заполнять таблички, чтобы научиться лучше с ними работать. Вот у какого растения лучший ROI в игре?&lt;/p&gt;
  &lt;figure id=&quot;mGLi&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://telegra.ph/file/77db4981801c81a251170.png&quot; width=&quot;1920&quot; /&gt;
    &lt;figcaption&gt;Ферма.&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Rkqr&quot;&gt;Полезные материалы:&lt;/p&gt;
  &lt;ul id=&quot;VYYv&quot;&gt;
    &lt;li id=&quot;Z9NN&quot;&gt;&lt;a href=&quot;https://dtf.ru/pixonic/655174-kak-udobno-vesti-igrovoy-balans-i-ne-slomatsya-ot-kolichestva-yacheek-v-tablicah&quot; target=&quot;_blank&quot;&gt;Как удобно вести игровой баланс и не сломаться от количества ячеек в таблицах&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;vcQ9&quot;&gt;&lt;a href=&quot;https://dtf.ru/gamedev/84776-google-sheets-dlya-geymdizaynera-chast-1-sortirovka-dannyh&quot; target=&quot;_blank&quot;&gt;Google Sheets для геймдизайнера&lt;/a&gt;&lt;/li&gt;
    &lt;li id=&quot;qFUz&quot;&gt;&lt;a href=&quot;https://www.gamedeveloper.com/design/practical-tips-on-technical-game-design-documentation-part-3---spreadsheets&quot; target=&quot;_blank&quot;&gt;Practical tips on technical Game Design Documentation (Part 3)&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;6Epx&quot;&gt;&lt;em&gt;PS Сон и проект естественно выдуманные.&lt;/em&gt;&lt;/p&gt;
  &lt;p id=&quot;1pCD&quot;&gt;&lt;a href=&quot;https://t.me/chaoticgamedesign&quot; target=&quot;_blank&quot;&gt;by Chaotic Game Design&lt;/a&gt;&lt;/p&gt;

</content></entry></feed>