---
title: Создание компьютерной игры
date: 2008-09-19T15:22
tags: [ai, design, go, php, игры]
---

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

Универсальная игра сочетает в себе три качества — история, творчество, соревнование. Сочетания этих качеств приводят к опыту — воображения, навыка и драмы.

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

<!-- truncate -->

### Выбор идеи и типа

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

- фантастика / будущее / космос
- фэнтези / мифология / религия
- реальность / история / криминал / война / симуляция / строительство / спорт
- математические и физические головоломки
- художественная литература

Дальше - продумать против чего игрок должен бороться и чем управлять. Это конкретные активные противники (стратегии / стрелялки) или же результат деятельности самого игрока (логические игры). В результате сценария игра так или иначе приводит к жанру и способам управления:

---

- Аркады. Как правило легко реализуемые двухмерные пространства с простыми правилами столкновений, движения и тп. Это могут быть космические стрелялки, всяческие "офисные киллеры" на flash  
    _Tennis, Snake, Pacman, Bomberman, Mario_
- Квесты_/Приключения_. К настоящему времени практически вымер как вид, слившись с RPG. Развивает индуктивность игрока по сложению и совмещению вещей для достижения цели._  
    Monkey island, sam & max, grim fandango_
- 2х и 2.5-мерные (изометрические) стратегии и ролевые игры. Тренируют у игрока баланс ресурсов и выполнение квестов соответственно.  
    _Dune, Warcraft, C&C_
