Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Проекты > Проекты на BlitzMax

Ответ
 
Опции темы
Старый 23.04.2012, 21:36   #271
Nikich
Бывалый
 
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений
(для 275 пользователей)
Ответ: Vivo

Немного математики для наглядности размеров мира. Пока что, координаты чанков - integer, значит крайние число - 2,147,483,647. Один чанк - 512 пикселей. Скорость игрока - 2 пикселя за тик, максимальное фпс - 60, значит скорость игрока - 120 пикселей в секунду. (2,147,483,647*512)/120 - время за которое игрок пройдёт до конечного чанка. А это - 290 лет, если я не ошибся. Так что поверьте, это сравнимо с бесконечностью.
(Offline)
 
Ответить с цитированием
Старый 23.04.2012, 21:37   #272
Halk-DS
Разработчик
 
Аватар для Halk-DS
 
Регистрация: 09.08.2006
Адрес: Украина
Сообщений: 431
Написано 65 полезных сообщений
(для 53 пользователей)
Ответ: Vivo

Припустим у тебя есть переменная PlayerRange -кеп сообщает что это обзор. Значит у тебя при PlayerRange=2 будет ситуация такова:
Перс стоит на чанке. Это 0+1 чанк на котором мы стоим
Видит он перед собой еще 2 чанка Это 0+1+PlayerRange
Видит он еще и за собой 2 чанка. Это 0+1+PlayerRange+PlayerRange
Соответственно общий размер локи будет PlayerRange*2+1
Делаешь массив Dim Chunks(PlayerRange*2,PlayerRange*2) - тут не делаешь +1 ибо нумерация массива начинается с нуля. Типо при PlayerRange*2+1 у тебя будет не 5 рядков и строк а 6 рядков и строк. А тут последняя нафик не нужна.
Теперь ахтунк!
Учишь это Связанные списки в Blitz3D
И учишся делать так, что б в массиве Chunks(PlayerRange*2,PlayerRange*2)
Каждая ячейка отвечала ТОЛЬКО АДРЕСУ на массив типов с инфой уже про каждый кубик.
Потом при передвижении игрока с одного чанка на второй программируешь сдвиг рядков(или столбцов) массива содержащего АДРЕСА на другие массивы с инфой про кубики. А освободившийся рядок(или столбец) заполняешь новой инфой с файлов и не мгновенно, а по кусочку за 1 проход цикла. (звучит это весьма просто, но на собственном опыте говорю - гемора выше крыши. Я с этим до конца не разобравшись забил болт и отложил эту цель на момент релиза игры.)
Вполне вероятно что ты меня плохо понимаешь, мой тебе совет, откажись от неограниченного мира, сделай хоть ограниченный но качественно. А потом думай над тем как делать его "бесконечным". Даже Нотч первые демки майнкрафта показывал с ограниченной локой(где то читал).
(Offline)
 
Ответить с цитированием
Старый 23.04.2012, 21:40   #273
Halk-DS
Разработчик
 
Аватар для Halk-DS
 
Регистрация: 09.08.2006
Адрес: Украина
Сообщений: 431
Написано 65 полезных сообщений
(для 53 пользователей)
Ответ: Vivo

Сообщение от Nikich Посмотреть сообщение
Немного математики для наглядности размеров мира. Пока что, координаты чанков - integer, значит крайние число - 2,147,483,647. Один чанк - 512 пикселей. Скорость игрока - 2 пикселя за тик, максимальное фпс - 60, значит скорость игрока - 120 пикселей в секунду. (2,147,483,647*512)/120 - время за которое игрок пройдёт до конечного чанка. А это - 290 лет, если я не ошибся. Так что поверьте, это сравнимо с бесконечностью.
Сделай так, что б игрок открывший твою игру пробежал дольше 5 минут. А тогда парся о большем...
(Offline)
 
Ответить с цитированием
Старый 23.04.2012, 21:45   #274
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Vivo

Все эти проблемы к данной теме не относятся. Это вам не майнкрафт, который 3д, и в котором есть дальность обзора, например. Тут 2д (а может и 3д, это неважно) игра, с зафиксированным видом сверху. Так-что в любой момент времени максимум может понадобится отображать 3 чанка. О какой бесконечности речь? Короче, всё это реализуемо с помощью массивов и всю эту мизерную карту можно и нужно засунуть в 1 файл. Учите матчасть ТС.
(Offline)
 
Ответить с цитированием
Старый 23.04.2012, 21:52   #275
Nikich
Бывалый
 
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений
(для 275 пользователей)
Ответ: Vivo

Так я и отображаю только 3 чанка.
Кстати, у меня есть версия игры с массивами, карту можно пробежать за 44 часа, по моим расчётам. Вообще без чанков и всего такого.
Можете соизволить объяснить в чём файлы так ужасны? Чего все на них так набросились?
Nite
Видимо мы вообще говорим о разных вещах, я не понимаю о какой мизерной карте идёт речь. Можешь подробно объяснить, как с твоей точки зрения всё это выглядит?
(Offline)
 
Ответить с цитированием
Старый 23.04.2012, 21:54   #276
Halk-DS
Разработчик
 
Аватар для Halk-DS
 
Регистрация: 09.08.2006
Адрес: Украина
Сообщений: 431
Написано 65 полезных сообщений
(для 53 пользователей)
Ответ: Vivo

Сообщение от NitE Посмотреть сообщение
Учите матчасть ТС.
Можно толчок в сторону той мат части о которой идет речь?
(Offline)
 
Ответить с цитированием
Старый 23.04.2012, 21:56   #277
Nikich
Бывалый
 
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений
(для 275 пользователей)
Ответ: Vivo


