Главная страница
Навигация по странице:

  • Тема: « Game Development »

  • Объект изучения

  • Задача проекта

  • Практическая значимость работы

  • Традиционно выделяемые жанры по Кутлалиеву Жанр Синонимы

  • Ролевая игра

  • Проект Гришин. Game Development


    Скачать 56.75 Kb.
    НазваниеGame Development
    АнкорПроект Гришин
    Дата12.03.2022
    Размер56.75 Kb.
    Формат файлаdocx
    Имя файлаПроект Гришин.docx
    ТипЗадача
    #393814

    Муниципальное общеобразовательное учреждение

    «Средняя общеобразовательная школа №59 им. И. Ромазана»

    Проектная работа по информатике

    Тема: «Game Development»

    Автор: Гришин Михаил,

    ученик 11 «А» класса

    Руководитель: Пластинин Антон Валерьевич

    Магнитогорск

    2022 год

    Содержание

    Оглавление


    Содержание 2

    Теоретическая честь 3

    1.Введение 3

    2.Компьютерная игра 4

    1.Определение 4

    2.История 5

    3.Классификация компьютерных игр 6

    1.Традиционная классификация по жанрам игр. 6

    4.Составляющие компьютерной игры 7

    5.Индустрия компьютерных игр 9

    6.Профессии 10

    7.Особенности 11

    Практическая часть 12

    1.Начало создания игры 12

    2.Создание игровой карты 13

    3.Создание игры 14

    1.Создание персонажа 14

    2.Введение жизненных показателей у сущностей и реализация системы боя 15

    3.Создание врагов и примитивного искусственного интеллекта 16

    4.Заключение 17

    Список используемых источников 18



    Теоретическая честь

    1. Введение


    Человечество стремительно развивается, вслед за этим развиваются и все сферы жизни, но вслед за этим развитием растут и требования к людям, их знаниям. Людям нужно как-то проводить досуг и новый мир даёт им эту возможность в компьютерных играх. Именно поэтому мой проект будет актуален

    Объект изучения: Игровая индустрия

    Цель проекта: Введение в игровую индустрию, изучение простейших игровых алгоритмов.

    Задача проекта: Развитие своих личных навыков в этой сфере

    Теоретическая значимость работы: Знакомство учеников с игровой индустрией

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


    1. Компьютерная игра

    1. Определение


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

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

    Компьютерные игры могут создаваться на основе фильмов и книг; есть и обратные случаи. С 2011 года компьютерные игры официально признаны в США отдельным видом искусства.

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


















    1. История


    Первые интерактивные электронные устройства, предназначенные специально для игр, и первые игровые программы для компьютеров были разработаны в США после Второй мировой войны. В 1948 году американские физики Томас Голдсмит-младший и Эстл Рей Манн запатентовали «развлекательное устройство на основе электронно-лучевой трубки», представлявшее собой электронный тир; более совершенным устройством был Tennis for Two (1958) — симулятор тенниса, созданный Уильямом Хигинботамом, сотрудником Брукхейвенской национальной лаборатории на базе осциллографа. Игровые программы создавались для первых компьютеров, изначально предназначенных для других целей: так, программа OXO (1952), имитирующая игру «крестики-нолики», была составлена для компьютера EDSAC британским учёным Александером Дугласом как часть его докторской диссертации в Кембриджском Университете; претендующая на звание первой компьютерной игры программа Spacewar! (1962) была написана Стивом Расселом и двумя другими студентами Массачусетского технологического института для мини-компьютера PDP-1.

    Аркадные игровые автоматы, подобные Computer Space (1971) Нолана Бушнелла и Pong (1972) Ральфа Баера, позже прозванного «отцом видеоигр» превратили компьютерные игры из забавы для программистов в коммерческий продукт. Ральфу Баеру также принадлежит звание разработчика первой игровой консоли, использующей телевизор в качестве устройства вывода — Magnavox Odyssey, выпущенной на американский рынок в 1972 году. Magnavox Odyssey и Pong пользовались колоссальным успехом, породив множество аппаратных и программных клонов от других производителей — этот бум положил начало индустрии компьютерных игр. Аркадный автомат Space Invaders, созданный в 1978 году японской компанией Taito, открыл золотой век аркадных автоматов как в Японии, так и в США — в свою очередь, это дало мощный толчок производству домашних консолей, подобных Atari 2600 (1977), и игр для них, часто являющихся портами игр с аркадных автоматов. Параллельно этому в университетской и научной среде продолжали создаваться игры для компьютеров-мейнфреймов, подобные Star Trek (1971), Colossal Cave Adventure (1975) или Empire (1977) — их распространению способствовало появление и распространение стандартных компьютеров, таких как PDP-10, и операционных систем семейства UNIX.
    1. Классификация компьютерных игр

    1. Традиционная классификация по жанрам игр.


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

    Традиционно выделяемые жанры по Кутлалиеву

    Жанр

    Синонимы

    Описание

    Действие

    Action, экшен

    Требующие хорошей моторики, глазомера

    Симулятор

    Simulation, Симуляция

    Имитирующее определённые направления деятельности

    Стратегия

    Strategy

    С упором на управление ресурсами

    Ролевая игра

    Role-playing Games

    С развитой системой изменения персонажей

    Приключения

    Adventure

    Предполагающие преодоление различных препятствии на пути персонажа

    Головоломка

    Puzzle

    Заключающиеся в решение логических задач, построенных на общем наборе правил


    1. Составляющие компьютерной игры


    1. Сеттинг

    Се́ттинг (англ. setting «помещение, установка, обстановка») — среда, в которой происходит действие; место, время и условия действия. Сеттинг может рассматриваться в настольных и компьютерных играх, в фильмах, художественных произведениях, новостях и др. Описывая сеттинг, пользователь определяет свойства реальности, моделируемой медиапродуктом.

    Одна игра может выходить в разных сеттингах. Например, объектами в игре «Монополия» могут быть рынки Нью-Йорка, а могут предприятия бывшего СССР — игра в обоих случаях остаётся одной и той же, меняется лишь обстановка.

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

    1. Геймплей

    Игровой процесс, или геймпле́й (англ. gameplay), — компонент игры, отвечающий за взаимодействие игры и игрока. Геймплей описывает, как игрок взаимодействует с игровым миром, как игровой мир реагирует на действия игрока и как определяется набор действий, который предлагает игроку игра.

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

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

    1. Индустрия компьютерных игр


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

    Индустрия компьютерных игр зародилась в середине 1970-х годов как движение энтузиастов и за несколько десятилетий выросла из небольшого рынка в мейнстрим с годовой прибылью в 9,5 миллиардов долларов в США в 2007 году и 11,7 миллиардов в 2008 году (согласно ежегодным отчётам ESA). На рынке работают как крупные игроки, так и небольшие фирмы и стартапы, а также независимые разработчики и сообщества (напр. Kickstarter и др.).

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

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

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

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

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


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

    1. Особенности


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

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

    Практическая часть

    1. Начало создания игры


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

    1. Создание игровой карты


    Для создания окружения я решил использовать способ «Splatter Tile», который заключается в том, что карта будет разбиваться на одинаковые квадраты (тайлсеты), хранящие в себе текстуры. При расположении этих квадратиков они будут гармонично сочетаться друг с другом, создавая впечатление, что карта состоит из одного квадрата.

    Некоторые мои тайлсеты используемые в игре:

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

    Функционал этой программы должен состоять в том, чтобы пользователь мог менять карту, а также добавлять игровые объекты (фонари, дома и т.д.).

    На эту задачу я отвёл себе 1 месяц и справился с ней.

    1. Создание игры

    1. Создание персонажа


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

    Я начал шерстить просторы интернета и наткнула на модель, которая мне понравилась, вот она:

    В зяв за основу, я начал перерисовывать эту модель в ту, которая подойдёт сеттингу моей игры и получилось так:

    После этого я создал класс «Animator» который хранится у каждой сущности в игре и отвечает за анимацию. В моей игре 5 типов анимаций:

    • Idle – Анимация ожидания (Содержит 4 кадра, длится 1 секунду)

    • Walk – Анимация передвижения обычным шагом (Содержит 4 кадра, длится 1 секунду)

    • Run – Анимация передвижения бегом (Содержит 4 кадра, те же, что и у анимации Walk, но длится 0.5 секунды, за счёт чего создаётся ощущения бега)

    • Attack – Анимация удара (Содержит 3 кадра, длится 0.5 секунды)

    • Hurt – Анимация получения удара (Содержит 3 кадра, длится 0.5 секунды)


    1. Введение жизненных показателей у сущностей и реализация системы боя


    В жизни мы не можем бегать вечно, как и вечно биться. У нас есть энергия, в играх этот показатель называется «stamina points», так же в игру я добавлю показатели жизненной энергии «health points». Эти показатели будут храниться у самих сущностей и будут выводиться над ними в виде зелёной и красной полоски, энергии и жизненных очков соответственно.

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

    Другая задача состояла в том, чтобы реализовать систему боя. Игрок может атаковать если у него есть хотя бы 10 очков энергии и, если он не находится в состоянии «Hurt».

    Когда сущность совершает удар, то перед ней в зависимости от направления создаётся зона удара. Сущность посылает сигнал игре, где игра проверяет какие сущности попали в это зону и возвращает ответ. Те сущности, которые попали в зону удара переходят в состояние «Hurt». Так же игрок бьёт в интервале 0.5 секунды и не может ударить снова.

    1. Создание врагов и примитивного искусственного интеллекта


    Если по задумке игрок должен прорываться через толпу врагов, то их нужно создать.

    Первая задача: создание алгоритма для передвижения врага.

    Для начала я решил просто передвигать врага по X или Y к нашему игроку. В теории, всё должно было сработать, но на деле враг начал передвигаться слишком обрывисто и меня это не устраивало. Посоветовавшись со своим учителем по программированию, я узнал про существование алгоритма Брезенхема. Смысл в том, что программа ищет значения косинуса и синуса и после этого искать «шаг», на который переместится враг по X и Y.

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

    Вторая задача: Создание алгоритма обхода препятствий.

    Изучив большинство алгоритмов на просторах интернета, я понял, что они слишком сложные для моего понимания, поэтому я решил сделать свой алгоритм попроще. Его суть была в том, что если враг встречал на своём пути препятствие, то он его просто обходил по координате X или Y, пока при использовании алгоритма Брезенхема враг не сможет пойти к игроку.

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


    1. Заключение


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

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

    Список используемых источников


    1. Статья «Компьютерная игра» URL:https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D0%B0%D1%8F_%D0%B8%D0%B3%D1%80%D0%B0

    2. Статья «Индустрия компьютерных игр» URL:https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D1%83%D1%81%D1%82%D1%80%D0%B8%D1%8F_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%BD%D1%8B%D1%85_%D0%B8%D0%B3%D1%80

    3. Статья «Сеттинг»

    URL:https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D1%82%D1%82%D0%B8%D0%BD%D0%B3

    1. Статья «Геймплей»

    URL:https://ru.wikipedia.org/wiki/%D0%93%D0%B5%D0%B9%D0%BC%D0%BF%D0%BB%D0%B5%D0%B9


    написать администратору сайта