- 2.5D и 3D стрелялки. Игры на реакцию и плановый расход патронов. Квесты как правило очень упрощены
- Бесконечные строилки. Игры теоретически бесконечные типа _SimCity, Sims, Black and White, Populous_. Цель в поддержании процесса за счёт управления многочисленными падающими параметрами преступности, пожароопасности, голода, сна и тп.
- MMO - в общем случае не обязательно RPG, тут основная цель игрока - рубиться на пару с другими живыми людьми а цель игростроителя - выкачивать деньги со своего опиумного поля для народа. Браузерные игрушки типа «[Бойцовский клуб](http://www.combats.com/)», [Ферма вконтакте](http://farmer.vkontakte.ru/) и тд.  
    

### Втягиваемость

Человек поглощает информацию как пищу - обучение как физиологический процесс приносит удовлетворение когда после привыкания к условиям, человек приспосабливается и играет успешно. Итого можно выделить уровень умения игрока, скорость обучения и интерес к игре в определённый момент. Этот процесс вникания и интереса психологи называют [потоком](http://flash-ripper.com/content/casual-vs-hard%D1%81ore), и правильный концепт игры должен учитывать целевую аудиторию на которую она расчитана.

Разные жанры по разному подходят к увеличению времени игры. Квесты стараются сделать более нелинейными, спрятать пасхальные яйца что-бы ситуацию можно было обойти разными способами. Стрелялки разбавляют разными степенями сложностями (видимо просто одна глобальная переменная). В стратегии вносят возможность сыграть за разные фракции. РПГ - за разные классы. Аркады - разный фон, музыку, цвета и типы моделей.


![](../img/Pasted%20image%2020241020022225.png)

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

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

### Механика и баланс

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

Баланс очень связан с математикой. Если в стратегии делаются 3 разных расы, или в РПГ 3 класса, то каждый из них получает какие-то уникальные преимущества — **скорость** постройки/регенерации/движения/атаки/восстановления способности, **размер** атаки/жизни/меткости/критичного бонуса/защиты. Некоторые из них можно легко просчитать и свести к балансу (размер жизни и атаку например).  

##### Типы баланса

Игрок против игрока

- Равенство — все имеют равный шанс для выигрыша в начале игры
- Догоняемость — у игроков «разумный» шанс догнать увеличивающуюся сложность игры
- Политика — в командной игре личные заслуги награждаются выше социальных

Игрок против среды

- Умеренная сложность — начальные уровни ознакомительные, которые дают начальное **чувство достижения**
- Умеренные размеры ресурсов
- Отсутствие единого стиля для победы

Экономика

Практически во всех играх кроме квестов и игр на логику есть манипуляция с числами — деньги, здоровье, аммуниция, ресурсы. Для правильного балансы надо расчитать входы (число healthpack'ов, шахт с золотом) и их место и выходы (затраты на уничтожение монстров).

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

![](../img/Pasted%20image%2020241020022234.png)

![](../img/Pasted%20image%2020241020022239.png)

![](../img/Pasted%20image%2020241020022244.png)

![](../img/Pasted%20image%2020241020022249.png)

![](../img/Pasted%20image%2020241020022253.png)

![](../img/Pasted%20image%2020241020022258.png)

### Движки

Когда дело доходит до практики, то писать игру с нуля на C++, C#, Python, Lua не самое разумное решение. Во-первых прийдётся первое время заниматься математикой проекций (если это 3d), столкновений, поиска троп, анимации.. Выгодней использовать существующие движки и уже заниматься интегрированием существующих ресурсов и логики с движком. Вот самые-самые на данный момент:

1. Unreal engine 3 (Epic). Нацелен на 3D игры от первого или третьего лица. Отличная генерация светотеней (lightmap)
2. Gamebryo Lightspeed (Emergent Game Technologies). 
3. CryEngine3 (Crytek)
4. Unity3D. Урезанная версия бесплатна. Есть просмотр в браузере и iphone.
5. Gamemaker (2D). Написан давно на Delphi причём [достаточно хреново](http://garion.gwplus.net/2007/06/game-makers/). Не совсем возможно работать с полупрозрачностью png, большая загрузка памяти. В основе лежит разделение игры на комнаты и объекты. Они в свою очередь описываются спрайтами, звуками и полностью контролируются скриптами. Скрипты можно писать визуально кнопками
6. [Torque 3D](http://www.garagegames.com/products/torque-3d)

Как альтернатива всегда остаётся Adobe Flash для web-ориентированных игр ([Assembler](http://www.gamereclaim.com/2008/10/128/), [Bouncer](http://www.eblog.ru/index.php?newsid=3315), [Robokill Trainer](http://armorgames.com/play/2602/robokill-trainer), [Про ёлку](http://elka.properm.ru/), [Порули как Ансип](http://www.juhinaguansip.eu/index_rus.php), [Tiget of Misore](http://www.gamesforwork.com/games/play-10066-Tiger_of_Mysore-Flash_Game). Для него существуют тоже множество скелетов:

- [APE](http://www.cove.org/ape/index.htm)
- [FFilmation](http://www.ffilmation.org/website/)
- [Alternativa 3D](http://alternativaplatform.com/ru/alternativa3d/)
- [Papervision 3D](http://papervision3d.org/)
- [Away3D](http://away3d.com/)

  

### Графика

Как видно выше — в зависимости от движка нужна своя графика. В 2D играх это спрайты которые неприятно отрисовывать для анимации, для изометрических игр кроме спрайтов ещё надо учитывать и что впереди чего находится, а для 3д игр — создавать модели. Дизайн для **casual games** можно посмотреть у компаний [kraisoft](http://www.kraisoft.com/), [armor games](http://armorgames.com/). Текстурі - [gamesanatomy](http://gamesanatomy.ru/fileuncat-51.html), [blitzkrieg](http://www.blitzkrieg-portal.co.uk/default.asp?content=downloads&category=20), [sprite database](http://sdb.drshnaps.com/SpritesCustom.html). А 3d модели можно купить на [turbosquid.com](http://www.turbosquid.com/), впрочем надо учитывать что для игр обязательно нужны **низкополигональные модели** — никакой движок не сможет учитывать всю механику и логику, да ещё и поддержывать высокий FPS с тысячами бегающих фигурок с качеством от_render_'нутого фильма.

### Музыка

Помоему самые хорошие музыкальные сопровождения у Heroes of Might and Magic 3, Max Payne 2 и Oblivion. Отличаются профессиональным оркестром. Но даже и без него много музыкантов специально работают на эту индустрию. Есть несколько сайтов посвящённым либо коллекционированию озвучки эффектов, либо существующих OST. Надо понимать что это специфичная музыка и во многом зависит от игры — некоторые просто фоновые, другие зависят от состояния персонажа (битва, специальная локация, меню).

- [Game ost](http://www.en.game-ost.ru/)
- [Pacdv](http://www.pacdv.com/sounds/index.html)
- [Soundjay](http://www.soundjay.com/)
- [Free sound files](http://freesoundfiles.tintagel.net/Audio/)

Читайте также

- Вопросы собеседования [#1](http://alenacpp.blogspot.com/2010/03/blog-post_02.html), [#2](http://alenacpp.blogspot.com/2010/03/blog-post_02.html), [#3](http://alenacpp.blogspot.com/2010/03/blog-post_03.html), [#4](http://alenacpp.blogspot.com/2010/03/blog-post_04.html)  
    
- [Avoiding Ten most common game AI mistakes](http://justinsboringpage.blogspot.com/2007/10/avoiding-ten-common-game-ai-mistakes.html)
- [Video game design 1990-2008](http://www.webdesignerdepot.com/2008/12/video-game-design-between-1990-2008/)
- Статьи на [Gamedev.ru](http://www.gamedev.ru/articles/)
- Текущие разрабатываемые [игры на dtf.ru](http://dtf.ru/project/list.php)
- [Конференция разработчиков игр](http://www.kriconf.ru/)
- [Золотой пантеон ag.ru](http://www.ag.ru/reviews/gold)
- [Разработка игр на render.ru](http://www.render.ru/forum/viewforum.php?forum_id=24)
- [Курс дизайна компьютерных игр](http://www.cs.uu.nl/docs/vakken/gds/)
- Opensource 3х-мерная игра [Yo Frankie](http://www.yofrankie.org/)
- [0 A.D.](http://os.wildfiregames.com/) - opensource 3d RTS игра на C++
- [Создание игры 2D-шутера во flash](http://webanet.ru/game_2d_shooter.html)
- [Анатомия для 3д художников](http://artnotes.ru/?p=2475)
- [Will Wright](http://www.bafta.org/awards/video-games/will-wright-video-games-lecture-in-2007,254,BA.html)

## Related

- [Swagger](/ru/blog/tech/integration/swagger/)
- [Тихий компьютер к началу 2011 года](/ru/blog/tech/devices/tihiy-kompyuter-k-nachalu-2011-goda/)
- [League of legends](/ru/blog/игры/league-of-legends/)
