Дополнения и расширения для Raspberry Pi: варианты для DIY- и корпоративны проектов мая 2023 года

uns-YB9u53hu7ku45dt-MQc-R-1200-80-3

«Малинки» хороши сами по себе — на их базе можно разрабатывать самые сложные проекты. Но если добавить модули и расширения сторонних продавцов, то возможности одноплатников от Raspberry Pi Foundation становится еще более обширными. Сегодня мы собрали несколько вариантов дополнений и расширений, которые могут пригодиться любителям электроники.

Compute Blade


image

Raspberry Pi Compute Module 4 — отличная плата. Этот модуль — это шаг вперед по сравнению с предыдущими моделями. Он более быстрый, у него больше возможностей, включая сетевые функции. Например, у модуля есть опция Wi-Fi 802.11b/g/n/ac, Bluetooth 5.0.

Но для его использования в большинстве случаев требуется дополнение — плата расширения. И один из интересных вариантов —
Compute Blade от Uptime Lab. Плата предлагает NVMe SSD, HDMI, USB A и C. Есть также гигабитный Ethernet и слот для карт памяти micro SD.

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

9q-Xjsx3b-Hd-DWz-MMK5ukee-S-1200-80-1

Список портов и разъемов платы расширения:

  • Хранение данных: Micro SD. M.2 NVMe, включая 22110
  • Сеть: Gigabit Ethernet (Wi-Fi on some CM4 models)
  • GPIO: 2 x UART

5 x User Controllable GPIO including I2C
Fan Connector (Square at rear of Blade)
User button
2 x RGB LEDs

  • Питание: USB C, PoE
  • Порты: HDMI (4K60), USB A
  • Беспроводная связь: Wi-Fi, Bluetooth
  • Размеры: 42.5 x 255 x 17.5 mm

Кстати, для CM4 есть и еще одна плата расширения — Compute Module 4 IO Board. Она обеспечивает подключение широкого спектра внешних устройств. Так, на этой плате есть два полноразмерных HDMI-порта, два порта USB 2.0, слот под карту microSD, разъем PCIe Gen2 x1, сетевой порт Ethernet (поддержка PoE), 40-пиновый GPIO-коннектор. Плюс здесь есть и RTC (Real-Time Clock), со слотом для батарейки CR2032. В целом, плата добавляет большое количество функций, которых может не хватать пользователям CM4.

Pimoroni Flat HAT Hacker


2nwp7-LJUPGD8u6zsb723-HJ-1200-80-1

Это весьма специфическое устройство, поскольку предназначено для Raspberry Pi 400. Это своеобразный компьютер-клавиатура с Raspberry Pi 4 внутри. Так вот, Pimoroni Flat HAT Hacker позволяет подключать к Raspberry Pi 400 дополнительные устройства. Модуль просто установить, но для работы с ним не требуется дополнительное ПО. Как говорится: «Сел и поехал».

z-Vs-Vt-ALLit-H9-D7-Xe5-RU5p-G-1200-80-1

При этом стоит система всего около $10 (где-то дешевле, где-то — дороже). Поэтому если уже есть Raspberry Pi 400, эта плата просто must have.

Raspberry Pi High Quality Camera


qrq4t-JJEFJg-ZJQwm-Wxous-1200-80-1

Если вы используете или планируете использовать «малинку» для работы с изображениями, то без этого модуля, вероятно, не обойтись. 12МП камера поставляются без объектива, но совместима с любыми объективами типа C или CS. Стоимость их составляет от $16 до $50, что не так и много. Есть, конечно, и подороже, но в основной массе цены именно такие.

Подключается модуль к CSI-порту Raspberry. Кроме того, разработчики предусмотрели еще и отверстие для монтажа модуля. Те пользователи, кто опробовал модуль в действии, утверждают, что он выполняет те задачи, которые заявлены разработчиками, и делает это хорошо.

Raspberry Pi Camera Module V2


Если вы планируете работать с изображениями, но тратить больше $50 не хотите, то подойдет второй вариант — модуль Raspberry Pi Camera Module V2. Он оснащен 8-МП камерой с сенсором от Sony, модель IMX219. Качество изображений получается вполне приемлемое. Также модуль может записывать видео с 1080p качеством и 30 fps.

Есть и другие модули, от очень дорогих, до вариантов с ценой около $10. Варианты выше покрывают большую часть потребностей тех пользователей «малинок», кто планирует работать с изображениями.

Pimoroni Explorer HAT Pro


j9-Ajww-NUe-YQb-EPo-TMcn9-Fn-1200-80-1

HAT-система, которая подключается при помощи GPIO от «малинки», что очень сильно расширяет возможности устройства и проекта в целом. Так, можно добавлять электромоторы, сенсоры и детекторы, светодиоды и т.п.

Explorer HAT Pro предоставляет четыре АЦП, которые можно использовать с джойстиками или потенциометрами. Он также имеет два контроллера двигателей, четыре разноцветных светодиодных индикатора, четыре сенсорных панели и четыре зажима-крокодила для крепления другой электроники.

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

Возможно, эти тексты тоже вас заинтересуют:

Создаем блог на Django с опросами и тестами. Краткая инструкция. Часть 1
OpenStack vs VMware: что лучше — open source или проприетарная платформа
Когда типизация делает тебе больно: как у нас появился статический анализатор


ссылка на оригинал статьи https://habr.com/ru/companies/selectel/articles/737998/

О вычислительной природе реальности

Матрица (1999)

Матрица (1999)

Я объясняю экспериментальные результаты проверки теоремы Белла супердетерминизмом. Далее я показываю, как такая Вселенная может возникнуть и быть совместимой с субъективным опытом свободы воли.

Предисловие

Как устроен этот мир, и в чем смысл жизни? Предопределена ли судьба, или мы имеем полный контроль над каждым поступком? Есть ли Бог? Эти вопросы будоражат философов испокон веков. Сравнительно недавно появилась красивая научная теория, способная все объяснить.

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

Загадки микромира

В прошлом 2022 году Нобелевскую премию по физике присудили за эксперименты, доказывающие нарушение неравенств Белла. О чем идет речь?

Почти сто лет назад, вскоре после основания Квантовой Механики, был обнаружен эффект “запутанности». Две одинаковые частицы, рожденные в одном процессе, всегда получают противоположные свойства. Например, кристалл бета-борат бария способен расщепить фотон света на два с взаимно перпендикулярной поляризацией. Отправим оба фотона в разные лаборатории, где Алиса и Боб будут их пропускать через горизонтальные фильтры. Что они увидят?

Только один из двух фотонов — тот, что окажется с горизонтальной поляризацией — пройдет через фильтр. Предсказать заранее, в какой именно лаборатории это произойдет, невозможно. Но если провести эксперимент много раз, легко убедиться, что вероятность окажется 50 на 50. Причем Алиса и Боб каждый раз увидят противоположные друг другу результаты. Либо фотон виден у Алисы, а у Боба нет, либо наоборот. “Частота разногласий” будет равна 100%.

Перенесем лабораторию Боба на Луну. Алиса уже увидела свой фотон (он оказался горизонтальным), а его запутанному брату лететь до Боба еще целую секунду. Но уже заранее ясно, что его фотон через фильтр не пройдет. И наоборот, если фотон Алисы поглощается ее фильтром, значит у Боба заведомо проскочит. Если Боба перенести еще дальше, в другую галактику, его фотоны все равно будут точно узнавать, что увидела Алиса на Земле, и принимать ортогональную поляризацию.

