|
3D-программирование Вопросы, касающиеся программирования 3D мира |
27.05.2007, 21:05
|
#1
|
Оператор ЭВМ
Регистрация: 10.05.2007
Сообщений: 21
Написано 0 полезных сообщений (для 0 пользователей)
|
Скрипт и infinity map
Истчо раз привет!
Где то на форуме я такое видел, но ничего не понял: что такое СКРИПТОВЫЕ игры(к ним,вроде, можно, например, добавлять новые уровни просто добавив какой-то файл, а не дописывать код).
И еще: я знаю что чтобы создать огромную карту надо координаты обьектов(статичных) и прочие параметры хранить в файле (или еще где нибудь, лишь бы не в оперативке ) и по мере приближения подгружать коорд. и показывать обьекты. Мне в голову пришла одна мысль: пусть у нас есть террайн. Когда мы двигаемся террайн двигается вместе с нами все время меняясь по сохраненным параметрам. Нужно будет только двигать тектуру чтоб было видно что мы двигаемся. Наверно никто не поймет. Выкласти это в виде текста это что-то. Когда найду подходящий пример - скажу. Спасибо(спасибо и тем кто поймет последнюю мысль )
|
(Offline)
|
|
27.05.2007, 21:12
|
#2
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: Скрипт и infinity map
Мысль понята, но изменение ландшафта, это ресурсоёмкий процесс.
Зачем мудрить? Просто двигай персонажа, в морровинде, там так и было, значит, при прохождении каких-либо участков, когда персонаж входил в какой-либо отсек (думаю там поделен весь мир на квадратики, это и есть отсеки, они большие, к примеру 1км на 1км), так вот когда этот отсек, входил в поле зрения, то подгружались все объекты в этом отсеке.
Скрипты, это текст, хранящийся в поределённых файлах, текст, так сказать имеет свой язык (его придумывает кодер, по желанию, удобству и умению), так вот далее этот файл считывается, и выполняется, например глянь какойнибудь xml файл, это и скриптовая, и хранение данных, вообще система xml удобна в работе, и достаточно функциональна.
Надеюсь ответил на вопросы.
|
(Offline)
|
|
27.05.2007, 21:32
|
#3
|
Оператор ЭВМ
Регистрация: 10.05.2007
Сообщений: 21
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Скрипт и infinity map
Насчет скрипта thnx.Понял.
А насчет мира: я хочу создать поистине гигантский мир. Для этого одного терайна не хватит. Можно хранить не все точки. Остальные просто интерполировать. Впрочем, если есть идеи - выкладывайте!!!
|
(Offline)
|
|
28.05.2007, 00:39
|
#4
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: Скрипт и infinity map
Ландшафт, это тот-же Мешь. Просто делай предзагрузки.
Вот иди Сюда, тут моя небольшая разработочка, всё просто, там исходник, значит, этот остров примерно ~5x5 км.
Какойто мэшь просто удаляй, какойто загружай, но это не постоянно, а в моммент предзагрузки, при какомто условии, например стандартное, это координата игрока вошла в поле определённого участка, то загружать всё что на этом участке, и всё что прилегает, а то что уже дальше, удалять. Таким способом мир может быть и 50х50 км. =)
|
(Offline)
|
|
28.05.2007, 09:16
|
#5
|
Оператор ЭВМ
Регистрация: 10.05.2007
Сообщений: 21
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Скрипт и infinity map
А если ты дошел до края одного участка, что ты будешь видеть там, где должен быть уже другой участок? Пропасть? Я хотел бы создать неперерывний мир. Можно поставить camerafogrange на 1000, а проверять расстояние до обьектов на 1500, и не скаждым проходом, а,скажем, каждые 5-10. Поскольку обекты подгружаються дальше чем ты можешь увидеть, то рывков не будет видно(если твоя скорость не слишком большая). И система не страдает .
|
(Offline)
|
|
29.05.2007, 02:01
|
#6
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: Скрипт и infinity map
неа =) страдает, т.к. блиц Очень тяжко держит в памяти наличие большого колличества объектов.
Ты не совсем понял, я имею ввиду, что загруженных участков будет постоянно 9, центральный, это где он находиться, и все прилегающие к нему, если игрок вошёл в другой участок, то нужно загружать (если не загруженны), все его прилегающие учаски, а те что ещё дальше, то удалять.
Вот, крч, набросал. Тут значит, пример перемещения, из сектора в сектор:
Тёмно Зелёный - Игрок.
Светло зелёный - Текущий сектор.
Светло жёлтый - прилегающие, они тоже загружены.
Далее, второй рисунок:
Розовый - эти сектора откгружаются, и всё в них удаляется Полностью!
Ярко жёлтый - загруженный сектора.
|
(Offline)
|
|
29.05.2007, 18:01
|
#7
|
Оператор ЭВМ
Регистрация: 10.05.2007
Сообщений: 21
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Скрипт и infinity map
Тож хорошо! thnx!
неа =) страдает, т.к. блиц Очень тяжко держит в памяти наличие большого колличества объектов.
|
Я имел в виду держать координаты не в оперативке, а в файле. Надо попробовать и так, и так.
Если обьект вне зоны зрения, он удаляется, а не хайдится. Если в зоне то создается с коорд взятыми из файла.
|
(Offline)
|
|
29.05.2007, 20:25
|
#8
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: Скрипт и infinity map
Да только не постоянно, а на переходах между секторами. Делать предзагрузку. А тобудет лаговать постоянно если.
|
(Offline)
|
|
30.05.2007, 02:41
|
#9
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Скрипт и infinity map
вот координаты какраз таки можно держать и в оперативке.
128 метров хватит на 4 194 304 - элементный 4-х флоатовый массив (3 на координаты, 1 на свои нужды).
или 2048 * 2048 матрицу. в общем больше чем надо, а т.к. 512 для домашней персоналки уже давно стали стандартом, то об етом факте можно не беспокоиться.
|
(Offline)
|
|
30.05.2007, 03:41
|
#10
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Re: Скрипт и infinity map
HolyDel угу, что-то я не сообразил.
Тоесть координаты и инфу можно хранить и в оперативке, но обхекты нет, тоесть объекты нужно загружать, т.к. HideEntity только прячет, но нагрузка будет всёравно.
|
(Offline)
|
|
30.05.2007, 17:21
|
#11
|
Оператор ЭВМ
Регистрация: 10.05.2007
Сообщений: 21
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Скрипт и infinity map
Какой смысл грузить оперативку, если можно этого избежать???
Насчет того сикоко туды(в оперативку) можно коорд. впихнуть я знаю. Но не забывай что помимо статичного мира будут и динамические обьекты(птички, лоси, белочки ) и прочее из игры. У меня перс не будет двигаться быстро как самолет, так что можно проверять через каждые 10 проходов, а чтобы обьекты вдруг не появлялись в зоне видимости проверять на расстоянии большем от camerarange или fogrange настолько, сколько перс может пройти за эти 10 проходов. Секторами тож хорошая идея, но боюсь, что при переходе из сектора в сетор комп будет подвисать(хотя не знаю).
|
(Offline)
|
|
31.05.2007, 01:33
|
#12
|
☭
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений (для 2,707 пользователей)
|
Re: Скрипт и infinity map
можно проверять и каждые 100 проходов. ето не суть.
вопрос в другом, охота ли тебе возиться с seek-ами, если охота- пожалуйста, флаг в руки и барабан на шею, если неохота и ты планиуреш последовательно считывать данные выбирая нужные - хм, думаю сам понимаеш что простыми "подвисаниями" тут не отделаешся, будут задержки, будет мат со сторыны юзеров в сторону разработчиков.
мое имхо осталось прежним, грузить все ето в оперативку, потом как говорил МоКа.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:24.
|