Новости | Конференция | Чат | База данных | Творчество | Сообщество | О сайте | English | Помощь сайту |
Основные положения Итак.. Вы решили создать игру вашей мечты. Вы собираетесь переплюнуть х3 и даже Элиту. Ну что ж.. ......... Вы не знаете языков программирования. Вы не знакомы с gamedev`ом. Учтите к вам никто не присоединиться, пока не будет хоть какого-то графического движка или финансирования. Желательно и то и другое. В общем случае выход таков учите языки программирования и графические API, будь то OpenGL или DirectX. До первой игры вам предстоит довольно много пройти. Какой же выбрать язык программирования? Существуют мнения, что качественную программу (игру в частности) можно написать только на Си. Этот миф зародился еще в те времена, когда альтернативе Си не было... К сожалению, этого мнения придерживаются и работодатели – учтите это! На самом деле и Делфи и Бейсик (последних версий – где это уже самостоятельный язык программирования, а не интерпретатор) пригодны к написанию игр. Да, если написать тестовую, консольную программу, которая будет в цикле делать что-то математическое, то скорость будет самой большой у Си... Но, например, Делфи – самый быстрый в ООП программировании, причем, намного быстрее Си. ......... Еще возможно быть лидером и организовать финансирование (скорее из своего кармана, т.к. издатели не пойдут на такой риск давать деньги фирме без имени... ну или условия будут абсолютно неприемлемые). К сожалению, появились некоторые российские фирмы, которые проводят мощнейшую PR-кампанию, но выпускают ужасный продукт, правда, зарабатывая при этом огромные суммы. ......... Вы знаете какой-либо язык программирования. Но не знакомы с особенностями создания игр и работы с графикой. Не важно, какой опыт у вас есть в программировании. Вы не знаете, как создавать игры – значит, вы не знаете основного. Т.е. если вы опытный программист не думайте, что сможете сразу написать игру. Тут важен опыт. Я не могу вам объяснить, КАК написать игру – нет универсального способа. Программирование это творчество. Вот основные положения и советы: Игра состоит из графического, физического, звукового движков (они могут быть слиты в одну целую структуру). И игровой движок, который использует эти движки, при чем они не знают об игре ничего. Т.е. игр может быть много – движок один. Грубо говоря, движок это менеджер объектов такого плана – источник света, геометрия, система частиц, источник звука, материал и т.п. Он общаться с графическим API (DirectX, OpenGL) – будь то непосредственно с ним или через какой-либо интерфейс (если создается движок, который не зависит от графического API, например, с целью переделать его на игровые приставки). Игра предоставляет игроку возможность влиять на объекты движка. Игра – менеджер объектов типа (это пример ведь тут много чего может быть) корабль, планета, станция, ракета. Игровые объекты уже имеют связи с объектами в движке. В игру может быть добавлен скриптовый движок. На самом деле существует огромное количество вариантов архитектуры игр – я привел один из многих. Делайте движок как можно более универсальным, но не забывайте о его специализации – если он строго для космосимов, то не нужно добавлять в него поддержку чего-то абсолютно стороннего. Обязательно попробуйте написать свой движок – это даст вам огромный опыт. Не делайте лишнюю работу. Например, если у вас есть поддержка конверта из графического пакета Mesh`ей, то не пишите расчетчик нормалей – ведь за вас это сделает графический пакет. Когда пишите свой движок делайте под него редактор – где можно было бы редактировать материалы, делать конверт из графических редакторов в ваш формат, использовать NVMeshMender (для Bump`а) и NVTriStrip (для оптимизации mesh`ей) и т.д. Опять же делайте движок универсальным и устойчивым к изменению концепта. Т.е. чтобы вам не пришлось переписывать всё из-за того, что у вас теперь не симулятор линкора, а торговая стратегия (хотя это и сложно). Пишите движок постепенно. Добавляя по ходу разработки всё новые и новые возможности. Не следует считать, что вам не угнаться за новинками графики – не всё так сложно и быстро развивается. Разберитесь с 3д математикой. Узнайте что такое матрицы. Найдите себе хорошую математическую библиотеку. Это очень важно. Не бойтесь переписывать всё с нуля. Даже если вы и написали уже тысячи строк кода. Это окупиться. Проверено. Правильно применяйте ООП. Не стоит создавать объекты вроде TSputnic и TPlaneta – используйте более общие классы, типа TSkyObj. Тоже и про корабли. Да, можно взять и готовые движки – но всё равно большинство пунктов, которые я перечислил выше, относятся и к готовым движкам. Ведь еще нужно написать игровой движок... Ах да, ну и на последок не увлекайтесь сидением на профильных форумах (кроме ЕГи ессно) там обитают одни флудеры настоящие профессионалы просто работают и помогают новичкам, но никогда не будут обсуждать, например, на каком языке программирования писать.
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Дизайн Elite Games V5 beta.18 EGM Elite Games Manager v5.17 02.05.2010 |