LINUX.ORG.RU

Разработка движка на основе огра

 , , ,


0

1

Может запилим вместе движок на основе огра? Для начала простейший, включающий:
- Bullet physic (включая меш в качестве тела, исходники есть, но допилить нужно)
- OpenAL (включая объемный звук)
- Менеджер сцены (загрузка обеъктов из xml)
- редактор сцены

О менеджере, объект в хмл содержит:
- позицию
- вращение
- размеры
- ссылку на меш
- ссылку на скрипт (или класс проще)
Все остальные параметры объекта, такие как отбрасывание тени итп, пишутся уже в цепляемом классе.

О редакторе сцены:
Простейший, позволяющий только добавить пустой объект, выбрать для объекта меш, скрипт, указать позицию, размер, вращение. Сохранить это как файл сцены для менеджера.

Впрочем это лишь предложение структуры, можно еще упростить, главное начало сделать.



Последнее исправление: lorovec (всего исправлений: 1)

Не троллинга ради пара вопросов:

  1. Какие есть существующие решения на Ogre3D и в чем их недостатки? Т.е. есть ли смысл пилить велосипед?
  2. Почему выбран OpenAL? Где сравнение с альтернативами? Недостатки: лицензия (после 1.1) - собственническая; применяется модель только с одним слушателем; нет расчета задержки распространения звука.
  3. Почему в качестве формата выбран XML, а не, к примеру, более компактный и читаемый JSON? Чем был обоснован выбор?
Boba_Fett
()
Ответ на: комментарий от Boba_Fett

1. Существующих решений на основе огра я не видел, опенсорсных. По поводу редактора, есть один Ogitor, но тем пользоваться нереально, а разбирать по кусочкам этого монстра - проще с нуля написать свой, пусть и простейший редактор, фичи запилятся постепенно.

2. Выбран из-за уже существующего аддона, вообще лучше OgreOggSound подкручивается легче.

3. Выбран опять таки из-за уже существующего аддона

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

lorovec
() автор топика
Ответ на: комментарий от lorovec

Кстати в качестве гуи думаю подкрутить CEGUI, но не уверен в выборе.

lorovec
() автор топика

Что, неужели нет добровольцев?

lorovec
() автор топика

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

fat_angel ★★★★★
()

готов попробовать помочь (сам думал написать себе редактор сцен). jabber в инфе

jeuta ★★★★
()
Ответ на: комментарий от jeuta

свяжусь как жабер заведу. Я вот думаю редактор строить на гуи движка, а не тулкитах типа gtk, это гораздо проще и палок с переносимостью не будет. Единственный минус это ограниченный функционал гуи. Кстати у вас сам движок я так понимаю собран, не хватает только редактора? Если так, не мог бы описать его состав (движка)?

lorovec
() автор топика
Ответ на: комментарий от buddhist

А какие у него [OpenAL] альтернативы?

Какие альтернативы у проприетарной звуковой либы? FMOD, BASS - выбирай любую, все равно лучше будет по качеству и количеству функционала. А вообще нужно смотреть - я уже давно не копал в эту сторону.

Boba_Fett
()

- openmw - openmw - в openmw лучше - в openmw некоторое редактирование есть, больше всё равно с наскоку не осилить

quiet_readonly ★★★★
()

Может запилим вместе движок на основе огра?

Не выйдет. Не вижу твоей заинтересованности; сейчас выглядит всё так, как будто тебе эта идея только сегодня в голову пришла. Нет кода, нет концепции, ничего нет. Ты хочешь «основать» проект, но работать в нём не хочешь, ждёшь, что после клича на ЛОРе к тебе сбежится куча разработчиков и будет пилить, пилить, пилить. А ты будешь указывать направление.

Начни сам, сделай основу кода, тогда и поднимай тему. А то у тебя интерес пропадёт максимум через месяц.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

сделай основу кода, это я сделаю за трое суток, то есть соберу вообщем то движок с минимально-необходимыми компонентами, только смысла в этом не много, это я сделаю 100% но я не уверен что в дальнейшем ко мне подключатся в помощь, а один я залягу на годы что бы написать загрузку сцен, продумывать структуру (тут с одними только типами голову изрядно поломать придется, например достаточно ли одного типа entity или стоит разделить на два dynamic object, static object), и потом уже до редактора дойти, это кажется что нечего сложного ибо видишь лишь поверхность, не зная насколько это сложно изнутри. В одного у меня нет желание бацать движок пару лет, что бы он был хоть чуток юзабелен, а сдешние врядли помогут судя по отзывам, в том смысле что да же срача не устроили, а это значит - что те кто в теме прошли просто мимо (не заинтересовало), большинство же просто не в теме и помочь не могут.

lorovec
() автор топика
Ответ на: комментарий от lorovec

Вы хотите, чтобы кто-то всю сложность взял на себя? Архитектура, юзабельный интерфейс, первоначальная идея скопом не делаются, и хоть убейтесь, но это так.

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

Да и вообще вы не выдерживаете конкуренции. Людей без нужных знаний ваш «проект» ничему не научит. Люди «в теме» так и будут проходить мимо, ибо есть openmw, hedgewars и куда других куда более привлекательных мест.

Кстати, показательный пример свободного игрового движка - это openmw. Это свободный движок культового morrowind, и чисто поэтому у него огромное подспорье - есть куча людей, знающих особенности morrowind, есть готовые инструменты, да и готовый гайдлайны по сути; есть полностью готовый контент. И что вы думаете? Ещё лет 5-6 назад его начал писать одиночка, причём сразу сделал фатальную ошибку - использовал редкий и не имеющий вспомогательных инструментов язык D. Но всё же выкладывал скриншоты, сообщал о себе, и спустя год к нему начали тянуться.

Сейчас Николая Корслунда в openmw уже нет - он просто исчез года два назад. Но проект наконец-то пришёл к успеху - уже можно ходить по карте morrowind и солтсхейма без лазанья в консоль, взаимодействовать с НПС и варить зелья, есть огромная вики и сборки под несколько ОС. У них есть собственный гуру 3d графики, кидающий шейдеры для рендерига воды на раз-два и отсылающий патчи в мейнстрим ogre3d. Два случайных человека, начавших делать собственные движки, уже влились в openmw; и даже разработчики какого-то dangeonhack подумывают переползать на их движок.

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

quiet_readonly ★★★★
()
Ответ на: комментарий от quiet_readonly

Вы хотите, чтобы кто-то всю сложность взял на себя?

Ага, именно этого он и хочет. Как обычно, что-то вроде: «я же придумал идею! Это самое главное. Осталось только реализовать.»

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

И вызывает лучи неодобрения.

lorovec, то, что ты сделаешь за трое суток, нужно будет выбросить. Как и всё то, что ты будешь делать первые несколько месяцев по проекту. Более того, некоторые куски придётся переписывать до десятка раз. Ты готов к этому?

i-rinat ★★★★★
()
Ответ на: комментарий от buddhist

Хм, а они умеют позиционное аудио?

FMOD умеет, а про BASS ничего не знаю.
FMOD используется во многих AAA играх.

Raving_Zealot ★★
()
Ответ на: комментарий от i-rinat

Бугога, тебе сюда весь запостить? А самое главное что это тебе даст?

Вот например, вырезка из интеграции буллета (чистый, а не аддон ogrebullet):

#include <Ogre.h>
#include <btBulletDynamicsCommon.h>
#include <vector>
#include <LinearMath/btIDebugDraw.h>

using namespace Ogre;

