Теперь поговорим о том, как устроена любая программа для компьютера, телефона или например умных часов, не важно, принцип один.
Возьмем например программу Telegram. Когда ты ее скачиваешь с сайта telegram.org или из “магазина” приложений в своем телефоне — на твое устройство сохраняется пассивная последовательность инструкций, которые написал программист. Примерно как список покупок. Пока ты не достанешь его в магазине и не начнешь читать — видимой пользы он не принесет.
И в компьютерах так же — стоит только запустить программу и этот простой список инструкций тут же попадает в память (оперативную, то есть ту, из которой операционная система и берет задания для всего компьютера) и начинает выполняться, причиняя пользу тебе. И вот тут из понятия “программа” мы переходим к понятию “процесса”. То есть давай еще раз:
- программа — просто набор инструкций, который лежит у тебя в компьютере
- процесс — это все та же программа, но которая по мановению нашего пальца загрузилась в оперативную память и начала выполняться, явив нам свой интерфейс для управления ей
Программа состоит из следующих элементов:
Как работает язык программирования(Компилятор)? Основы программирования.
- инструкция, самый базовый элемент (выведи текст на экран, сложи 2 + 2 и так далее)
- переменные / константы — ячейки памяти, хранящие какую-то информацию, в частности могут передаваться в функции или использоваться в инструкциях (name = “Петя”, pi = 3,1415926535)
- функции / процедуры — объединение инструкций под одним именем, чтобы их можно было вызвать именно в этом порядке из любого места программы (возвести в квадрат и умножить на 5 или перевести формат даты из европейского в американский)
Про типы данных и отличие переменных, констант, процедур и функций мы еще поговорим. Но следующее, о чем я расскажу сегодня — будет то, как понимать алгоритмы
Источник: dzen.ru
Руководство по стеку протоколов TCP/IP для начинающих
Разбираемся в основных понятиях и принципах работы современного стека.
Эта инструкция — часть курса «Как работают сетевые протоколы».
Смотреть весь курс
Cтек протоколов TCP/IP широко распространен. Он используется в качестве основы для глобальной сети интернет. Разбираемся в основных понятиях и принципах работы стека.
Основы TCP/IP
Стек протоколов TCP/IP (Transmission Control Protocol/Internet Protocol, протокол управления передачей/протокол интернета) — сетевая модель, описывающая процесс передачи цифровых данных. Она названа по двум главным протоколам, по этой модели построена глобальная сеть интернет. Сейчас это кажется невероятным, но в 1970-х информация не могла быть передана из одной сети в другую. Чтобы обеспечить такую возможность, был разработан стек интернет-протоколов, известный как TCP/IP.
Как работает программа? Как компилируется код? (устройство компьютерных программ) [2020]
Разработка сетевой модели осуществлялась при содействии Министерства обороны США, поэтому иногда модель TCP/IP называют DoD (Department of Defence) модель. Если вы знакомы с моделью OSI, то вам будет проще понять построение модели TCP/IP, потому что обе модели имеют деление на уровни, внутри которых действуют определенные протоколы и выполняются собственные функции. Мы разделили статью на смысловые части, чтобы было проще понять, как устроена модель TCP/IP:
Уровневая модель TCP/IP
Выше мы уже упоминали, что модель TCP/IP разделена на уровни, как и OSI, но отличие двух моделей в количестве уровней. Документами, определяющими сертификацию модели, являются RFC 1122 и RFC1123. Эти стандарты описывают четыре уровня абстракции модели TCP/IP: прикладной, транспортный, межсетевой и канальный. Существуют и другие версии описания модели, в том числе включающие иное количество уровней и их наименований. Однако в этой статье мы придерживаемся оригинальной версии и далее рассмотрим четыре уровня модели.
Канальный уровень (link layer)
Предназначение канального уровня — дать описание тому, как происходит обмен информацией на уровне сетевых устройств, определить, как информация будет передаваться от одного устройства к другому. Информация здесь кодируется, делится на пакеты и отправляется по нужному каналу, т.е. среде передачи.
Этот уровень также вычисляет максимальное расстояние, на которое пакеты возможно передать, частоту сигнала, задержку ответа и т.д. Все это — физические свойства среды передачи информации. На канальном уровне самым распространенным протоколом является Ethernet, который мы рассмотрим в конце статьи.
Межсетевой уровень (internet layer)
Глобальная сеть интернет состоит из множества локальных сетей, взаимодействующих между собой. Межсетевой уровень используется, чтобы описать обеспечение такого взаимодействия.
Межсетевое взаимодействие — это основной принцип построения интернета. Локальные сети по всему миру объединены в глобальную, а передачу данных между этими сетями осуществляют магистральные и пограничные маршрутизаторы.
Именно на межсетевом уровне функционирует протокол IP, позволивший объединить разные сети в глобальную. Как и протокол TCP, он дал название модели, рассматриваемой в статье.
Маска подсети и IP-адреса
Маска подсети помогает маршрутизатору понять, как и куда передавать пакет. Подсетью может являться любая сеть со своими протоколами. Маршрутизатор передает пакет напрямую, если получатель находится в той же подсети, что и отправитель. Если же подсети получателя и отправителя различаются, пакет передается на второй маршрутизатор, со второго на третий и далее по цепочке, пока не достигнет получателя.
Протокол IP (Internet Protocol) используется маршрутизатором, чтобы определить, к какой подсети принадлежит получатель. Свой уникальный IP-адрес есть у каждого сетевого устройства, при этом в глобальной сети не может существовать два устройства с одинаковым IP. Протокол имеет две действующие версии, первая из которых — IPv4 (IP version 4, версии 4) — была описана в 1981 году.
IPv4 предусматривает назначение каждому устройству 32-битного IP-адреса, что ограничивало максимально возможное число уникальных адресов 4 миллиардами (2^32). В более привычном для человека десятичном виде IPv4 выглядит как четыре блока (октета) чисел от 0 до 255, разделенных тремя точками. Первый октет IP-адреса означает класс сети, классов всего 5: A, B, C, D, E. При этом адреса сети D являются мультикастовыми, а сети E вообще не используются.
Рассмотрим, например, IPv4 адрес класса С 223.135.100.7. Первые три октета определяют класс и номер сети, а последний означает номер конечного устройства. Например, если необходимо отправить информацию с компьютера номер 7 с IPv4 адресом 223.135.100.7 на компьютер номер 10 в той же подсети, то адрес компьютера получателя будет следующий: 223.135.100.10.
В связи с быстрым ростом сети интернет остро вставала необходимость увеличения числа возможных IP-адресов. В 1995 году впервые был описан протокол IPv6 (IP version 6, версии 6), который использует 128-битные адреса и позволяет назначить уникальные адреса для 2^128 устройств.
IPv6 имеет вид восьми блоков по четыре шестнадцатеричных значения, а каждый блок разделяется двоеточием. IPv6 выглядит следующим образом:
2dab:ffff:0000:0000:01aa:00ff:dd72:2c4a.
Так как IPv6 адреса длинные, их разрешается сокращать по определенным правилам, которые также описываются RFC:
- Для написания адреса используются строчные буквы латинского алфавита: a, b, c, d, e, f.
- Ведущие нули допускается не указывать — например, в адресе выше :00ff: можно записать как :ff:.
- Группы нулей, идущие подряд, тоже допустимо сокращать и заменять на двойное двоеточие. На примере выше это выглядит так: 2dab:аааа::01aa:00ff:dd72:2c4a. Допускается делать не больше одного подобного сокращения в адресе IPv6 на наибольшей последовательности нулей. Если одинаково длинных последовательностей несколько — на самой левой из них.
IP предназначен для определения адресата и доставки ему информации. Он предоставляет услугу для вышестоящих уровней, но не гарантирует целостность доставляемой информации.
IP способен инкапсулировать другие протоколы, предоставлять место, куда они могут быть встроены. К таким протоколам, например, относятся ICMP (межсетевой протокол управляющих сообщений) и IGMP (межсетевой протокол группового управления). Информация о том, какой протокол инкапсулируется, отражается в заголовке IP-пакета. Так, ICMP будет обозначен числом 1, а IGMP будет обозначен числом 2.
ICMP
ICMP в основном используется устройствами в сети для доставки сообщений об ошибках и операционной информации, сообщающей об успехе или ошибке при связи с другим устройством. Например, именно с использованием ICMP осуществляется передача отчетов о недоступности устройств в сети. Кроме того, ICMP используется при диагностике сети — к примеру, в эксплуатации утилит ping или traceroute.
ICMP не передает какие-либо данные, что отличает его от протоколов, работающих на транспортном уровне — таких как TCP и UDP. ICMP, аналогично IP, работает на межсетевом уровне и фактически является неотъемлемой частью при реализации модели TCP/IP. Стоит отметить, что для разных версий IP используются и разные версии протокола ICMP.
Транспортный уровень (transport layer)
Постоянные резиденты транспортного уровня — протоколы TCP и UDP, они занимаются доставкой информации.
TCP (протокол управления передачей) — надежный, он обеспечивает передачу информации, проверяя дошла ли она, насколько полным является объем полученной информации и т.д. TCP дает возможность двум конечным устройствам производить обмен пакетами через предварительно установленное соединение. Он предоставляет услугу для приложений, повторно запрашивает потерянную информацию, устраняет дублирующие пакеты, регулируя загруженность сети. TCP гарантирует получение и сборку информации у адресата в правильном порядке.
UDP (протокол пользовательских датаграмм) — ненадежный, он занимается передачей автономных датаграмм. UDP не гарантирует, что всех датаграммы дойдут до получателя. Датаграммы уже содержат всю необходимую информацию, чтобы дойти до получателя, но они все равно могут быть потеряны или доставлены в порядке отличном от порядка при отправлении.
UDP обычно не используется, если требуется надежная передача информации. Использовать UDP имеет смысл там, где потеря части информации не будет критичной для приложения, например, в видеоиграх или потоковой передаче видео. UDP необходим, когда делать повторный запрос сложно или неоправданно по каким-то причинам.
Протоколы транспортного уровня не интерпретируют информацию, полученную с верхнего или нижних уровней, они служат только как канал передачи, но есть исключения. RSVP (Resource Reservation Protocol, протокол резервирования сетевых ресурсов) может использоваться, например, роутерами или сетевыми экранами в целях анализа трафика и принятия решений о его передаче или отклонении в зависимости от содержимого.
Прикладной уровень (application layer)
В модели TCP/IP отсутствуют дополнительные промежуточные уровни (представления и сеансовый) в отличие от OSI. Функции форматирования и представления данных делегированы библиотекам и программным интерфейсам приложений (API) — своего рода базам знаний, содержащим сведения о том, как приложения взаимодействуют между собой. Когда службы или приложения обращаются к библиотеке или API, те в ответ предоставляют набор действий, необходимых для выполнения задачи и полную инструкцию, каким образом эти действия нужно выполнять.
Протоколы прикладного уровня действуют для большинства приложений, они предоставляют услуги пользователю или обмениваются данными с «коллегами» с нижних уровней по уже установленным соединениям. Здесь для большинства приложений созданы свои протоколы. Например, браузеры используют HTTP для передачи гипертекста по сети, почтовые клиенты — SMTP для передачи почты, FTP-клиенты — протокол FTP для передачи файлов, службы DHCP — протокол назначения IP-адресов DHCP и так далее.
Сети в Selectel
Узнайте, как устроена сетевая архитектура крупного провайдера.
Зачем нужен порт и что означает термин «сокет»
Приложения прикладного уровня, общаются также с предыдущим, транспортным, но они видят его протоколы как «черные ящики». Для приема-передачи информации они могут работать, например, с TCP или UDP, но понимают только конечный адрес в виде IP и порта, а не принцип их работы.
Как говорилось ранее, IP-адрес присваивается каждому конечному устройству протоколом межсетевого уровня. Но обмен данными происходит не между конечными устройствами, а между приложениями, установленными на них. Чтобы получить доступ к тому или иному сетевому приложению недостаточно только IP-адреса, поэтому для идентификации приложений применяют также порты. Комбинация IP-адреса и порта называется сокетом, или гнездом (socket).
Кроме собственных протоколов, приложения на прикладном уровне зачастую имеют и фиксированный номер порта для обращения к сети. Администрация адресного пространства интернет (IANA), занимающаяся выделением диапазонов IP-адресов, отвечает еще за назначение сетевым приложениям портов.
Так почтовые приложения, которые общаются по SMTP-протоколу, используют порт 25, по протоколу POP3 — порт 110, браузеры при работе по HTTP — порт 80, FTP-клиенты — порт 21. Порт всегда записывается после IP и отделяется от него двоеточием, выглядит это, например, так: 192.168.1.1:80.
Что такое DNS и для чего используется эта служба
Чтобы не запоминать числовые адреса интернет-серверов была создана DNS — служба доменных имен. DNS всегда слушает на 53 порту и преобразует буквенные имена сетевых доменов в числовые IP-адреса и наоборот. Служба DNS позволяет не запоминать IP — компьютер самостоятельно посылает запрос «какой IP у selectel.ru?» на 53 порт DNS-сервера, полученного от поставщика услуг интернет.
DNS-сервер дает компьютеру ответ «IP для selectel.ru — XXX.XXX.XXX.XXX». Затем, компьютер устанавливает соединение с веб-сервером полученного IP, который слушает на порту 80 для HTTP-протокола и на порту 443 для HTTPS. В браузере порт не отображается в адресной строке, а используется по умолчанию, но, по сути, полный адрес сайта Selectel выглядит вот так: https://selectel.ru:443.
Для обеспечения корректной работы протоколов различных уровней в сетевых моделях используется специальный метод — инкапсуляция. Суть этого метода заключается в добавлении заголовка протокола текущего уровня к данным, полученным от протокола вышестоящего уровня. Процесс, обратный описанному, называется декапсуляцией. Оба процесса осуществляются на компьютерах получателя и отправителя данных попеременно, это позволяет долго не удерживать одну сторону канала занятой, оставляя время на передачу информации другому компьютеру.
Стек протоколов, снова канальный уровень
О канальном уровне модели TCP/IP мы рассказали меньше всего. Давайте вернемся еще раз к началу, чтобы рассмотреть инкапсуляцию протоколов и что значит «стек».
Большинству пользователей знаком протокол Ethernet. В сети, по стандарту Ethernet, устройства отправителя и адресата имеют определенный MAC-адрес — идентификатор «железа». MAC-адрес инкапсулируется в Ethernet вместе с типом передаваемых данных и самими данными. Фрагмент данных, составленных в соответствии с Ethernet, называется фреймом, или кадром (frame).
MAC-адрес каждого устройства уникален, и двух «железок» с одинаковым адресом не должно существовать. Совпадение может привести к сетевым проблемам. Таким образом, при получении кадра сетевой адаптер занимается извлечением полученной информации и ее дальнейшей обработкой.
После ознакомления с уровневой структурой модели становится понятно, что информация не может передаваться между двумя компьютерами напрямую. Сначала кадры передаются на межсетевой уровень, где компьютеру отправителя и компьютеру получателя назначается уникальный IP. После чего, на транспортном уровне, информация передается в виде TCP-фреймов либо UDP-датаграмм.
На каждом этапе, подобно снежному кому, к уже имеющейся информации добавляется служебная информация, например, порт на прикладном уровне, необходимый для идентификации сетевого приложения. Добавление служебной информации к основной обеспечивают разные протоколы — сначала Ethernet, поверх него IP, еще выше TCP, над ним порт, означающий приложение с делегированным ему протоколом. Такая вложенность называется стеком, названным TCP/IP по двум главным протоколам модели.
Point-to-Point протоколы
Отдельно расскажем о Point-to-Point (от точки к точке, двухточечный) протоколе, также известном как PPP. PPP уникален по своим функциям, он применяется для коммуникации между двумя маршрутизаторами без участия хоста или какой-либо сетевой структуры в промежутке. При необходимости PPP обеспечивает аутентификацию, шифрование, а также сжатие данных. Он широко используется при построении физических сетей, например, кабельных телефонных, сотовых телефонных, сетей по кабелю последовательной передачи и транк-линий (когда один маршрутизатор подключают к другому для увеличения размера сети).
У PPP есть два подвида — PPPoE (PPP по Ethernet) и PPPoA (PPP через асинхронный способ передачи данных — ATM), интернет-провайдеры часто их используют для DSL соединений.
PPP и его старший аналог SLIP (протокол последовательной межсетевой связи) формально относятся к межсетевому уровню TCP/IP, но в силу особого принципа работы, иногда выделяются в отдельную категорию. Преимущество PPP в том, что для установки соединения не требуется сетевая инфраструктура, а необходимость маршрутизаторов отпадает. Эти факторы обуславливают специфику использования PPP протоколов.
Заключение
Стек TCP/IP регламентирует взаимодействие разных уровней. Ключевым понятием здесь являются протоколы, формирующие стек, встраиваясь друг в друга с целью передать данные. Рассмотренная модель по сравнению с OSI имеет более простую архитектуру.
Сама модель остается неизменной, в то время как стандарты протоколов могут обновляться, что еще дальше упрощает работу с TCP/IP. Благодаря всем преимуществам стек TCP/IP получил широкое распространение и использовался сначала в качестве основы для создания глобальной сети, а после для описания работы интернета.
Простое пособие по сетевой модели OSI для начинающих
Источник: selectel.ru
Механика, геймплей, динамика — как устроен игровой процесс в играх
Сергей Гимельрейх, геймдизайнер, куратор и преподаватель курса «Геймдизайнер» в Нетологии, рассказал сообществу профессиональных разработчиков игр «Манжеты ГД», из каких элементов состоит игровой процесс любой видеоигры.
Статья будет полезна начинающим геймдизайнерам и всем, кто хочет систематизировать знания в области игрового дизайна.
Сергей Гимельрейх
Геймдизайнер, куратор и преподаватель курса «Геймдизайнер» в Нетологии
Игровая механика, или механизм
Начнём с правил — одного из важнейших формальных признаков игры. В контексте игрового процесса правила можно разделить на игровые механики (механизмы) и ограничения, в рамках которых работают игровые механики.
Любая игра начинается с игровой механики как основного инструмента взаимодействия с объектами в установленных ограничениях.
В основе механики лежат три базовых принципа: действие, изменение и обратная связь.
Действие, или способ
— принцип, инструмент влияния на игровые объекты.
То, каким образом игрок или искусственный интеллект через доступную систему ввода манипулируют игровыми объектами.
Изменение
— перемена состояния игры после оказанного воздействия на игровые объекты.
Формирует новый ментальный ландшафт, новое состояние игры.
Обратная связь
— фиксация изменений в игре, которые влияют на последующие решения игрока, через доступные сенсоры — зрение, слух, осязание, обоняние и другие.
Стимулирует формирование новой стратегии поведения игрока, исходя из целей и задач.
Задачи в игре формируются правилами, которые подаются либо через экспозицию в начале игры или этапа (по сути объявляются), либо их додумывает сам игрок методом проб и ошибок или собственной фантазии.
Цели формируются в голове игрока как результат анализа игровых задач, ситуаций и других правил игры.
Игровая механика, или механизм — способ взаимодействия с игровыми объектами в рамках установленных ограничений игры. Взаимодействие изменяет состояние игры, что влияет на последующие решения игрока.
В самом определении присутствуют признаки циклических процессов. Если определённый метод взаимодействия с игровыми объектами повторять снова и снова, в процессе получения обратной связи игрок может скорректировать свои последующие действия, добиваясь более эффективного способа достижения целей.
Например, играя в шутер от первого лица, игрок снова и снова повторяет определённый набор действий: перемещение, прицеливание и выстрел. Вновь повторяя эти действия в цикле, он совершенствует собственные навыки уклонения, выбора позиции, прицеливания, своевременного выстрела, скорости реакции, которые, в свою очередь, влияют на эффективность достижения основной игровой цели в шутере — устранения противников.
Могут ли объекты геометрического пространства — например, стена или пол — быть агентами игровой механики
И да, и нет. Объекты геометрического пространства — это лишь статическая часть игры, система ограничений, в рамках которой работают другие механики.
Стена не является сама по себе механикой, но взаимодействие аватара игрока со стеной (столкновение) — это механика.
С полом сложнее. Особенно в играх, где поверхность пола — преобладающая основа геометрии уровня. Поверхность в противовес гравитации постоянно взаимодействует с аватаром, отсекая скорость падения в бесконечную пропасть под ним или выталкивая на поверхность. Но эта обратная связь не очевидна для игрока, он как бы игнорирует её, воспринимая как само собой разумеющееся.
Несмотря на это, геймдизайнер описывает такое взаимодействие в дизайн-документе как отдельную механику, так как оно является необходимой функцией игрового мира.
Есть примеры более очевидной обратной связи взаимодействия пола и аватара. К примеру, обычные игры-платформеры или игры, где различный наклон поверхности влияет на скорость перемещения аватара.
Механик в игре может быть много. Они формируют целый арсенал инструментов игрока, который использует разнообразные наборы действий в зависимости от целей и задач в каждой отдельной ситуации.
Такая тесная взаимосвязь механик в контексте их использования и формирует игровой процесс (геймплей).
Игровой процесс, или геймплей
— система взаимодействия игрока с игровыми объектами через доступный набор игровых механик.
Геймплей строится исходя из заданных правил и ограничений игры, а также индивидуального стиля поведения игрока.
Существует множество жанрообразующих комбинаций механик, которые транслируются из игры в игру одного жанра. Например, связки: передвижение+прыжок; двойной прыжок; перемещение+прицеливание+выстрел и так далее.
Геймдизайнер должен понимать, что у игроков будут разные стили поведения (например, психотипы Бартла) и нужно подготовить геймплей таким образом, чтобы он соответствовал ожиданиям выбранной целевой аудитории или удовлетворял всё разнообразие типов игроков.
Например, в Deus Ex, геймплей изначально задуман под разные стили прохождения — активный (прямое столкновение) и скрытый (стелс). Игроки сами выбирают, какой стиль им подходит, и в любой момент могут переключиться на другой вид геймплея — тот, который для них предпочтительнее в определённой ситуации или по собственному желанию ради получения нового опыта.
Игровой процесс (геймплей) — это комплекс взаимодействий игрока, который при помощи набора игровых механик в рамках ограничений игры формирует особый опыт игрока.
Особый опыт игрока представляет собой не только набор примитивных ментальных связей, которые формируют системы правил и доступных механик, но и эмоционально-чувственную сторону восприятия — осмысленный опыт, который трансформируется через внутреннюю личностную систему координат человека.
Геймплей по ходу игры может измениться не только из-за смены стратегии поведения игрока, но и под воздействием разнообразных встроенных триггеров, которые создают для игрока новые состояния игры и соответственно меняют его поведение. Например, в игре Pac-Man временным изменением состояния является сбор бонуса (фасолины) в лабиринте, от чего мгновенно меняется механика поведения и параметры противников, как и параметры персонажа игрока.
Формально такие переключения состояний геймплея можно сравнить с работой машин состояний или конечных автоматов, но в рамках этой статьи мы не будем глубоко затрагивать эту тему (о машине состояний можно почитать здесь).
Триггер — элемент, который приводит в действие некую систему
Профессия
Геймдизайнер
Узнать больше
- Разработаете прототип и проведёте балансировку собственной игры
- Научитесь составлять полный комплект проектной документации
Игровая динамика
Геймплей представляет собой шаблоны взаимодействий игровых механик и игрока в различных игровых ситуациях, а также переключение состояний этих взаимодействий под действием триггеров.
Но для полноты картины напрашивается ещё один компонент, который влияет на формирование опыта игрока на длинной дистанции путём изменения ограничений в игре и параметров игровых механик. Этот компонент — игровая динамика.
Игровая динамика — это по сути оркестровка геймплея.
Представьте, что ваши игровые механики — это музыканты с различными инструментами. Геймплей — весь оркестр целиком во главе с игроком‒дирижёром, а игровая динамика — ноты, которые формируют ту самую мелодию, уникальный почерк интерактивности игры на всём её протяжении. В эту метафору также хорошо ложатся типичные жанровые геймплейные связки — как отдельные партии или фрагменты мелодии игры.
Хорошая игра «звучит» как хорошо сыгранная оркестром мелодия.
Здесь прослеживается сходство с музыкальным произведением, что метафорически нам играет на руку.
Красивая мелодия приятна слуху и позволяет менять настроение слушателя — так и грамотно выстроенная игровая динамика может звучать приятно и интересно для игрока.
Динамика характеризуется ритмом, темпом и тональностью. Эти параметры управляются инструментами балансировки игры: формой пространства, настройками параметров механик и их взаимодействий и другими.
Ритм
Оркестровка — координация и управление сложными системами и службами, распределённая во времени.
Термин созвучен аналогичному в IT-сфере
— длительность циклов игровых механик и их комплексность в рамках одного цикла.
Ритм может задаваться ограничениями пространства — например сложностью ландшафта игрового мира, а также сложностью поведения игровых объектов, с которыми происходит взаимодействие.
Темп
Определяет скорость развития геймплея во времени, скорость воспроизведения всех игровых циклов.
Темп может контролироваться сжатием и расширением пространства, а также количеством и скоростью поведения объектов взаимодействия.
Тональность
— настройка параметров игровых объектов и функций взаимодействия между ними в определённые периоды времени игры.
Речь идёт об изменении привычных парадигм взаимодействия игрока с игровыми объектами в нужный автору момент. Такое изменение может быть реализовано в угоду истории или в зависимости от условий и правил игрового мира в тот или иной момент времени или места в игровом пространстве.
Примеры. Ранение снижает маневренность, видимость и скорость передвижения. В определённой области пространства снижена видимость из-за тумана. Выдача игроку способностей и инструментов на определённом участке игры меняет формат поведения игрока (гравипушка в Half Life 2).
Игровая динамика может быть простой или сложной.
Для игр, где нет смысла создавать сложную оркестровку геймплея в прогрессии, используют простую структуру. Например, в Space Invaders динамика игры изменяется лишь за счёт темпа, постоянно ускоряя все процессы, — это требует от игрока более быстрой реакции на каждом последующем уровне.
Для игр, где важная роль отведена сюжету, требуется более сложная «мелодия» взаимодействия как результат оркестровки геймплея — взаимодействия должны быть созвучны истории, которую рассказывает автор игры.
Комплексность — структурная и функциональная мера сложности игровой механики
Это позволяет наиболее полно передать опыт, заложенный в очередном сюжетном повороте. Также это делает игру более консистентной, фокусирует игрока не просто на механическом решении задач и манчкинстве, а на осмыслении совершаемых им действий и происходящих событий.
Иногда ломать привычный игроку шаблон поведения полезно для истории — это и есть изменение тональности в игровой динамике.
Внимание: спойлер к игре Brothers: A Tale of Two Sons
Например, в игре Brothers: A Tale of Two Sons от Starbreeze Studios был использован отличный приём для передачи чувства потери и возрождения надежды.
Мальчик Наи теряет старшего брата Ная, с которым провёл большую часть игры. До этого игрок активно пользовался навыками обоих братьев для решения большинства игровых задач, но после смерти брата у него отобрали те навыки, которыми обладал старший.
И вот Наи возвращается в деревню один, на пути он встречает водную преграду, которую сам преодолеть не может, так как он боится воды. Раньше ему помогал старший брат, но его больше нет (игрок мог контролировать брата правым стиком геймпада). Это ломает привычный шаблон взаимодействия игрока, но создаёт нужное настроение для передачи эмоционального фона, соответствующего ситуации.
Спустя несколько попыток младший брат побеждает страх перед водой и обретает навык старшего — плавать (игрок пробует использовать контролы старшего брата и после нескольких попыток решает игровую задачу).
Эта ситуация поначалу шокирует игрока, но это было необходимо и оправдано в рамках определённого игрового опыта.
Манчкинство — использование внутриигровых правил или ресурсов в ролевой или компьютерной игре не предусмотренным авторами игры образом ради получения явной выгоды.
Манчкин ставит цели выше контекста игры, пренебрегая логикой сюжета, атмосферой и товариществом.
Как быть с играми, в которых нет истории
Есть немало игр, в которых история не выражена автором, но есть интересный геймплей. Здесь игровая динамика работает как импровизация игрока при взаимодействии с другими игровыми системами, которые изменяют динамику. В итоге получается своя уникальная мелодия взаимодействия, которая создаёт неповторимый игровой опыт, которые игроки пересказывают как собственную историю.
Даже если рассказывать нечего (например, в медитативных играх «Тетрис», Match-3), динамика создаёт поток (белый шум), который удерживает игрока в увлечённом состоянии длительное время.
Во многом динамика — про контроль свободы выбора игрока.
С одной стороны, слишком много свободы создаёт непредсказуемые линии поведения и автор теряет возможность влиять на геймплей в тех или иных временных точках.
С другой — сужение степеней свободы позволяет лучше управлять ощущениями игрока, но лишает возможности импровизации, которая также важна для полноты передаваемого опыта.
В качестве заключения
Статья мне кажется всё ещё незаконченной, и в какой-то степени я рад этому. Тема намного более сложная и объёмная, чтобы уместить в формат справочной статьи.
Геймдизайн — это искусство проектирования человеческого опыта. Механики, геймплей и динамика — ключевые инструменты, при помощи которых можно управлять восприятием игрока и трансформацией этого восприятия в опыт и эмоционально-чувственные переживания. От чего лично я испытываю немалую ответственность перед игроками.
Делайте добрые игры, друзья ?
Благодарю коллег за комментарии к статье перед публикацией: Романа Ильина, Артёма «Базилио» Волкова, Анатолия Казакова, Святослава Торика.
Дополнительные материалы по теме
- Видео, где разбирается цикл действия, изменения и обратной связи от инди-разработчика Jonas Tyroller Can We Make This Button Fun To Press?
- Книга «Геймдизайн. Как создать игру, в которую будут играть все», Джесси Шелл.
- Статья на Gamasutra от Яцека Весоловски Beyond Pacing: Games Aren’t Hollywood.
- Статья про фрэймворк MDA — MDA: A Formal Approach to Game Design and Game Research, Robin Hunicke, Marc LeBlanc, Robert Zubek.
- Интересная статья на тему определения, что такое игровая механика, — Defining Game Mechanics.
- Книга «Музыкальные эмоции: учебное пособие для музыкальных вузов и вузов искусств», Холопова В. Н.
- Другие статьи по игровой механике.
Читать также
Архитектура в видеоиграх — часть первая: как здания влияют на левел-дизайн и навигацию игрока
Архитектура в видеоиграх — часть вторая: как окружение рассказывает историю
Архитектура в видеоиграх — часть третья: как здания определяют композицию и эстетику игровых миров
Мнение автора и редакции может не совпадать. Хотите написать колонку для Нетологии? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.
Сергей Гимельрейх
Геймдизайнер, куратор и преподаватель курса «Геймдизайнер» в Нетологии
Источник: netology.ru