Эксперимент с запутанными фотонами

Эксперимент с запутанными фотонами

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

Способ подтвердить или опровергнуть гипотезу скрытых параметров предложил ирландский физик Джон Белл в 1964 году, уже после смерти Альберта Эйнштейна.

Теорема Белла

Фотон, поляризованный в вертикальной плоскости, полностью поглощается только ортогональным к ней фильтром — горизонтальным (0°). Через фильтр под углом 45°он пролетает с вероятностью 50%, а под углом 30° — с 25%. Чем больше угол, тем больше вероятность прохождения, вплоть до 100% при 90°.

Немного усложним эксперимент, описанный выше. Пусть Алиса и Боб случайно поворачивают свои фильтры перед прилетом каждого фотона. То есть, помимо горизонтального положения 0°, добавим углы 60° и 120° к горизонту (всего три положения). Давайте посчитаем полную вероятность разногласий таких измерений.

Возможные углы поляризационных фильтров

Возможные углы поляризационных фильтров

Предположим, Алиса установила свой фильтр под углом 0° и обнаружила первый фотон (то есть, он оказался горизонтально поляризован), а Боб установил свой фильтр под углом 60°. Какова вероятность, что он тоже увидит свой (вертикально поляризованный) фотон? В данном случае, вероянтость не нулевая, а равна 75%. Значит, вероятность его не увидеть - получить разногласие-равна 25%. Посчитаем эту вероятность для всех комбинаций углов:

Вероятности разногласия без скрытых параметров

Вероятности разногласия без скрытых параметров

Общая вероятность разногласий равна (100 * 3 + 25 * 6) / 9 = 50%.

Теперь посмотрим, как выглядит ситуация, если фотоны заранее решают, через какие фильтры проходить, а через какие нет. Допустим, первый фотон Алисы сразу при рождении решил проходить через 0°, но не через 60° и не 120°. Запишем это правило как (✓0°​,×60°​,×120°​). Запутанный фотон Боба, соответственно, решил все делать наоборот: (×0°​,✓60°​,✓120°​). Алиса снова выбирает выставить свой фильтр на 0°, а Боб на 60°. Что они увидят? Правильно, каждый по фотону. Разногласия нет.

Вот все возможные комбинации скрытых параметров:

И для каждой строки можно создать таблицу разногласий, в зависимости от положения фильтров. Например, для правила (✓0°,✓60°,×120°​) / (×0°,×60°​,✓120°​) таблица выглядит так:

Вероятность разногласий 5 / 9 = 55.6% времени. Можно продолжить для всех комбинаций параметров, но чаще всего мы получим именно 55.6%. По диагонали всегда будет разногласие (как и в случае без скрытых параметров). Итоговый результат: гипотеза скрытых параметров предсказывает частоту разногласий более 55%.

Какой-же вариант теории соответствует реальности? Нобелевские лауреаты Ален Аспет, Джон Клаузер и Антон Цайлингер действительно провели подобный эксперимент и однозначно доказали, что частота разногласий близка к 50%. Неравенства Белла нарушаются, скрытых параметров нет.

Для тех, кто ничего не понял, рекомендую интерактивный курс Сабины Хоссенфелдер на Brilliant, из которого я позаимствовал иллюстрации.

Лазейка супердетерминизма

Нарушение неравенств Белла подтверждает каноническую интерпретацию Квантовой Механики, которая постулирует, что элементарные частицы находятся во всех возможных состояниях (суперпозиции), пока мы на них не смотрим, и случайным образом принимают определенные параметры только в момент измерения. Эта теория нарушает принцип локальности — что влияние одного объекта на другой должно быть чем-то опосредовано и не может превышать скорость света.

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

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

Даже если фильтром Алисы будут управлять фотоны из одной далекой галактики, а фильтром Боба — из другой, есть возможность их корреляции друг с другом и с измеряемыми запутанными фотонами. Разве такое может быть в реальности? Может, если все элементы нашей Вселенной являются изначально запутанными с момента Большого Взрыва!

Для иллюстрации принципиального механизма своей теории “супердетерминизма” Герард ‘т Хоофт использовал идею клеточных автоматов. Простейший пример, с которым многие знакомы — это игра “Жизнь” Джона Конуэя.

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

"Планерное ружье" Госпера

«Планерное ружье» Госпера

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

Физика Вольфрама

Имя Стивена Вольфрама широко известно многим, благодаря его вычислительным программным комплексам Mathematica и Wolfram Alfa. Это гениальный физик, математик и программист в одном лице. Свою первую статью по Теории Квантового Поля он опубликовал в 15 лет, а защитил диссертацию (PhD) в 20. Причем его научным руководителем в Caltech был сам Ричард Фейнман. Потом они вместе работали над одним из первых квантовых компьютеров.

Как и Герард ‘т Хоофт, Вольфрам начал изучение клеточных автоматов в начале 1980-х и посвятил этой теме 20 лет. В 2002 он опубликовал свои изыскания в книге Новый Вид Науки. Основной вывод: долгое и последовательное применение простейших вычислительных правил способно порождать системы огромной сложности. Это перекликается с машиной Алана Тьюринга, способной вычислять любые алгоритмы.

В апреле 2020 Стивен запустил проект Физика Вольфрама, поставивший целью объяснить устройство нашей Вселенной как бесконечный процесс простейших вычислений — эволюции гиперграфа. Вся информация об этой теории находится в открытом доступе на сайте проекта, а за прогрессом можно следить через социальные сети, YouTube и даже Twitch. Упомяну лишь основные принципы и первые успехи.

В основе лежит концепт Рулиада (от слова rule — правило), как абстрактное пространство всех возможных правил, которые можно применять к настолько же абстрактному гиперграфу. Вот пример одного такого правила:

Правило {{x, y}, {x, z}} -> {{x, y}, {x, w}, {y, w}, {z, w}}

Правило {{x, y}, {x, z}} -> {{x, y}, {x, w}, {y, w}, {z, w}}

Оно предполагает найти два ребра с одной вершиной, удалить одно из них, добавить новую вершину и соединить ее ребрами с тремя существующими. Ниже пример применения этого правила к простейшему графу пять раз подряд:

Сложность нарастает очень быстро, и уже через 15 итераций наш граф выглядит так:

Здесь представлен обычный граф, как частный случай гиперграфа, у которого ребра всегда соединяют две вершины, а не от одной до бесконечности. Далее я буду говорить всегда “граф” для лаконичности. Визуализация графа в виде точек и стрелок не обязательна, проще манипулировать напрямую множествами ребер и вершин. Вот пример одного состояния, причем цифры ничего не значат, и их можно заменить любыми тегами: {{1, 3}, {1, 5}, {2, 5}, {3, 5}, {1, 4}, {1, 4}}.

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

Еще одна важная концепция Физики Вольфрама звучит как “вычислительная несводимость». Каждый шаг эволюции графа Вселенной требует производить вычисления по всем точкам пространства, добавляя атомы и модифицируя связи. Так возникает стрела времени. Для обозревателя, находящегося внутри системы, невозможно точно просчитать наперед эту эволюцию быстрее, чем она происходит. Также нельзя “откатить назад» все изменения и вернуться в прошлое. Демон Лапласа невозможен.

