Форум Игромании
 
Регистрация
Справка
Пользователи Календарь Сообщения за день

 
 
Опции темы
Старый 19.03.2012, 19:43   #1
Новичок
 
Аватар для Xenar
 
Регистрация: 19.03.2012
Адрес: Неизведанные пещеры
Сообщений: 70
Репутация: 7 [+/-]
Игровой движок общими усилиями

Предполагаю написать на C# под Net.Framework и DirectX игровой движок общими усилиями. Как программист я не очень, но 3d maxом пользуюсь 6 лет. Есть базовые понятия и неплохой склад ума, позволяющий выполнять некоторые логические решения.

Предполагаемая структура движка

*.exe - собственно то, что объединит все написанное в одну кучу.

*.core.dll - библиотека для *.exe файла, которая будет являться каркасом приложения (графический интерфейс, элементы управления, ссылки на файлы конфигурации и ссылки на необходимые составляющие элементы игрового движка).

objects - папка с моделями и текстурами (с форматом моделей пока не определился, склоняюсь к написанию собственного).

scripts - папка со скриптами в формате (*ini, *.lua или аналогичном)

sounds - звуки

Это первоначальная задача. На данном этапе можно попробовать реализовать хотя бы это - сделать *.dll библиотеку с основными классами и прикрепить к ней простенький *.exeшник (на подобие dxmut).
Xenar вне форума  
Старый 20.03.2012, 11:03   #2
Юзер
 
Аватар для Badger_
 
Регистрация: 26.12.2008
Адрес: Россия
Сообщений: 365
Репутация: 67 [+/-]
А зачем?
Badger_ вне форума  
Старый 20.03.2012, 11:15   #3
Новичок
 
Аватар для Xenar
 
Регистрация: 19.03.2012
Адрес: Неизведанные пещеры
Сообщений: 70
Репутация: 7 [+/-]
Цитата:
Сообщение от Badger_ Посмотреть сообщение
А зачем?
Для дальнейшего использования сего в собственных целях...
Xenar вне форума  
Старый 20.03.2012, 11:53   #4
Юзер
 
Аватар для Badger_
 
Регистрация: 26.12.2008
Адрес: Россия
Сообщений: 365
Репутация: 67 [+/-]
А в чём проблема взять уже готовый? Тот же Unity3D...
Badger_ вне форума  
Старый 20.03.2012, 13:55   #5
Новичок
 
Аватар для Xenar
 
Регистрация: 19.03.2012
Адрес: Неизведанные пещеры
Сообщений: 70
Репутация: 7 [+/-]
Не люблю копаться в чужом белье. Проще написать что-то свое, чем изучать чужое. Тем более каждый "писатель" пишет код "под себя" своим методом и со своей "архитектурой"...

Все же предлагаю взяться за написание *.dll библиотеки с базовыми классами и параллельно писать к ней *.exe.
Xenar вне форума  
Старый 20.03.2012, 16:43   #6
Юзер
 
Аватар для Badger_
 
Регистрация: 26.12.2008
Адрес: Россия
Сообщений: 365
Репутация: 67 [+/-]
Я предпочитаю время тратить на создание игры используя готовые решения. К тому же кустарный двиг будет хуже тех, что есть сейчас на рынке, начиная с того же Юньки. Движки писать это на любителя, а игры всё же делать интереснее...
Badger_ вне форума  
Старый 20.03.2012, 16:49   #7
Новичок
 
Аватар для Xenar
 
Регистрация: 19.03.2012
Адрес: Неизведанные пещеры
Сообщений: 70
Репутация: 7 [+/-]
Цитата:
Сообщение от Badger_ Посмотреть сообщение
Движки писать это на любителя, а игры всё же делать интереснее
Если писать двиг с нуля, то такой подход к девелопингу позволит создать новый продукт, который будет являться уникальным в своем роде и не иметь аналогов. Если же использовать готовые решения в области построения игр, то такие проекты не увенчаются успехом...
Xenar вне форума  
Старый 20.03.2012, 17:10   #8
Юзер
 
