Тема: minecraft
Показать сообщение отдельно
Старый 13.06.2011, 12:47   #19
YellowAfterlife
ПроЭктировщик
 
Аватар для YellowAfterlife
 
Регистрация: 19.02.2011
Сообщений: 134
Написано 81 полезных сообщений
(для 219 пользователей)
Ответ: minecraft

Сообщение от Taugeshtu Посмотреть сообщение
Если так в майнкрафте (а судя по тормозам, это таки так) - нотч адский говнокодер. Набуя?! Тут уже говорили - дискретизируем координату, читаем соседние ячейки.. Регулярная сетка же, клинически простой случай.
Стоит заметить что при использовании упомянутого мной метода, учитывая то что размер игрока - ~0.8x0.8x1.6 блоков, то максимальное количество проверяемых за раз блоков будет равно 2х2х3 = 12.
Я не смотрел, как реализованы столкновения в MC, но логично предположить что используются циклы, поскольку далеко не все объекты имеют одинаковый физический размер. То есть, чтобы реализовать столкновения для пауков (у которых bounding box размерами в 1.*х1.*х0.*), придется переписывать функцию заново.

Сообщение от Den Посмотреть сообщение
Хм, а если камера находится на поверности, а под землёй есть пещера. В пещере будут отрисовыватся кубы?
Как факт, да. Так же если отредактировать terrain.png, сделав части базовых текстур полу-прозрачными (просто удалением каждого n-ого пикселя), то вы сможете созерцать весь подземный мир, стоя на поверхности.
Не думаю что можно определить надобность прорисовки нижних секторов карты, не делая массу raytrace'ов. А расходы на проведение оных скорее всего займут времени больше чем прорисовка тех немногочисленных сторон кубов в пещерах.

По последним версиям это сложно проверить, но в Classic версии игра не рисовала все блоки которые "явно" находились у игрока за спиной. Это достаточно очевидный способ оптимизации, но для однотипного мира уменьшает затраты ресурсов в ~2 раза.

Сообщение от JACUK Посмотреть сообщение
В браузере?..а можно поподробней
Если вы владеете лицензионной версией игры, то вы можете играть в нее в браузере, авторизовавшись на minecraft.net (сверху - 'Login', после - 'play (in browser)').
__________________

Мой сайт-блог. Игры, обновления, примеры для Haxe, JavaScript(+HTML5), GameMaker, Love2d...
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо YellowAfterlife за это полезное сообщение:
den (13.06.2011), JACUK (13.06.2011), NitE (13.06.2011)