//BULLET
//Преобразование координат огра в координаты буллета
class MyMotionState : public btMotionState {
    public: MyMotionState(const btTransform &initialpos, Ogre::SceneNode *node) {
    mVisibleobj = node;
    mPos = initialpos;
    }
    virtual ~MyMotionState() {    }
    void setNode(Ogre::SceneNode *node) {
    mVisibleobj = node;
    }
    virtual void getWorldTransform(btTransform &worldTrans) const {
    worldTrans = mPos;
    }
    virtual void setWorldTransform(const btTransform &worldTrans) {
    if(NULL == mVisibleobj) return;
    btQuaternion rot = worldTrans.getRotation();
    mVisibleobj->setOrientation(rot.w(), rot.x(), rot.y(), rot.z());
    btVector3 pos = worldTrans.getOrigin();
    mVisibleobj->setPosition(pos.x(), pos.y(), pos.z());
    }

lorovec
() автор топика
Ответ на: комментарий от lorovec

Вот например, вырезка из интеграции буллета (чистый, а не аддон ogrebullet):

Чего-нибудь менее тривиального не нашлось?

i-rinat ★★★★★
()
Ответ на: комментарий от djambeyshik

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

lorovec
() автор топика

редактор сцены

Блендер же!

PolarFox ★★★★★
()
Ответ на: комментарий от djambeyshik

Пилят. OpenMW, хотя, о ней много сказали выше.

z00ke
()
Ответ на: комментарий от fat_angel

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

Deleted
()
Ответ на: комментарий от lorovec

Например?

Например то, из-за разработчик выберет твой продукт, а не возьмёт тот же Ogre, и допишет тривиальный код под себя. Такового не наблюдаю.

И ещё, если уже есть ogrebullet, зачем писать своё? NIH-синдром?

i-rinat ★★★★★
()

Может запилим вместе движок на основе огра?

Судя по твоим предыдущим постам, пилилка у тебя еще не отросла.

baverman ★★★
()
Ответ на: комментарий от lorovec

Помочь можешь?

для полноты картины тебе осталось добавить, что ты против системы и тебе шестнадцать лет. Примеров твоего кода никто так и не увидел.

Ты что, ещё никогда не выбрасывал свой код? У меня обычно на тысячу строк, которые мне почти не стыдно показать, приходится около трёх-четырёх тысяч строк изменений. Но я не спец, да. А ты, поди, всё с первого раза пишешь.

Умаль гордыню и займись делом.

i-rinat ★★★★★
()

Я ещё в самом верху сказал, что подключусь если начнётся. «начнётся» - в моём понимании это хотя бы чёткий план требований и хоть сколь нибудь готовый набросок архитектуры.

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

Давай так: ты покажешь как ты думаешь работать с сценой, пользовательским вводом(callback'и, signal'ы, как?), управлением состоянием приложения (меню/окно настроек/сама игра/whatever), собственно настройки и главное - предполагаемая реализация игровых примитивов... В общем, покажи хоть что-то (код, uml-диаграммы, диаграммы состояний. главное - меньше текста, больше «инженерной мысли»). Если же у тебя нет никаких конкретных мыслей по всему этому, то рано тебе думать собирать команду. Главное, на мой взгляд - предоставить сколь-нибудь конкретный план. Да так, чтобы ты был уверен хоть в каких-то частях этого плана. Всё остальное уже додумается и допеределается в команде.

jeuta ★★★★
()
Ответ на: комментарий от buddhist

Хм, а они умеют позиционное аудио?

все равно лучше будет по качеству и количеству функционала
и количеству функционала

Естественно. И еще много всего, чего нет и не будет в OpenAL (который никакой не open).

Boba_Fett
()
Ответ на: комментарий от lorovec

Ладно, хрен с ним, с движком, раз не кто не хочет, подождем unity.

никто не хочет — значит и ты не хочешь. А раз ты не хочешь, зачем вообще тему создавал?

i-rinat ★★★★★
()
Ответ на: комментарий от Boba_Fett

И еще много всего, чего нет и не будет в OpenAL (который никакой не open).

Лучше это чем фмод, цены его знаете?

lorovec
() автор топика
Ответ на: комментарий от Boba_Fett

А коммерческие могут себе позволить.

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

lorovec
() автор топика
Ответ на: комментарий от Boba_Fett

Причем нужность его сомнительная. Для игр в среднестатических мерках нужно от звука: плай/стоп/лоп, питч, объемный звук (хотя не обязательно, достаточно просто написать учет расстояния от источника до камеры, чем ближе тем выше громкость).

lorovec
() автор топика
Ответ на: комментарий от lorovec

Причем нужность его сомнительная.

Я думаю, что огромное количество разработчиков, использующих FMOD в своих проектах с тобой поспорят.

P.S. к чему спор, если нет самого предмета (ни открытого, ни коммерческого)?

Boba_Fett
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.