Да-да, и я не откажусь. На словах у Nite так всё просто звучит, аж интересно.
(Offline)
 
Ответить с цитированием
Старый 23.04.2012, 23:19   #278
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Vivo

Hulk-DS, Да, конечно. Основы программирования и тригонометрии, а так-же работа с векторами. Всё что я пытаюсь втолковать топикстартеру - это самые простые и очевидные вещи. Я не уверен что их можно будет так-же легко применить к такой модели мира в 3д, со свободным обзором.

Nikich, Тебе нужно, чтобы у игрока была земля под ногами, ну и например заранее ещё 8 чанков во все стороны от игрока (если предположить что 1 чанк у тебя по размерам как 1 экран). Итого у тебя в начале получается 9 чанков. А ты говоришь про какието 2 миллиарда. Потом, если игрок куда-то побежаль, начинаешь постепенно добавлять чанки, генерируя их в зависимости от ландшафта окружающих чанков. Вот собственно и вся логика. Если игрок бежит в одну сторону уже 2-3 часа, например, начинаешь с другого конца (тоест с позиции откуда игрок стартовал) удалять чанки, а потом, если когото приспичит ещё и назад прогулятся, то опять-же генерируешь новые чанки.

А то, что игровую карту нужно хранить в одном файле, а не в кучке маленьких - это вообще само собой разумеется. Это и по быстродействию и по удобству и всем прочим параметрам намного удобнее и круче.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Hulk-DS (23.04.2012)
Старый 23.04.2012, 23:40   #279
Nikich
Бывалый
 
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений
(для 275 пользователей)
Ответ: Vivo

В одном файле ты всё не удержишь. Представь, когда игрок будет на чанке с координатами -25,25, то ты предлагаешь пробежаться по всему файлу дабы найти этот чанк?
Конечно, сразу полезу мысли, о том, что ведь можно это дело SeekFile'ом красиво обыграть, но так тоже не выйдет, так как нельзя определить в каком месте находится этот чанк( вдруг он был сгенерирован в самом начале игры, или когда уже было открыто 1000 чанков ). Так что на файлы разбивать точно придётся.
Хорошо, представь что у тебя есть эти 9 чанков. Как я понял, хранить ты их хочешь в каком-то отдельном файле. Так а смысл тогда использовать массив? Что я работаю напрямую с файлами, что по твоему способу я буду работать с файлами чтобы заполнить этот массив, а потом уже из массива брать информация о блоках. Где выгода?
(Offline)
 
Ответить с цитированием
Старый 24.04.2012, 00:23   #280
Halk-DS
Разработчик
 
Аватар для Halk-DS
 
Регистрация: 09.08.2006
Адрес: Украина
Сообщений: 431
Написано 65 полезных сообщений
(для 53 пользователей)
Ответ: Vivo

Сообщение от Nikich Посмотреть сообщение
Конечно, сразу полезу мысли, о том, что ведь можно это дело SeekFile'ом красиво обыграть, но так тоже не выйдет, так как нельзя определить в каком месте находится этот чанк( вдруг он был сгенерирован в самом начале игры, или когда уже было открыто 1000 чанков ). Так что на файлы разбивать точно придётся.
Я думаю что именно в этом месте и нужно подтягивать мат часть. (п.с. Сам не пробовал так сделать...)
Кроме того у Нотча не лежит в папке пару тищь файлов когда пробежишься по карте.
(Offline)
 
Ответить с цитированием
Старый 24.04.2012, 00:24   #281
NitE
злобный флудер
 
Регистрация: 10.07.2007
Сообщений: 2,585
Написано 789 полезных сообщений
(для 1,476 пользователей)
Ответ: Vivo

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

Что такое архив? Это 1(!) файл, который содержит в себе много(!!!) более мелких файлов. Уличная магия? Не, просто алгоритмы.
(Offline)
 
Ответить с цитированием
Старый 24.04.2012, 00:38   #282
Nikich
Бывалый
 
Регистрация: 22.12.2011
Сообщений: 844
Написано 150 полезных сообщений
(для 275 пользователей)
Ответ: Vivo

Ну, я сделал по-своему, просьба отписаться сколько у кого фпс, на каком железе.
А в том способе что ты сейчас написал, тоже есть изъян. Тебе ведь придеться расширить массив, если игрок решил далеко зайти. А для этого нужно выгрозить весь этот массив, расширить его и опять заполнить. Сколько же это гемора.
З.Ы. я верил в магию
Вложения
Тип файла: rar vivo.rar (547.3 Кб, 600 просмотров)
(Offline)
 
Ответить с цитированием
Старый 24.04.2012, 01:46   #283
Halk-DS
Разработчик
 
Аватар для Halk-DS
 
Регистрация: 09.08.2006
Адрес: Украина
Сообщений: 431
Написано 65 полезных сообщений
(для 53 пользователей)
Ответ: Vivo

В обычные моменты около 30
Когда приходят глюки от 8 и до 18 сильно скачет
Целерон 1 ядро 1.8
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nikich (24.04.2012)
Старый 24.04.2012, 09:09   #284
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Vivo

стабильно 39-40 FPS, i5 со встроенным видео.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nikich (24.04.2012)
Старый 24.04.2012, 09:14   #285
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений
(для 2,828 пользователей)
Ответ: Vivo

25-30 fps, ёжик т101мт (конфиг в подписи). Вечером проверю на стационаре
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.

Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2


Скачать Doom 2D: Remake v0.3.8a
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nikich (24.04.2012)
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com