Elite Games - Свобода среди звезд!

Уроки для программистов - Для тех, кто хочет писать игры

Основные положения

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


.........

Вы не знаете языков программирования. Вы не знакомы с gamedev`ом.

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

В общем случае выход таков — учите языки программирования и графические API, будь то OpenGL или DirectX.

До первой игры вам предстоит довольно много пройти.

Какой же выбрать язык программирования?

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

К сожалению, этого мнения придерживаются и работодатели – учтите это!

На самом деле и Делфи и Бейсик (последних версий – где это уже самостоятельный язык программирования, а не интерпретатор) пригодны к написанию игр.

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

.........

Еще возможно быть лидером и организовать финансирование (скорее из своего кармана, т.к. издатели не пойдут на такой риск — давать деньги фирме без имени... ну или условия будут абсолютно неприемлемые).
К сожалению, появились некоторые российские фирмы, которые проводят мощнейшую PR-кампанию, но выпускают ужасный продукт, правда, зарабатывая при этом огромные суммы.

.........

Вы знаете какой-либо язык программирования. Но не знакомы с особенностями создания игр и работы с графикой.

Не важно, какой опыт у вас есть в программировании. Вы не знаете, как создавать игры – значит, вы не знаете основного. Т.е. если вы опытный программист не думайте, что сможете сразу написать игру.

Тут важен опыт. Я не могу вам объяснить, КАК написать игру – нет универсального способа. Программирование это творчество. Вот основные положения и советы:

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

— Грубо говоря, движок это менеджер объектов такого плана – источник света, геометрия, система частиц, источник звука, материал и т.п. Он общаться с графическим API (DirectX, OpenGL) – будь то непосредственно с ним или через какой-либо интерфейс (если создается движок, который не зависит от графического API, например, с целью переделать его на игровые приставки).

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


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

Обязательно попробуйте написать свой движок – это даст вам огромный опыт.

— Не делайте лишнюю работу. Например, если у вас есть поддержка конверта из графического пакета Mesh`ей, то не пишите расчетчик нормалей – ведь за вас это сделает графический пакет.
— Когда пишите свой движок делайте под него редактор – где можно было бы редактировать материалы, делать конверт из графических редакторов в ваш формат, использовать NVMeshMender (для Bump`а) и NVTriStrip (для оптимизации mesh`ей) и т.д.
— Опять же — делайте движок универсальным и устойчивым к изменению концепта. Т.е. чтобы вам не пришлось переписывать всё из-за того, что у вас теперь не симулятор линкора, а торговая стратегия (хотя это и сложно).
— Пишите движок постепенно. Добавляя по ходу разработки всё новые и новые возможности. Не следует считать, что вам не угнаться за новинками графики – не всё так сложно и быстро развивается.
— Разберитесь с 3д математикой. Узнайте что такое матрицы. Найдите себе хорошую математическую библиотеку. Это очень важно.
— Не бойтесь переписывать всё с нуля. Даже если вы и написали уже тысячи строк кода. Это окупиться. Проверено.
— Правильно применяйте ООП. Не стоит создавать объекты вроде TSputnic и TPlaneta – используйте более общие классы, типа TSkyObj. Тоже и про корабли.

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

Ах да, ну и на последок — не увлекайтесь сидением на профильных форумах (кроме ЕГи ессно) — там обитают одни флудеры — настоящие профессионалы просто работают и помогают новичкам, но никогда не будут обсуждать, например, на каком языке программирования писать.
Jurec
К началу раздела | Наверх страницы Сообщить об ошибке
Уроки для программистов - Для тех, кто хочет писать игры
Все документы раздела: Для тех, кто хочет писать игры | Движок на OpenGL | Создание игр в Game Maker | Bump mapping | Использование Direct Input | XNA framework |


Дизайн Elite Games V5 beta.18
EGM Elite Games Manager v5.17 02.05.2010