Значит ли это, что законы Вселенной непознаваемы? Отнюдь. Вольфрам приводит в пример динамику газа. Мы не можем измерить и просчитать траекторию каждой молекулы, но мы с достаточной точностью научились прогнозировать его агрегатные свойства, такие как температура и давление. Так же происходит со всеми законами физики: мы находим закономерности в простых, но частых несводимых вычислениях Вселенной и учимся прогнозировать их при помощи сложных и гладких формул и теорий. Джонатан Горард, молодой математик-вундеркинд в команде проекта, уже опубликовал статьи о совместимости со специальной и общей теориями относительности, а также с квантовой механикой.

Скептик скажет: “Ну не может такой простой объект лежать в основе всего!” Эта простота обманчива. На иллюстрации вверху я показал применение одного из правил одним из возможных способов. Уже на первом шаге стереть можно как правое, так и левое ребро. Математика не умеет принимать решения или подбрасывать монетку. Процесс идет детерминированно в обе стороны, разветвляя Вселенную на два варианта, но не теряя связь между ними (в отличие от гипотезы мультивселенной), потому что ветвление иногда сходится обратно в общее состояние. И так происходит на каждом шаге вычислений.

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

Я не пытаюсь сказать, что какая-то ветвь графа совершенно случайно создала Землю и всю биосферу. Был процесс творения все более и более сложных «подпрограмм» (см. определение сознания в следующей главе), которые плодились, размножались и продвигали процесс. И да, одно из правил можеть быть таким: когда пусто, создай вершину с двумя закольцованными ребрами, чтобы запустить процесс. Или любое другое правило-семя.

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

О случайности и предсказуемости

Детерминизм определяется как “все имеет причину, и, следовательно, все, что произойдет, предсказуемо”. “Следовательно” здесь неверно. Если ничто не может просчитать события быстрее, чем они разворачиваются, то они поистине непредсказуемы.

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

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

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

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

О сознании и свободе воли

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

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

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

Картезианский театр

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

Как конкретно это работает с нашими Алисой и Бобом, которые обладают абсолютной свободой воли, но все же, как кажется, поворачивают фильтры коррелировано? Здесь присутствуют следующие материальные объекты: тело Алисы и ее измерительное оборудование, тело Боба и его измерительное оборудование, лазер, чтобы выстрелить фотоном, и кристалл, чтобы расщепить его. Все они запутаны изначально с момента Большого Взрыва, как шестеренки в часовом механизме, в смысле вероятностей.

Боб и Алисa формируют решения в своих умах независимо. Их материальные тела исполняют эти решения, двигая руки и поворачивая фильтры. Но при этом проворачивается весь “часовой механизм” материи в пространстве вероятностей, включая фотоны при их испусканиях и измерениях. Как результат, Алиса и Боб наблюдают коллапс волновой функции фотонов именно так, как его предсказывает гипотеза без скрытых параметров.

Это Теория Всего?

Нет. Несмотря на правдоподобность теории Вольфрама, я не думаю, что она сможет стать Теорией Всего, или хотя бы теорией Квантовой Гравитации в научном смысле. Для этого ей необходимо научиться делать точные предсказания реальности, но принцип вычислительной несводимости делает это практически невозможным. Этим теория Вольфрама и отличается от остальной науки: математика здесь не описывает реальность, а является реальностью!

Чтобы создать хотя бы один электрон, команде проекта необходимо угадать действительные правила нашего сегмента Рулиада и провести симуляцию первых моментов Большого Взрыва. Для этого нужен очень большой компьютер, потому что электрон в 10²⁰ раз больше длины Планка (разрешение дискретного пространства в физике Вольфрама). Они изучают свойства этой теории, чтобы придумать «грубые» методы предсказания реальности, которые могут принести плоды.

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

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

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

Это Бог?

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

О смысле жизни

Гиперграф не имеет памяти и не знает будущего. Он меняется каждый шаг вычислений и существует только в одном моменте: сейчас. Единственная по‑настоящему случайная вещь в этом процессе, называемом жизнью, это то, как мы появляемся на свет. Из ничего ‑ новое сознание. Если это случилось один раз, это произойдет снова. Хороший вопрос звучит так: какой мир мы оставим для будущих самих себя?

В заключение, главный вопрос. На каком «компьютере» исполняется реальный код нашей Вселенной? Это такой же парадокс, что и с черепахами, которые держали старую Землю ‑ их было бесконечно много на всем пути вниз. Я, как и Вольфрам, уверен, что для чистой математической абстракции не нужно ничего.


ссылка на оригинал статьи https://habr.com/ru/articles/738004/

Этот китайчик просто любит жизнь: реставрируем игровую консоль с помойки за 250 рублей

image

Ни для кого не секрет, что иногда на онлайн-барахолках можно встретить продавцов, которые продают различные устройства с помойки. И ведь иногда прямо слёзы наворачиваются от того, какие крутые штуки люди умудряются выкидывать. Зачастую подобные девайсы требуют серьёзного обслуживания, но и стоят копейки: недавно я увидел симпатичную игровую консоль PGP Aio Droid Letto, которая привлекла моё внимание своими миниатюрными размерами и симпатичным дизайном, а ещё тем, что была в ужаснейшем состоянии и стоила всего 250 рублей. А поскольку я обожаю копаться в различных девайсах и давать им вторую жизнь, я сразу же её заказал! Сегодня мы с вами: приведем корпус устройства в подарок, подберем дисплей от GPS-навигатора, найдём прошивку на безымянное устройство и перепрошьём с помощью замыкания ножек NAND, а также посмотрим, годится ли на что-то консоль по цене кофе в столице!

Покупка

Мои давние читатели знают, что я просто обожаю различные старые китайские консоли. Денди, сеги, портативные устройства: уже как минимум с 10’ок игровых консолей я отремонтировал и написал о них статьи. Как уже было упомянуто выше, нашим сегодняшним героем станет некая PGP Aio Droid Letto 2012 года выпуска — ODM устройство, на которое налепили шилдик PGP. В своё время, подобные консоли были довольно популярны (в первую очередь — из-за своей цены) и как минимум несколько китайских заводов разрабатывали и продавали их локальным брендам под реализацию. Средняя цена была 2.000-6.000 рублей, что было весьма немного.

image

Листал я себе онлайн-барахолку в поисках игровых консолей и увидел Letto за преусловный прайс 250 рублей. Как уже говорил в интро — меня привлек приятный дизайн и компактность: я любитель поиграть в дороге, но даже PS Vita/PSP может оказаться великоватой для кармана летних шорт. А тут идеальный вариант! Ну и конечно же я видел плачевное состояние консоли и мне хотелось в ней покопаться и попытаться довести до ума.

image

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

Хардварный ремонт

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

image

image

Поскольку устройство действительно могло лежать в грязном месте, я решил сначала полностью отмыть корпус в два этапа: мылом и спиртом. Причём спиртом мы не только дезинфицируем устройство, но и оттираем неприятное и липкое софт-тач покрытие, которое разлагается от времени.

image

image

После мытья и сушки корпуса, я решил заодно и заменить дисплей. Родной оказался с царапинами и неприятной трещиной на тачскрине. И вот тут есть маленький лайфхак: кто сказал, что дисплеи для таких устройств нужно покупать по названию модели втридорога? Секрет вот в чём: в небольшие консоли, китайцы обычно ставили стандартные матрицы с разрешением 480×232 и интерфейсом TTL RGB от… автомобильных навигаторов и фоторамок! Почти все дисплеи с этим интерфейсом унифицированы и имеют одинаковый шлейф (40 пин) и распиновку, а поскольку тачскрин у таких модулей резистивный (резистивный тач требует всего 4 сигнальных линии), то он сразу же включен в общий шлейф дисплея, делая дисплеи навигаторов и китайских консолей взаимозаменяемыми! Вот вам и идея, куда можно применить старый нерабочий авто-навигатор 🙂

image

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

image

После осмотра платы, на фронтальной стороне можно увидеть сгнивший SMD-элемент. Скорее всего, это ключ и я изначально предположил, что он отвечает за питание камеры (т.к находился близкой к ней). К сожалению, после того, как я счистил коррозию, оказалось что один пятачок и ножка ключа сгнили 🙁 И чуть позже это стало серьёзной проблемой.

image

Не забываем почистить аналоговой стик от грязи и пыли. Подойдет спирт или контакт-клинер.

image

Программный ремонт

Поскольку консоль висела на заставке, нам предстояло найти прошивку и прошить устройство. Тут нам очень помогает Wayback Machine: ищем оф. сайт устройства и пытаемся найти кликабельные ссылки на прошивку. В моём случае, ссылка была на яндекс диск и файл был на месте!

image

Однако в архиве нет никакой инструкции: лишь софт для прошивки и сама прошивка. У меня был опыт с GP33003, поэтому я быстро разобрался: нам придется замкнуть пару ножек на чипе NAND. Для этого гуглим модель NAND и ищем даташит. В даташите смотрим на распиновку и ищем пины I/O — это сигнальные линии, в моём случае они находятся снизу, 5 и 6. Суть манипуляций проста: при загрузке, первичный загрузчик (Boot ROM) пытается загрузить вторичный загрузчик из встроенной памяти. Если зажата одна из сервисных кнопок (а таковых у этой консоли нет) или вторичный загрузчик найти не удалось (если плата только-только с конвейера), то он переводит консоль в режим прошивки с помощью фирменного софта. Замыкая сигнальные линии, отвечающие за ввод-вывод (и таким образом, выдавая билиберду вместо нормальных данных), мы обманываем первичный загрузчик и как-бы делаем вид, что в памяти нет системы и плата только-только с конвейера.

image

По итогу девайс определился и пошёл прошиваться фирменной программой без каких либо проблем. 5 минут и вуаля! Устройство уже загрузилось и предложило откалибровать тачскрин!

image

image

Собираем девайс и всё проверяем: кнопки работают, стик работает, всё замечательно! Или не совсем… а звук то где? Я полез менять динамик, предположив, что возможно он не перенес солёной ванны но всё оказалось куда печальнее. Ведь тот самый сгнивший ключ как раз относился к аудиотракту… Звука нет совсем, даже на подключение наушников устройство не реагирует… Вот обидно то, а? И Bluetooth у нас тоже нет. И ведь судя по всему, отлетел пятачок IN, а не GND 🙁

image

Но это не помешает нам попробовать потестировать консольку в эмуляторах и проверить её в играх. GP33003 — вполне бодрый чип, который тянет большинство эмуляторов вплоть до PS1. Попробуем поиграть в игры для NES, SMD, SNES и PS1. Справится ли она с ними?

Играем

Сначала я решил погонять парочку предустановленных игр: Fruit Ninja и Trial X. И обе игрушки шли отлично: за Trail X можно даже повспоминать про давно ушедшие годы Gravity Defied. Игра идёт стабильно, без каких-либо лагов. В целом, спокойно можно ставить нативные игры до ~2013-2014 года — они здесь пойдут хорошо.

image

Эмулятор PS1 в лице EPSXE без проблем дал настроить хардварные кнопки и попробовать поиграть в Time Crisis. FPS хороший, а как я понимаю, это далеко не самая легкая игра для PS1. Никаких лагов нет, но плавность звука, по понятным причинам, проверить нельзя. Автопропуск кадров делает своё дело (при этом рывков нет).

image

А вот эмуляторы классики, такие, как PS1 или SMD работают без нареканий. Ну если уж тяжелющий эмуль PS1 потянул, то с чего бы ему не тянуть 8 и 16 битки? Проблем никаких нет, все кнопки можно забиндить без танцев с бубном (виртуальный джойстик можно убрать).

image

image

И конечно же, консоль можно использовать в качестве простенького планшета. В ВК ленту полистать, или видос посмотреть (тут был бы HDMI кстати) — короче доступны почти все фишки планшетов 2012-2013 годов. Вполне неплохо, да?

Заключение

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

А вам как этот гаджет? Жду ваше мнение в комментариях! Кстати, если вдруг у вас есть подобные китайские консольки и вы не хотите с ними замарачиваться/не можете сами оживить — я их последнее время начал коллекционировать и оживлять из принципа. Авось кому-то данная в статье информация окажется полезной и вы сможете оживить свой ништяк?

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Понравился гаджет?
50% Да, неплохой девайс. Особенно, если найти за копейки. 3
33.33% Абсолютно не понравился. Даже если бы он был новым и в хорошем состоянии. 2
16.67% Всю малину портит отсутствие звука. Press F! 1
Проголосовали 6 пользователей. Воздержались 2 пользователя.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Сейчас я хочу выделить игровые консоли и их моддинг/ремонт в отдельную рубрику. Интересно ли вам такое?
100% Да, всегда интересно посмотреть про диковинку — будь это редкий Atari Jaguar или какой-то подвальный китаец. 5
0% Нет 0
Проголосовали 5 пользователей. Воздержался 1 пользователь.

ссылка на оригинал статьи https://habr.com/ru/articles/737996/

Ностальгические игры: GTA Vice City (часть 1)

image

Знакома ли вам ретроэстетика, цветастые гавайские рубахи и броские неоновые вывески? Если вы ответите «нет», то с уверенностью могу сказать, что вы не только не жили в Америке 80-х, но и не застали игровую индустрию начала нулевых. Ведь именно в тот период вышла Grand Theft Auto III, которая в 2001 году произвела необычайный фурор в мире интерактивных развлечений. Спустя год, желая закрепить успех, компания Rockstar Games выпустила, на мой взгляд, лучший продукт из трилогии GTA шестого поколения приставок — Vice City. Игра брала не только своими нововведениями в сравнении с третьей частью, но и шикарной атмосферой, которую создавали аутентичная музыка прямиком из 80-х, автомобили, одежда, причёски и, конечно же, море неона! Она удачно впитала в себя все самые значимые культурные веяния того времени, перенимая множество идей у фильмов и сериалов золотой эпохи Голливуда. Именно поэтому, играя в GTA Vice City, ощущаешь себя участником не просто игры, но фильма, в котором ты на главных ролях!

Моё знакомство с серией началось ещё с GTA II на PS1. Хоть в ней и был сюжет, в то время я не сильно задумывался о нём, просто катаясь по городу и устраивая беспредел на улицах Anywhere City. Лишь только после выхода третьей части я по-настоящему смог погрузиться в мир игры, проходя задания и изучая её мир. Но скажу честно, ей не удалось стать моей любимой, в отличие от следующей части серии, вышедшей через год. Vice city с первых минут очаровала и завлекла меня. Она была яркой, не похожей на другие игры того времени, с обширной свободой и морем возможностей. Прошло много лет, и я успел забыть, где достал диск с игрой, но отчётливо помню что переписал его на болванку, благодаря чему смог наслаждаться игрой в любое время, не завися от друзей, владеющих оригинальным диском.

