В любом случае вы можете лишь попытаться собрать «боинг», наверняка получится что-то свое. И это что-то может даже и не взлетит, а, скажем, поплывет :-)
Заходи на IGDC и участвуй, кто ж мешает =) Исходники к работам выкладываются, можно подсмотреть что-то и потырить. А XProger — сам по себе злостный маньяк =) Как ни напишет чего на конкурс какой — так получается нечто шедевральное, и обязательно займет призовое место =) Почти как Груздев, только в 3D =)
За теорию — спасибо, как раз это и нужно. Seek действительно кое-где стоит убрать, это скорее перестраховка, но в большинстве случаев он нужен, т.к. файл собирается не последовательно, а скачет туда-сюда. Код действительно такой, ибо вручную мне его форматировать лень, надо будет поискать, как делать это автоматически. Или в более новых версиях такая возможность встроена?
Раскаиваюсь. Прямо сейчас качаю Jedi Code Format. Код тоже постараюсь привести в порядок. По крайней мере, уберу этот ужасный разворот байтов(как я уже писал, мне за него самому стыдно).
этот язык — главный минус игрушки, даже на современном и мощном железе часто появляются лаги. хотя хватает сторонних визуализаторов карт(типа eihort) которые рендерят полностью мир, жрут в 5+ раз меньше оперативы и не лагают.
Minecraft же не только визуализатор, он ещё и механику считает. А рендер идёт через OpenGL.
Собираюсь попробовать запустить его на Java7 (возможно со сборщиком мусора G1).
под механикой вы наверно имеете ввиду примитивную физику мира, AI мобов и логику редстоуна? ну так вот я не верю что они в силах уложить на лопатки современный 4х ядерный проц(который кстати и не грузится особо при игре).
Вообще я ради интереса довольно долго следил за тем как себя ведет игра, но до конца так и не понял: например внутриигровая статистика(по F3) показывает что используется 200-300мб оперативы(из выделенного для жавы гига) при этом через пару часов игры винда выдает сообщение о нехватке оперативы и предлагает закрыть майнкрафт. если продолжить играть то через какое то время игра сама выдаст сообщение что память закончилась и надо перезапустить игру. на за все время игры потребление оперативы по внутренней инфе не превышало и 500мб, да и видно что сборщик мусора постоянно работает. еще мне не совсем понятно что майнкрафт постоянно делает с винтом — очень активно постоянно чтото читает/пишет… это при том что игра весит 40мб, а небольшой мир 10-20мб — которые можно держать в озу и синкать раз в минуту или реже.
пробовал как на jde6, так и на jde7. на линухе кстати тормозов заметно меньше, но там проблемы с управлением бывают и с захватом курсора. ну и еще стоит запустить параллельно с игрой какой нибуть хром или фаерфокс(с парой закладок) и в игре начинают появляться фризы.
В общем жду и надеюсь что появится аналог майнкрафта без джавы. пока поигрывая в террарию:)
Механика примитивная, но затратная. Для каждого кубика надо: пересчитать свет если он изменился от времени суток или другого кубика; если вода — проверить не растечётся ли она на соседние блоки; если земля — не вырастет ли на блоке трава или что-то другое; то же самое для снега, и прочее, и прочее.
И вот на таких вот несложных алгоритмах Java со своим JIT-компилятором не на очень много уступает в производительности Си.
Потребеление памяти изнутри показывается не всё, а только то, что приходится на кучу. Есть ещё так называемая PermGen память.
А Террария — это же .Net, та же Java, только вид сбоку.
я прекрасно понимаю что там дофига мелких(примитивных по большей части) расчетов, но это абсолютно ничего не меняет — возьмите любой современный шутер с практически реальной физикой, динамическим освещением, аи ботов — он идет на компе без тормозов, а майнкрафт начинает лагать. и врядли виной тому сам код игры, думаю главная проблема всеже в яве.
.Net может в чем то и аналог явы, но намного лучше вылизанный(но конечно не такой кроссплатформенный). хотя это взгляд пользователя софта на обоих платформах. может для программиста ява идеал, а дотнет сущий ад — об этом судить не могу.
В шутерах как раз больше вычисляется графика — полигоны, освещение, шейдеры, и это всё работает большей частью внутри видеокарты. А с физикой там расчитывается небольшое количество близлежащих объектов. Шутеры и летают на современных видеокартах, а не самих компах. Stalker, например, с некоторыми модами, которые добавляют игровую механику, а не графику, тормозит не хуже Майнкрафта.
Я понимаю, что у публики к Java намертво приклеилась слава тормоза, но на самом деле не всё так просто.
Возможно, лаги — расплата за кроссплатформенность. Насколько я знаю, майн существует почти под всё — Windows, MacOs, Linux, XBox360, даже под телефоны есть. Немногие языки могут этим похвастать.
Warsow тоже идет под кучей платформ, имеет гораздо более крутую графику и при этом не лагает. Просто если заглянуть в код крафта (декомпилированный и деобфусцированный с помощью MCP), можно довольно легко убедиться в том, что Нотч — быдлокодер. Об этом также говорят и многочисленные баги в новых версиях — добавляют одно, ломается другое (которое вообще вроде никаким местом не причастно к изменениям). Если оптимизировать код, игра просто летала бы.
А видели бы вы как реализован сервер! Это просто песня. Любое изменение чанка, приводит к посылке всего чанка (со всеми данными) на сервер, а сервер ретранслирует всем клиентам включая пославшего. таким образом майнкрафт легко генерирует исходящий трафик от сервера на уровне 1мбит на 5 игроков.
Зачем слать куски карты я не представляю, во всех играх принято слать действие игрока.
Песня даже не в этом. ВСЁ, происходящее на сервере, идет в одном потоке, т.е. при ~100 человек онлайн лаги неизбежны на любом железе. Что касается посылки карты — имхо, дело в том, что при тех же 100 онлайна проще просчитать карту на сервере и раздать ее всем, чем заставлять гораздо менее мощные клиенты просчитывать всю эту толпу.
P.S: Могу ошибаться, т.к. говорю со слов админов сервера, на котором я играю. Называть не буду, ибо реклама, но в mctop.ru он занимает одно из первых мест, название начинается на G… Причем админы там явно знают, про что говорят, тк они переписали сервер с нуля.
ну не знаю, для меня биомы весьма незначительный плюс — главное это полная свобода и возможность реализовать свои задумки. если бы еще немного механику редстоуна переделать, для сбора более компактных схем — было бы вообще замечательно.
>именно на 7 версии года 4 назад я начинал писать блокноты по мануалам из Игромании
Именно на 7 версии, 7 лет назад я начинал писать <уже не помню что> по мануалам из Игромании.
Похоже что-то в этом мире остаётся неизменным.
Создание генератора мира для minecraft