В таком случае предлагаю поступить так:
Графическое ядро болжно быть немного отделено от остальных. Модули (чтение форматов, соответствие типов и классов, редактирование свойств, управление и т.п.) будут передавать данные в ядро, а ядро делать действия и выдавать выходные данные. Тогда можно будет сначала написать ядро на OpenGL, а уже потом (в перспективе) переписать одно ядро на Direct3D.
28.05.2004, 13:55 (Сообщение последний раз редактировалось: 28.05.2004, 14:30 Ni28.)
План. Коротко.
1. Ядро программы. 3D Engine.
2. Алгоритм загрузки террайна.
3. Написание классов объектов для редактора.
4. Загрузка моделей.
5. Алгоритм загрузки объектов разбивания на классы и отображения.
3D Engine давайте сделае в первоначальном варианте на GLScene, почему, я уже писал.
План. Подробно.
1. Интерфейс, модули 3D Отображения для GLScene (в перспективе для Direct3D).
2. Анализируем наработки по загрузки составляющих .Mpr секций .SEC. Переписываем алгоритм под GLScene.
3. Анализируем МОБ наработки, MOB Reversing Tool нам в этом поможет. Для каждого класса ID_OBJECTSECTION пишем свойственнные им классы в опредёлённый модуль (пр. Object_Particle.pas, Object_Sound.pas, Object_Unit.pas и т. д.).
4. Посмотрим, что у нас есть на тему загрузки 3D моделей. Пока вполне сойдёт и без текстур. Перекидываем алгоритм на GLScene.
5. Каждый обладает своими свойствами (пункт 3). Такими как место в пространстве, вращение, модель.
P.S. Будем делать так как предложил ELF. С учётом второго девайса ренденеринга. Теперь давйте уясним, кто чем будет заниматься. Я могу координировать работу и заниматься 3D Engine'ом. Несколько человек вполне могут заниматься одним делом, надо, только надо, чтобы "правая рука знала, что делает левая".
P.P.S Вы вполне можете писать алгоритмы на OpenGL, я потом оптимизурую под GLScene (на GLScene много автоматизированно). :excl:
Капли на лице, это просто дождь, а может плачу это я?
Дождь очистил всё, и душа захлюпав, вдруг размокла у меня,
Потекла ручьём, прочь из дома к солнечным, не кошенным лугам,
Превратившись в пар, с ветром полетела, к неизведанным мирам...
28.05.2004, 17:10 (Сообщение последний раз редактировалось: 28.05.2004, 17:18 ALtair.)
В связи с вышесказанным целый ряд вопросов.
1) Поддерживает ли GLScene подгрузку DDS? А подгрузку текстур из памяти?
2) Зачем писать для игрового объекта класс? Да еще для каждого типа свой?
3) Сомневаюсь, что тут кто-то хорошо знает ОпенГЛ или ГЛСкен (кроме Ni28), что сможет помогать в разработке движка. Получается его будет писать один человек?
4) Каким образом вы собираетесь написать сепаративный движок? И какой смысл сначала писать под одну библиотеку, а потом под другую? Почему бы не написать сразу под Директ3Д? Ну да, в совершенстве его тут никто не знает, но зато появится повод изучить
5) По поводу координатора надо будет еще в будущем обсудить, потому как человек должен быть ответственный и, я думаю, чаще других должен быть в он-лайне Надо будет соизмерить возможности и способности каждого.
6) Ну и последний вопрос. Кто вообще участвует в создании собстна редактора? Кто в команде?
Кстати, зацаните фишку
Duty is everything, the greatest of joys, the deepest of sorrows.
28.05.2004, 19:51 (Сообщение последний раз редактировалось: 28.05.2004, 23:18 Ni28.)
Судя по ответам в команде, PZIGOR, ALtair, ELF и я. Извините, если кого не записал.
Вот целый ряд ответов на вопросы ALtair'а:
1. GLScene поддерживает любой зарегистрированный в дельфи формат. Например можно слить пакеты, для чтения tga, pcx, tiff, gif форматов. (эти пакеты позволяют вообще работать дельфи с такими форматами напр TImage, а не специально для GLScene). Скорей всего, я пока не интересовался, есть такие пакеты для работы с DDS.
2. Я видно неправильно выразился, класс не для дельфи, а для редактора, чтобы опознавать опции отдельно для выбранного предмета. Что-бы не случалось такое: Выбранна модель строения, мы открыли его свойства и видим параметры юнита (ID_UNIT_PROTOTYPE, ID_UNIT_SPELLS и т.д.). Строение функции вообще может быть например такой:
if ID_OBJECTSECTION.ID_OBJECT[xxx].ID_OBJTYPE = 50 then
ID_OBJECTSECTION.ID_OBJECT[xxx].Class := Class_Unit else
if ID_OBJECTSECTION.ID_OBJECT[xxx].ID_OBJTYPE = 53 then
ID_OBJECTSECTION.ID_OBJECT[xxx].Class := Class_Building ...
xxx - порядковый номер загружаемого объекта.
Class_Unit - Этот объект принадлежит к юнитам. Доступные опции (ID_UNITARMORS, ID_UNITPROTOTYPE и т.д) для него загружаются из файла Class_Unit.pas. Для него так-же действуют настройки ID_OBJ.
Class_Building - Этот объект принадлежит к постройкам. Доступные опции (ID_OBJPOSITION, ID_OBJPRIMTXTR и т.д). для него загружаются из файла Class_Building.pas.
ID_OBJECTSECTION в данном случае выступает как ROOT (родительский) объект для остальных объектов.
3. Сомневаюсь, что тут найдётся много человек умеющих работать Direct3D, тем более, какая разница чему учиться OpenGL или Direct3D. Я просто видел в команде есть люди кроме меня знакомые с OpenGL. Но это надо решать вместе. Я - за OpenGL. ALtair - за Direct3D. Пишите своё мнение о трёхмерном движке.
4. Мы же говорили, "в перспективе", значит если получтся под OpenGL, начнём учиться Direct3D, и писать под Direct3D.
5. У меня выделинная линия интернет "Юниланс",есть возможность долго быть в онлайне... Но с другой стороны заниматься и работой над проектом, и координировать - сложно. Выставляйте свои кандидатуры.
P.S. ALtair, на рисунке у тебя слева иерархия объектов, справа - вид сверху, точками обазначены объекты разные объекты разным цветом... Уже неплохо
P.P.S. В суботу утром я уезжаю на дачу, в воскресенье вечером приеду, попытайтесь решить, пока меня не будет, на каой 3D библиотеке писать прогу, и утвердить состав команды. :excl:
Капли на лице, это просто дождь, а может плачу это я?
Дождь очистил всё, и душа захлюпав, вдруг размокла у меня,
Потекла ручьём, прочь из дома к солнечным, не кошенным лугам,
Превратившись в пар, с ветром полетела, к неизведанным мирам...
Я с тобой согласен, ELF. Я могу уже делать 3DEngine движка, давайте кто-нибудь займётся террайном, перекинит мне код я переведу код под движок. Кто-нибудь другой (например ALtair, на скриншоте у него классно получилось) кинет мне свои достижения в сфере загрузки объектов из мобов.Ещё кто-нибудь кинет свои наработки по загрузке моделей (можно, что-бы загружались только полигоны, без текстур и анимации).
Начнём делать.
Капли на лице, это просто дождь, а может плачу это я?
Дождь очистил всё, и душа захлюпав, вдруг размокла у меня,
Потекла ручьём, прочь из дома к солнечным, не кошенным лугам,
Превратившись в пар, с ветром полетела, к неизведанным мирам...
Я в близжайщие 20 дней вряд ли смогу активно помогать.
А вообще опиши то, что тебе нужно "в формате". Типа нужен "алгоритм/исходник-пример/подобие-проги/идея/информация о формате" для "террайна/юнитов/ядра/модуля свойств/и т.п."... и по-больше подробностей организаторских...
Капли на лице, это просто дождь, а может плачу это я?
Дождь очистил всё, и душа захлюпав, вдруг размокла у меня,
Потекла ручьём, прочь из дома к солнечным, не кошенным лугам,
Превратившись в пар, с ветром полетела, к неизведанным мирам...
Ni28 я до середины июня тоже только просматриваю темы помоч не смогу сессия чтоб её. Кстати если ты взял на себя роль координатора то именно ты должен высказаться о том что ты именно хочеш получить, а не ELF должен тебе всё говорить так что же всётаки должно получиться. Давайте пока только принципы построим и алгоритм накидаем что ли а уже после сессии начнём серьёзно работать как я понял тут у многих или сессия или экзамены.С загрузкой ланшафта я пока не занимался сейчас нет времени если выдаётся минутка копаюсь в скилах.В инете бываю с 8:00 до 17:00 с понедельника по четверг в пятницу с 8:00 до 12:00 у меня выделенка на работе это так общие сведения.!!!!!!!!!!!!
Поклонник Baldurs gate, Neverwinter Nights, Проклятые земли.
Вообще-то я уже много раз говорил, чего хочу в конкретном итоге получить, к тому-же если поступают интересные предложения надо их рассмотреть, а если они реализуемы, то принять. В итоге должен получиться инструмент, с помощью которого удобно перемещатьвращать объекты, изменять их модели высотуширину, что-бы это было просто и наглядно.
P.S. У меня тоже экзамены до 10 июня. В онлайне обычно каждый день примерно с 10 утра до 23:30 ночи, у меня выделинка. ISQ: 313-966-745, иногда бываю в MIRC'e, на #Leto.
Капли на лице, это просто дождь, а может плачу это я?
Дождь очистил всё, и душа захлюпав, вдруг размокла у меня,
Потекла ручьём, прочь из дома к солнечным, не кошенным лугам,
Превратившись в пар, с ветром полетела, к неизведанным мирам...
Какое то здесь затишие. Ну что всётаки решили с редактором я готов помогать но только по движку и немного в OpenGL если необходимо и давайте окончательно сформулируем что необходимо чтобы потом не вазвращаться в начало.!!!!!!!!!
Поклонник Baldurs gate, Neverwinter Nights, Проклятые земли.
Вообще, чтобы реализовать такую "штуку", понадобится очень много времени, знаний и организованности. Мне кажется, что, скорее всего, полноценный редактор игры если и будет реализовываться, то только после всего остального.
Хм, у меня есть некоторые идеи, которые могу организовать уже сейчас, но ещё не решили, на чём, OpenGL, Direct3D, GLScene делать редактор...
Капли на лице, это просто дождь, а может плачу это я?
Дождь очистил всё, и душа захлюпав, вдруг размокла у меня,
Потекла ручьём, прочь из дома к солнечным, не кошенным лугам,
Превратившись в пар, с ветром полетела, к неизведанным мирам...
Давайте тогда всё сделаем более ясно. :excl:
Во-первых, мы не редактор MOB'ов тут затеяли, а Редактор Локаций (целиком).
Есть вопрос: На чём делать Редактор Локаций?
Есть варианты: OpenGL, Direct3D, GLScene.
Прошу тогда Jet'а или Sun'а сделать тему с опросом "На чём делать Редактор Локаций?".
гм.. По-моему, проще разделить проргаммы для обработки. Каждая прога обрабатывает свой файл. Одна для создания и редактирования поверхностей, вторая для редактирования объектов (мобов т.е.)
Duty is everything, the greatest of joys, the deepest of sorrows.