Хочу представить вам новый движок, основанный на L2D, который намного расширит возможности и удобство создания модов.(Или теперь уже игр?) +Улучшенную версию конвертера моделей, в которой были уменьшены края текстур, и была добавлена поддержка мультитекстуринга и возможность экспортировать координаты пустышек.
Разработка началась в начале-середине 2017 года, изначально в движке были лишь разные режимы рендеринга с туманом и прочими эффектами, которые потом почти без изменений переходили в Project Beta и Silent Evil. Всё это разрабатывалось в чистом Iceberg 3, путём редактирования его исходного кода. На случай, если не знаете, что это: Это - 3D движок от DDDENISSS, который используется в Left2Die. Позже эти наработки были портированны и в самый обычный Л2Д, когда были получены его исходники. Так и шла разработка, движок был не более чем полем для тестирования техническо-графических фич перед их портированием в Project Beta и Silent Evil. Да, большая часть графических фич вроде мультитекстуринга, тумана, освещения были портированы в Silent Evil и Project Beta отсюда. Вместе с графическими улучшениями добавлялись и геймплейные фишки, различные улучшения для моддинга, благодаря которым теперь можно кое-как релизить этот движок.
Я знаю, что я кэп, просто я уверен, что всё-равно кто-то не догадается, как переходить с одной версии на другую. В этой инструкции я затрону только сторону с заменой классов и редактирование манифеста, всё остальное есть в ченжлогах. Инструкция так-же подходит для перехода с версии квантума для s603rd на версию для остальных телефонов.
Дело в том, что начиная с версии 2.5 у классов новые названия и новое местоположение, по этому нужно редактировать манифест и удалять старые папки классов.
Во первых нужно удалить папки com и home из корня архива с игрой. Во вторых нужно скопировать папку com из новой версии квантума в папку мода. В третьих в файле MANIFEST.MF в строке MIDlet-1 нужно заменить home.Main на code.utils.Main
Это всё
Очень много минорных улучшений и багофиксов + обновление конвертера. Теперь самые последние билды будут находится в папке на box.com.
Эта версия является самой актуальной на момент 20.05.2020 года. Разраб никак не хотел делиться ею с народом по причине того, что ему лень обновлять документацию. Дошло даже до того, что вместо него её уже начали дописывать фанаты. По этому в архиве лежит именно версия с неофициальными правками.
Основные нововведения со времён выхода бета версии Нагибатор 3D (тоесть за год): - Возможность добавлять точки освещения; - Цветное освещение; - Исправлено сохранение прогресса; - Анимация текстур; - Настройка расскладки клавиш; - Инвентарь; - Расширенные звуковые эффекты; - Фонарик; - Нелинейные диалоги; - Свободный полёт в режиме разработчика и noclip. И многое другое...
Это только самые значительные нововведения, всех не перечислить. Прочитать инструкцию по эксплуатации новых фич можно в файле fullcmdlist и items, а так же в Read_me файле "Нагибатора 3D" (тоесть нужно отдельно скачать Нагибатор). Обо всём остальном нужно уже спрашивать на прямую у автора или в беседе VK: АЕ Моды
Обновление конвертера Obj To Iceberg Converter V.2.3 + список текстур + сортировка материалов
Не спрашивайте почему, но в этот раз обнову заливает не Рома, а товащ Wixel. По скольку Рахат Лукум проявляет пофигистическое отношение к своему продукту, а на сайте залята кривая забагованая недоделка (при том, что до конца конкурса всего то неделя осталась... Так, стоп, какой такой конкурс? А вы не знали? Ну вот и мы теперь пытаемся забыть) было решено залять хотябы адекватный билд, поскольку он существует, но Рахмаду видите ли тяжка писать список изменений. Я вот не знаю точно, что он там переделал но глобальных нововведений вроде нет. Также главное, что стоит отметить, это то, что в моём архиве присутствует конвертер в формате exe.
Исправление багов Доработано оружие
Качать прямиком с нашего сайта, это левая кнопка с файлом на 12 мб.
Исправление багов Оптимизация (куда без неё?)
Добавлена поддержка плавного тумана Добавлена поддержка спрайтовых НПС(ботов), работает только при использовании объектов типа [NPC], со стандартными врагами, что остались со времён л2д это не работает Немного переделан снег и дождь Переделано растягивание спрайтов оружия Была переделана система фракций у [NPC], прошу обратить на это внимание в документации
В квантум теперь можно играть на компьютерах с JRE в полноэкранном режиме с управлением через мышку и WASDE/SPACE/ESCAPE Для этого был взят и прокачан эмулятор явы Pstros, который всё-равно ещё нужно доделать, ибо он не переваривает большинство форматов звука Но тем не менее теперь можно будет положить любую игру на квантуме в папку эмулятора, переименовать, нажать два раза на иконку bat файла эмулятор, и спокойно играть без лишних танцев с бубном(но это не точно) Также эмулятор умеет запускать игры в распакованном виде, что может пригодится в процессе создания игры на квантуме Эмулятор с инструкцией лежит в дистрибутиве квантума.
Начата разработка внутриигрового скриптового языка, на нём уже можно делать ультра-простенькие скрипты, но из-за того, что язык ещё не доделан в документации нету никакой информации по нему, и инструкций по его использованию тоже нету. Если интересует то, как пользоваться им, то я могу скинуть исходный код класса, что отвечает за чтение кода, пишите.
Незначительно изменено управление для большего удобства (1 и 3 теперь отвечают за поворот головы вверх/вниз, 7 и 9 за стрейф, # за смену оружия, а * за зум) Наведён порядок в языковых файлах для упрощения перевода интерфейса движка Переделано меню настроек, добавлены новые настройки START_GAME в описаниях уровней было заменено на более универсальное слово NEXT
Внимание! Далее под "Настройками игры" я подразумеваю файл setting.txt
Добавлена поддержка нескольких экранов с описаниями перед уровнями (Нужно просто после номера уровня добавить _(номер экрана)) (Для первого экрана это не нужно писать) GAME_HELP_BACKGROUND теперь работает Теперь можно писать и GAME_HELP_TEXT и GAME_HELP_TEXT_1
Добавлена опция MENU_MUSIC в настройки игры, позволяет добавить музыку в главное меню
Добавлена настройка арсенала игрока в начале игры Появилась возможность сделать пустые руки для игрока (Удалив DEFAULT_ARSENAL и weapons.txt или добавив -1 в DEFAULT_ARSENAL) (По сути из игры теперь можно полностью удалить оружие, и движок переварит это) Добавлены необязательные звуки для оружия: SHOOT_SOUND и RELOAD_SOUND
Добавлен зум на * Уровень зума можно настраивать(или вообще отключить) как для игрока, так и для каждого оружия через опции ZOOM в weapons.txt и через PLAYER_ZOOM в setting.txt
Добавлена опция HIDESIGHT в settings, через неё можно настроить скрытие прицела, когда в руках нет оружия Добавлены опции MAXIMIZE_SIGHT и ORIGINAL_SIGHT в настройки игры и уровней, позволяют управлять растягиванием прицела Опцию SIGHT_ICON теперь можно прописывать и в настройках уровней
В настройки оружия добавлена опция CANSHOOT, используя которую можно отключать стрельбу у оружия В настройки оружия добавлены опции IGNORE_SIGHT_IMAGE, SIGHT_IMAGE, SIGHT_WEAPON_IMAGE которые позволяют редактировать прицел в режиме зума Теперь у оружия необязательно прописывать опцию FIRE (Если не прописать её, то у оружия не будет вспышки при выстреле) Опции KW и KH у оружия теперь не обязательно прописывать
Добавлена необязательная опция SHOPSCROLL (HORIZONTAL/VERTICAL) в setting.txt
Добавлена опция LQ_FOG, которую можно прописывать как в настройках игры так и в настройках уровней (Если туман на уровне очень слабый, то можно включать более простую модель тумана, разница почти не будет заметна, а фпс станет больше)
Добавлена опция CHUNK_SIZE, которая меняет размер чанков для просчитывания соприкосновений с миром (Не рекомендую менять стандартное значение)
Добавлена опция UPDATE_ONLYNEAR в настройки игры и уровней, позволяет отключить просчитывание ботов и объектов в дальних далёких краях карты (За счёт этого какой-нибудь бот не сможет прийти из другого конца карты + увеличивается производительность)
Добавлена опция SAVESTATE в settings, позволяет сохранять игру не только по прохождению игры, но и просто по выходу с уровня/игры. (Но стоит учитывать, что положение ботов и объектов не сохраняется!)
Добавлены звуки ходьбы и прыжков игрока, WALK_SOUND и JUMP_SOUND их можно прописывать как в настройках игры, так и в настройках уровней Звуков ходьбы можно добавить несколько Так-же их можно менять в разных комнатах внутри уровней
Добавлена опция WEATHER_PARTICLES_COUNT, позволяет менять число частиц погоды, можно прописывать как у уровней, так и в настройках игры
Добавлена опция MAP_ADDSZ в настройки уровней, позволяет настроить смещение материалов по близости к камере, позволяет уменьшить число пропадающих полигонов
Была добавлена система пресетов, которая позволяет прописать настройки объектов один раз в настрокайх игры вместо прописывания их в каждом уровне
Добавлена опция ON_ACTIVATE в настройках объектов, сюда можно записать, какие ещё объекты нужно добавить в инвентарь, или строки кода через запятую Добавлена опция VISIBLE в настройки объектов, отвечает за их видимость Добавлена опция SOUND_ON_ACTIVATE в настройки объектов Добавлена опция ALWAYS_ACTIVATE в настройки объектов, позволяет активировать объекты не по попаданию в их радиус действия, а по нахождению в нём Добавлены опции REUSETIMER и HIDEREUSE в настройки объектов, позволяют добавить таймер, который на время блокирует активацию объекта, или даже делает его невидимым Добавлены опции NEEDTOPOINT, DYNAMICPOINT, POINTHEIGHT, POINTRADIUS, POINTOFFSET в настройки объектов, позволяют включить и настроить активацию объекта только тогда, когда он находится под прицелом в центре экрана
Добавлен новый тип объектов, [IMAGE2D] Этот тип объектов при активации высвечивает на некоторое время изображение на экране Можно настраивать размер, тип растягивания и время, на которое будет высвечиваться объект Содержит опции IMAGE, SCALE_X, SCALE_Y, TIMEOUT, RESIZE Подробнее в документации
Добавлены следующие опции в [LEVELCHANGE]: ROT - позволяет повернуть игрока после перехода на другой уровень SAVEMUSIC - позволяет сохранять музыку между уровней, если не использовать её, то при переходе на другой уровень музыка остановится и начнётся с начала
Добавлен новый тип объектов, [TELEPORT] Содержит следующие опции: NEWPOS - обязательная опция, координаты, в которые телепортируется игрок ROT - необязательная опция, поворот игрока при телепортации
Внимание! Телепорт не работает просто так, вам сначала нужно настроить его активацию!
Добавлены новые опции для [NPC]: Много опций для работы спрайтового рендеринга НПС, которые нет смысла перечислять здесь, проще заглянуть в документацию <img align="absmiddle" alt=";)" border="0" rel="usm" src="/sm/st/wink.gif" /> ROT - поворот НПС при спавне FRAGSONDEATH - количество фрагов, которые будут засчитаны игроку при смерти бота MONEYONDEATH - количество денег, которые будут добавлены игроку после смерти бота SLEEPONDAMAGE - даёт возможность сделать "подвисание" бота при получении урона MAXENEMYDISTANCE - расстояние, на котором НПС перестаёт обращать внимание на врагов ATTACKONDAMAGE или ATTACKONDAMAGE_OP - позволяет делать нейтральных НПС, которые будут атаковать игрока, или других ботов только после того, как те атакуют его
Также добавлена система респавнов NPC, которая работает как отдельный внутриигровой объект, но указывается через опцию SPAWN в NPC, спавнеры можно настраивать как и любые другие объекты в игре, и при их активации будет происходить респавн NPC, также предусмотрен автоматический респавн
Добавлены следующие опции для [SPRITE]:
COLOR - настраивает цвет наложения в режиме рендеринга MUL COLOR_ANIM - позволяет настроить анимацию цветов(на случай, если вы хотите словить эпилептический приступ) Также движок теперь сам определяет, какой режим рендеринга выбрать в опции MODE. ТЕ.Если в текстуре есть полупрозрачность, то выбирается режим OPAQUE, если нет, то выбирается режим NORMAL. И да, теперь включена защита от дурака(во имя экономии фпс), если попробовать поставить режим рендеринга opaque на спрайт без полупрозрачности, то движок всё-равно будет рендерить спрайт в режиме NORMAL.
Исправлены мелкие баги
Заменена карта с повторением текстур на другую карту
Добавлено масштабирование текстур (Теперь при использовании небольших текстур не нужно будет заново конвертировать 3д модель под нужный размер текстур, игра сама подстроит 3д модель под нужный размер текстуры) (Теперь всегда при конвертации 3д моделей нужно указывать размер текстуры 256*256)
Теперь комманды FREQUENCY,ALWAYS_EXIT,WORLD_SCALE,ENEMIES можно не прописывать в файле уровня. Теперь комманды FREQUENCY,ALWAYS_EXIT,WORLD_SCALE можно прописать в settings.txt для того, что-бы установить стандартное значение на все уровни, если в них значение не будет переназначено
Теперь комманду FINISH можно не прописывать в файле уровня (Если не прописать эту комманду, то с уровня можно будет выйти только через LEVELCHANGE)
Теперь комманду START можно не прописывать в файле уровня (Если не прописать эту комманду, то игрок будет спавнится в точке 0,0,0)
Теперь комманду ENEMY_COUNT можно не прописывать в файле уровня (Если не прописать эту комманду, будет использоваться число спавнов в ENEMIES, но если ENEMIES не указан, то число врагов необходимых для прохождения уровня будет равно нулю)
Добавлена комманда WEATHER (SNOW/RAIN) Добавляет погоду на уровень, можно прописать в settings.txt
Добавлена комманда MAP_ADDSZ Через неё можно настраивать приближение каждой текстуры к камере (Нужнa для того, что-бы разные объекты не проваливались в текстуры)
Добавлен оператор инверсии (!) Если добавить восклицательный знак перед названием объекта, то при активации объекта название объекта будет не добавлятся в инвентарь, а удалятся из него. Тоже самое со строкой NEED ТЕ. Если перед название одного из необходимых объектов для активации другого объекта добавить восклицательный знак, то активация будет проходить только если у игрока НЕТУ объекта, перед которым был восклицательный знак
Новые опции у объектов типа MESH:
Добавлен новый тип анимации в ANIMATION_TYPE(2) (Это тип анимации, при котором анимация активируется только при активации объекта) (Можно использовать для дверей и прочего)
Добавлена опция ROTATE_Z (Поворот объекта вокруг своей оси в градусах)
Добавлена опция LIFT_TIMER и LIFT_POS LIFT_TIMER - Время, за которое после активации меш доедет до новой точки на карте (1000 - Одна секунда) LIFT_POS - Координаты, по которым будет ехать меш Если указать эти свойства, то при активации меш будет ехать в другую точку на карте ACTIVABLE и CLICKABLE будут автоматически установлены на 1 Эти свойства нужны для создания движущихся платформ
Исправлены кривые шрифты при использовании способа перечисления координат букв как в обычном L2D
Добавлена команда NEWFIREANIM (Использовать спрайт огня как отдельный кадр при анимации выстрела (0/1)) Прописывать в настройках оружия
Теперь режимы рендеринга, текстуры, кадры спрайтов и их моргание можно перечислять не через ';' , а через ',' (Можно использовать и ; и ) (Но в одной строке нужно использовать только один из символов)
Исправлена пропадающая иконка руки при экране <=80% Теперь при экране <=80% иконка руки не налазит на чёрную линию внизу экрана Теперь игрок в режиме разработчика не получает урон.
Теперь можно удалять разные спрайты интерфейса и интерфейс не будет пропадать (Пропадёт только та часть, с которой был связан спрайт) (К примеру: удалил спрайт денег - пропала подпись с деньгами) Если удалить иконку здоровья, то иконка руки будет появляться на её месте Добавилена команда CANSELECTLEVEL (0/1) Можно-ли игроку выбирать уровень, если игра пройдена дальше первого уровня (В сюжетных играх будет глупо делать выбор карты для запуска, когда игрок всё время будет по ним бегать как по одной локации)
Рассортированы классы
Документация перекрашена в чёрный цвет
Удалены команды отвечающие за бесшовные уровни (Кроме NEW_EXIT) (Она не показывает текст о завершении уровня и не добавляет задержку перед переходом на следующий уровень(Она была нужна для того, что-бы человек успел прочитать текст о завершении уровня)) (После добавления сохранений в этом пропала нужна, координаты относительно точки завершения уровня / спавна и поворот камеры теперь всегда сохраняются) Теперь скорость и поворот камеры игрока всегда сохраняются между уровнями
Теперь NEW_EXIT можно прописать в settings.txt
Теперь айди аптечки в магазине будет не номером последнего оружия плюс единица, а просто "-1"
Добавлен тип объектов, который меняет уровень при активации [LEVELCHANGE] LEVEL - Номер уровня для перехода START_POS - Координата спавна на новом уровне
Добавлена возможность загрузить последнее сохранение из меню паузы
Добавлен снег
В честь этого (от себя, тобиш Wixel'я) назвал версию ICE, так же с отсылкой на оригинальное название движка.
Оптимизация Уменьшение потребления ОЗУ Исправление багов и общее повышение стабильности движка Наведён порядок в ресурсах игры и движка, удалены/заменены некоторые карты и ресурсы, добавлены новые
Улучшен рендеринг тумана (Теперь под непрямыми углами он плавнее) Добавлен mip-mapping
Удалена возможность менять текстуру по номеру комнаты на карте Удалена возможность менять цвет тумана у каждого материала/комнаты на карте (Это нужно было для уменьшения потребления ОЗУ и упрощения кода)
Выбор языка больше не появляется при каждом запуске игры Увеличение числа внутриигровых настроек (Выбор языка, вкл/выкл мипмаппинга, выбор как растягивать оружие при неоригинальном соотношении сторон, режим разработчика вынесен из settings.txt в настройки игры) При нажатии на левый софт в лог игры выводятся текущие координаты игрока (Нужно для упрощения работы над объектами, так как скопировать координаты из лога проще, чем вручную переписывать их с экрана) Изменён внешний вид экрана паузы Изменён внешний вид магазина Добавлена возможность включить/выключить пропорциональное растягивание спрайтов в магазине Добавлена возможность поменять пути к спрайтам разных элементов интерфейса Добавлены полноценные сохранения с сохранением последнего уровня, оружия и подобранных предметов (Можно отключить в settings.txt, если вам нужен шутер, где доступны сразу все уровни и нет сохранений) Добавлена возможность отключить удаление врагов, когда они на большом расстоянии от игрока (Можно менять как на каждом уровне, так и на всю игру) Добавлена возможность настроить/выключить магазин на левом софте (Можно менять как на каждом уровне, так и на всю игру)
Добавлена возможность изменить масштаб спрайта при попадании пули в стену/спрайта крови при попадании во врага Теперь эти спрайты поддерживают полупрозрачность Теперь можно выбрать картинку при запуске нового уровня (работает как в Silent Evil, просто фон становится чёрным, а над текстом появляется небольшая картинка) Добавлена возможность менять количество одновременно существующих зомби на карте (Можно менять как на каждом уровне, так и на всю игру) Добавлена возможность сделать выход с уровня доступным только при подборе нужных предметов Добавлена возможность включить постоянную отрисовку неба (Можно менять как на каждом уровне, так и на всю игру) (Нужно для уровней с близким туманом, расположенных не на открытой местности) Добавлена возможность отключать/включать перспективную коррекцию на текстурах неба (Можно менять как на каждом уровне, так и на всю игру)
Более точные настройки игровых врагов и НПС (Теперь можно настроить их AI) Добавлена возможность спавнить одинаковые объекты/нпс на карте не прописывая их настройки по куче раз, а прописывая их координаты в строке POS через ;
Добавлены ключи с их подбором и выводом диалогов/сообщений при этом Ключи совмещены со всеми существующими объектами в игре (Это значит, что абсолютно любой объект от невидимого ключа [OBJECT] или меша [MESH] до [NPC] может выводить сообщения/диалоги на экран, или быть подобранным как ключ)
Добавлена настройка оружия с возможностью удалить/добавить новое оружие
Добавлена поддержка динамических мешей наподобии оных в L2DRPG [MESH] Добавлены невидимые пустышки, которые никак ни с чем не взаимодействуют, но тоже могут выводить диалоги и служить ключём [OBJECT] Добавлены спрайты с разными режимами отрисовки, анимацией и морганием [SPRITE] Добавлены физические магазины с кастомизируемыми фонами, арсеналом и ценами (Которые всё-равно не умеют никак рендерится, и отдельно от них нужно прописывать спрайт или меш) [SHOP] Расширены и улучшены NPC [NPC]
Подробности работы с разными функциями в документации.
Ускорение движка на С60 Улучшение рендеринга Поддержка разных соотношений сторон (игру можно запускать в 16*9) Режимы рендеринга, разные эффекты вроде тумана, полупрозрачности Поддержка прозрачности Мультитекстуринг (на одной карте можно использовать сразу несколько текстур) Поддержка одноразовых спавнов Теперь можно уходить с уровней не убивая всех зомби Теперь можно для каждого уровня делать текстовое интро У первого уровня можно вырезать текстовое интро Каждому уровню можно дать отдельное название Теперь можно менять всякие ресурсы игры в зависимости от выбранного языка Поддержка шрифтов как в L2D RPG Улучшение интерфейса Меню паузы Расширенные настройки игры и графики Трупы и декали крови Бесшовные загрузки между уровнями (как в Half Life 1/2) 2Д и одноцветное небо Возможность менять модели и текстуры врагов в каждом уровне Возможность указывать свой трек для каждого уровня, в любом формате Простенький недоделанный вид от 3 лица Простенький недоделанный напарник Отвязка скорости игры от фпс (Теперь можно играть в 60 фпс, не разгоняя при этом саму игру) Возможность менять названия сохранений Возможность менять число открытых уровней при новой игре Возможность менять одновременное число врагов на уровне (в Л2Д максимум - 5) Возможность менять текстуру и режим рендеринга для каждого меша на карте Настройка дальности видимости Блюм (только для кемулятора)
Я мог забыть некоторые фичи, подробно можно изучить их в документации и в версии движка с картами.
Карты в движке предоставлены для ознакомления с возможностями движка. Так-же некоторые карты используются в Project Beta и Silent Evil.
Начиная с версии 2.0 будут выпускаться две подверсии квантума: Для телефонов на Symbian 9.2 с процессором в 330мгц (как у N95) и для остальных телефонов. Дело в том, что у этих версий отличаются классы отвечающие за рендеринг, и на разных телефонах одна из версий работает быстрее второй.
Обязательно при выпуске игр на движке выпускайте две версии с классами из разных версий движка!
В папке находится полный пак из двух актуальных версий квантума, документации (неофициальной редакции), конвертера и инструментария для работы с нелинейными диалогами.
Pafos, Исправлен баг, из-за которого 2д скайбокс иногда вызывал ошибки и работал медленнее, чем должен был. "div by 0 fix" обозначает, что я исправил деление на 0 А что не так со skybox_texture?
Pafos, Я добавил функцию removeArsenal() в скриптовой движок Она удаляет либо всё оружие инвентаря, либо всё кроме первого(зависит от того, включена ли пустая рука в настройках игры)