Вы спросите, чем она так запомнилась мне? Да, игра не лишена недостатков, но, оглядываясь назад, я вспомню потрясающую атмосферу и саундтрек, который во многом сформировал мой музыкальный вкус. Перед написанием статьи я установил Vice City и заново погрузился в геймплей. Каково было моё удивление, когда я слышал ту или иную любимую песню: «Блин, совсем забыл, что она была в этой игре!». Восторг! Кто знает, быть может, именно благодаря GTA, я, сам того не ведая, полюбил Quiet Riot, Mötley Crüe или Ozzy Osbourne.

▍ Кто

Создателем серии GTA является компания DMA Design, которая также известна своей игрой Lemmings. В своё время Лемминги были ужасно популярны и пользовались огромным спросом у геймеров, оставив значительный след в истории геймдева. Но в 1998 году издательство, контролирующее DMA Design, было выкуплено Take-Two Interactive, которая под конец того же года основала дочернюю компанию Rockstar Games.

image

Последней игрой, вышедшей из-под пера DMA Design в 2001 году, была GTA III для PS2. Перевод серии в 3D сопровождался большими сомнениями и спорами внутри компании, однако, как мы видим по истечении лет, было принято абсолютно верное решение. В качестве движка был выбран не столь популярный на тот момент RenderWare (позже на нём выйдут игры серии Burnout, Tony Hawk’s Pro Skater, Mortal Kombat, Battlefield и многие другие проекты). GTA III ждал необычайный успех, этот проект стал на долгие годы ориентиром того, как делать игры такого жанра! Она фактически обеспечила огромные продажи приставке Sony Playstation 2, являясь временным эксклюзивом. Выпуск GTA III позволил Rockstar Games осознать всю ценность компании-разработчика, поэтому было принято решение приобрести студию DMA Design, переименовав в Rockstar North. Порты на другие платформы вроде PC и Xbox вышли уже из-под крыла новой компании.

image

Сразу же после релиза GTA III стало понятно, насколько прорывной получилась игра, а отличные продажи лишь укрепили мнение руководства о том, что железо нужно ковать, пока горячо! Было решено выпустить дополнение с новым оружием, персонажами, миссиями, автомобилями и т. д.! Однако идей было настолько много, что очень быстро пришло осознание — хватит и на полноценную игру! Сразу были выделены деньги на создание продолжения и работа закипела.

Интересный факт: а вы знали, что вместо Vice City была идея создать мультиплеерный режим для GTA 3, но компания испугалась, что не сможет реализовать его на высоком уровне, и отказалась от этой затеи?

До момента разработки в компании велись активные обсуждения о новом месте действия. Рассматривались, к примеру, варианты о переносе серии в Лондон подобно дополнениям к первой части игры. Но чего точно никто не желал, так это возвращаться на улицы Либерти Сити, на которых проходили события третьей части. Так как братья Хаузеры (одни из создателей Rockstar), будучи британцами, являлись большими фанатами эстетики Флориды 80-х, а в частности фильмов и сериалов той эпохи вроде «Полиция Майами: Отдел нравов» (я, кстати, посмотрел пару серий, действительно годный сериал), «Лицо со шрамом» или «Путь Карлито», они настояли на том, чтобы события новой игры происходили в декорациях тех мест и эпохи.

Многие внимательные игроки могли заметить схожую атмосферу, а также огромное количество отсылок и заимствований из проектов того времени. Во многом так Rockstar отдавали дань уважения и выражали свою любовь. Что уж говорить, во время разработки Vice City Сэм Хаузер купил на eBay пять сезонов сериала «Полиция Майями» и каждый день во время обеда пересматривал их, черпая вдохновение для дальнейшей разработки!

Но ограничиваться одними проектами Голливуда они не стали. Было принято решение отправиться в небольшую командировку в Майями для того, чтобы сфотографировать местные красоты и попытаться проникнуться духом этого города. По итогу всё это свелось лишь к попойкам в местных барах, но фотографий они тоже сделали довольно много)) Отель на Оушен-Драйв, в котором остановилась команда во время поездки, настолько впечатлил их, что одной из самых первых созданных локаций была как раз эта набережная!

image

Арт-директор игры Аарон Гарбут вспоминал, что самым сложным было перенести дух «того самого, старого Майями» с его неоновыми вывесками, яркой одеждой и атмосферой богатства и гламура! Ведь к моменту приезда сотрудников Rockstar North город потерял былой лоск и шарм, став достаточно обычным современным городом.

Даже с учётом того, что новая игра была на старом, пусть и слегка модифицированном движке, а действительно прорывных геймплейных механик вводить не планировалось, сроки разработки были весьма сжатые — около девяти месяцев. И если GTA III вышла в свет 22 октября 2001 года, то её продолжение Vice City почти ровно через год — 29 октября 2002 года. По воспоминаниям многих сотрудников, производство было очень нервное и стрессовое, но команда изо всех сил стремилась успеть к намеченной дате и выпустить качественный продукт. Приведу слова Сэма Хаузера: «Как мне кажется, пускай лучше геймеры вообще не купят игру, чем купят и получат одно лишь разочарование!»

Что ж, в итоге получилась одна из самых продаваемых игр на PS2 (четвёртая в рейтинге).

image

Так как движок этой части серии остался таким же, что и в GTA III (с небольшими доработками), он был уже хорошо знаком разработчикам, поэтому процесс создания шёл довольно быстро. Глобальных изменений в визуале почти не было, так как за прошедший год технологии не сильно шагнули вперёд. Была лишь необходимость сделать картинку чуть приятнее, с чем команда Rockstar хорошо справилась: меньше мыла, больше спецэффектов (вроде бликов и отражений), появился более детализированный дым и дождь. Да и сама игра в целом тормозила меньше, несмотря на повышенные требования к железу. А дело в том, что в Vice City использовалась прогрессивная загрузка: новые объекты и текстуры загружаются по мере приближения к ним, чтобы обеспечить более плавный геймплей и улучшенную производительность (GTA III прогружала все объекты около игрока, даже если их не было видно).

▍ Сюжет

Главным героем игры является Томми Версетти. Отбыв 15 лет тюремного заключения и вернувшись в свою родную мафиозную семью из Либерти Сити, он получает задание лично от босса Сонни Форелли. Томми должен отправиться в Vice City и совершить сделку по покупке большой партии наркотиков. Вместе с Кеном Розенбергом наш герой отправляется в доки, где должен произойти обмен. Но это хорошо спланированное дело оборачивается засадой! Несколько вооружённых человек открывают огонь по участниками сделки, убив почти всех. Томми чудом выживает и, спасаясь от пуль, ретируется на машине, за рулём которой оставался не участвующий в процессе самой сделки Кен. Да, они смогли остаться в живых в этой заварушке, но наркотики и деньги всё равно утеряны, и Сонни требует компенсации за этот провал. Теперь главным героем, а вместе с ним и вами, движет не только желание заработать нужную сумму, но и найти тех, кто подставил его и пытался убить.

image

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

История игры повторяет многие сюжетные ходы из фильмов 80-х про бандитов. Будучи полной не только интересными сценарными ходами, но и неожиданными сюрпризами, она всё равно держит игрока заинтригованным до самого конца. Не знаю, как для вас, но потеря одного из главных героев была для меня так же болезненна, как и смерть Мэнни в «Лицо со шрамом». Как я уже говорил, авторы и не скрывали, что наибольшее вдохновение черпали как раз в этом фильме, оттуда игра взяла очень многие локации и некоторые пасхальные яйца.

image

▍ Геймплей

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

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

