forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Проекты на Unity (http://forum.boolean.name/forumdisplay.php?f=147)
-   -   Еще один Minecraft на юнити (http://forum.boolean.name/showthread.php?t=16776)

WISHMASTER35 11.05.2012 16:30

Еще один Minecraft на юнити
 
Наконец-то доделал демку своего minecraft'а)
Видео http://www.youtube.com/watch?v=TC3dv...ature=youtu.be
Плеер http://dl.dropbox.com/u/55489242/Min...WebPlayer.html
Исходники http://dl.dropbox.com/u/55489242/Min...1.unitypackage

Сразу скажу об одной спорной особенности моей демки.
Не знаю как в других реализациях этой игры, но у меня нет одного массива блоков для всей карты. А в каждом чанке храниться кусочек карты.
Плюсы:
Не нужно следить за двумя массивами(блоков и чанков), а работать лишь с массивом чанковов, а массив блоков автоматически создастся в чанке.
При увеличении карты не нужно будет пересоздавать огромный массив блоков, а лишь массив чанков, который в 16 раз меньше.
Не нужно тратить кучу памяти на этот массив блоков, если большинство его чанков будят абсолютно пусты.
Минусы:
Пройтись по такой карте стало немного сложнее, хотя это не сильно надо.
Для оптимизации блоки строятся только те, что не имеют всех шести соседей(т.е. могут быть видны) или являются крайними в чанке. Если была бы полная карта, то блоки были крайними на карте, а не в своем чанке. Т.е. из-за этого строится много лишних блоков. На видно это видно с 1:55. Попробую брать соседние чанки и с ними проверять, но это замедлит процесс проверки видимости крайних блоков чанка.
Не знаю как лучше сделать.

Еще маленький баг виден на 23й секунде видео, когда курсор вылазит за пределы атласа. Можно ограничить область рисования линий?

И удаление\добавление блоков работает не быстро. Но мне кажется это тормозит из-за поисков соседей у блоков. Можно как-то проверить наличие всех соседей у блока не проверяя каждого соседа у каждого блока?

ABTOMAT 11.05.2012 23:23

Ответ: Еще один Minecraft на юнити
 
2032-й год, любой технический ВУЗ, специальность программиста:
— Петров!
— Я!
— Хеллоу ворлд писал?
— Писал.
— Сортировку пузырьком делал?
— Делал.
— Minecraft запиливал?
— Не, пока нет.
— Пока не сделаешь, к зачётам не допускаешься!

WISHMASTER35 27.05.2012 19:12

Ответ: Еще один Minecraft на юнити
 
Update)
Видео http://www.youtube.com/watch?v=up4MM...ature=youtu.be
Веб плеер http://dl.dropbox.com/u/55489242/Min...WebPlayer.html
Исходники http://dl.dropbox.com/u/55489242/Min...2.unitypackage

Теперь мир генерируется шумом перлина. И генерируется он автоматически вокруг камеры.
Генерируются не видимые кубы, а только видимые фейсы кубов, что намного меньше и быстрее.

Но вот только проблема, когда генерируется чанк, то и строятся его боковые стороны, которые будут не видны за чанками, которые с генерируются следующими. Получается, что на эти стороны и память и время зря тратиться( Не понимаю как правильно сделать.

WISHMASTER35 14.01.2013 01:53

Ответ: Еще один Minecraft на юнити
 
Update 5
http://www.youtube.com/watch?v=9DyCdUszY0Q

RegIon 14.01.2013 02:22

Ответ: Еще один Minecraft на юнити
 
дык их вообще не строить, так как я не разу в демке не попал в такую ситуацию пока не прокопал вниз. А что с водой?Это тоже куб, или плейн фигурный?

WISHMASTER35 14.01.2013 03:25

Ответ: Еще один Minecraft на юнити
 
Цитата:

дык их вообще не строить, так как я не разу в демке не попал в такую ситуацию пока не прокопал вниз.
Это ты к чему?
Цитата:

А что с водой?Это тоже куб, или плейн фигурный?
Вообщем-то тоже куб, только класс для жидкости специальный. Там проверка видимых фейсов другая. Кстати, баг есть. Если на воду поставить куб, то у воды верхний фейс не сгенерируется и из-за волн будят щели)

mepihin 14.01.2013 22:27

Ответ: Еще один Minecraft на юнити
 
красавчик

mepihin 14.01.2013 22:28

Ответ: Еще один Minecraft на юнити
 
только баг нашел, если навести на куб и нажать на E и ответси курсор то выделение остается

WISHMASTER35 15.01.2013 22:51

Ответ: Еще один Minecraft на юнити
 
mepihin, вообще-то в инвентаре камера не вращается при движении курсора. Так что выделение выделенным остается тот куб, на который смотрит камера.

mepihin 16.01.2013 17:22

Ответ: Еще один Minecraft на юнити
 
Цитата:

Сообщение от WISHMASTER35 (Сообщение 249578)
mepihin, вообще-то в инвентаре камера не вращается при движении курсора. Так что выделение выделенным остается тот куб, на который смотрит камера.

Сделай проверку на нажатие клавиши E. То есть если нажата и наведен, то материал старый иначе с рамкой

Radnk 28.01.2013 23:07

Ответ: Еще один Minecraft на юнити
 
Спасибо за исходник :)

LLI.T.A.L.K.E.R. 29.01.2013 02:01

Ответ: Еще один Minecraft на юнити
 
Прошу сделать (можно отдельную) web-версию, +если возможно подгружать с ж\диска свои текстуры.
Чтобы так, для хобби, 3Д-рисовать, конструировать.
+ещё делать снимки на память.

Быструю версию, на подобие Web-3D-Paint

в минекрафт так и не играл, и его уже никому не переодолеть

Radnk 29.01.2013 18:12

Ответ: Еще один Minecraft на юнити
 
WISHMASTER35, если все еще занимаешься созданием Minecraft, добавь возможность генерировать случайный мир и генерировать плоскость с определенным количеством кубов. :)

WISHMASTER35 03.02.2013 01:54

Ответ: Еще один Minecraft на юнити
 
LLI.T.A.L.K.E.R., да, я хочу сделать возможность создавать свои blockSet'ы со своими текстурами и конечно загружать и сохранять уровни.
Radnk, там и так случайный мир генерируется. А генерация плоского мира конечно будет удобна для строительства. Вообще я хочу бесконечный мир заменить на один остров. А то с этой постоянной генерацией куча проблем.

Цитата:

в минекрафт так и не играл, и его уже никому не переодолеть
Думаю даже если создать что-то лучше, то все равно будешь лишь клоном.

Я хотел сделать режим создания уровень и режим сетевого шутера типа C.S.
Только возможность разрушать уровень в режиме шутера сомнительна т.к. перестройка будет вызывать рывки, которые будят мешать целится.
Хотя заметные рывки могут быть разве при сильном изменении освещения.

WISHMASTER35 17.02.2013 19:03

Ответ: Еще один Minecraft на юнити
 
UPDATE 6
http://www.youtube.com/watch?v=qOeaG2Q686Y
Апдейт касается в основном редактора. Еще изменил способ хранения BlockSet, теперь список блоков хранится в xml строке, которая сериализуется.


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

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