Аватар для Badger_
 
Регистрация: 26.12.2008
Адрес: Россия
Сообщений: 365
Репутация: 67 [+/-]
Достаточно много успешных игр делается на UDK, CryEngine, Unity3D и других топовых движках. Так что ты не прав в этом изречении. Например http://www.youtube.com/watch?v=f-2DyMTdDC4 делалась на Юньке. И сколько потребуется времени и сил на самопальный движок, чтобы он начал выдавать такую картинку http://www.youtube.com/watch?v=RMk5xf8DpCE ?
Badger_ вне форума  
Старый 20.03.2012, 17:36   #9
Новичок
 
Аватар для Xenar
 
Регистрация: 19.03.2012
Адрес: Неизведанные пещеры
Сообщений: 70
Репутация: 7 [+/-]
Цитата:
Сообщение от Badger_ Посмотреть сообщение
Достаточно много успешных игр делается на UDK, CryEngine, Unity3D и других топовых движках.
Реализовать (выпустить) такие продукты будет весьма сложно. Я не думаю, что лицензия на CryEngine дешево стоит... Если делать проекты, используя готовые решения, то только для себя (не в коммерческих целях)...
Xenar вне форума  
Старый 20.03.2012, 17:43   #10
Юзер
 
Аватар для Badger_
 
Регистрация: 26.12.2008
Адрес: Россия
Сообщений: 365
Репутация: 67 [+/-]
Лицензия на Unity3D стоит $1500. Но даже на бесплатной его версии с урезанными функциями можно делать и продавать игры. UDK более хапужный но и он последнее время к инди разработчикам повернулся на половину лицом. Однако до политики Юнитеха, UDK ещё долго поворачиваться. Так что уже с движками не всё так плохо. А Юнити уже по моему мнению картинку может выдавать не хуже чем тот же UDK. Только Юнитех больше прогеры, чем дизайнеры и у них таких красивых демок как на UDK пока нету (ну вон тот футуристичный мостик сделан на Юньке профессиональным дизайнером для своего портфолио).
Badger_ вне форума  
Старый 20.03.2012, 17:52   #11
Новичок
 
Аватар для Xenar
 
Регистрация: 19.03.2012
Адрес: Неизведанные пещеры
Сообщений: 70
Репутация: 7 [+/-]
Разработка игры на готовом движке:
1. Кротчайшие сроки сборки
2. Простота в использовании
3. Совместимость со многими форматами

Разработка игры на своем движке:
1. Универсальность
2. Безграничные возможности
3. Полный контроль над авторскими правами
Xenar вне форума  
Старый 20.03.2012, 18:03   #12
Юзер
 
Аватар для Badger_
 
Регистрация: 26.12.2008
Адрес: Россия
Сообщений: 365
Репутация: 67 [+/-]
Что значит безграничные возможности? И что даёт полный контроль над авторскими правами к любительскому движку, который никогда не дотянет да топовых (среди которых и Юнити)?
Да, универсальность так же у Юньки присутствует.
Badger_ вне форума  
Старый 21.03.2012, 15:38   #13
Юзер
 
Аватар для CMETAHA

 
Регистрация: 24.06.2008
Адрес: Я тут
Сообщений: 472
Репутация: 172 [+/-]
Цитата:
Сообщение от Xenar Посмотреть сообщение
Предполагаемая структура движка
Это не структура. Это просто набор файлов и папок. Структура - это совершенно другое.
Да и вообще. Не имея опыта создания движков что-то серьёзное не напишешь. Далее, на этом форуме не так много высококлассных программистов готовых реализовать такой сложный проект просто ради себя. За этим нужно идти на специализированные форумы. Ну и наконец, писать что-то своё глупо. Есть масса уже готовых решений на любой вкус. Бери, да пользуйся!
__________________
"Хуже вопроса не в той теме, может быть только вопрос, о вопросе не в той теме." © *@ndrey*