Несмотря на то, что карта GTA Vice City немного больше, чем карта GTA III ( 14.7² км против 9² км), разработчики хотели развиваться не вширь, а вглубь. Именно поэтому они взялись за полировку всех игровых элементов, делающих мир более глубоким, и наполнили его различными мелочами, выводя и без того продвинутую на то время игру на новый уровень.

Пожалуй, начну с транспорта. Если в предыдущей части серии было около 60 единиц техники, то в VC это число фактически удвоилось. Но это не было банальным количественным расширением — Rockstar North добавило множество новых типов, которых в прошлых частях серии попросту не было — шесть видов мотоциклов и столько же вертолётов, а также нормальный, полноценный самолёт (а не огрызок с обрезанными крыльями, что был в GTA III).

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

image

Говоря об авто, нельзя не отметить работу, проделанную над системой повреждений. Если в третьей части почти любая часть автомобиля гнулась, мялась и отваливалась, то в Vice City в дополнение к этому теперь можно прострелить колёса (влияя на управление машиной), а лобовые стёкла отлетают при сильном ДТП или очереди из автомата по нему (кстати, водителя теперь возможно убить выстрелом через ветровое стекло, чего в GTA III не было).

Помимо транспорта, Rockstar North доработали такой важнейший элемент серии, как полицию. При первом уровне розыска за вами начнут гнаться как пешие, так и полицейские на авто, но делать это будут довольно вяло, от них будет просто оторваться. Это единственный уровень розыска, который пропадает со временем. На двух «звёздах» вас начнут преследовать без каких-либо поблажек до тех пор, пока вы не погибнете или не будете арестованы. Кстати, розыск такого уровня и ниже можно скинуть, переодевшись в другую одежду. Начиная с третьего, за вами отправят в погоню вертолёт, а наземная полиция начнёт перекрывать улицы и выкидывать на дорогу шипы, протыкающие ваши шины. Также за вами начнут гоняться детективы под прикрытием, что является отсылкой к сериалу «Полиция Майями». Шипы на дорогах и детективы — нововведения Vice City. Если вы пошли во все тяжкие, и уровень розыска дошёл до четырёх «звёзд», то за вами отправят не только всех полицейских города, но ещё и спецназ, который будет преследовать вас на фургонах и вертолётах (спускаясь по тросам для ареста). На пятом — в городе объявят комендантский час, на улицах перестанут появляться другие машины, а за вами в погоню отправят FBI. Ну и на последнем, шестом уровне, за вами отправят армию. Военные будут преследовать вас на грузовиках, полных солдат, а также на танках!

Когда мы собирались у кого-то из друзей во времена детства, то не занимались прохождением игры, а устраивали состязание «Кто дольше продержится против полиции»! Это был самый весёлый, а главное эффективный способ поиграть абсолютно всем, без долгого ожидания своей очереди, получая идентичный игровой опыт. А если в дело вступали чит-коды…

Чтобы сделать перестрелки ещё интереснее, можно было вводить разнообразные читы, устраивая кромешный ад на улицах города! Коды на оружие, здоровье и броню, мгновенный уход от преследования полиции, возможность превращать автомобили в амфибии. Кто-то из вас ещё помнит ASPIRINE, NUTTERTOOLS, PROFESSIONALTOOLS, BIGBANG? Эх, были времена!

image

Фанаты третьей части серии, впервые сыгравшие в Vice City, отметили для себя появление не только большого города, но и множества закрытых помещений, таких как особняк Диаза, квартира с бензопилой в ванной и клуб Малибу (являющиеся очередной отсылкой к Лицу со шрамом), стриптиз-клуб, отель, торговый центр и т. д.!

Это интересно: изначально планировалось добавить и метрополитен с несколькими станциями, но, возможно, из-за коротких сроков разработки, от него пришлось отказаться.

Кроме того, появилась хотя бы минимальная кастомизация главного героя, позволяющая переодевать его в заранее созданные разработчиками костюмы. Rockstar пошла немного дальше и привязала эти костюмы к определённым заданиям, которые вы не сможете окончить, не переодевшись.

В этой части серии появилось такси, которое в случае провала миссии доставляло вас к маркеру старта задания. Безусловно, это очень удобное нововведение…

Хотел бы спросить у вас, я один не знал о нём, самостоятельно добираясь к рестарту?!

Ну и каким будет рассказ про геймплей игры без описания оружия? Если в GTA 3, не считая кулаков, было 11 видов разнообразного оружия, то, как и в случае с транспортом, Vice City существенно увеличило доступный арсенал. Одного лишь холодного оружия 11 вариантов, а кроме него ещё 20 экземпляров других видов. Выбор вооружения получился довольно впечатляющий! Кроме того, вам доступна целая коллекция из пистолетов, штурмовых винтовок, гранат, тяжёлого оружия вроде огнемётов и РПГ, а также дробовиков! Каждое обладает своими характеристиками, предлагая большую свободу выбора.

image

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

Рассказывать про глубину мира Vice City, а также про возможности, введённые в игру, можно ещё очень долго, ведь было добавлено огромное число разнообразных активностей, позволяющих скрасить пребывание в городе. Это тиры, гонки на мотоциклах и гоночных автомобилях, доставка «мороженого» (кокаина) и ставшие стандартными для серии миссии за пожарного, полицейского, фельдшера скорой помощи, водителя такси, доставщика пиццы. Вместо продолжения я просто посоветую вам заново установить игру и вспомнить, как же здорово тогда нам было. А мне всегда интересно послушать ваши истории из прошлого, делитесь в комментариях!

Ну а в следующей статье я расскажу вам про шикарный саундтрек этой игры, разные моды и переиздания!

P. S. Поставив современное переиздание Grand Theft Auto: The Definitive Edition, вы можете столкнуться с тем, что многие музыкальные треки с радио игры удалены. У себя в Telegram-канале я выложил небольшой мод, который возвращает их, делая погружение в ностальгию более полным.

Я играю в игры больше 25 лет и запомнил их именно такими: душевными и затягивающими, с увлекательными механиками и интерактивностью, без внутриигровой валюты и попыток быть чем угодно, но не игрой. В моём Telegram-канале тебя ждут не только обзоры на игры, но и актуальные новости, а также рассуждения о геймдеве. Подписывайся, будет интересно!​

Telegram-канал с розыгрышами призов, новостями IT и постами о ретроиграх 🕹️


ссылка на оригинал статьи https://habr.com/ru/companies/ruvds/articles/737166/

Технический геймдизайн. Конфиги, баланс и контент на примере PC стратегии

Константин Сахнов, геймдизайнер

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

Я очень рад, что где-то, в данном случае на хабре, сохранилась аудитория, готовая читать лонгриды о разработке игр. Сегодняшний материал для вас.

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

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

Ключевые механики: 

  • Строительство зданий на планете и её терраформирование;

  • Развитие древа талантов генератора пустоты.

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

1. Утверждение формата данных

Первая задача — договориться с программистами, в каком формате будем передавать в движок информацию о контенте.

Для её решения существует множество вариантов. Если бы контент, который геймдизайнер хочет видеть в игре, был в единичном экземпляре, мы могли бы воспользоваться механизмом ScriptableObject или прописать данные в скриптах непосредственно в Unity / UE. Это удобно, когда точно известно, что в игре будет ровно 3 постройки, или мы имеем дело с уникальными объектами на сцене.

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

Для решения данной задачи удобно использовать скриптовые языки разметки данных JSON или XML. Реже встречается реализация конфигов на стареньком Lua или более совершенном YAML.

