forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Как лучше хранить карты для игр (http://forum.boolean.name/showthread.php?t=8058)

Aceton 25.03.2009 22:16

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

Читал, что блиц умеет загружать файлы .бсп.

Вообще как лучше хранить данные о карте, чтобы было блицем удобно юзать их?

HolyDel 25.03.2009 22:31

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

ffinder 25.03.2009 22:36

Ответ: Как лучше хранить карты для игр
 
а откуда возьмется хотя бы мегабайт текста, если в нем не хранить сами бинарные ресурсы? ну и да SAX парсер вместо DOM тоже помогает.

Aceton 25.03.2009 22:40

Ответ: Как лучше хранить карты для игр
 
Да естественно напишу редактор. Сейчас стоит проблема выбора типа записи карты.

Интересно как сделать оптимально

HolyDel 25.03.2009 22:42

Ответ: Как лучше хранить карты для игр
 
хотя бы геометрия уровня. думаю что если в самом уровне (не в кадре) будет хотя-бы миллион трисов (это итак не очень много для современных игр) то уже в текстовом виде это будет несколько мегабайт. а если еще считать сюда оформление структуры? <> и т.д.

Aceton 25.03.2009 22:42

Цитата:

Сообщение от HolyDel (Сообщение 101782)
это так же позиции аптечек, монстров, триггеров, дверей, переключателей и прочего.

естественно

вообще я хотел сделать хмл карту - тобеж ID обьектов и их положение на карте, описание этих обьектов(свойства) тоже в хмл индивидуальной для каждого обьекта, модели -текстуры и прочее хранить в папках типа модели , текстуры и тп..

то есть по сути карта это всеголиш описаловка положения обьектов

Пользуйся кнопкой "Правка" вместо постинга нового сообщения

ARA 25.03.2009 22:51

Ответ: Как лучше хранить карты для игр
 
Цитата:

Сообщение от HolyDel (Сообщение 101787)
будет хотя-бы миллион трисов (это итак не очень много для современных игр <> и т.д.

Мы кажется про блиц тут беседуем.

ffinder 25.03.2009 22:58

Ответ: Как лучше хранить карты для игр
 
т.е. mesh'и хранить в XML? мда, не надо доводить мысли до абсурда.
формат должен представлять собой _логическое представление_ т.е. например так:
<model name="player">
<mesh>meshes\\player.b3d</mesh>
<texture>textures\\player.dds</texture>
</model>
<bonus type="health">
<position x:0.0, y:1.0 z:125.0>
</bonus>
а парсер читает из файла и вызывает функции соотвествующие типам узлов (SAX).
в принципе можно даже на Блице самому написать 3-4 функции типа
XMLnode, XMLattribute, XMLvalue и функцию levelFromXML(filename$) и не искать никаких парсеров

Aceton 25.03.2009 23:03

Ответ: Как лучше хранить карты для игр
 
Цитата:

Сообщение от ffinder (Сообщение 101793)
т.е. mesh'и хранить в XML? мда, не надо доводить мысли до абсурда.

ты внимательно читал что я написал? модели и текстуры лежат не в хмл, а в одельной папке, хмл - только описание свойств

HolyDel 25.03.2009 23:09

Ответ: Как лучше хранить карты для игр
 
Цитата:

т.е. mesh'и хранить в XML?
сетка чего? врагов, игрока, аптечек, деревьев, лестниц, машин, караванов и прочего конечно во внешних файлах!
но геометрия самого уровня должна быть намертво связана с уровнем файла. имхо.
потому, что я карта это не только позиции аптечек, монстров, триггеров, дверей, переключателей и прочего но и геометрия. естественно текстуры, предметы и вообще, ВСЕ что однозначно уровнем не является должно быть общим. и во внешних файлах.

Цитата:

Мы кажется про блиц тут беседуем.
ну дык из этого миллиона врятли хотя-бы 10к будет в кадре сразу. никто же не говорит что в игре будет виден сразу ВЕСЬ уровень.

Aceton 25.03.2009 23:12

Ответ: Как лучше хранить карты для игр
 
ну вообщем вопрос был про оптимальное хранение файла карты )))

ABTOMAT 25.03.2009 23:14

Ответ: Как лучше хранить карты для игр
 
К чему искать/учить спецификацию чужого формата (XML) когда можно написать свой? Тем более XML - текстовый формат, он предназначен для хранения ранхы там отчётов и т.д., но не для загрузки игры, так что скорости от него не жди. А в своём формате можно описать всё в том порядке, в каком оно будет загружаться и т.п. ну и другие фичи.
У меня уже вон давно свой формат для описания загрузки моделей, предметов и т.д. - ни разу не пожалел ;)

Aceton 25.03.2009 23:20

Ответ: Как лучше хранить карты для игр
 
а можно чуть подробнее про твой формат в качестве наглядног о примера, просто я прогер в области веб, знаю много языков отлично +)) решил вот геймдевом занятся! даже вспомнил си++ ради этого

написал уже часть движка блиц+си++ ОПП ))) дошел до редактора и загрузки уровней из файла

если не тему, то хз тут вроди таких веток нет

ffinder 25.03.2009 23:34

Ответ: Как лучше хранить карты для игр
 
Цитата:

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

оказывается бывают сетки врагов, деревьев и корованов?
ты прекрасно понял что я имел в виду геометрию (сетку вершин и треугольников).
так вот ее надо хранить в отдельном файле (ИМХО)
если триггер задан какой-то хитрой геометрией (нерегулярной) - указать путь и имя файла в XML и при парсинге уровня загрузить из файла модель (3ds, b3d).
Но Блиц ничего подобного не умеет, есть только элипсоид и бокс, у которых 2 (радиусы) и 3 (высота, ширина, глубина) параметра соответственно.

Phantom 25.03.2009 23:41

Ответ: Как лучше хранить карты для игр
 
Я не занимаюсь созданием игр, но видел в одной игре практически всё на xml =) Называлась она вроде Fallen Lords. Так в ней даже местоположение "монстров" в xml хранилось. Ух я помню ради прикола вписал в одной карте-миссии куууучу монстров и запустил. Смотрели Властелина Колец, когда призраки оркам люлей давали и гигантских слонов валили? Мне практически удалось воссоздать этот момент. :-D :-D :-D Комп жёстко притормаживал при отрисовке миллионной армии монстров, которые кучей напоминали именно призраков (по цвету) и они набрасывались на гигантского монстра (не слон, но похож на него и тоже с наездником). Реально выглядело похоже. :-D Ах да, о чём это я. Я это к тому, что вполне в xml можно хранить местоположение. =)


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot