В качестве примера можно привести игровое поле оригинальной формы
Урок Delphi | Игра
Игровое поле состоит из клеток, в каждой из которых может быть мина.
Задача игрока — найти все мины и пометить их флажками. Используя кнопки мыши, игрок может открыть клетку или поставить в нее флажок, указав тем самым, что в клетке находится мина. Клетка открывается щелчком левой кнопки мыши, флажок ставится щелчком правой.
Если в клетке, которую открыл игрок, есть мина, то происходит взрыв (сапер ошибся, а он, как известно, ошибается только один раз) и игра заканчивается.
Если в клетке мины нет, то в этой клетке появляется число, соответствующее количеству мин, находящихся в соседних клетках.
Анализируя информацию о количестве мин в клетках, соседних с уже открытыми, игрок может обнаружить и пометить флажками все мины. Ограничений на количество клеток, помеченных флажками, нет.
Однако для завершения игры (выигрыша) флажки должны быть установлены только в тех клетках, в которых есть мины.
Ошибочно установленный флажок можно убрать, щелкнув правой кнопкой мыши в клетке, в которой он находится.
Представление данных
В программе игровое поле представлено массивом N+2 на М+2, где NxM размер игрового поля. Элементы массива с номерами строк от 1 до N и номерами столбцов от 1 до М соответствуют клеткам игрового поля (рис. 15.9), первые и последние столбцы и строки соответствуют границе игрового поля.
Рис. 15.9. Клетке игрового поля соответствует элемент массива
В начале игры каждый элемент массива, соответствующий клеткам игрового поля, может содержать число от 0 до 9. Ноль соответствует пустой клетке, рядом с которой нет мин. Клеткам, в которых нет мин, но рядом с которыми мины есть, соответствуют числа от 1 до 8. Элементы массива, соответствующие клеткам, в которых находятся мины, имеют значение 9.
Элементы массива, соответствующие границе поля, содержат -3. В качестве примера на рис. 15.10 изображен массив, соответствующий состоянию поля в начале игры.
Рис. 15.10. Массив в начале игры
В процессе игры состояние игрового поля меняется (игрок открывает клетки и ставит флажки) и, соответственно, меняются значения элементов массива. Если игрок поставил в клетку флажок, то значение соответствующего элемента массива увеличивается на 100.Например, если флажок поставлен правильно в клетку, в которой есть мина, то значение соответствующего элемента массива станет 109. Если флажок поставлен ошибочно, например, в пустую клетку, элемент массива будет содержать число 100. Если игрок открыл клетку, то значение элемента массива увеличивается на 200.
Такой способ кодирования позволяет сохранить информацию о исходном состоянии клетки.
Форма приложения
(стартовая) форма игры Сапер 2002 приведена на рис:
Следует обратить внимание, что размер формы не соответствует размеру игрового поля. Нужный размер формы будет установлен во время работы программы.
Делает это процедура обработки события OnFormActivate, которая на основе информации о размере игрового поля (количестве клеток по вертикали и горизонтали) и клеток устанавливает значение свойств ciientHeight и ciientwidth, определяющих размер клиентской области главного окна программы.
Основное окно программы содержит компонент MainMenu1, который представляет собой главное меню программы. Значок компонента MainMenu находится на вкладке Standard:
Значок компонента MainMenu можно поместить в любое место формы, так как во время работы программы он не виден. Пункты меню появляются в верхней части формы в результате настройки меню.
Для настройки меню используется редактор меню, который запускается двойным щелчком левой кнопкой мыши на значке компонента или выбором из контекстного меню компонента команды Menu Designer.
В начале работы над новым меню, сразу после добавления компонента к форме, в окне редактора находится один-единственный прямоугольник — заготовка пункта меню. Чтобы превратить эту заготовку в меню, нужно в окне Object Inspector в поле Caption ввести название меню.
Если перед какой-либо буквой в названии меню ввести знак s, то во время работы программы можно будет активизировать этот пункт меню путем нажатия комбинации клавиши и клавиши, соответствующей символу, перед которым стоит знак &. В названии меню эта буква будет подчеркнута.
Чтобы добавить в главное меню элемент, необходимо в окне редактора меню выбрать последний (пустой) элемент меню и ввести название нового пункта. Чтобы добавить в меню команду, необходимо выбрать пункт меню, в который нужно добавить команду, переместить указатель активного элемента меню в конец списка команд меню и ввести название команды.
На рис. 15.13 приведено окно редактора меню, в котором находится меню программы Сапер 2002.
После того как будет сформирована структура меню, нужно, используя окно Object Inspector, выполнить настройку элементов меню (выбрать настраиваемый пункт меню можно в окне формы приложения или из списка объектов в верхней части окна Object Inspector).Каждый элемент меню (пункты и команды) — это объект типа TMenuitem. Свойства объектов TMenuitem (табл. 15.7) определяют вид меню во время работы программы.
Рис. 15.13. Структура меню программы Сапер 2002
Таблица 15.7. Свойства объекта TMenuItem
Свойство | Определяет |
Name | Имя элемента меню. Используется для доступа к свойствам |
Caption | Название меню или команды |
Bitmap | Значок, который отображается слева от названия элемента меню |
Enabled | Признак доступности элемента меню. Если значение свойства равно False,то элемент меню недоступен, при этом название меню отображается серым цветом |
При выборе во время работы программы элемента меню происходит событие click.
Чтобы создать процедуру обработки этого события, нужно в окне формы выбрать пункт меню и щелкнуть левой кнопкой мыши — Delphi создаст шаблон процедуры обработки этого события.
В качестве примера ниже приведена процедура обработки события, которое возникает в результате выбора из меню ? команды Справка, нз — это имя элемента меню, соответствующего этой команде.
В начале игры нужно расставить мины, затем для каждой клетки поля подсчитать, сколько мин находится в соседних клетках. Процедура HewGame (ее текст приведен в листинге 15.3) решает эту задачу.
Листинг 15.3. Процедура NewGame
Показать / Скрыть текст
// новая игра — генерирует новое поле
procedure NewGame();
var
row,col : integer; // координаты клетки (индексы массива)
n : integer; // количество поставленных мин
k : integer; // кол-во мин в соседних клетках
begin
// Очистим эл-ты массива, соответствующие клеткам
// игрового поля
for row :=1 to MR do
for col :=1 to MC do
Pole[row,col] := 0;
// расставим мины
Randomize[); // инициализация ГСЧ
n := 0; // кол-во мин
repeat
row := Random(MR) + 1;
col := Random(MC) + 1;
if (Pole[row,col] 9) then
begin
Pole[row,col] := 9;
n := n+1;
end;
until (n>MM);
// для каждой клетки вычислим
// кол-во мин в соседних клетках
for row := 1 to MR do
for col := 1 to MC do
if (Pole[row,col] 9] than
begin
k :=0 ;
if Pole[row-l,col-l] — 9 then inc(k);
if Pole[row-l,col] = 9 then inc(k);
if Pole[row-l,col+l] = 9 then inc(k);
if Pole[row,col-l] — 9 then inc(k);
if Pole[row,col+1] = 9 then inc(k);
if Pole[row+l,col-l] = 9 then inc(k);
if Pole[row+l,col] = 9 then inc(k);
if Pole[row+l,col+l] = 9 then k := k + 1;
Pole[row,col] := k;
end;
status := 0; // начало игры
nMin := 0; // нег обнаруженных мин
nFlag := 0; // нет поставленных флагов
end;
После того как процедура NewGame расставит мины, процедура ShowPole (ее текст приведен в листинге 15.4) выводит изображение игрового поля.
Листинг 15.4. Процедура ShowPole
15 бюджетных хитростей в дизайне интерьера, которые подчеркнут ваш вкус
Истинные ценители домашнего уюта еще с юности представляли себе, каким будет дом их мечты, причем до последней мелочи.
А потом они выросли, познакомились со словом «бюджет» и заключили, что фраза «я его слепила из того, что было» — это не самая глупая жизненная философия.
Мы призываем вас не отказываться от планов стать хозяином стильной квартиры и уверяем, что создание интерьера с характером вовсе не обязательно должно влетать в копеечку.
Мы в AdMe.ru собрали несколько полезных советов от профессиональных дизайнеров, которые смогут применить и владельцы уже обустроенных квартир, и те, кто только приступает к ремонту.
1. Мыслите в целом, а не в частности
© Pixabay
Даже если вы не начинаете ремонт с нуля, а задумываетесь о небольшом обновлении интерьера, помните, что жилое пространство нужно воспринимать в целом, а не только в рамках отдельно взятой комнаты.
Во-первых, именно пренебрежение этим подходом приводит к тому, что квартира выглядит небрежно и дешево.
Во-вторых, даже если вас полностью устраивает сочетание дизайна комнат, подумайте, не нарушат ли эту гармонию изменения даже в одной из них.
2. Добавьте шика
© Depositphotos
Несмотря на яркий эффект, который он производит, декоративный молдинг — один из самых недорогих способов придать комнате утонченный вид. Даже самостоятельная установка молдинга может оказаться весьма непыльным делом. Всего несколько лаконичных вставок придадут интерьеру совсем другой характер.
3. Подбирайте эффектную текстуру
© Depositphotos
Материалы и тона определяют атмосферу любого пространства. Старайтесь отдавать предпочтение глубоким оттенкам и благородным материалам, например вельвету. Его необязательно должно быть много — достаточно будет пары диванных подушек, которые можно сшить своими руками.
Еще один отличный текстурный акцент — ковер. Он должен быть большим, но при этом не скрывать весь пол в комнате. Рисунок ковра должен быть достаточно «дизайнерским», чтобы привлекать внимание, но при этом не конфликтовать с общим стилем комнаты.
4. Помните, новый интерьер — это хорошо забытый старый
© Depositphotos © Depositphotos
Обновлять интерьер при помощи старых вещей — парадоксально, но вместе с тем выигрышно. Многие винтажные вещи можно не только приобрести за бесценок, но и отыскать в своем собственном гараже или у старших родственников.
Самое главное — суметь отличить винтаж от обычного хлама и не переборщить с подобной любовью к истории: для «романтизации» средней по размеру комнаты достаточно будет парочки антикварных предметов.
В противном случае вы рискуете не обновить обстановку, а превратить помещение в подобие музея.
Еще более бюджетный вариант — «состарить» вещи самостоятельно: придать нужный оттенок мебели и фурнитуре с помощью патины или же вооружиться парочкой бытовых средств и создать свой собственный антиквариат.
5. Не пренебрегайте цветом двери
© Depositphotos
Тщательно выбирая мебель, мы часто пренебрегаем значением двери в интерьере. А зря: обновленная и даже просто хорошо выкрашенная дверь преображает обстановку. К тому же профессиональные дизайнеры уверяют, что дверь черного или баклажанового цвета придает помещению гораздо более стильный и благородный вид.
6. Оживляйте интерьер
© Depositphotos
Даже небольшая вазочка со свежими цветами в центре стола способна задать настроение всей комнате. Если же вы не хотите заморачиваться с регулярной покупкой свежих цветов, можно украсить дом сухостоем и менять его раз в пару месяцев, чтобы не скапливалось слишком много пыли.
Не забывайте и о домашних растениях. Многие из них чудесно цветут или обладают интересной фактурой, и вы зря скрываете их за шторкой на подоконнике. Красивый и оригинальный горшок — вот и все, что вам нужно, чтобы смело поставить комнатное растение на самое видное место.
Если ни один вариант с цветами вам не близок, помните, что крупная ваза со свежими фруктами в гостиной или на кухне обладает тем же декоративным эффектом.
7. Будьте внимательны к функциональным мелочам
© Depositphotos
Один из приемов, к которому прибегают владельцы отелей, чтобы номера выглядели дороже, заключается в подборе функциональных деталей одного стиля и фактуры. Тот же самый подход можно применить и в оформлении домашнего интерьера.
Обратите внимание на бытовые мелочи типа диванных подушек, пледов, банных и кухонных полотенец, шторок для душа. Одного ли они стиля, цветовой гаммы, размера, фактуры? Вам в самом деле нравятся эти предметы или вы покупали их почти не глядя, только из-за необходимости? Подумайте о них как о неотъемлемой части комнаты, в которой они функционируют.
Отнеситесь более придирчиво и к дверным ручкам, крючкам, полочкам в ванной, мыльницам и подставкам под мелочи. Вполне возможно, что кое-какие из этих вещей давно потеряли свой вид или совершенно не сочетаются между собой. Заменить их гораздо проще, чем затевать полноценный ремонт, но эффект от таких перемен обязательно будет заметен.
8. Добавьте немного искусства
© Depositphotos
Это настоящий простор для вашей фантазии. Здорово, если вы можете себе позволить приобрести настоящую картину, однако есть множество других интересных вариантов. Понравившийся вам рисунок или фото можно распечатать на холсте и самостоятельно оформить в рамку. Или же вдохновиться трендами современных роскошных интерьеров и создать свой рукописный шедевр.
Крупная абстрактная картина добавит комнате ощущение простора и легкости. Вы можете разукрасить холст полностью или частично, добавить блестки или иные декоративные элементы. Такие произведения искусства можно создавать всей семьей и менять так часто, как вам захочется.
Лучше одной большой картины может быть только три: крупный триптих (который также можно распечатать в ближайшем салоне) гарантированно произведет впечатление на гостей.
9. Соблюдайте единообразие в деталях
© Depositphotos
Один из нюансов, которые часто придают жилому пространству небрежный вид, — это не сочетающиеся между собой аксессуары. Многие привыкли не обращать внимания на такие предметы из-за их небольшого размера, однако на деле нагромождение мелких разностилевых деталей точно так же портит впечатление от интерьера, как и большой безвкусный диван.
Обратите внимание на все эти магнитики, мини-скульптуры и сомнительной пользы штучки, подаренные родственниками, коллегами и друзьями. Спросите себя: купили бы вы это себе сами? сочетаются ли эти предметы с общей обстановкой комнаты? Если на оба вопроса вы ответили «нет» — смело избавляйтесь от них или убирайте подальше в шкаф на хранение.
Хороший способ наполнить дом аксессуарами — это отдать предпочтение вещам ручной работы. Они уникальны, обладают собственным характером, их можно коллекционировать и заказывать точно под тот стиль, который вы хотите видеть у себя дома.
10. Поднимите шторы к потолку
© Depositphotos
Кажется странным, но все же это факт: шторы, свисающие с самого потолка, автоматически увеличивают пространство и придают ему некую изысканность. Даже если вы купили эти шторы в соседнем супермаркете, достаточно правильно их подвесить, и тогда они будут смотреться совершенно иначе.
11. И сам потолок
© Depositphotos
Еще один способ создать эффект простора в помещении — это придать цвет стенам лишь частично. Высокие потолки делают интерьер элегантнее, и, если у вас стандартная высота потолка, можно визуально приподнять ее, окрасив стены наполовину или чуть выше половины, а остальную часть стен, как и потолок, оставить белой.
12. Используйте книжные полки не только для книг
© Depositphotos
Чтобы сделать атмосферу гостиной менее скучной и строгой, разбавьте ряды книг на полках цветами, скульптурами, фоторамками или лампами. Конечно, главное, чтобы все эти конструкции были устойчивыми и не требовали особых навыков ловкости, когда вам просто понадобится достать с полки любимую книгу.
13. Помните, минимализм — однозначно стильное решение
© Depositphotos
Выше мы дали несколько советов по поводу аксессуаров и декора, однако если вы не вполне уверены в своих дизайнерских способностях, то смело следуйте правилам минимализма. Однотонные, преимущественно светлые тона, функциональные вещи, минимум или полное отсутствие украшений — минимализм всегда создает ощущение стиля, чистоты и свободы.
14. Скажите нет игрушкам в свободном доступе
© Depositphotos
Этот совет касается не только тех, кто решил стать на путь минимализма.
Если у вас есть дети или домашние животные, определенный беспорядок в доме попросту неизбежен, однако квартира не должна превращаться в одну гигантскую игровую площадку.
Это правило важно держать в голове в первую очередь именно вам: только так вы сможете добиться его соблюдения от тех, за кого вы в ответе.
15. Не скрывайте деревянные полы
© Depositphotos
Если у вас качественное напольное покрытие (ламинат или паркет), не стоит прятать его под большими коврами. Так вы не только визуально уменьшаете пространство, но и лишаете комнату весьма стильного элемента.
Фото на превью Depositphotos, Depositphotos
Михаил Кадиков
Пространство игрового уровня подобно живому организму — это единое целое, которое состоит из многочисленных составных частей, тесно взаимодействующих друг с другом. И если врач, не разбирающийся в строении человеческого тела, способен только навредить своему пациенту, то и дизайнер, не смыслящий в анатомии игрового пространства, никогда не сможет построить полноценный уровень.
Независимо от того, какой вы выбрали игровой движок, структура любого уровня почти всегда представляет собой один и тот же набор элементов. Ниже мы познакомимся со строением типичного уровня, а также детально рассмотрим каждую его составляющую без привязки к какому-либо движку.
Структурная геометрия
Одним из самых важных и образующих элементов любого игрового пространства является основная геометрия уровня. В английской терминологии её называют «структурной геометрией» (от англ. «structural geometry»). К ней можно причислить все объекты, которые формируют «тело» уровня.
Если вы выбрали локацию, действие которой происходит в городе, то к её структурной геометрии можно отнести любые архитектурные формы, такие как здания, сеть дорог, площади, парки, мосты, подземные переходы, тоннели, шахты и т.д.
В качестве примера можно привести уровни из игры Left 4 Dead (2008, Valve) с ярко выраженным городским пейзажем. Мысленно убираем все уличные детали (столбы, скамейки, знаки, машины, мусорные контейнеры) — и у нас остается голая структурная геометрия, формирующая «тело» уровня.
Left 4 Dead © 2008, Valve
Роль структурной геометрии также могут играть любые элементы ландшафта созданные природой — такие как скалы, пещеры, поля, овраги и т.п. Основную геометрию, формирующую рельеф местности, часто называют «террейном» (от англ. «terrain» — местность) или «лэндскейпом» (от англ. «landscape» — ландшафт).
Уровень «Afghan» из Call of Duty: Modern Warfare 2 (2009, Infinity Ward) служит отличным примером использования террейна (или природного ландшафта) в качестве структурной геометрии. Компонентами, формирующими тело уровня, здесь будут скалы, сквозная сеть пещер, небольшой бункер, и центральный элемент — упавший военный самолет.
Call of Duty: Modern Warfare 2 © 2009, Infinity Ward
Детали игрового окружения
Как правило, структурная геометрия не обладает большим количеством деталей по причине различных технических ограничений, поэтому для её детализации используются дополнительные объекты.
Такие объекты в дизайне уровней называют «пропсами» (от англ. «props» — реквизит). Они выполняют роль бутафорского реквизита на съемочной площадке и помогают зрителю в полной мере прочувствовать обстановку места действия.
Обычно при планировании нового уровня выделяют три группы пропсов:
- Крупногабаритные объекты (массивные конструкции, павильоны, ограждения, автомобили, грузовики, деревья и т.д.)
- Среднегабаритные объекты (домашняя и уличная мебель, рекламные вывески, антенны, мачты освещения, контейнеры и т.п.)
- Малогабаритные объекты (мелкие детали интерьера и экстерьера — бутылки, камни, трава, листья и т.д.)
Каким образом детали преображают уровень? За примером давайте снова обратимся к Left 4 Dead (2008, Valve), где недетализированная структурная геометрия выглядит вот так:
Left 4 Dead © 2008, Valve
Добавляем на уровень пропсы самых различных габаритов:
Left 4 Dead © 2008, Valve
И получаем полноценное детализированное игровое окружение:
Left 4 Dead © 2008, Valve
Чем ближе игрок сможет рассматривать объекты первого плана, тем качественнее должен быть уровень их детализации. Обычно это выражается в количестве полигонов, разрешении текстур, качестве и комплексности материалов.
Помимо пропсов для детализации уровней также используют так называемые «декали» (от англ. «decal» — клеймо, наклейка). Декали — это проекция специального изображения на поверхность, которая позволяет добавить дополнительные детали.
Например, при помощи декалей в Left 4 Dead (2008, Valve) на стены добавлено множество трещин, потеков, граффити и имитаций всевозможных вентиляционных решеток, окон и рекламных объявлений. Для детализации дорожной поверхности используется автомобильная разметка, бумажный мусор, лужи, ливневые стоки и т.д.Left 4 Dead © 2008, Valve
Еще один пример грамотного использования декалей можно подсмотреть в Fallout 3 (2008, Bethesda Game Studios). Практически все детали на любых поврежденных бетонных поверхностях выполнены при помощи декалей в виде разломов и трещин, создающих эффект сложной и детализированной геометрии.
Fallout 3 © 2008, Bethesda Game Studios
Задний план
Игровое окружение не заканчивается за пределами геймплейного пространства. Для создания иллюзии большого, впечатляющего и реалистичного мира в играх принято уделять большое внимание тому, что происходит на заднем плане.
Поэтому, помимо структурной геометрии и многочисленных деталей, очень важным элементом в строении уровня является задний план. В английской терминологии его часто называют «бэкграунд» (от англ. «background» — задний план, фон).
Вместе с развитием технологий и увеличением детализации свой путь эволюции прошел и задний план. Изначально он представлял собой фотопанораму либо трехмерную визуализацию, где все детали были частью статичного двухмерного изображения. Например, вот так в Half-Life (1998, Valve) выглядит статичная панорама каньона:
Half-Life © 1998, Valve
Со временем задний план оброс дополнительными элементами, добавляющими реалистичности. Например, на небесном своде появились анимированные облака, а все статичные объекты (силуэт города, леса, горы) перекочевали в трехмерное пространство.
На уровне «Vertigo» в Counter-Strike: Global Offensive (2012, Valve) сравнительно простая архитектура игровой части уровня сбалансирована впечатляющей и богатой городской панорамой. Большинство объектов заднего плана выполнены в виде низкополигональных трехмерных зданий, которые через дымку тумана, плавно переходят в панораму неба.
Counter-Strike: Global Offensive © 2012, Valve
Основной принцип при создании заднего плана строится на том, что ни в коем случае не нужно показывать то, что игрок всё равно не увидит в силу удаленности объекта.
Художник по игровому окружению, который уделяет слишком много времени на детализацию каждого объекта на заднем плане, во-первых, занимается вредительством, тратя своё время и ресурсы впустую, во-вторых, захламляет задний план высокодетализированными объектами, не заботясь о технических ограничениях.
Как правило, качество детализации напрямую зависит от дистанции, на которой игрок увидит тот или иной участок уровня. Следовательно, самыми высокодетализированными ассетами на уровне будут пропсы и декали (т.к.их ближе всего видит игрок), потом идет структурная геометрия, а уже затем задний план.
Обычно все фоновые объекты делаются максимально дешевыми и примитивными, но за счет их большой концентрации достигается ощущение богатого заднего плана.
Отличным примером создания технологически правильной и впечатляющей панорамы ночного города служит финальный уровень из Mirror’s Edge (2008, DICE).
Здесь задний план создан из большого количества низкополигональных моделей, которые плавно переходят в двухмерное панорамное изображение городского силуэта и неба.
Таким образом, благодаря концентрации громадного количества низкополигональных объектов создается иллюзия насыщенного открытого пространства без потерь в производительности.
Mirror’s Edge © 2008, DICE
Освещение
Еще одним важным элементом в строении полноценного уровня является освещение. Правильно настроенные и размещенные источники света — это мощный инструмент для создания нужной атмосферы, а также отличный способ, используя игру света и тени, привлечь внимание игрока и направить его в нужном направлении.
Вне зависимости от выбранной технологии для настройки освещения на уровне обычно используются четыре типа базовых источников света: направленный свет, глобальное освещение, точечный свет и прожектор.
Направленный свет (англ. «directional light») — это любой небесный источник света (вроде солнца или луны), равномерно освещающий сцену с нужного нам направления. Пример дневного освещения с направленным светом на уровне «Safehouse» в Counter-Strike: Global Offensive (2012, Valve):
Counter-Strike: Global Offensive © 2012, Valve
Глобальное освещение (англ. «global illumination» или «sky light») позволяет настроить количество света, отраженного от различных поверхностей. Таким типом освещения можно создать облачный день без солнца либо темную ночь без луны с мягким рассеянным светом.
Точечный свет (англ. «point light») излучает свет во все стороны и позволяет создать простейший источник света вроде обычной лампочки.
Прожектор (англ. «spot light») представляет собой направленный световой поток подобный фонарику или автомобильной фаре. Пример игры света и тени при помощи прожектора в BioShock (2007, Irrational Games):
BioShock © 2007, Irrational Games
Важно помнить о том, что свет не берется из пустоты и при размещении источников света нужно обязательно дублировать их объектами, объясняющими физическое появление света, такими как лампы, свечи, факелы, костры и т.д.
и визуальные эффекты
Специальные эффекты — это еще одна важная составляющая уровня, которая сделает игровое окружение более атмосферным, реалистичным и живым.
Чтобы придать особый шарм визуальному ряду, очень часто используют цветокоррекцию и различные постфильтры (эффект зернистости, виньетинг, HDR). Для этого дизайнер размещает на уровне вольюмы (от англ.
«volume» — ёмкость) со специальными настройками, которыми можно обозначить, в какой именно локации необходимо использовать тот или иной фильтр для цветокоррекции.
Например, в Left 4 Dead (2008, Valve) для придания эффекта кинематографичности используют цветокоррекцию вместе с постфильтром зернистости.
Left 4 Dead © 2008, Valve
Визуальные эффекты привносят в игровое окружение большое количество полезных мелочей, копирующих поведение объектов в реальной жизни.Например, для создания иллюзии ветра — листья деревьев, трава, а также волосы и одежда персонажей обязательно должны находиться в легком движении. Для эффекта старого и заброшенного помещения можно добавить летающие в воздухе частички пыли и паутину.
А для имитации дождя желательно конечно же показать падающие капли, брызги, туман и многочисленные влажные поверхности и т.д.
Звуковые эффекты позволяют создать иллюзию реалистичного игрового мира, наполненного многообразием различных звуков. Как правило, это основной звуковой фон, включающий в себя целый букет звуков (шум города, морской прибой, шелест листьев и т.д.
), а также локальные звуковые события объектов, находящихся в непосредственной близости к игроку (капающая вода, гул вентилятора, треск костра и т.д.).
Помимо размещения звуковых эффектов на уровень, добавляют специальные маркеры, или вольюмы, искажающие звук и создающее эхо в зависимости от типа и размера помещения.
Игровой функционал
Последним важным элементом в строении уровня является игровой функционал. К нему можно отнести всю комплексную систему настроек, которые помогают организовать геймплей на уровне.
Во-первых, это любые настройки, связанные с полноценным прохождением уровня. Сюда можно отнести всю игровую логику — условия победы и поражения, точки появления игроков, систему триггеров (от англ.
«trigger» — курок), запускающую запланированные события на уровне, такие как скриптовые сцены (в англ. «scripted scene») или заставки (в англ.
«cutscene»), места автоматического сохранения игры, музыкальные события и т.д.
На изображении ниже можно видеть пример триггера из Half-Life 2 (2004, Valve), который привязан к двум событиям на уровне. Стоит только игроку зайти в оранжевую область, как полицейский тут же начинает преследование нарушителя. В случае, если игрок покидает пределы триггера, то персонаж мгновенно прекращает преследование и возвращается на свою исходную позицию.
Half-Life 2 © 2004, Valve
Во-вторых, это настройка поведения персонажей, управляемых искусственным интеллектом. Для этого используют систему навигационных меток (маркеров, нодов, вейпоинтов, мешей), которые помогают им правильно ориентироваться на уровне, использовать укрытия и выполнять любые запланированные действия.
В-третьих, это настройка всех интерактивных объектов, с которыми взаимодействует игрок. Сюда относятся любые двери, лифты, ловушки, подбираемые предметы и бонусы, разрушаемые объекты, настройка поведения физики и т.д.
В-четвертых, это настройки физической оболочки уровня (коллизия, прокси), которая не дает игроку выпасть за пределы уровня или застрять в его геометрии в процессе игры.
Обычно настройки игрового функционала скрыты от глаз обычного игрока и видны только в редакторе уровней. Например, настройки геймплейной части уровня в Bulletstorm (2011, Epic Games, People Can Fly) выглядят вот так:
Bulletstorm © 2011, Epic Games, People Can FlyИтак, мы рассмотрели строение типичного игрового уровня, базовая структура которого состоит из следующих элементов — структурная геометрия, детализация в виде пропсов и декалей, освещение, аудио- и видеоэффекты, а также игровой функционал.
Как получить авторские права на игру
Наверняка многие задавались вопросами касательно правового режима таких объектов, как компьютерные игры. Подробно рассмотрим все особенности связанные с ними, опираясь на Гражданский кодекс РФ.
Юридическая характеристика
Компьютерная игра в целом попадает под категорию объектов авторского права (произведений искусства) со специфичной — электронной — формой объективного выражения. Очевидно, что в процессе создания этого объекта присутствует творческий характер. Решающее значение имеет не содержание, а форма, т. е. то, как игра будет восприниматься другими людьми (потребителями конечного продукта).
Вместе с тем с точки зрения закона компьютерная игра — это не объект авторского права. специфика состоит в следующем: она является сложным объектом в соответствии со статьей 1240 Гражданского кодекса РФ.
Напомним, что сложным объектом признается такой результат интеллектуальной деятельности, который включает в себя другие равноправные объекты интеллектуальной собственности.
В качестве примеров в ГК РФ указаны аудиовизуальные произведения (в том числе и кинофильмы), театрально-зрелищные представления, базы данных и мультимедийные продукты.
Компьютерная игра по своей юридической природе является как раз мультимедийным продуктом, то есть сочетает в себе и визуальный ряд, и анимацию, и музыку, а также другие элементы.
Пару слов о правовом режиме сложном объекта: лицо, организовавшее его создание (например, игровая компания) по общему правилу должна заключить договоры с правообладателями соответствующих результатов интеллектуальной деятельности, чтобы стать полноценным обладателем комплекса исключительных прав на сложный объект. Договоры могут быть лицензионными и об отчуждении.
Приведем пример. Компания занимается разработкой компьютерной игры и нанимает сценариста, композитора, и аниматора, которые создают свои результаты интеллектуальной деятельности. Также компания заключает с ними договоры на передачу ей исключительных прав на каждый результат их творчества и в силу этого она становится единым правообладателем на сложный объект.
Результаты интеллектуальной деятельности, являющиеся составными элементами
Итак, в рамках компьютерной игры могут использоваться следующие объекты интеллектуальной собственности:
Сценарий, который представляет собой разновидность литературного произведения.
Музыку и звуковые эффекты, написанные специально для игры.
Довольно часто композитор сохраняет определенный набор исключительных прав на свои музыкальные композиции и вправе в пределах, установленных договором, использовать их, извлекая прибыль.
Так, легендарный японский композитор и автор саундтрека к игре Silent Hill Акира Ямаока исполняет свои композиции на сцене, гастролируя по всему миру.
Визуальный ряд, куда относится вся компьютерная графика и анимация персонажей.
Озвучивание персонажей, которое можно отнести к исполнению — объекту смежных прав (см. параграф 2 главы 71 четвертой части ГК РФ ). В данном случае актеры озвучки как раз и создают этот результат интеллектуальной деятельности, воплощая написанный сценарий.Программы для ЭВМ. В процессе разработки компьютерной игры могут быть специально придуманы новые программы, которые попадают под критерии охраны, закрепленные в Гражданском кодексе (см. статью 1261 ГК).
Так в игре GTA IV был использован специальный движок, делающий физику игры очень реалистичной, который по всем признакам является самостоятельным результатом интеллектуальной деятельность — программой для ЭВМ.
Иные объекты интеллектуальной собственности.
Обратим внимание, что в наш список попали не только объекты авторских, но и других интеллектуальных прав (например, п. 4 в списке).
По смыслу статьи 1240 ГК РФ авторы соответствующих объектов сохраняют за собой личные неимущественные права (авторства, на имя, на неприкосновенность произведения и т. д.). Следовательно, в случае посягательства на весь объект и существенного искажения одной из составных частей, автор может взыскать компенсацию морального вреда, например, на основании нарушения права на неприкосновенность.
Итоги
Таким образом, компьютерная игра как интеллектуальная собственность — это сложный объект с самостоятельным правовым режимом, определенным статьей 1240 ГК РФ, хотя в данном случае имеются и все признаки объектов авторского права.
Юридическая справка по вопросам авторского и патентного права
- Правовой режим использования настольной игры в сфере авторского и патентного права. Подлежит ли настольная игра охране как объект авторского и патентного права?
- Правовая оценка использования доменного имени сайта в сети Интернет, которое совпадает с зарегистрированным Товарным знаком.
- Имеет ли право гражданин осуществлять деятельность, направленную на обучение иных граждан в игровой форме.
Анализируемые нормативные акты:
UX обзор: Разработка правильных форм ввода информации
Пользователи телефонов оценят приложения, которые обеспечивают автоматическое появление адаптивной клавиатуры по запросу в поле ввода. Необходимо реализовать эту возможность последовательно, по всему приложению, а не только для конкретных задач.
(Image: Google)
Автозаполнение
Все больше и больше людей используют мобильные экраны, поэтому автозаполнение поможет предотвратить банальные опечатки и позволит улучшить опыт пользователей.
Например, заполнение полей с адресом, является наиболее проблемной частью любой регистрационной формы.
Такой инструмент как автозаполнение адреса (который использует геолокацию, чтобы обеспечить точное определение местоположения пользователя) позволяет пользователям указать свой адрес с меньшим числом нажатий клавиш чем обычные поля ввода.
Четко прописанные метки являются одним из основных способов сделать интерфейс более доступным. Правильные метки сообщают пользователю о цели поля ввода, сохраняют свою полезность, когда акцент делается на самом поле и остаются видимыми даже после того, как все поля были заполнены.
Количество слов
Метки не могут заменить текст. Необходимо употреблять емкие, короткие и понятные надписи (слово или два), чтобы пользователи могли быстро прочитать вашу форму. Предыдущие версии регистрационной формы на Amazon содержали много слов, что приводило к медленной регистрации. Нынешний вариант гораздо лучше и уже содержит короткие надписи.
Заглавные буквы в начале предложения vs. Заглавные Буквы в Начале Слова
В большинстве цифровых продуктов сегодня существует два способа использовать заглавные буквы:
- В начале слова: капитализация каждого слова, кроме предлогов и частиц — «Это Заглавные Буквы».
- В начале предложения: капитализация первого слова в предложении — «Это заглавные буквы».
Второй вариант используется для меток и имеет одно преимущество над первым: его немного проще читать. Если разница для коротких надписей незначительна, то для длинных она уже существенна. Теперь Вы Знаете Насколько Трудно Читать Длинный Текст в Заглавных Буквах.
Стоит также отметить, что для славянских и других кириллических письменностей, капитализация каждого слова в предложении нехарактерна, но в последние годы намечается сдвиг в русскоязычном сегменте под влиянием латиноязычных тенденций.
Избегайте КАПСА
Никогда не используйте заглавные буквы для написания всего слова, иначе форму будет сложно читать и гораздо труднее просматривать, потому что нет изменений в высоте символов.
Слова, написанные заглавными буквами сложнее читать
Выравнивание метки: Слева vs. Справа vs. Сверху
В статье Маттео Пенцо 2006-го года «О размещении метки» говорится о том, что формы завершаются быстрее, если метки стоят сверху полей. Верхняя ориентация хороша, если вы хотите, чтобы пользователи как можно быстрее просматривали форму.
Выравнивание по левому краю, по правому и сверху. (Image: UX Matters)
Самое большое преимущество выравнивания метки по верху заключается в том, что разные по размеру этикетки и локализованные версии сайта легко впишутся в интерфейс. (Это также хорошо для экранов с ограниченным пространством).
(Image: CSS-Tricks)
Самый большой недостаток выравнивания по левому краю поля — это то, что он имеет самое большое время исполнения. Вероятно это следствие визуального расстояния между меткой и полем ввода. Чем короче метка, тем дальше она будет от поля ввода.
Однако, медленный темп заполнения формы не всегда плох, особенно, если форма запрашивает конфиденциальные данные.
Если вы просите ввести что-то вроде номера водительского удостоверения или данные паспорта, вы должны сознательно замедлить пользователей, чтобы они вводили их правильно. Таким образом, время, потраченное на чтение поля ввода с конфиденциальными данными, незначительно.
Выравнивание по левому краю поля имеют еще один недостаток: они требуют больше горизонтального пространства, что может стать проблемой для пользователей мобильной версии сайта или приложения.(Image: CSS-Tricks)
Большим преимуществом выравнивания по правому краю поля является то, что такой способ усиливает визуальные связи между меткой и полем ввода. Предметы как бы получаются связанными друг с другом. Этот принцип не является новым.
Он вытекает из закона близости в гештальт-психологии. Для короткой формы, выровненная по правому краю метка может стать тем фактором, который уменьшит время ее прочтения. Недостатком здесь является дискомфорт.
Такие формы, в которых отсутствует расстояние от левого края, сложнее читать и просматривать.
(Image: CSS-Tricks)
Вывод: если вы хотите, чтобы пользователи быстро сканировали форму, ставьте метки над полями. Макет будет легче читать, так как глаза будут двигаться прямо вниз страницы. Однако, если вы хотите, чтобы пользователи были более внимательны, выравнивайте метки по левому краю формы. Такой порядок будет тормозить пользователя и заставлять его производить просмотр в Z-образном виде.
Встроенные подсказки
Набор подсказок в качестве заполнителя в поле ввода исчезает, как только пользователь фокусируется на этом поле. В то время, как встроенные подсказки могут успешно работать на двух полях формы (простая форма логина), плохой идеей будет замена ими визуальных меток полей, где требуется больше информации от пользователя.
(Image: snapwi)
Когда пользователь нажимает на поле ввода, надпись исчезает, и поэтому он не может перепроверить что писал, что от него хотят. Это увеличивает вероятность ошибки.
Другая проблема заключается в том, что пользователи могут ошибочно распознать встроенные подсказки как заполненные данные и, следовательно, игнорировать эти поля (исследование движения глаз Группой Нильсена Нормана подтверждает это).
Встроенные подсказки в поляхХорошее решение для проблемы встроенных подсказок — это плавающий ярлык. Встроенная подсказки будет отображаться по умолчанию, но как только поле ввода будет активизировано, встроенная подсказки исчезает, а метка сверху поля появляется.
(Image: MDS)
Вывод: не полагайтесь только на встроенную подсказку. Добавляйте метки, потому что после того, как поля заполнены, подсказки видно не будет. Используйте всплывающие метки, чтобы пользователи были уверены в правильности заполнения поля.
Нажатие на такую кнопку вызывает какие-то действия, например, отправка формы.
Первичные действия vs. Вторичные действия
Отсутствие визуального различия между первичными и вторичными действиями могут легко привести к провалу. Увеличение визуальной выразительности вторичных действий минимизирует риск ошибиться и усиливает ощущение движения к успешному результату.
Различие при одинаковом визуальном весе. (Image: Luke Wroblewski)
Расположение кнопки
Сложные формы, как правило, имеют кнопку «Назад». Если такая кнопка расположена прямо над полем ввода (как на первом скриншоте ниже), то пользователь может случайно нажать на нее. Все дело в том, что кнопка «Назад» — это вторичное действие, которое должно быть менее доступным (второй скриншот показывает правильное расположение вторичных кнопок).
«,»author»:»Alex Pavljenko»,»date_published»:»2017-09-02T18:22:32.341Z»,»lead_image_url»:»https://miro.medium.com/max/1200/1*hEOob0CBkIQ5ocTnNf8xYA.png»,»dek»:null,»next_page_url»:null,»url»:»https://medium.com/@pavljenko/ux-%D0%BE%D0%B1%D0%B7%D0%BE%D1%80-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D1%84%D0%BE%D1%80%D0%BC-%D0%B2%D0%B2%D0%BE%D0%B4%D0%B0-%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8-3844211d1e17″,»domain»:»medium.com»,»excerpt»:»ÐÑо-Ñо, кÑо иÑполÑзÑÐµÑ Ð²Ð°Ñе пÑиложение или ÑÐ°Ð¹Ñ Ð¿ÑеÑледÑÐµÑ Ð¾Ð¿ÑеделеннÑÑ ÑелÑ. ЧаÑÑо, единÑÑвеннÑм Ñагом к доÑÑÐ¸Ð¶ÐµÐ½Ð¸Ñ ÑÑой Ñели ÑвлÑеÑÑÑ⦻,»word_count»:887,»direction»:»ltr»,»total_pages»:1,»rendered_pages»:1}