Контактик Щебет Лицокнижка Спроси меня Гплюс
CMETAHA вне форума  
Отправить сообщение для CMETAHA с помощью ICQ
Старый 21.03.2012, 16:29   #14
Новичок
 
Аватар для Xenar
 
Регистрация: 19.03.2012
Адрес: Неизведанные пещеры
Сообщений: 70
Репутация: 7 [+/-]
Цитата:
Сообщение от CMETAHA Посмотреть сообщение
Структура - это совершенно другое
То, что я предлагаю - является не игровым движком, а базовым каркасом для будующей игры с возможностью внесения\изменения кода\скриптов... По мере написания будут подключаться новые библиотеки, компоненты, файлы и прочие составляющие...
Xenar вне форума  
Старый 23.03.2012, 20:53   #15
Новичок
 
Аватар для Xenar
 
Регистрация: 19.03.2012
Адрес: Неизведанные пещеры
Сообщений: 70
Репутация: 7 [+/-]
Предполагаемая структура корневого каталога предполагаемой игры

Скрытый текст:
Objects - папка, в которой будут находиться все игровые объекты (модели и текстуры). В папке будут еще две: Models и Textures соответственно. В папке Models будут следующие подпапки: Static - статические объекты и Dynamic - динамические. Статические объекты - это геометрические модели, которые используются в играх как стационарные (объекты не подлежащие деформации, анимации и прочим видоизменениям. Так же они не могут быть перемещены, повернуты и масштабированы в процессе игры). Динамические объекты - это объекты, которые полностью взаимодействую с игровым миром при помощи сложной системы скриптов (персонажи, техника, анимированные объеты, прочие). Я не стану описывать полную структуру папки Objects, приведу лишь краткий список... Примерный...

Objects
---Models
------Static
---------Buildings
---------Other
------Dynamic
---------Characters
---------Vehicles
---------Animated
---------Vegetation
---------Other
---Textures
------Static
------Dynamic

Пакпка Scripts будет содержать в себе все игровые скрипты. Скрипты будут написаны на основе заранее подготовленного кода, и будут представлять собой файлы с доступным для редактирования форматом. Скрипты будут делиться на группы: Main - главные скрипты, необходимые для глобальных данных, Locations - скрипты определенных локаций, Weapons, Vehicles - скрипты с техническими характеристиками оружия, Others - прочие скрипты.

Scripts
---Main
---Global
---Weapons
---Vehicles
---Others
---Weathers

Звуки будут в папке Sounds. Сама папка будет разбита на несколько подпапок: Ambient - звуки окружения, Sounds - игровые звуки, Music - игровая музыка...

Sounds
---Ambient
------Sounds
------Weapons
------Vehicles
------Voice
---Music

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

Последний раз редактировалось Xenar; 23.03.2012 в 20:57. Причина: Затупил, бывает...
Xenar вне форума  
Старый 30.03.2012, 14:08   #16
Новичок
 
Аватар для LINE_BLOD
 
Регистрация: 22.05.2010
Адрес: Г.Саранск
Сообщений: 35
Репутация: 4 [+/-]
Цитата:
Сообщение от Xenar Посмотреть сообщение
Предполагаемая структура корневого каталога предполагаемой игры
Нам-то это зачем,все приведенное выше не имеет смысла без самого движка.
__________________
Надежда это первый шаг на пути к разочарованию....
LINE_BLOD вне форума  
Отправить сообщение для LINE_BLOD с помощью ICQ
Старый 30.03.2012, 15:39   #17
Новичок
 
Регистрация: 08.09.2011
Сообщений: 5
Репутация: 22 [+/-]
Вот свой движок кстати должен давать наивысшую производительность (при условии что программист знает что делает). Далее правда встанет вопрос о его универсальности, то есть - можно ли будет на нём же сделать игру достаточно отличного жанра от самого первого. Но просто "на раз" - лучше делать самому.
Да и что понимать под этим словом?

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

