Посмотрел, ну на видео не так плохо, как в игре хз, пробовать лень. В stunts казалось будто машина прыгает, а не падает, ну да ладно)
Так задумался, вот если бы колизию актеров можно было крутить, мб тогда было бы просто сделать трассу из плоских спрайтов, определять pitch, roll не сложно.
Буду ждать перевоплощение doom в гонки, кто только рискнет +)
Заказ на скрипт от: Keilin Fox
Подробно что должен делать скрипт:
при сохранении игры на одной карте в папке игры создается папка с названием вада карт, куда сохраняются сохранения.
например:
"Дум" в папке одни сейфы
"дум 2" в папке сейфы дум 2
"сф2012 финал" в папке сейфы финала
при запуске вада игра показывала сохранения с той папки, на какой сохранялись сохранки. (из дум 2 показывались сохранки из дума 2, из финала показывались сохранки из папки финала)
игра могла бы сама создавать подобные папки.
п.с вроде бы не перебор...
Под какой порт: GZDoom
Но скорее всего, в рамках движка Build невозможно реализовать физику гонок такого уровня.
Какого-какого движка? Чо невозможно-то. Вполне можно, только руками всё переписывать придётся.
Keilin Fox:
п.с вроде бы не перебор...
Перебор, там гздум модифицировать надо. Ты хочешь чтобы тебе по первому требованию билдили gzdoom.exe для каждого девбилда, да ещё и с изменениями про сейвы?)
Обеспечивает автоматический скейлинг чего угодно в любом порядке (подробности по ссылке).
Обеспечивает сведение разных типов событий в один объект (InputEvent, UiEvent).
Обеспечивает древообразную обработку событий аля Qt.
ZZYZX Зачетная штука!
На сколько я понял с помощью zscript можно сделать свое меню, в замен стандартного(там где new game, option итд), а вот можно ли ставить картинку на фон?
Я бы хотел увидеть такую тему. И самое главное, чтобы в ней помимо технически сложных вещей публиковались примеры кода с самыми элементарным его применением. Зачем? К примеру я начал писать ACS-скрипты совершенно без навыка программирования, и что бы что-то хоть как-то работало не мог обойтись без готовых примеров, демонстрирующих элементарное. ZScript, как я понимаю, по своей сложности синтаксиса близок к языкам высокого уровня и включает их всякие хитры приёмы. Если не будет простых примеров для людей с поверхностным знанием в кодинге, то ZScript будет уделом только профи-кодеров. Возможно, стоило бы сделать небольшую серию примеров, демонстрирующих аналоги простых ACS-скриптов, реализованных на ZScript.
Примеры объясняющие элементарное смогут привлечь к ZScript больше людей, породят движуху вокруг него. Будет появляться больше доступных мануалов. Глядишь и ACS уйдёт в сторону, ведь как я понимаю ZScript может функционально его полностью заменить. Или нет?
Имеет ли смысл создать отдельную тему про Зскрипт? В которой непрограммистам популярно бы рассказывали, что есть зскрипт и с чем его едят?
Возможно имеет.. Но есть но, кто на форуме может писать код на зскрипте? ZZYZX.. да и все кажется.
Кто еще пробовал или знает хз, на Zdoom форуме точно знают и мб помогут, это на крайний случай, конечно понятное дело на англ читать и вникать сложно.
Ну и напоследок, объяснить Не программисту что такое классы, структуры, условные тернарные операторы, динамические массивы, как мне кажется очень не просто, а это лишь кусочек новых фич зскрипта, по мимо этого там еще куча функций не задокументированных и что бы разобраться что они делают надо копаться в gzdoom.pk3
Тут можно посоветовать учить основы ООП и с++ параллельно пробовать применить новые знания в зскрипте и понять как он работает.
А так же, я наверное создам такую тему, но предлагаю всем вместе разбираться, учиться зскрипту, я ничего толком объяснить не могу т.к. я сам о нем ничего не знаю, но надо когда-то начинать ?
Ну и напоследок, объяснить Не программисту что такое классы, структуры, условные тернарные операторы, динамические массивы, как мне кажется очень не просто, а это лишь кусочек новых фич зскрипта, по мимо этого там еще куча функций не задокументированных и что бы разобраться что они делают надо копаться в gzdoom.pk3
Тут можно посоветовать учить основы ООП и с++ параллельно пробовать применить новые знания в зскрипте и понять как он работает.
Зачем сразу народ пугаешь? Вспомни, как начинал ты и многие другие использовать ацс.
Вот был какой-то здум вад со скриптами, глянул его код, посмотрел как он связан с экшенами на карте, что-то прочитал в вики (благо по каждой функции там уже было описание), стал комбинировать и создавать свое.
Опять же, для создания шедевра не надо быть профи программистом - многие вещи можно реализовать пусть на костылях, но так, что будет работать без глюков. Примеры - мои вады Cheogsh, Inquisitor, никаких сложных фич ацс там нет, все сделано просто (даже слишком просто), но зато работает.
Проблема с зскриптом в том, что у него отсутствует база примеров, на которых можно было бы новичкам учиться. А теория зскрипта также нигде не изложена толком, потому вот мне не понятно вообще, что может зскрипт, а что нет, где он нужен, а где можно обойтись обычным ацс и декорэйтом. Или скажем, какие вещи в том же Инквизиторе проще было бы сделать через зскрипт, а какие - лучше оставить как есть.
Т.е. нужно для начала простым языком объяснить область, в которой зскрипт работает. А дальше чел решает сам - нужен он ему или обойдется обычными ацс с декорэйтами.
Сразу вопрос - поможет ли зскрипт в создании настраиваемого инвентаря (над чем мы тут долго бились или по сложности реализации этот инвентарь будет не проще сделать, чем "традиционным способом" (как у alekv например) ?
Зачем сразу народ пугаешь? Вспомни, как начинал ты и многие другие использовать ацс.
Я не пугаю, а наоборот говорю в какую сторону надо двигаться! Вот если бы мне когда-то сказали, не учи ACS, а почитай ооп, с++ или хотя бы с.. Открой VS и начни там что-то писать, учиться. Мне сейчас было бы в разы проще!
Ну ладно еще acs, он слишком отстает от функционала того C.. ZScript это не побоюсь назвать полноценный ЯП и большинство его синтаксиса это с\с++, и логично вначале прочитать основы ооп(т.к. в зскрипте все же есть классы и прочее)
Я лично пострадал от того что начал знакомство с кодом через огрызки acs и декорейт, моя бы воля, отмотал бы время назад и удалил бы гоззу с пк вообще нафиг.
Shadowman:
Вот был какой-то здум вад со скриптами, глянул его код
Вот:
Ссылка Только как мне кажется это вряд ли поможет, не так все просто =(
Shadowman:
Опять же, для создания шедевра не надо быть профи программистом - многие вещи можно реализовать пусть на костылях, но так, что будет работать без глюков.
Шедевр не шедевр, но с этим согласен. Я и сам не программист и работает у меня все через жуткие костыли, но работает.
Shadowman:
Проблема с зскриптом в том, что у него отсутствует база примеров, на которых можно было бы новичкам учиться.
У меня вот проблема не много в другом! Я написал на зскрипте простого тестового актера.. прописал его EDNum в мап инфо и все! гздб его не видит, скачал гздб zzyzx-а, там тоже самое!
Получаю эту ошибку: "Failed to apply MAPINFO DoomEdNum override "17124 = mytestzactor": failed to find corresponding actor class..."
и ничего поделать не могу. Делаю все так как написано в вики или в том же мод примере, все до жопы и это реально начинает бесить, когда такие пустяки отнимают времени больше чем должны.
Shadowman:
что может зскрипт, а что нет
Думаю может все что бы написать игру с 0 в 2 раза быстрее чем без него, но он еще не доделан и кажется рановато его использовать простым юзерам вроде меня, но желание периодически появляется.
Меня заинтересовала возможность написать и даже заменить главное меню полностью на зскриптовое!!! т.е. теперь предположительно меню может быть каким угодно.
Shadowman:
Сразу вопрос - поможет ли зскрипт в создании настраиваемого инвентаря (над чем мы тут долго бились или по сложности реализации этот инвентарь будет не проще сделать, чем "традиционным способом" (как у alekv например) ?
Имхо инвентарь на зскрипте может быть ну очень крутым.. максимально настраиваемым, хотя бы потому что зскрипт может орудовать динамическими массивами, классами. (не знаю есть ли в зскрипт тип строка и некоторые другие фичи).
Опять же, для создания шедевра не надо быть профи программистом - многие вещи можно реализовать пусть на костылях, но так, что будет работать без глюков.
Давайте не будем пропагандировать говнокод.
Я не страдаю элитизмом в стиле "не можешь написать нормально = недочеловек", но вот в открытую говорить, что не нужно учиться, а нужно писать костылями, и это будет ХОРОШО, ибо идея оправдывает средства... мдэ, в общем.
Фу таким быть.
alekv:
не знаю есть ли в зскрипт тип строка
Есть, естественно. Но самое главное, что там есть — это прямой доступ в акторов и задание своих пропертей. Можно на эту тему посмотреть мод D4D, он весь на зскрипте.
В общем после разных тестов зскрипта, понял что оно мне нафиг не надо и передумал что либо о нем писать в какой-то теме.
Без нормальных доков, этим языком будут пользоваться.. да хз кто будет, но мне их жаль, это гиблое дело если не знаешь яп.
Оставлю это тут, это конечно же никакой не мануал, просто не большие заметки.
Как начать писать на zscript: Рассматриваю только .pk3 архив.
Скрытый текст:
создаем в корне архива файл zscript.txt
создаем папку zscript, в ней создаем файл с любым именем, к примеру это "myZScript.txt".
В zscript.txt пишем
#include "zscript/myZScript.txt"
После создаем lump MAPINFO в нем прописываем EditorNumber для редактора gzdb
DoomEdNums
{
17124 = MyTestZActor
}
После в файле zscript > myZScript.txt
пишем:
class MyTestZActor : Actor// создаем новый класс который наследуется от класса Actor
{
void myPrint(string myString) //таким образом можно писать функции, т.е. [u]почти[/u] так же как в acs, но конечно же есть разница..
{
return A_PrintBold(myString); // если вызвать функцию myPrint("my custom text"); выведен на экран текст
}
Default
{
//все gzdb фичи, такие как папка в которой будет лежать актер или аргументы актера, прописываются тут.
//$Category Test2
Radius 16;
Height 16;
+NOINTERACTION
}
States
{
Spawn:
MEDI A 1
{//Это анонимная функция, должна быть известна еще из декорейта.. работает почти также.
if(GetDistance(TRUE, AAPTR_PLAYER1) < 64)//если ГГ подойдет близко к этому актеру,
{
myPrint("TEST2");// запустится функция которая напишет TEST2
}
}
loop;
}
}
Некоторые заметки:
//Что бы GZDB видел zscript актеров, надо подключать gzdoom.pk3 как ресурс и ставить галочку исключать из теста.
И можно запустить мод, посмотреть как оно сработает и попытаться добавлять свои функции, переменные, писать свои классы итд. попутно просматривая вики и gzdoom.pk3>zscript.
В общем после разных тестов зскрипта, понял что оно мне нафиг не надо и передумал что либо о нем писать в какой-то теме.
Судя по описанному примеру, мороки много. Может, со временем что и оптимизируется, но судя по развитию здум-гздума, там только нарастает хаос, совместимость поддерживается плохо (а это важно для ранних вадов). Кончится тем, что будем к каждому гз-ваду прикладывать ланчер заданной версии порта, чтобы в вад можно было гарантированно сыграть спустя Н лет после его выпуска.
Как я понял, зскрипт позволяет создавать свои команды в декорэйте (типа A_Chase, A_MeleeAttack и т.п.), что полезно, но не критично.
Хотя вот в плане создания инвентаря может стоит поинтересоваться?
Хотя вот в плане создания инвентаря может стоит поинтересоваться?
Мое имхо, рано еще им пользоваться. У меня не получилось к примеру вызвать кастомную зскрипт функцию в ацс скрипте и вики пример, оказался не рабочим, разбираться в этом всем без доков.. ну смысл хз, рано или поздно доки напишут и время потраченное на разбирательство, будет просто слитым в никуда.
Если сильно хочется, думаю можно и так писать на зскрипте, просто не использовать все его навороты, а писать как в обычно декорейте, там то синтаксис почти тот же, разница лишь что привычные проперти актера такие как health, radius итд в зскрипте надо писать в блоке default{} ну и ";" ставить после каждого чиха, а так тот же декорейт. И по мере наполнения вики, можно постепенно вникать в новые фичи и почитывать ооп.
Shadowman:
но судя по развитию здум-гздума, там только нарастает хаос, совместимость поддерживается плохо
Да ее и быть не может т.к. каждый раз что-то новое добавляют и так будет до тех пор пока гоззу не оставят в покое.
Зскрипт является прямым интерфейсом в C++ код движка. Примерно 50% того, что можно написать на C++, можно написать и на зскрипте.
Можно делать менюшки, можно делать статусбары, можно делать intermission'ы, всё это не привязано к конкретному виду, а можно напрямую отрисовать всё, что тебе надо. Причём не на 35фпс, а на реальном фпс экрана.
Плюс таки да, можно гораздо объёмнее прогать сам игровой мир — есть доступ к данным карты (секторам, линиям...), можно итерироваться по всем акторам нормально, можно итерироваться только по акторам в конкретной области/секторе...
Можно писать данные в акторов, причём часто аналогов в SetActorProperty/декоре нету.
А, да, ещё там прямой текстовый инпут есть. И мыша. И можно залочить игрока, а инпут вообще свой сделать, как тут, но без багов/рассинхронов: https://www.youtube.com/watch?v=ZB3Gj7CGjF8
Может кого заинтересует, на просторах здум форума нашёл пост от ззузха, о добавлении к монстрам атаку на упреждение, исходники прилагаются.Модификация крута, но не доработана, монстры не могут, к примеру, палить с учётом того, что у игрока есть препятствие и они атакуют куда-то вдаль, где игрок в принципе существовать не может.