Рис 1. Фрагмент страницы Confluence со списком параметров JSON-скрипта, описывающего сценарии

Рис 1. Фрагмент страницы Confluence со списком параметров JSON-скрипта, описывающего сценарии

Задача геймдизайнера в данном случае — сформировать полный список параметров каждого типа объектов с указанием типа данных и возможных лимитов.

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

Рис. 2. Скриншот описания структуры данных JSON-конфига стоимости улучшения построек в Unity

Рис. 2. Скриншот описания структуры данных JSON-конфига стоимости улучшения построек в Unity

2. Связи и структура данных

Никакие объекты в больших играх обычно не являются изолированными — они как-то взаимосвязаны с данными другими. Чтобы проще и нагляднее увидеть все эти связи и сформировать структуру данных игры, удобно использовать терминологию баз данных (например, SQL) и рассматривать список тех же построек как отдельную таблицу. Тогда важно вспомнить такие понятия как:

  • Внешние ключи — идентификаторы (обычно в виде натуральных чисел), по которым объекты из одних таблиц могут получать информацию из других;

  • Типы связей — логика использования внутренних и внешних ключей. Обычно выделяют:

    • Один к одному: идентификатор объекта, к примеру, постройки, в одной таблице полностью соответствует такому же идентификатору в другой;

    • Один ко многим: одной постройке соответствует много уровней апгрейда, на каждом из которых она может иметь разные свойства;

    • Многие ко многим: разные уровни постройки могут применять разные эффекты. К примеру, здание “Четырёхмерный завод” на 5-м уровне открывает дополнительный слот под строительство в зоне, где он расположен. И “Небесные филатуры” также накладывают эффект, добавляющий в зону новый слот для строительства. Прим.: если есть техническая возможность, старайтесь создавать эффекты и другие поля с уникальными id, отдавая предпочтение связи один ко многим.

  • Нормальная форма БД — это набор правил, предполагающий недопущение избыточности данных. Их существует несколько, информации об этом довольно много в сети.

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

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

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

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

Рис. 3. Фрагмент страницы Confluence с описанием развития зданий

Рис. 3. Фрагмент страницы Confluence с описанием развития зданий

Как видно на скриншоте, здание “Планетарный потрошитель” (да, я фанат Dead Space!) требует металл для строительства. Будучи построенным, оно начинает производить 1 камень в ход. У игрока есть возможность дважды улучшить его. При улучшении до уровня 2 игрок выбирает один из двух вариантов: увеличить добычу камня ещё на 1 или сразу на 2. Второй вариант обойдётся игроку дороже на 100% + 30% (коэффициент инфляции апгрейдов). При улучшении здания до 3-го уровня постройка не только производит камень, но и получает особый эффект на выбор: получить дополнительно 1 металла или камня в ход с 50% вероятностью.

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

Рис. 4. Взаимосвязи между списками контента (таблицами) в конфигах построек

Рис. 4. Взаимосвязи между списками контента (таблицами) в конфигах построек

Главная таблица текущей модели — это Buildings. В ней описаны все постройки, доступные в игре. Каждой из них присвоен уникальный численный номер — id (натуральное число). По этому номеру мы будем идентифицировать постройку во всех таблицах. Допустим, нам нужно получить текстовое описание или ассет (например 3D-модельку) конкретного здания. В этом случае программный код пробегается по таблице Buildings и находит в ней вхождение с заданным уникальным id. Далее он забирает нужную информацию из этого вхождения.

Рис. 5. Скриншот Google Таблиц с фрагментом контента таблицы Buildings

Рис. 5. Скриншот Google Таблиц с фрагментом контента таблицы Buildings

6Помимо таблицы Buildings, есть таблица Building_Levels. В ней прописан список всех уровней всех зданий. В частности, для здания “Планетарный потрошитель” будет 5 вхождений: одно для 1-го уровня постройки и по 2 для 2-го и 3-го уровня. У всех этих вхождений будет разный id, но одинаковый building_id. Он является внешним ключём, по которому можно однозначно найти постройку из списка Buildings. Такая структура данных позволяет продукту иметь разное число уровней с разными бонусами для каждой постройки. Геймдизайнеры смогут спроектировать постройки источники, которые будут просто добывать ресурсы и улучшаться по 10 раз. Или сложные космические порты, которые можно улучшить всего пару раз, но 5-ю разными способами. Это демонстрация работы связи один ко многим.

Рис. 6. Скриншот Google Таблиц с фрагментом контента таблицы Building_Levels

Рис. 6. Скриншот Google Таблиц с фрагментом контента таблицы Building_Levels

Как мы уже говорили, улучшение здания до нового уровня и выбор одно из вариантов таких улучшений могут иметь разную стоимость. Логично, что расширение производства на +3 должно стоить дороже, чем расширение на +1. Иначе мы допустим ошибку, называемую дисбалансом “бесполезности или гиперполезности” по Гарфилду: зачем покупать за дорого то, что хуже, чем более дешёвый аналог. Чтобы спроектировать разную стоимость улучшения до каждого из вариантов уровней, удобно ввести дополнительную таблицу Building_Upgrade_Costs. Её структура похожа на таблицу уровней, только внешним ключом, на который ссылаются вхождения в эту таблицу, теперь являются не здания, а уже конкретные уровни. Для каждого такого уровня прописан список ресурсов, который необходимо отдать для апгрейда.

Рис. 7. Скриншот Google Таблиц с фрагментом контента таблицы Building_Upgrade_Costs

Рис. 7. Скриншот Google Таблиц с фрагментом контента таблицы Building_Upgrade_Costs

Аналогично описываются таблицы Building_Effects и Building_Production, отвечающие за особые эффекты типа “С вероятностью 50% добывает 1 металл или 1 камень” и за количество производимых ресурсов соответственно. У внимательного читателя мог возникнуть вопрос, что за таблицы Cards и Cards_rares отмечены в структуре данных механики строительства. Дело в том, что в нашей игре игрок строит здания, разыгрывая карты перемещением их в нужный ему гекс.

3. Пайплайн генерации контента

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

  1. Разработка дизайн-документации на игровую механику (строительство и апгрейд зданий);

  2. Создание списка возможностей построек:

    1. Производство ресурсов. Например, +1 энергии / ход;

    2. Случайный дроп. Например, с вероятностью 75% приносит единицу случайного ресурса каждый ход;

    3. Модификаторы (коэффициенты) экономики. Например, +5% скорость роста населения;

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

  3. Создание списка контента (построек);

  4. Формирование структуры Excel / Google (или иной) таблицы, в которую будут записываться данные;

  5. Наполнение таблицы контентом, и его балансировка;

  6. Формирование и проверка данных в собственном формате проекта или в одном из общепринятых форматов передачи данных. Например, JSON, YAML, LUA…

  7. Перенос данных в движок и сборка билда;

  8. Тестирование валидности данных и игрового баланса в игре.

Давайте рассмотрим некоторые пункты подробнее.

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

Рис. 8. Скриншот фрагмента страницы Confluence с описанием планеты и строительства зданий

Рис. 8. Скриншот фрагмента страницы Confluence с описанием планеты и строительства зданий

96На скриншоте выше видно, что для описания одной только механики строительства мы подготовили сразу несколько документов, рассказывающих, что такое планета, зоны и гексы на ней, как разыгрываются карточки, с помощью которых создаются здания, как они размещаются на сцене и так далее. Удобнее разделить огромный документ на небольшие статьи, раскрывающие отдельные элементы механики, соединённые в единую структуру системой ссылок, пронизывающих всё повествование. Благо Confluence, Notion и аналогичные сервисы для ведения проектной и продуктовой документации отлично для этого приспособлены.

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

