![]() |
Игровой движок общими усилиями
Предполагаю написать на C# под Net.Framework и DirectX игровой движок общими усилиями. Как программист я не очень, но 3d maxом пользуюсь 6 лет. Есть базовые понятия и неплохой склад ума, позволяющий выполнять некоторые логические решения.
Предполагаемая структура движка *.exe - собственно то, что объединит все написанное в одну кучу. *.core.dll - библиотека для *.exe файла, которая будет являться каркасом приложения (графический интерфейс, элементы управления, ссылки на файлы конфигурации и ссылки на необходимые составляющие элементы игрового движка). objects - папка с моделями и текстурами (с форматом моделей пока не определился, склоняюсь к написанию собственного). scripts - папка со скриптами в формате (*ini, *.lua или аналогичном) sounds - звуки Это первоначальная задача. На данном этапе можно попробовать реализовать хотя бы это - сделать *.dll библиотеку с основными классами и прикрепить к ней простенький *.exeшник (на подобие dxmut). |
А зачем? :)
|
Цитата:
|
А в чём проблема взять уже готовый? Тот же Unity3D...
|
Не люблю копаться в чужом белье. Проще написать что-то свое, чем изучать чужое. Тем более каждый "писатель" пишет код "под себя" своим методом и со своей "архитектурой"...:sml:
Все же предлагаю взяться за написание *.dll библиотеки с базовыми классами и параллельно писать к ней *.exe. |
Я предпочитаю время тратить на создание игры используя готовые решения. К тому же кустарный двиг будет хуже тех, что есть сейчас на рынке, начиная с того же Юньки. Движки писать это на любителя, а игры всё же делать интереснее...
|
Цитата:
|
Достаточно много успешных игр делается на UDK, CryEngine, Unity3D и других топовых движках. Так что ты не прав в этом изречении. ;) Например http://www.youtube.com/watch?v=f-2DyMTdDC4 делалась на Юньке. И сколько потребуется времени и сил на самопальный движок, чтобы он начал выдавать такую картинку http://www.youtube.com/watch?v=RMk5xf8DpCE ?
|
Цитата:
|
Лицензия на Unity3D стоит $1500. Но даже на бесплатной его версии с урезанными функциями можно делать и продавать игры. UDK более хапужный но и он последнее время к инди разработчикам повернулся на половину лицом. :) Однако до политики Юнитеха, UDK ещё долго поворачиваться. Так что уже с движками не всё так плохо. А Юнити уже по моему мнению картинку может выдавать не хуже чем тот же UDK. Только Юнитех больше прогеры, чем дизайнеры и у них таких красивых демок как на UDK пока нету (ну вон тот футуристичный мостик сделан на Юньке профессиональным дизайнером для своего портфолио).
|
Разработка игры на готовом движке:
1. Кротчайшие сроки сборки 2. Простота в использовании 3. Совместимость со многими форматами Разработка игры на своем движке: 1. Универсальность 2. Безграничные возможности 3. Полный контроль над авторскими правами |
Что значит безграничные возможности? И что даёт полный контроль над авторскими правами к любительскому движку, который никогда не дотянет да топовых (среди которых и Юнити)?
Да, универсальность так же у Юньки присутствует. :) |
Цитата:
Да и вообще. Не имея опыта создания движков что-то серьёзное не напишешь. Далее, на этом форуме не так много высококлассных программистов готовых реализовать такой сложный проект просто ради себя. За этим нужно идти на специализированные форумы. Ну и наконец, писать что-то своё глупо. Есть масса уже готовых решений на любой вкус. Бери, да пользуйся! |
Цитата:
|
Предполагаемая структура корневого каталога предполагаемой игры
Скрытый текст: |
Цитата:
|
Вот свой движок кстати должен давать наивысшую производительность (при условии что программист знает что делает). Далее правда встанет вопрос о его универсальности, то есть - можно ли будет на нём же сделать игру достаточно отличного жанра от самого первого. Но просто "на раз" - лучше делать самому.
Да и что понимать под этим словом? Графику - думаю ей можно заняться в последнюю очередь. Организовать просто для визуализации хоть какой-то кубики-шарики-пирамидки, а не нормально спроектированные машины и т.д. Если сильно не мудрить - замена далее пройдёт быстро. Физика - важно. Хотя зависит от жанра, опять же. ИИ - а вот тут надо работать очень осторожно. В одной из своих любимых стратегий уже видел как боты с "новой" тактикой создавали страшнейшие лаги, в то время как официальный ИИ вполне прилично работал. Сам игровой процесс (отношение объектов в ООП, если выберешь этот стиль, что скорее всего - да) - начинать стоит именно с этого. Приведённая структура папок, действительно, к созданию движка имеет самое последнее отношение. Сам сейчас занят над чем-то подобным. Начал с важнейшего - алгоритм поиска пути. Взял стандартный волновой алгоритм, и улучшаю его по мелочам пока. Понимаю - дальше будет ещё сложнее. Но у меня много интересных идей :) |
Nirnaeth, Для начала необходимо создать базовые классы, которые будут составлять некий каркас приложения. Затем, по мере написания кода, постепенно добавлять такие элементы, как графический пользовательский интерфейс, элементы управления, затем уже можно немного поэксперементировать в области построения рендеринга и попробовать организовать базу, которая позже составит модель скриптов...
P.S. Как программист я не очень. В свое время упустил это. Я художник, моделлер, имеющий богатый опыт работы в 3D Max`е. Если я немного затупляю, или же просто пишу всякую хрень, не имеющую смысла, так и скажи. |
Да, примерно так. Только экспериментировать не надо особо - можно из-за неопытности очень много мин раскидать которые под конец работы встретишь. Надо заранее определить приоритетные задачи в соответствии с тем что будет за игра, и работать только по ним.
Если например делаешь авиа\автосимулятор - то тут само собой на первом месте будет стоять физическая модель. И только потом графика и т.д. Начав с того что полностью опишешь модели самолётов и наложишь текстуры - это само по себе работу не продвинет. Хотя и это может быть важным, если например хочешь сделать красивые модели разрушений. Надо же будет хоть с чем-то работать для этого? Или другой пример - Geometry wars. ИИ врагов примитивен, движения по карте описываются фундаментальными формулами. Зато масса работы с графикой - потому что там в ней вся красота. |
Цитата:
2)Написание *.dll библиотеки, которая будет отвечать за рендер (работа с устройством, методы рендеринга, прочее). Эта библиотека будет являться неким графическим движком. К ней из вне будут прицеплены прочие элементы этой группы. 3) Написание *.dll библиотеки, отвечаюшей за скрипты. Здесь немного сложнее. Придется делать примитивную структуру этих скриптов. Скрипты в открытом формате (*.ini, *.txt). 4) Проработка геймплея и создание базовых элементов управления этим творением. 5) Графика, текстуры, прочее. 6) Звуки, музыка, прочее. Ну и хрень собачью я написал. Нда, неверное, не стоит этим заниматься. Особенно на VS2005 под Net.Framework и DirectX. |
| Часовой пояс GMT +4, время: 19:20. |
Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.