все элементарно:
1. генерим карту высот, и расставляем спец блоки "erosion"
2. Для каждого блока помеченного как "erosion": стираем блок и перебираем его соседей и если сосед помечен как erosion (что верно и для всего пространства под поверхностью) то для него cчитаем значение шума, для одного интервала значений ставим видимый блок, для другого спец. блок "erosion"
пвторяем п.2 до победного конца
на выходе имеем эррозию карты высот.
Это конечно только принцип без деталей =)
RomanGen
> качаете exec.zip
А можно выложить файлы на нормальный сервер?
Посмотрел таки, реально не тормозит даже на моем стареньком макбуке. Освещение пока совсем какое-то невыразительное. И эти hd текстуры как-то не ок.
Короче так держать!
AleX AciD
> можно выложить файлы на нормальный сервер?
"Максимальный размер файла: 1024 Kб" у меня 1.7Мб, впринципе ужимаемо (exe 350Kb + избыточные текстуры порезать в ущерб совместимости с текстур паками minecraft)
tirinox
> Короче так держать!
спасибо большое =), значит на маке таки запустил ?
tirinox
> Освещение пока совсем какое-то невыразительное
оно ровно такое как в minecraft, только без smooth, може только коэффициенты затенения сторон другие, а также мин. свет не черный, чтобы видеть блоки даже в полной тьме.
попробуй также ночной режим, построй светящиеся блоки (8-ка)
RomanGen
> спасибо большое =), значит на маке таки запустил ?
Нет. Вин7... я человек-наоборот.
Запустил на Линуксе (Debian 6.0, 64bit). Всё очень тормознутое, дырявое, фпс по ощущениям около 2-3. На вид не очень, над освещением и генерацией (и управлением) бы поработать. Через время обязательно вылетает. С такой вот ошибочкой:
На старте такие сообщения:
А во время работы повторяется такая строчка:
Ну тут ничего не поделаешь, для хорошей совместимости лучше писать на OpenGL на CPU (и работать будет быстрее и выглядеть лучше, разве что разрешение будет небольшое).
>1. не тормозит (да там еще много нет, но то что есть работает в одном потоке и позволяет дорисовывать в разы быстрее Minecraft,
Кстати, если не секрет, благодаря каким таким оптимизациям оно (на каком, кстати, железе?) не тормозит и быстрее Minecraftа?
jabberx
> Всё очень тормознутое
я так понял у тебя мало того что эмулятор винды, так еще враппер DirectX через OpenGL... ну я даже не знаю что сказать =), наверно отдельным форком я буду делать реализацию для OpenGL/Linux когда проект будет презентабельным.
3fps там может быть только на софтверной эмуляции, т.к. все "летает" даже на онбородвых видеокартах
jabberx
> Кстати, если не секрет, благодаря каким таким оптимизациям оно (на каком,
> кстати, железе?) не тормозит и быстрее Minecraftа?
Самое печальное железо на котором я тестил - ноутбук i3-2Ghz, с онбоард видеокартой (Intel GMA какой-то), на нем minecraft правда тоже ворочается, но очень медленно генерит ландшафт (где-то чанк в секунду)
Об оптимизациях я лучше промолчу до поры, а тут тут холивар начнется c++ vs Java, чего я совсем не хочу т.к. использую языки по потребности а не из религиозных убеждений
Я потестил на ещё более печальном железе:
Intel Atom N270 1.6Ghz 1024 RAM
Intel GMA 950 224Mb
Ось WinXP SP3, стоит DirectX 9.0c, молча не запустилось.
>буду делать реализацию для OpenGL/Lin
Так почему не сделать везде OpenGL? Я не к тому, что OpenGL лучше - и правда не важно, на чём делается C++, Java - лишь бы запускалось.
Потестируй и мою старую поделку, если не сложно: game.jar
Скриншот:
Управление:
RomanGen
> Об оптимизациях я лучше промолчу до поры, а тут тут холивар начнется c++ vs
> Java
Можешь рассказать, как ты генеришь чанки? Т.е. объединяешь ли полигоны граней у однотипных соседних блоков, каким алгоритмом их ищешь, генеришь ли полигоны граней на границах чанков.
jabberx
> Потестируй и мою старую поделку, если не сложно
работает и выглядит опрятно, я так понимаю ты ее забросил ? по каким причинам, если не секрет ?
Virl
> Можешь рассказать, как ты генеришь чанки?
у меня нет чанков в понимании minecraft, просто области сходные с чанками группируются чтобы в одном вертекс буфере жить, генерируется же просто произвольная область
Virl
> объединяешь ли полигоны граней у однотипных соседних блоков
нет, также не понял зачем и во что их объединять ?, или ты о LOD ?
Virl
> генеришь ли полигоны граней на границах чанков
нет, можешь посмотреть способом описанным мной в топике (создать блок в себе и зайти под геометрию)
RomanGen
> так еще враппер DirectX через OpenGL
Да... сейчас уже пофиг совершенно DX или OpenGL, они делают одно и тоже одиними и теми же способами. OpenGL лучше только потому, что он есть ВЕЗДЕ. Винда же стремительно теряет свои позиции, и стоит уже задуматься. К слову о Вайне. Он прекрасно тянет современные игры. Недавно я прошел на своем 3-4 летнем компе вторую Мафию на маскимальных настройках под Мак ОС Х 10.6 и только потом, раскрыв содержимое архива, понял, что эта была вайновая обертка над вин версией!
Вот холивар JAVA vs C++ вполне обоснован. При одинаковой пряморукости кода С++ будет быстрее. Особенно, где программа дергает огромные объемы памяти туда сюда. GC не дремлет.
tirinox
> Винда же стремительно теряет свои позиции
не горячись, поищи ее долю в компьютерах/ноутбуках, более 80% в США где сильна Mac OS (15%)
про скорую смерть Windows я это уже слышу лет 15-ть =)
tirinox
> вот холивар JAVA vs C++ вполне обоснован.
не надо кормить троллей, холивар никак не обоснован и в нем нет победителей
tirinox
> Особенно, где программа дергает огромные объемы памяти туда сюда. GC не
> дремлет.
все несколько не так, точнее совсем не так, система GC с его поколениями и пр. позволяет спланировать стратегию разработки чтобы его присутсвие было незаметно =)
RomanGen
> не горячись, поищи ее долю в компьютерах/ноутбуках, более 80% в США где сильна
> Mac OS (15%)
> про скорую смерть Windows я это уже слышу лет 15-ть =)
Рынок Mac распространяется, раньше было чудом увидеть их у нас, например, сейчас на каждом углу. Linux распространяется, его начинают ставить вместо винды на предприятиях, школах и т.п. Steam объявила, что Linux может стать более приоритетной платформой для игр (!). Win8 терпит провал. Юзабилити нулевое. Отвратительная система, вчера ставил, настраивал – обплевался.
За 15 лет этот миф превращется в реальность. Смерть не скорая, и даже не смерть, просто рынок у нее отъедают. Как не крути, пирог имеет размер 100%, если кто-то взял больше, то остальным осталось меньше.
RomanGen
> не надо кормить троллей, холивар никак не обоснован и в нем нет победителей
Ладно, я не особо горю желанием.
RomanGen
> все несколько не так, точнее совсем не так, система GC с его поколениями и пр. позволяет спланировать стратегию разработки чтобы его присутсвие было незаметно =)
Когда поручаешь кому-то свою работу, никогда не получится так, что ты будешь доволен ее результатом на 100%. Упс, я же обещал.
В целом, да, холивары – это оффтоп для данной темы. Так что не будем.
1. Рынок у венды отъедает не макось, а прежде всего ипад, т.к. казуальные игроки переходят с ПК на него.
2. C++ чрезвычайно усложняет разработку сколько-нибудь сложных проектов. Производительность же для майнкрафтоклонов не нужна, т.к. сам Майнкрафт показал, что на яве все работает вполне нормально (оригинальный сервак не в счет, т.к. там не в яве дело, а в кривых руках можанга - народ с greencubes.org это поправил).
3. Используя DirectX, автор на корню убивает себе любое будущее пространство для маневра (портануть на андроид, портануть на айось, портануть под линух+макось). OpenGL стал стандартом де-факто. DirectX используется только в виндовом гетто.
4. Про десктопы. Мощнейший и наибольший рынок десктопов - это рынок США. И там самый продаваемый десктоп это... iMac.
RomanGen
> у меня нет чанков в понимании minecraft, просто области сходные с чанками
> группируются чтобы в одном вертекс буфере жить, генерируется же просто
> произвольная область
Как тогда делается сжатие при сохранении на диск и расжатие при чтении с него? Тебе же все равно надо подгружать мир по кусочкам с диска (или передавать по сети) и их разжимать.
> нет, также не понял зачем и во что их объединять ?, или ты о LOD ?
Чтобы меньше полигонов было и больше fps. Когда идут скажем подряд 10 каменных блоков, чтобы их грани рисовались с каждой стороны 2 полигонами, а не 20ю.
Тема в архиве.