Создание списка возможностей построек (модификаторов и игровой экономики), как и сам список всех строений игры, я пропущу, так как этот блок специфичен конкретной игре и в вашем проекте всё может быть совершенно иначе. Главное, что здесь нужно знать, — это логика организации структуры контента, описанная в разделе “Связи и структура данных”.

4. Формирование и наполнение таблицы контента

Имея утверждённую продуктовую документацию и контент, геймдизайнер вплотную подходит к вопросу, как теперь описать всё это техническим языком. Из статьи вы знаете, что мы выбрали язык разметки JSON, как один из популярных способов описания контента. Кто-то отмечает его преимущества в привычном синтаксисе, пришедшем из JavaScript, кто-то в простоте освоения. Я же считаю главным плюсом подобных решений наличие готовых бесплатных модулей в ассет сторе для Unity и UE для сериализации данных из JSON / XML. Опыт моих студентов показывает, что научиться писать на JSON — вопрос нескольких дней практики. Это не то же самое, что изучить движок или язык программирования. А вот придумать собственный формат данных и написать для него парсер — отдельная задача для программистов. Более того, каждый новый геймдизайнер и программист на проекте должен будет изучить этот формат, в то время как JSON с той или иной вероятностью уже знает или легко выучит, чтобы в будущем применять и на других проектах.

Рис. 9. Скриншот таблицы ресурсов в Google Таблицах

Рис. 9. Скриншот таблицы ресурсов в Google Таблицах

Чтобы начать работать с постройками, необходимо предварительно описать всё, что с ними связано: ресурсы, карточки, экономику… Пример таблицы со списком ресурсов можно увидеть на скриншоте выше.

Некоторые студии и отдельные разработчики задаются вопросом: зачем тратить время на создание подобных табличек, если можно вручную написать конфигурационные файлы в редакторе Unity / Visual Studio или вообще внести все данные через Scriptable Object Ответ на этот вопрос очень простой.

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

Автоматизация позволяет:

  1. Значительно ускорить описание текущего контента и добавление обновлений  игры;

  2. Реализовать автоматические проверки целостности и валидности данных, чтобы избежать попадание поломанной информации в движок или код игры;

  3. Автоматизировать расчёт баланса;

  4. Автоматически генерировать код, чтобы избежать опечаток, вызванных человеческим фактором.

Рис. 10. Скриншот таблицы построек в Google Таблицах

Рис. 10. Скриншот таблицы построек в Google Таблицах

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

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

Рис. 11. Скриншот файла локализации

Рис. 11. Скриншот файла локализации

На его примере удобно рассмотреть все преимущества автоматизации, обозначенные нами выше:

  1. Автоматические проверки Google Таблицы защищают геймдизайнера от неверного ввода контента. Ну или по крайней мере предупреждают, если введены некорректные данные. Так, например, при выборе группы, к которой относится локализуемый текст, в поле подгруппа автоматически подгружаются варианты, подходящие для данной группы. К примеру, если мы выбрали группу “Планета”, то невозможно будет указать подгруппу ключей, не относящихся к планете. То же самое во всех других таблицах: указывая диапазон чисел, которые может принять значение ресурса в таблице ресурсов (min_value, max_value) можно ввести только рациональное число от минус maxint, до maxint. Ввод иного текста вызовет ошибку, предупреждая геймдизайнера, что вводимые данные могут быть только числом. Как итог, программисты получат от геймдизайнеров гарантированно проверенные и валидные конфиги.

  1. Подсветка ячеек помогает понять, какие данные ещё не заполнены. К примеру, на скриншоте с файлом локализации мы видим, что во второй строке введена заготовка для очередного ключа локализации. Мы выбрали группу “Планета”, подгруппу “Здание”, но пока ещё не описали, какой именно текст будет записан в данном ключе. Поэтому файлик подсвечивает поле “Item” красным. В одной из строчек ниже текст в поле “Item” заполнен, но не введён перевод, поэтому подсвечено поле “ru”, стоящее после “key” (ключа локализации). Если язык оригинала в игре русский, то можно настроить таблицу так, чтобы она подсвечивала все поля на английском, испанском и других языках, для которых геймдизайнеры поменяли что-то в русской локализации. Так мы никогда не забудем отправить на повторный перевод текст, оригинал которого изменился.

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

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

Рис. 12. Скриншот таблицы стоимости апгрейда построек до заданного уровня

Рис. 12. Скриншот таблицы стоимости апгрейда построек до заданного уровня

На скриншоте выше видно, что часть параметров рассчитывается автоматически. К примеру, мы знаем, что постройка не имеет никаких эффектов, кроме простого производства ресурсов. Допустим, “Планетарный потрошитель” на 1-м уровне производит 1 камня за ход. Наша задача — рассчитать стоимость постройки этого здания. Геймдизайнеры решили, что на 1-м уровне оно будет строиться только из металла. Значит, нам нужно посчитать, сколько металла будет стоить здание, производящее 1 камень. Для этого нам нужно знать две вещи:

  • Как соотносятся между собой ценность металла и камня;

  • За сколько ходов должно окупиться здание.

Первый параметр задаётся коэффициентом “weight” в таблице ресурсов (см. рис. 9). Второй — константой, зафиксированной на отдельной странице. Зная всё это, таблица считает стоимость постройки в энергии (самом дешёвом ресурсе), а затем переводит её в заданный ресурс — металл. Таблица также учитывает массу других нюансов и коэффициентов. К примеру, инфляцию с повышением уровня постройки или числа построек в зоне.

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

5. Валидация и перенос данных в движок

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

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

Обратите внимание на любой скриншот из Google Таблиц с конфигами (рис. 5, 6, 7).

 Последняя колонка всегда содержит ячейку для JSON скрипта.

Рис. 13. Скриншот формулы генерации JSON скрипта

Рис. 13. Скриншот формулы генерации JSON скрипта
Рис. 14. Скриншот итогового JSON скрипта, сгенерированного формулой

Рис. 14. Скриншот итогового JSON скрипта, сгенерированного формулой

Каждая строка с данными в итоге заканчивается ячейкой со скриптом, содержащим записанную в строке информацию. Следующий шаг — проверить, что генерируемый формулой скрипт содержит рабочий код без ошибок. Для этого удобно использовать различные онлайн валидаторы. Их легко найти в поисковике по запросу “JSON online validator”.

Рис. 15. Скриншот JSON кода в онлайн парсере, проверяющем его на ошибки

Рис. 15. Скриншот JSON кода в онлайн парсере, проверяющем его на ошибки

Последним шагом после проверки данных на отсутствие ошибок является объединение скриптом из всех строк в одну ячейку, из которой удобно будет копировать финальный текст в редактор.

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

Итоговый алгоритм автоматизации работы с контентом можно кратко изобразить на схеме:

Рис. 16. Схема работы с контентом

Рис. 16. Схема работы с контентом

А вот так резуальтат этой работы выглядел в одном из ранних прототипов игры.

Рис. 17. Скриншот прототипа стратегии Тени Возмездия

Рис. 17. Скриншот прототипа стратегии Тени Возмездия

6. Вместо выводов

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

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


ссылка на оригинал статьи https://habr.com/ru/articles/737142/