Физика - важно. Хотя зависит от жанра, опять же.

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

Сам игровой процесс (отношение объектов в ООП, если выберешь этот стиль, что скорее всего - да) - начинать стоит именно с этого.


Приведённая структура папок, действительно, к созданию движка имеет самое последнее отношение.
Сам сейчас занят над чем-то подобным. Начал с важнейшего - алгоритм поиска пути. Взял стандартный волновой алгоритм, и улучшаю его по мелочам пока. Понимаю - дальше будет ещё сложнее. Но у меня много интересных идей
Nirnaeth вне форума  
Старый 30.03.2012, 16:02   #18
Новичок
 
Аватар для Xenar
 
Регистрация: 19.03.2012
Адрес: Неизведанные пещеры
Сообщений: 70
Репутация: 7 [+/-]
Nirnaeth, Для начала необходимо создать базовые классы, которые будут составлять некий каркас приложения. Затем, по мере написания кода, постепенно добавлять такие элементы, как графический пользовательский интерфейс, элементы управления, затем уже можно немного поэксперементировать в области построения рендеринга и попробовать организовать базу, которая позже составит модель скриптов...

P.S. Как программист я не очень. В свое время упустил это. Я художник, моделлер, имеющий богатый опыт работы в 3D Max`е. Если я немного затупляю, или же просто пишу всякую хрень, не имеющую смысла, так и скажи.
__________________
Я не знаю кокой будет третья мировая война...
Я уверен в одном: четвертая станет первой...
Xenar вне форума  
Старый 30.03.2012, 16:30   #19
Новичок
 
Регистрация: 08.09.2011
Сообщений: 5
Репутация: 22 [+/-]
Да, примерно так. Только экспериментировать не надо особо - можно из-за неопытности очень много мин раскидать которые под конец работы встретишь. Надо заранее определить приоритетные задачи в соответствии с тем что будет за игра, и работать только по ним.
Если например делаешь авиа\автосимулятор - то тут само собой на первом месте будет стоять физическая модель. И только потом графика и т.д. Начав с того что полностью опишешь модели самолётов и наложишь текстуры - это само по себе работу не продвинет. Хотя и это может быть важным, если например хочешь сделать красивые модели разрушений. Надо же будет хоть с чем-то работать для этого?

Или другой пример - Geometry wars. ИИ врагов примитивен, движения по карте описываются фундаментальными формулами. Зато масса работы с графикой - потому что там в ней вся красота.
Nirnaeth вне форума  
Старый 30.03.2012, 18:22   #20
Новичок
 
Аватар для Xenar
 
Регистрация: 19.03.2012
Адрес: Неизведанные пещеры
Сообщений: 70
Репутация: 7 [+/-]
Цитата:
Сообщение от Nirnaeth Посмотреть сообщение
Надо заранее определить приоритетные задачи
1) Написание *.dll библиотеки, которая будет отвечать за каркас приложения (форма, элементы управления, внутренняя структура). Написание к этой *.dll файла *.exe, который собственно и будет игрой (в будущем).
2)Написание *.dll библиотеки, которая будет отвечать за рендер (работа с устройством, методы рендеринга, прочее). Эта библиотека будет являться неким графическим движком. К ней из вне будут прицеплены прочие элементы этой группы.
3) Написание *.dll библиотеки, отвечаюшей за скрипты. Здесь немного сложнее. Придется делать примитивную структуру этих скриптов. Скрипты в открытом формате (*.ini, *.txt).
4) Проработка геймплея и создание базовых элементов управления этим творением.
5) Графика, текстуры, прочее.
6) Звуки, музыка, прочее.

Ну и хрень собачью я написал. Нда, неверное, не стоит этим заниматься. Особенно на VS2005 под Net.Framework и DirectX.
__________________
Я не знаю кокой будет третья мировая война...
Я уверен в одном: четвертая станет первой...
Xenar вне форума  
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 13:08.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Rambler's Top100 Яндекс цитирования