forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Скрипт и infinity map (http://forum.boolean.name/showthread.php?t=3467)

CodeWarrior 27.05.2007 21:05

Скрипт и infinity map
 
Истчо раз привет!
Где то на форуме я такое видел, но ничего не понял: что такое СКРИПТОВЫЕ игры(к ним,вроде, можно, например, добавлять новые уровни просто добавив какой-то файл, а не дописывать код).
И еще: я знаю что чтобы создать огромную карту надо координаты обьектов(статичных) и прочие параметры хранить в файле (или еще где нибудь, лишь бы не в оперативке:)) и по мере приближения подгружать коорд. и показывать обьекты. Мне в голову пришла одна мысль: пусть у нас есть террайн. Когда мы двигаемся террайн двигается вместе с нами все время меняясь по сохраненным параметрам. Нужно будет только двигать тектуру чтоб было видно что мы двигаемся. Наверно никто не поймет. Выкласти это в виде текста это что-то. Когда найду подходящий пример - скажу. Спасибо(спасибо и тем кто поймет последнюю мысль:))

moka 27.05.2007 21:12

Re: Скрипт и infinity map
 
Мысль понята, но изменение ландшафта, это ресурсоёмкий процесс.
Зачем мудрить? Просто двигай персонажа, в морровинде, там так и было, значит, при прохождении каких-либо участков, когда персонаж входил в какой-либо отсек (думаю там поделен весь мир на квадратики, это и есть отсеки, они большие, к примеру 1км на 1км), так вот когда этот отсек, входил в поле зрения, то подгружались все объекты в этом отсеке.

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

Надеюсь ответил на вопросы.

CodeWarrior 27.05.2007 21:32

Re: Скрипт и infinity map
 
Насчет скрипта thnx.Понял.
А насчет мира: я хочу создать поистине гигантский мир. Для этого одного терайна не хватит. Можно хранить не все точки. Остальные просто интерполировать. Впрочем, если есть идеи - выкладывайте!!!

moka 28.05.2007 00:39

Re: Скрипт и infinity map
 
Ландшафт, это тот-же Мешь. Просто делай предзагрузки.
Вот иди Сюда, тут моя небольшая разработочка, всё просто, там исходник, значит, этот остров примерно ~5x5 км.
Какойто мэшь просто удаляй, какойто загружай, но это не постоянно, а в моммент предзагрузки, при какомто условии, например стандартное, это координата игрока вошла в поле определённого участка, то загружать всё что на этом участке, и всё что прилегает, а то что уже дальше, удалять. Таким способом мир может быть и 50х50 км. =)

CodeWarrior 28.05.2007 09:16

Re: Скрипт и infinity map
 
А если ты дошел до края одного участка, что ты будешь видеть там, где должен быть уже другой участок? Пропасть? Я хотел бы создать неперерывний мир. Можно поставить camerafogrange на 1000, а проверять расстояние до обьектов на 1500, и не скаждым проходом, а,скажем, каждые 5-10. Поскольку обекты подгружаються дальше чем ты можешь увидеть, то рывков не будет видно(если твоя скорость не слишком большая). И система не страдает:).

moka 29.05.2007 02:01

Re: Скрипт и infinity map
 
неа =) страдает, т.к. блиц Очень тяжко держит в памяти наличие большого колличества объектов.
Ты не совсем понял, я имею ввиду, что загруженных участков будет постоянно 9, центральный, это где он находиться, и все прилегающие к нему, если игрок вошёл в другой участок, то нужно загружать (если не загруженны), все его прилегающие учаски, а те что ещё дальше, то удалять.

Вот, крч, набросал. Тут значит, пример перемещения, из сектора в сектор:

Тёмно Зелёный - Игрок.
Светло зелёный - Текущий сектор.
Светло жёлтый - прилегающие, они тоже загружены.
Далее, второй рисунок:
Розовый - эти сектора откгружаются, и всё в них удаляется Полностью!
Ярко жёлтый - загруженный сектора.

CodeWarrior 29.05.2007 18:01

Re: Скрипт и infinity map
 
Тож хорошо! thnx!
Цитата:

неа =) страдает, т.к. блиц Очень тяжко держит в памяти наличие большого колличества объектов.
Я имел в виду держать координаты не в оперативке, а в файле. Надо попробовать и так, и так.
Если обьект вне зоны зрения, он удаляется, а не хайдится. Если в зоне то создается с коорд взятыми из файла.

moka 29.05.2007 20:25

Re: Скрипт и infinity map
 
Да только не постоянно, а на переходах между секторами. Делать предзагрузку. А тобудет лаговать постоянно если.

HolyDel 30.05.2007 02:41

Re: Скрипт и infinity map
 
вот координаты какраз таки можно держать и в оперативке.
128 метров хватит на 4 194 304 - элементный 4-х флоатовый массив (3 на координаты, 1 на свои нужды).
или 2048 * 2048 матрицу. в общем больше чем надо, а т.к. 512 для домашней персоналки уже давно стали стандартом, то об етом факте можно не беспокоиться.

moka 30.05.2007 03:41

Re: Скрипт и infinity map
 
HolyDel угу, что-то я не сообразил.
Тоесть координаты и инфу можно хранить и в оперативке, но обхекты нет, тоесть объекты нужно загружать, т.к. HideEntity только прячет, но нагрузка будет всёравно.

CodeWarrior 30.05.2007 17:21

Re: Скрипт и infinity map
 
Какой смысл грузить оперативку, если можно этого избежать???
Насчет того сикоко туды(в оперативку) можно коорд. впихнуть я знаю. Но не забывай что помимо статичного мира будут и динамические обьекты(птички, лоси, белочки :)) и прочее из игры. У меня перс не будет двигаться быстро как самолет, так что можно проверять через каждые 10 проходов, а чтобы обьекты вдруг не появлялись в зоне видимости проверять на расстоянии большем от camerarange или fogrange настолько, сколько перс может пройти за эти 10 проходов. Секторами тож хорошая идея, но боюсь, что при переходе из сектора в сетор комп будет подвисать(хотя не знаю).

HolyDel 31.05.2007 01:33

Re: Скрипт и infinity map
 
можно проверять и каждые 100 проходов. ето не суть.
вопрос в другом, охота ли тебе возиться с seek-ами, если охота- пожалуйста, флаг в руки и барабан на шею, если неохота и ты планиуреш последовательно считывать данные выбирая нужные - хм, думаю сам понимаеш что простыми "подвисаниями" тут не отделаешся, будут задержки, будет мат со сторыны юзеров в сторону разработчиков.

мое имхо осталось прежним, грузить все ето в оперативку, потом как говорил МоКа.


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

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