Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2010, 13:47   #1
liljon
Форумчанин
 
Регистрация: 03.01.2010
Сообщений: 229
По умолчанию S.I.L.E.

S.I.L.E - game engine
Игровой движок основанный на Irrlicht 3D Engine, пока что находиться на стадии разработки. Планируется написать 3 редактора: редактор карт, редактор объектов, редактор АИ.

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







Редактор карт размещает объекты созданные в редакторе объектов в 3-ех мерном пространстве, задает туманность, и так же оперирует простыми аниматорами (движение по кругу, по прямой, по точкам, обороты вокруг своей оси и анимация текстур).

Редактор АИ редактирует вейпоинты по которым могут перемещаться объекты аи.

В любой игре или игровом движке существует поддержка скриптов, чтобы запрограммировать некоторые события. Это довольно кропотливая задача - нужно зарегистрировать кучу функций и описать их. Я сначала начинал это делать, но немного подумав решил, почему бы не использовать для этого динамические библиотеки? Ведь с их помощью можно разрешить низкоуровневое программирование событий, на уровне Irrlicht и избавиться от кучи писанины. Поэтому в редакторе объектов есть поле, которое задает путь к динамической библиотеки, в свою очередь данный тип длл контролирует только этот объект, но может получить доступ к основному классу Irrlicht'а. В такой библиотеки экспортируются 3 функции, первая инициализрует плагин, принимая указатели на обрабатываемый объект, на основной класс, на камеру игрока и указатель на дополнительный буфер. Вторая функция вызывается каждый раз, когда идет прорисовка сцены. Третья выгружает его. Контроллирует плагины - менеджер плагинов.

По сути сам движок является обверткой, в которой есть нужные редакторы. Сам тип и процесс игры будет программироваться на основе написанных мною стандартных классов из динамических библиотек. Поэтому можно сделать любой из жанров игр. Я планирую запрограммировать одну из таких библиотек на 3д шутер, потом возможно добавлю поддержку рпг. Игровые задания тоже управляются из динамических библиотек. Обработки физики я еще не касался. Полагаю буду использовать PhysX. Как все это будет контролироваться пока представляю смутно.

Что уже готово:
- Реализованы все основные форматы файлов.
- Редактор объектов. Пока частично, т.к. реализованы только 3 типа объектов (статически меш, анимированый меш и небо)
- Менеджер для контроля загруженных динамических библиотек.
- Загрузчик объектов.
- Загрузчик карт (не тестировано, редактор карт уже в процессе написания)
- Общий размер исходников ~ 260 кб (это для того, чтобы оценить объем проделанной работы)

Что может иррлихт, можно посмотреть на оффициальном сайте http://irrlicht.sourceforge.net/

И собственно главный вопрос, который я бы задал любому: зачем это надо? Естественно куча новых игр с обалденной графикой и проработанными анимациями, с людьми, которые все это делают разбившись на группы,
превзойдут игру которую я буду тащить сам, сам кодить, моделировать и текстуировать. Но я иду к своей цели, которую хотел реализовать еще
6 лет назад, когда я только первый раз открыл учебник по Visual Basic =) А так же для всех энтузиастов, которые создают темы с названием "собираем группу разработчиков для игры" и в которых они сами признаются что начинающие. Я как-то начинал писать движок на OpenGL но полазив по инету осознал, что готовые 3D движки использовать намного лучше. Потому что авторы движков давно их написали, и с выходом новых версий исправили кучу ошибок. Например версия Irrlicht 1.7.1 вышла через 8 лет, после того как ее автор (разрабатывающий движки для игр, работающий/работавший в какой-то фирме) начал его писать. Все энтузиасты начинающие с нуля и считающие себя новичками, обречены на провал с самого начала. И только осознав всю эту кропотливую работу могут сесть и делать игру.

P.S. Надеюсь, что через неделю выложу демку
Изображения
Тип файла: jpg screen_shoot1.JPG (91.4 Кб, 132 просмотров)
Тип файла: jpg screen_shoot2.JPG (83.9 Кб, 119 просмотров)
Тип файла: jpg screen_shoot3.JPG (76.5 Кб, 148 просмотров)
подпись

Последний раз редактировалось Beermonza; 12.06.2010 в 20:54.
liljon вне форума Ответить с цитированием
Старый 14.06.2010, 13:55   #2
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

А для Delphi заточен?
VintProg вне форума Ответить с цитированием
Старый 14.06.2010, 16:45   #3
Crivel
Delphi\C++
Форумчанин
 
Аватар для Crivel
 
Регистрация: 18.06.2008
Сообщений: 277
По умолчанию

liljon, в своё время пытался пользоваться Ирликхом - вообщем нечего не вышло, да и тем более он для с++. Разве не лучше на директиксе или OpenGL писать? ведь больше возможностей будет. Если я сейчас начну движок на glscene или TrueVision делать , будет что-то :D
Но главное чтобы движок был хорошим и удобным) если он таким будет то неважно на чём он написан.


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

Последний раз редактировалось Crivel; 14.06.2010 в 20:39.
Crivel вне форума Ответить с цитированием
Старый 14.06.2010, 22:48   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

одного не понимаю...двиг же ДЛЛ, так?
кто мешает использовать его в Делфи тогда?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.06.2010, 01:27   #5
liljon
Форумчанин
 
Регистрация: 03.01.2010
Сообщений: 229
По умолчанию

Цитата:
liljon, в своё время пытался пользоваться Ирликхом - вообщем нечего не вышло, да и тем более он для с++. Разве не лучше на директиксе или OpenGL писать? ведь больше возможностей будет. Если я сейчас начну движок на glscene или TrueVision делать , будет что-то :D
Но главное чтобы движок был хорошим и удобным) если он таким будет то неважно на чём он написан.
самая новая версия - 1.7.1. Поддерживает бамп маппинг!!! Система частиц, все известные форматы 3д моделей, все используемые форматы текстур(картинок, не исключая формат фотошопа), система костей, все виды фильтрации текстур, система анимации, камеры, математические функции, создание ландшафта через карту высот. Вообщем можно сделать все, что хочешь. И это все это - опен сорс.

Вывод: не проще openGl и directX, ибо не проще написать 3д движок, нежели использовать готовое и протестированое на протяжении восьми лет. Плюс удобная гуи система, спокойно можно создавать свои элементы, наследуя основные классы. От себя бы я добавил, что этот 3д движок самый удобный и самый мощный из тех, которые я пробовал.

Цитата:
одного не понимаю...двиг же ДЛЛ, так?
кто мешает использовать его в Делфи тогда?
да, длл, но описатели классов на С++. Кроме того классы абстрактные, экспортирована только одна функция =)

Дельфи не поддерживает. Это вообще кроссплатформенный движок, его можно портировать на windows mobile, на .NET, на линух и мак ос.

Crivel, вы просто не достаточно разобрались с ним. Опишите задачу, я попробую описать как можно решить ее

Я сейчас пишу АИ на системе автоматов. Хотел взять уже готовую, заточеную под иррлихт, но мне ее не хватило. Собственно если кому понадобиться вынесу в отдельную библиотеку с описанием и примерами

P.S. Извеняюсь за ошибки в тексте
подпись

Последний раз редактировалось liljon; 16.06.2010 в 01:45.
liljon вне форума Ответить с цитированием
Старый 16.06.2010, 11:13   #6
Crivel
Delphi\C++
Форумчанин
 
Аватар для Crivel
 
Регистрация: 18.06.2008
Сообщений: 277
По умолчанию

Цитата:
Crivel, вы просто не достаточно разобрались с ним. Опишите задачу, я попробую описать как можно решить ее
Спасибо, но пока не надо Я пока свой пишу, просто разбираться было сложно потому, что в с++ я не спец)
Crivel вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск