Классификация по бюджету разработки
Описание предметной области
Компьютерные игры, с недавних пор это сочетание слов прочно вошло в нашу жизнь, любой, кто имеет компьютер безусловно смог почувствовать их привлекательность, вероятно, игра заложена в саму природу человека с давних времен. Компьютерные игры относят к числу современных проблем нынешней науки, так как они представляют собой уникальный продукт развития техники и современной личности. Игры помогают нам смоделировать разнообразные жизненные ситуации, проблемы и предоставляют некоторые возможные пути их разрешения. Игра содержит в себе все нужные предпосылки для естественного развития личности и культуры общества. С совершенствованием компьютеров улучшались и игры, привлекая все больше и больше людей. На сегодняшний день компьютерная техника достигла такого этапа развития, что позволяет программистам создавать очень реалистичные игры с хорошим графическим и звуковым сопровождением. Целью данного дипломного проекта является раскрытие сущности технологии компьютерных игр. Более 90 % современных детей и определённая часть взрослых играют в видеоигры. Что касается взрослых, то они сами в состоянии решить, нужны им эти игры или нет. Что касается детей, на самом ли деле видеоигры их развивают, а если и развивают, то сколько времени им можно уделять без вреда для гармоничного развития детей и подростков? Этим вопросом всерьёз занимался Европейский парламент, настолько его утомили предупреждения педагогов, психологов и прочих специалистов[4].
В итоге европарламент не нашёл свидетельств того, что видеоигры вредны для детей. По их мнению, даже жестокие игры полезны для детей. Многие игры развивают стратегическое, творческое, нестандартное мышление, а массовые игры учат взаимодействию между людьми. По данным исследований, проведенных в России, подростки, увлекающиеся видеоиграми, тратят на домашние задания примерно на 40 % меньше времени, чем это было бы нужно, а на чтение - на 30 % меньше времени. Поэтому дело родителей - регулировать время, которое дети могут проводить за видеоиграми. Таким образом, видеоигры могут быть полезны, а могут и навредить. Если дети увлекаются ими в разумных пределах, это способствует, наряду с прочей их деятельностью, умственному развитию и помогает усваивать новые умения.
Классификация игр
Классификация по жанру
1)Шутеры. Игра состоит в том, что вам рассказывают сюжет (не всегда), дают оружие и дают в кого стрелять, т.е. основная цель игры — стрельба. Делятся на шутеры от первого лица, и шутеры от третьего лица
2)Гонки. Думаю, здесь всё понятно. Суть этого жанра игр — дать вам почувствовать себя за рулём гоночного автомобиля, задача — обогнать соперников и добраться до финиша как можно быстрее.
Гонки делятся на симуляторы и аркадные. Симуляторы призваны как можно более реалистично передать управление автомобилем и окружение; аркады же призваны дать ощущение свободы, и не отличаются особой реалистичностью [2].
3)Аркада — игра, отличающаяся простым игровым процессом и управлением, чёткими основной и побочной задачами. Яркие примеры: Cut the Rope, Angry Birds, Where is My Water.
Также к этому жанру можно причислить и платформеры (2D игры, отличительная особенность которых — персонаж передвигается по платформам). Все выше упомянутые игры бесплатны, хоть и встречаются платные версии.
4)Квесты/головоломки. Задача здесь состоит в том, чтобы найти определённые предметы, собирать их, взаимодействовать с окружением. Лучшие: TheRoom, Syberia, Gemini Rue. Все игры платные.
5)Симуляторы. Данные игры сделаны для как можно более реалистичной передачи того или иного действия. Лучшие: Farming Simulator 2014, Construction Simulator 2014. Качественных бесплатных игр в данном жанре не имеется.
6)Песочница. Данный жанр игр предоставляет игроку открытый мир с множеством возможностей, одной из основных — строительство. Также игрок может добывать ресурсы, охотиться, воевать или содействовать с другими игроками на серверах. Песочницы нельзя пройти полностью — игрок может бесконечно развиваться. Лучшая песочница – Minecraft
7)Раннеры (с английского «to run»- бежать). В этих играх вам предстоит бежать (или по -другому передвигаться), уклоняться от препятствий, собирать бонусы и валюту, за которую можно покупать улучшения [6].
Раннеры невозможно пройти полностью — вы можете продвинуться бесконечно далеко, но рано или поздно вы всё равно умрёте (ведь темп игры всё время ускоряется). Лучшие: Subway Surfers.
8) Стратегии. В данных играх вам придётся поработать мозгами — здесь вам предстоит атаковать и/или защищаться, чтобы победить врага. Для этого нужно верно размещать на карте свои боевые единицы, укрепления, предугадывать и оперативно реагировать на действия противника [16].
9)MMORPG — жанр — фэнтези (в основном). Геймплей — развитие фэнтезийного персонажа в вымышленном мире, с системой заклинаний, навыков, оружия, общения, заданий, боя и так далее. Лучшие представители жанра: ArmedHeroes, AurcusOnline, Войны хаоса и порядка онлайн, FantasyVengeance — смесь стратегии/MMORPG, PocketLegends, ArcaneLegends (игру надо качать со сторонних ресурсов — недоступна в GooglePlay в СНГ, DarkLegends, MidgardRising3D). Есть хорошие бесплатные игры.
Классификация по сеттингу
Сеттинг (от англ. «setting» - обстановка, декорация, антураж) – игровой мир, место и время, в котором происходит действие художественного произведения [12].
Сеттинг указывается при описании игры, так как жанр определяет только игровой процесс (отвечает на вопрос «что?»), сеттинг же определяет окружающую обстановку в игре (отвечает на вопросы: «где?» и «когда?»).
Авторы могут комбинировать различные сеттинги между собой, таким образом появляются гибридные вымышленные миры, типа: фентези мир в эпоху киберпанка; мифологии различных стран в одном мире; «гостевые» персонажи из других вселенных.
По месту действия (тип вымышленного мира):
· Реальный мир (игровой мир мало чем отличается от нашего мира).
· Параллельные миры (реальный мир и переходы в искаженные миры).
· Альтернативная история (другие варианты исторических событий).
· Фэнтези (сказочный мир с наличием магии).
· Геройская мифология (сверхсущества: супергерои, мутанты, полубоги).
· Христианская мифология (ангелы, демоны, рай, ад).
· Современная мифология (нашествие зомби, нашествие инопланетян, постапокалипсис).
По времени действия (историческая эпоха):
· Зарождение жизни (простейшие организмы, игры на клеточном уровне).
· Доисторические времена (эра динозавров, пещерные люди).
· Зарождение цивилизаций (Древний Рим, Древний Египет).
· Средневековье (рыцарские походы, междоусобицы, инквизиция).
· Эпоха колонизации (морские путешествия, новые земли).
· Эпоха индустриализации (XVIII – XIX века, стимпанк).
· Прошедшие войны (Вторая Мировая война, локальные конфликты).
· Наше время (привычный мир).
· Информационная эпоха (киберпанк, антиутопия будущего).
· Освоение космоса (научная фантастика, SciFi, космические путешествия).
· Эволюция (наличие нескольких эпох в одной игре).
По условиям внутри мира:
· Место с определенной культурой (дикий запад, утонченный восток, арабские страны, банановая республика, тоталитарное государство).
· Определенная климатическая зона (арктика, тундра, лесостепь, пустыня, побережье, горы, воздушный мир, водный мир, подводный мир, подземный мир).
· Наличие катаклизма (нашествие зомби, пришельцев).
· Хоррор (пугающая, напряженная атмосфера).
Модель UML
UML — язык графического описания для объектного моделирования в области разработки программного обеспечения, моделирования бизнес-процессов и системного проектирования UML является языком широкого профиля, это — открытый стандарт, использующий графические обозначения для создания абстрактной модели системы, называемой UML-моделью.
UML-диаграмма – это специализированный язык графического описания, предназначенный для объектного моделирования в сфере разработки различного программного обеспечения. Данный язык имеет широкий профиль и представляет собой открытый стандарт, в котором используются различные графические обозначения, чтобы создать абстрактную модель системы. В данном проекте была создана диаграмма последовательности (рис.1).
Рисунок 1. Диаграмма последовательности
На данной диаграмме объекты располагаются слева направо.
2.4 Диаграмма компонентов.
Рисунок 2. Диаграмма компонентов
Главным компонентом диаграммы (рис 2.) является «Игрок», который так или иначе взаимодействует с другими компонентами. То есть может сталкиваться с ними, наносить урон, собирать, уничтожать или передвигаться по ним.
Компонент платформа является статическим объектом, который не дает игроку упасть ниже уровня камеры, при этом позволяя ему отталкиваться. При взаимодействии происходит проверка, является ли игровой объект платформой, если является, то персонаж может передвигаться, так же происходит проверка на метод Jump (прыжок) если платформа находится под объектом, наш персонаж может совершить прыжок, если платформа под ним нету, герой не может совершить прыжок, это сделано для того чтобы избежать множественных прыжков уже в воздухе
ГЛАВА 3. ОПИСАНИЕ ПРОЕКТА
3.1 Описание противников
В данном проекте была создана игра, обладающая простым и интуитивно понятным интерфейсом (рис.3), на игровой сцене присутствуют объекты: стреляющий противник, стационарный противник, аптечка, главный герой, статическое препятствие.
Рисунок 3. Интерфейс игры
Игровая сцена состоит из области изменяемого размера, на которой размещаются те или иные игровые объекты, в список которых входят:
1. Бегающий противник (рис. 4). Объект контролируется программным кодом MoveableMonster.cs (рис. 5)., в котором реализован класс MoveableMonster и основные методы, отвечающие за передвижение и атаку.
Рисунок 4. Бегающий противник
Рисунок 5. Программный код MoveableMonster.cs
Программный код MoveableMonster (рис. 5) содержащий класс MoveableMonster также содержит методы:
OnTriggerEnter2D (рис. 6). Метод обрабатывает столкновение объекта со стеной, меняя направление движения, или с игроком, нанося урон и отыгрывая анимацию получения урона.
Рисунок 6. Метод OnTriggerEnter2D
2. Стреляющий противник (рис. 7). Объект контролируется программным кодом ShootableMonster.cs (рис.8), в котором реализован класс ShootableMonster и основные методы, отвечающие за атаку.
Рисунок 7. Стреляющий противник
Рисунок 8. Программный код ShootableMonster.cs
Программный код ShootableMonster (рис. 8) содержащий единственный класс ShootableMonster также содержит методы:
1) Awake (рис. 9). В методе Awake мы получаем ссылку на объект bullet (снаряд) для её дальнейшего использования.
Рисунок 9. Метод Awake
2) Shoot (рис. 10). Метод задаёт координаты для объекта bullet (снаряд) и направление полёта снаряда
Рисунок 10. Метод Shoot
3) OnTriggerEnter2D (рис. 11). Метод реализует получение урона персонажем, и уничтожение стреляющего противника падением на него.
Рисунок 11. Метод OnTriggerEnter2D
3. Стационарный противник (рис. 11). Объект контролируется программным кодом Monster.cs (рис. 12)., в котором реализован класс Monster и основные методы, отвечающие за анимацию и атаку.
Рисунок 11. Стационарный противник
Рисунок 12. Программный код Monster.cs
Программный код Monster (рис. 12) содержащий класс Monster также содержит метод OnTriggerEnter2D (рис. 13). Метод отвечает за получение объектом урона и уничтожение при выстреле в него.
Рисунок 13. Метод OnTriggerEnter2D
3.2 Описание объектов игры
Задний фон (рис. 14). Объект фон не имеет свойств и методов, создается исключительно для отображения глубины, красоты и чувства законченности готового проекта.
Рисунок 14. Задний фон проекта(Background)
4.
1. Статичное препятствие (рис.15). Объект контролируется программным кодом Obstacle.cs (рис.16), в котором реализован класс obstacle и метод отвечающий за нанесение урона. Статичное препятствие размещается на сцене до запуска игры и служит как препятствием для продвижения игрока, так и возможной платформой для прыжка. К объекту прикрепляется дополнительно созданный физический материал, влияющий на контакт с объектом.
Рисунок 15. Статичное препятствие
Рисунок 16. Программный код obstacle.cs
Программный код Obstacle (рис. 16) содержащий класс Obstacle также содержит метод OnTriggerEnter2D (рис. 17). Метод отвечает за нанесение урона персонажу при контакте с ним.
Рисунок 17. Метод OnTriggerEnter2D
2. Аптечка (рис. 18). Объект контролируется программным кодом Heart.cs. (рис. 19) в котором реализован класс Heart и метод увеличивающий жизни персонажа на единицу. Аптечка располагается на сцене до запуска игры и при контакте с ней восстанавливает герою определенное количество здоровья, после чего уничтожается.
Рисунок 18. Аптечка
Рисунок 19. Программный код Heart.cs
Программный код Heart (рис. 19) содержащий класс Heart также содержит метод OnTriggerEnter2D (рис. 20). метод увеличивающий количество жизней персонажа на единицу.
Рисунок 20. Метод OnTriggerEnter2D
3. Главный герой (рис. 21). Основной компонент игры. Передвигается по уровню, сталкивается с разными объектами. Герой контролируется игроком. Для отслеживания столкновений с другими игровыми объектами и возможности передвигаться по уровню, для объекта «Герой» был создан программный код Character.cs (рис. 22)
Рисунок 21. Главный герой
Рисунок 22. Программный код Character.cs
Программный код Character (рис. 22) содержащий единственный класс Character также содержит методы:
1) Awake (рис. 23). Метод Awake передает переменным livesBar, rigidbody, animator, sprite, bullet доступ к компонентам, отвечающим за анимацию, перемещение объекта, количество жизней, снарядов и отображение изображения.
Рисунок 23. Метод Awake
2) Update (рис. 24). В методе Update, записывается повторение действий для движения, выстрела и прыжка главного героя
Рисунок 24. Метод Update
3) FixedUpdate (рис. 25). Метод запускается каждый фрейм. В методе проверяется свойство «grounded» – находится ли объект на земле (платформе или препятствии).
Рисунок 25. Метод FixedUpdate
4) Run (рис. 26). В методе задаётся вектор перемещения для главного героя, а также происходит Flip (отражение) спрайта по оси х, если он двигается не в ту сторону, то его спрайт отражается, а также проверяется переход из статичного состояния, в состояние бега.
Рисунок 26. Метод Run
5) OnTriggerEnter2D (рис. 27). Метод OnTriggerEnter2D отслеживает столкновение объекта со снарядом, и нанесение урона.
Рисунок 27. Метод OnTriggerEnter2D
4. Здоровье. Для отслеживания количества оставшегося здоровья персонажа был создан программный код LivesBar.cs (рис.28)
Рисунок 28. Программный код LivesBar.cs
Программный код LivesBar (рис. 28) содержащий класс LivesBar также содержит методы:
1) Awake (рис. 29). Метод Awake проверяет и получает значение hearts (сердечки).
Рисунок 29. Метод Awake
2) Refresh (рис. 30). Метод изменяет количество жизней в поле LivesBar (область жизней) если они убывают или прибывают.
Рисунок 30. Метод Refresh
5. Камера. Для реалистичного и более плавного движения камеры за главным героем был создан программный код CameraController (рис.31).
Рисунок 31. Программный код CameraController.cs
Программный код CameraController (рис. 31) содержащий класс CameraController также содержит метод Update (рис. 32). Метод Update отвечает за плавное движение камеры вслед за целью на указанном расстоянии и с указанной скоростью.
Рисунок 32. Метод Update
6. Энергия (рис. 33) . Для перехода на следующий уровень был создан данный вид бонусов, который при контакте с главным героем перемещает его на следующий уровень. Объект контролируется программным кодом Finish.cs
Рисунок 33. Энергия
Рисунок 33. Программный код Finish.cs
ЗАКЛЮЧЕНИЕ
Выполнение дипломного проекта позволило более подробно изучить среду разработки Unity3D которая имеет большое количество стандартных модулей. При помощи этих модулей легко реализовать программу, управляемую по событиям с графическим интерфейсом пользователя и сопровождаемую звуками.
Созданная программа отличается простотой эксплуатации, надежностью и обладает интуитивно понятным интерфейсом пользователя. Игру можно усложнить в дальнейшем, заменив логику уровней на более сложную, например, увеличить продолжительность прохождения уровней за счёт более сложного размещения объектов на игровой платформе.
В ходе выполнения дипломного проекта была создана компьютерная игра «Adventure». Для реализации поставленной цели были решены следующие задачи:
· Разработка технического задания
· Разработка модели Uml
· Разработка диаграммы компонентов
· Разработка описания программного продукта
· Разработка руководства пользователя
· Разработка руководства программиста
· Оформление отчет по практике
Создание программы «Adventure» позволило пользователям получить занимательный, интересный, не требовательный к ресурсам компьютера и не требующий специальной установки, программный продукт.
СПИСОК ЛИТЕРАТУРЫ
1. Роллингз, Эндрю. “Проектирование и архитектура игр”: пер. с англ./ Э. Роллингз, Д. Моррис. - М.: Вильямс, 2006 – 1040с.
2. Николаева О. “Эпидемия XXI века: телевидение, интернет и компьютерные игры”. - Ростов н/Д: Феликс, 2008 – 254с.
3. Конгер Д., “Физика для разработчиков компьютерных игр” - Москва: “Бином” 2007 – 180с.
4. Vahe Karamian. “Introduction to Game Programming: Using C# and Unity 3D” – New York, 2012 – 375c.
5. Terry Norton. “Learning C# by Developing Games with Unity 3D Beginner's GuideSep” – Klivlend, 2009 – 240c.
6. Matt Smith and Chico Queiroz “Unity 5.x Cookbook” – New York, 2014 – 470c.
7. Matt Smith and Chico Queiroz “Unity 4.x Cookbook” – New York, 2013 – 470c.
8. Joe Hocking. “Unity in Action: Multiplatform Game Development in C# with Unity 5” – Boston, 2010 – 1000c.
9. Jeremy Gibson “Introduction to Game Design, Prototyping, and Development: From Concept to Playable Game with Unity and C#” – Boston, 2011 – 310c.
10. Jeff W. Murray. “C# Game Programming Cookbook for Unity 3D” – Boston, 2014 – 540c.
11. Alex Okita. “Learning C# Programming with Unity 3D”. – New York, 2015 - 450с.
12. Касихин В.В. “Как стать создателем компьютерных игр. Краткое руководство”. – “Вильямс” 2006 – 150с.
13. Jonathan Tweet. Dungeon Master's Guide. Dungeons & Dragons Core Rulebook II / Jonathan Tweet, Monte Cook, Skip Williams. - Wizards of the Coast, Belgium, 2003. - 320 с.
14. Жарков В. А., “Компьютерная графика, мультимедиа и игры на Visual C#”, - Москва “Жарков пресс”, 2005 – 100с.
15. Рейнбоу В., “Компьютерные игры”. Энциклопедия. – С.: “Питер” 2005. -732с.
16. Раскин Д. “Интерфейс: новые направления в проектировании компьютерных систем” – Москва: “Русская редакция”, 2000 – 130с.
17. Шилдт Г. “Полный справочник по С#”, - “Вильямс”, 2008. - 752 с
18. Eric Lengyel “Mathematics for 3D Game Programming and Computer Graphics” – New York, 2011 – 200с.
19. Lan Millington and John Funge “Artificial intelligence for games” – New York, 2009 – 180с.
20. Павловская Т.А. “Программирование на языке высокого уровня” – “Питер” , 2005 – 155с.
ПРИЛОЖЕНИЯ
Приложение А
Руководство пользователя
После запуска программы в главном окне программы размещается игровое поле, на котором расположены игровые объекты: Главный герой, препятствия, противники, ресурсы, платформы и фон. (рис. 34)
Рисунок 34. Игровая платформа, главные объекты.
Перемещение главного героя осуществляется путем нажатия клавиш WASD (рис. 35) или стрелок (рис. 36).
Рисунок 35. Клавиши WASD
Рисунок 36. Стрелки
Главная цель игры-добраться до конца уровня, избегая встреч с бегающими (рис. 37)., стреляющими (рис. 38) или стационарными противниками (рис. 39).
Рисунок 37.
Рисунок 38.
Рисунок 39.
Обходя статичные (рис. 40) препятствия
Рисунок 40. Статичное препятствие
Собирать сердечки, увеличивающие количество жизни (рис. 41).
Рисунок 41. Сердечки
Чтобы добраться до окончания уровня, и собрать Энергию (рис. 42).
Рисунок 42. Энергия
Приложение Б
Руководство программиста
Выполненная программа представляет собой игру «Adventure» разработанную с использованием инструментальных средств разработки «Unity».
Программа включает в себя файлы кода:
Character, moveablemonster, shootablemonster, livesbar, monster, cameracontroller и obstecle, отвечающих за работу и взаимодействие игровых объектов.
Программный код Character (рис. 22) содержащий единственный класс Character также содержит методы:
1) Awake (рис. 43). Метод Awake передает переменным livesBar, rigidbody, animator, sprite, bullet доступ к компонентам, отвечающим за анимацию, перемещение объекта, количество жизней, снарядов и отображение изображения.
Рисунок 43. Метод Awake
2) Update (рис. 44). В методе Update, записывается повторение действий для движения, выстрела и прыжка главного героя
Рисунок 44. Метод Update
3) FixedUpdate (рис. 45). Метод запускается каждый фрейм. В методе проверяется свойство «grounded» – находится ли объект на земле (платформе или препятствии).
Рисунок 45. Метод FixedUpdate
4) Run (рис. 46). В методе задаётся вектор перемещения для главного героя, а также происходит Flip (отражение) спрайта по оси х, если он двигается не в ту сторону, то его спрайт отражается, а также проверяется переход из статичного состояния, в состояние бега.
Рисунок 46. Метод Run
5) OnTriggerEnter2D (рис. 47). Метод OnTriggerEnter2D отслеживает столкновение объекта со снарядом, отнимая жизни.
Рисунок 47. Метод OnTriggerEnter2D
Программный код LivesBar (рис. 28) содержащий класс LivesBar также содержит методы:
1) Awake (рис. 48). Метод Awake проверяет и получает значение hearts (сердечки).
Рисунок 48. Метод Awake
2) Refresh (рис. 49). Метод изменяет количество жизней в поле LivesBar (область жизней) если они убывают или прибывают.
Рисунок 49. Метод Refresh
Программный код MoveableMonster (рис. 5) содержащий класс MoveableMonster также содержит методы:
1) OnTriggerEnter2D (рис. 50). Метод обрабатывает столкновение объекта со стеной, меняя направление движения, или с игроком, нанося урон и отыгрывая анимацию получения урона.
Рисунок 50. Метод OnTriggerEnter2D
Программный код ShootableMonster (рис. 8) содержащий единственный класс ShootableMonster также содержит метод
1) Awake (рис. 51). В методе Awake мы получаем ссылку на объект bullet (снаряд) для её дальнейшего использования.
Рисунок 51. Метод Awake
2) Shoot (рис. 52). Метод задаёт координаты для объекта bullet (снаряд) и направление полёта снаряда
Рисунок 52. Метод Shoot
3) OnTriggerEnter2D (рис. 53). Метод реализует получение урона персонажем, и уничтожение стреляющего противника падением на него.
Рисунок 53. Метод OnTriggerEnter2D
Программный код Monster (рис. 12) содержащий класс Monster также содержит метод OnTriggerEnter2D (рис. 54). Метод отвечает за получение объектом урона и уничтожение при выстреле в него.
Рисунок 54. Метод OnTriggerEnter2D
Программный код CameraController (рис. 31) содержащий класс CameraController также содержит метод Update (рис. 55). Метод Update отвечает за плавное движение камеры вслед за целью на указанном расстоянии и с указанной скоростью.
Рисунок 55. Метод Update
Созданы объекты: Block, Bullet, Character, Heart, Monster, MoveablyMonster, Obstacle, ShootableMonster, (рис. 28).
Рисунок 56. Отображение игровых объектов в Unity3D
Также созданы анимации для объектов Character, Plant, Worm, BlueDude (рис. 29).
Рисунок 57. Отображение анимаций в Unity3D
Игра была скомпилирована, создан файл формата exe, позволяющий запускать игру на любом компьютере с операционной системой Windows, IOS или Linux. Файл был назвал IndianasTraveling.exe. Повторная компиляция игры возможна из инструментальных средств Unity.
Описание предметной области
Компьютерные игры, с недавних пор это сочетание слов прочно вошло в нашу жизнь, любой, кто имеет компьютер безусловно смог почувствовать их привлекательность, вероятно, игра заложена в саму природу человека с давних времен. Компьютерные игры относят к числу современных проблем нынешней науки, так как они представляют собой уникальный продукт развития техники и современной личности. Игры помогают нам смоделировать разнообразные жизненные ситуации, проблемы и предоставляют некоторые возможные пути их разрешения. Игра содержит в себе все нужные предпосылки для естественного развития личности и культуры общества. С совершенствованием компьютеров улучшались и игры, привлекая все больше и больше людей. На сегодняшний день компьютерная техника достигла такого этапа развития, что позволяет программистам создавать очень реалистичные игры с хорошим графическим и звуковым сопровождением. Целью данного дипломного проекта является раскрытие сущности технологии компьютерных игр. Более 90 % современных детей и определённая часть взрослых играют в видеоигры. Что касается взрослых, то они сами в состоянии решить, нужны им эти игры или нет. Что касается детей, на самом ли деле видеоигры их развивают, а если и развивают, то сколько времени им можно уделять без вреда для гармоничного развития детей и подростков? Этим вопросом всерьёз занимался Европейский парламент, настолько его утомили предупреждения педагогов, психологов и прочих специалистов[4].
В итоге европарламент не нашёл свидетельств того, что видеоигры вредны для детей. По их мнению, даже жестокие игры полезны для детей. Многие игры развивают стратегическое, творческое, нестандартное мышление, а массовые игры учат взаимодействию между людьми. По данным исследований, проведенных в России, подростки, увлекающиеся видеоиграми, тратят на домашние задания примерно на 40 % меньше времени, чем это было бы нужно, а на чтение - на 30 % меньше времени. Поэтому дело родителей - регулировать время, которое дети могут проводить за видеоиграми. Таким образом, видеоигры могут быть полезны, а могут и навредить. Если дети увлекаются ими в разумных пределах, это способствует, наряду с прочей их деятельностью, умственному развитию и помогает усваивать новые умения.
Классификация игр
Классификация по жанру
1)Шутеры. Игра состоит в том, что вам рассказывают сюжет (не всегда), дают оружие и дают в кого стрелять, т.е. основная цель игры — стрельба. Делятся на шутеры от первого лица, и шутеры от третьего лица
2)Гонки. Думаю, здесь всё понятно. Суть этого жанра игр — дать вам почувствовать себя за рулём гоночного автомобиля, задача — обогнать соперников и добраться до финиша как можно быстрее.
Гонки делятся на симуляторы и аркадные. Симуляторы призваны как можно более реалистично передать управление автомобилем и окружение; аркады же призваны дать ощущение свободы, и не отличаются особой реалистичностью [2].
3)Аркада — игра, отличающаяся простым игровым процессом и управлением, чёткими основной и побочной задачами. Яркие примеры: Cut the Rope, Angry Birds, Where is My Water.
Также к этому жанру можно причислить и платформеры (2D игры, отличительная особенность которых — персонаж передвигается по платформам). Все выше упомянутые игры бесплатны, хоть и встречаются платные версии.
4)Квесты/головоломки. Задача здесь состоит в том, чтобы найти определённые предметы, собирать их, взаимодействовать с окружением. Лучшие: TheRoom, Syberia, Gemini Rue. Все игры платные.
5)Симуляторы. Данные игры сделаны для как можно более реалистичной передачи того или иного действия. Лучшие: Farming Simulator 2014, Construction Simulator 2014. Качественных бесплатных игр в данном жанре не имеется.
6)Песочница. Данный жанр игр предоставляет игроку открытый мир с множеством возможностей, одной из основных — строительство. Также игрок может добывать ресурсы, охотиться, воевать или содействовать с другими игроками на серверах. Песочницы нельзя пройти полностью — игрок может бесконечно развиваться. Лучшая песочница – Minecraft
7)Раннеры (с английского «to run»- бежать). В этих играх вам предстоит бежать (или по -другому передвигаться), уклоняться от препятствий, собирать бонусы и валюту, за которую можно покупать улучшения [6].
Раннеры невозможно пройти полностью — вы можете продвинуться бесконечно далеко, но рано или поздно вы всё равно умрёте (ведь темп игры всё время ускоряется). Лучшие: Subway Surfers.
8) Стратегии. В данных играх вам придётся поработать мозгами — здесь вам предстоит атаковать и/или защищаться, чтобы победить врага. Для этого нужно верно размещать на карте свои боевые единицы, укрепления, предугадывать и оперативно реагировать на действия противника [16].
9)MMORPG — жанр — фэнтези (в основном). Геймплей — развитие фэнтезийного персонажа в вымышленном мире, с системой заклинаний, навыков, оружия, общения, заданий, боя и так далее. Лучшие представители жанра: ArmedHeroes, AurcusOnline, Войны хаоса и порядка онлайн, FantasyVengeance — смесь стратегии/MMORPG, PocketLegends, ArcaneLegends (игру надо качать со сторонних ресурсов — недоступна в GooglePlay в СНГ, DarkLegends, MidgardRising3D). Есть хорошие бесплатные игры.
Классификация по сеттингу
Сеттинг (от англ. «setting» - обстановка, декорация, антураж) – игровой мир, место и время, в котором происходит действие художественного произведения [12].
Сеттинг указывается при описании игры, так как жанр определяет только игровой процесс (отвечает на вопрос «что?»), сеттинг же определяет окружающую обстановку в игре (отвечает на вопросы: «где?» и «когда?»).
Авторы могут комбинировать различные сеттинги между собой, таким образом появляются гибридные вымышленные миры, типа: фентези мир в эпоху киберпанка; мифологии различных стран в одном мире; «гостевые» персонажи из других вселенных.
По месту действия (тип вымышленного мира):
· Реальный мир (игровой мир мало чем отличается от нашего мира).
· Параллельные миры (реальный мир и переходы в искаженные миры).
· Альтернативная история (другие варианты исторических событий).
· Фэнтези (сказочный мир с наличием магии).
· Геройская мифология (сверхсущества: супергерои, мутанты, полубоги).
· Христианская мифология (ангелы, демоны, рай, ад).
· Современная мифология (нашествие зомби, нашествие инопланетян, постапокалипсис).
По времени действия (историческая эпоха):
· Зарождение жизни (простейшие организмы, игры на клеточном уровне).
· Доисторические времена (эра динозавров, пещерные люди).
· Зарождение цивилизаций (Древний Рим, Древний Египет).
· Средневековье (рыцарские походы, междоусобицы, инквизиция).
· Эпоха колонизации (морские путешествия, новые земли).
· Эпоха индустриализации (XVIII – XIX века, стимпанк).
· Прошедшие войны (Вторая Мировая война, локальные конфликты).
· Наше время (привычный мир).
· Информационная эпоха (киберпанк, антиутопия будущего).
· Освоение космоса (научная фантастика, SciFi, космические путешествия).
· Эволюция (наличие нескольких эпох в одной игре).
По условиям внутри мира:
· Место с определенной культурой (дикий запад, утонченный восток, арабские страны, банановая республика, тоталитарное государство).
· Определенная климатическая зона (арктика, тундра, лесостепь, пустыня, побережье, горы, воздушный мир, водный мир, подводный мир, подземный мир).
· Наличие катаклизма (нашествие зомби, пришельцев).
· Хоррор (пугающая, напряженная атмосфера).
Классификация по бюджету разработки
От того, какие средства вложены в игру, зависит её внешний вид, проработанность деталей, разнообразие игровых возможностей.
Профессиональная игра высокого качества (ААА-класс, блокбастеры).
Самые дорогие игры у всех на виду. Их разработка стоит огромных денежных средств, в разработке участвуют огромные количества людей, а результат нацелен на самую широкую аудиторию, и, за счёт большого количества покупателей, такие игры окупают свой гигантский бюджет. Можно критиковать блокбастеры за их однотипность и упрощенность, но в своей сфере они служат двигателями игровой индустрии - именно за счёт этих игр развивается уровень графики, появляются новые игровые движки для игр с более ограниченным бюджетом.
Профессиональная игра (игры со средним бюджетом).
Игры, создаваемые профессионалами, но без использования больших бюджетов. В таких играх меньше лоска, ограниченное число спецэффектов, разнообразных ландшафтных деталей, но в целом, чувствуется профессиональный подход.
Инди-игра (независимая игра, малобюджетная игра).
Игры, создаваемые одним автором или небольшой группой. Инди-авторы – это чаще всего профессионалы в своём деле, у них получаются очень хорошие игры. Единственный минус – при создании инди-игр не расходуются средства на покупку сторонних специалистов, всё создаётся самостоятельно. Игры выходят с исключительным игровым процессом, но с низким качеством графики. (Инди-игры могут выходить и с отличной графикой, но при этом процесс разработки растягивается на долгие годы).
Любительская игра (бесплатная игра с минимальным качеством).
Сейчас существует множество игровых движков, значительно упрощающих процесс создания игры. Порог