Здравствуй, сириуссайт! Когда-то давно я подумал: "почему в Serious Sam нельзя вставлять свои скрипты? Ведь это же чертовски удобно!". Подумал и забыл, конечно же, но иногда эта мысль снова возникала в голове. И вот, я уже "созрел" для того, чтоб вставить в Serious Sam поддержку скриптов(на самом деле это оказалось не так сложно). В качестве языка был выбран Lua. "Проект" только-только начал свое существование, скрипты ничего, кроме того как писать в консоль, пока ещё не умеют, но в будущем, если я продолжу разработку, научатся создавать объекты, менять их свойства, заставлять их взаимодействовать.
Что вы НЕ можете использовать в Serious Editor, но можете с помошью скриптов:
Псевдослучайные числа и математика
Переменные
Создание новых объектов
Изменение параметров объекта, таких как здоровье, скорость, текстура...
И многое другое
В общем, много чего. Это могло бы очень серьезно расширить возможности для создания карт. Продолжать ли мне это начинание? И да, просьба аргументировать свой ответ, пожалуйста
PS: Мне очень важно мнение пользователей, серьезно. Если это никому не нужно, тогда зачем тратить время? Btw, можно ли закрепить тему?
Первый сгенерированный лабиринт. Пока что все очень сырое, поэтому это чудо может подтормаживать
Сообщение отредактировалthecre - Пятница, 10.01.2014, 22:02
Объясни пользователям, что именно они смогут сделать с помощью скриптов, что невозможно сделать с помощью обычных игровых объектов.
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Ну... Можно, к примеру, для сетевой игры, лечить противников, если те убивают игроков. Так же удобнее будет считывать данные с игрока: если у игрока мало патронов, впереди пути можно копиером подкидывать ему. У! У! А ещё же можно запилить, наконец, магазин, засчитывать за убийства мобов кредиты, ставить апгрейды на оружия...
Абсолютное и безусловное ДА. Триггеры - рудимент, имхо.
P.S.Стоило ли вообще ставить вариант "Мне безразлично?" Чувство будто случайные пользователи сайта заходят, видят голосование на неинтересующую их тему и жмут "пофиг". Просто "Да" и "Нет" хватало бы, пофигисты бы просто не голосовали и не портили таким образом картину.
Сообщение отредактировалArtificia1 - Пятница, 10.01.2014, 00:30
Я считаю, что тема офигенная. Скрипты позволят добавлять на карты новые фичи без ковыряния в СДК и в старой студии. Для опытных мапперов они могут стать хорошим инструментом в работе, молодых могут научить худо-бедно программировать и разбираться в коде. Можно будет, например, сделать на отдельной карте игру с совсем другим режимом, будет проще делать интерактивность и разветвленные диалоги. Я обеими руками за этот проект, это золотая жила.
Сообщение отредактировалCofein - Пятница, 10.01.2014, 02:06
thecre, я не могу однозначно ответить. Скрипты - безусловно, вещь очень полезная и удобная, но вот варианты применения, которые ты для них перечислил, всё-таки легко делаются обычными игровыми объектами в ХВОХ-моде: псевдослучайные числа делаются тамошним ModeController'ом, изменение параметров и математика выполняется PropertyChager'ом, переменные - есть класс CStore, хотя, переменные можно хранить в любом параметре любого объекта. Создание новых объектов - CCopier, если только это не какой-нибудь служебный объект, но тогда логика уже чересчур сложная. Но это не означает, что скрипты негде применить. Например, было бы здорово иметь возможность процедурно генерировать геометрию уровня; в конце концов, движок держит в public'ах даже контейнеры всех вертексов, но вот простыми объектами здесь не разыграешься. Было бы круто иметь возможность скриптовать деформирующиеся поверхности или уровни, которые на ходу составляются из готовых кусков. Было бы просто замечательно, если бы я мог скриптовать поведение персонажей (например, тех же ботов) - простыми объектами ведь не опишешь требуемое поведение (TactictsHolder не для описания поведения, а только для изменения некоторых его опций). И это - лишь несколько примеров. Короче говоря, да, скрипты - это очень круто и полезно. Но если уж за них браться, то нужно очень тщательно продумать их назначение, потому что если пойти неверным путём, они будут как Майбах в деревне (открыл гараж, полюбовался, и пошёл дальше пахать на тракторе). Скрипты должны отвечать за то, что я никак не смогу сделать простым объектом.
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Хорошо, господа, я учту ваше мнение P.S: SLAwww, ты напомнил мне один мой экспериментик, когда я в SDK делал процедурно генерирующиеся уровни. Оно работало, но было ужасно медленным и кривым. Может, сейчас будет лучше
Сообщение отредактировалthecre - Пятница, 10.01.2014, 11:27
Что вы НЕ можете использовать в Serious Editor, но можете с помошью скриптов: Псевдослучайные числа и математика Переменные Создание новых объектов Изменение параметров объекта, таких как здоровье, скорость, текстура...
Согласен только с последним, и то не полностью. Все там можно, и НЕ КРИВО, если руки откуда надо растут.
Psych, опиши, как это сделать. Не удивлюсь, если увижу здесь громадную стену текста с неочевидными решениями
Добавлено (10.01.2014, 15:49) --------------------------------------------- Мастеров SED'а, которые способны реализовать на триггерах хоть шахматы, хоть управляемую технику, просьба не беспокоить
Согласен только с последним, и то не полностью. Все там можно, и НЕ КРИВО, если руки откуда надо растут.
Тут скорее всего ситуация как с ассемблером и языками высокого уровня. На ассемблере можно сделать абсолютно всё, соответственно, языки высокого уровня не нужны. Но на практике, большинство программ пишется именно на ЯВУ, в частности потому что на порядок проще разрабатывать и поддерживать код и разработка идёт быстрее.
Так же и тут. Я не буду спорить, что на триггерах можно построить любую сложную и практически тьюринг-полную логику. Но для этого приходится строить сложные цепи триггеров в которых сложно разобраться и их построение занимает больше времени, чем написание эквивалентного кода (в котором потом всегда легко разобраться).
ИМХО триггеры в том виде, в котором они используются в SE1 - это атавизм. Да, конечно круто наблюдать, какую сложную логику на триггерах порой забабахивают авторы карт, порой не верится, что это работает на простых триггерах. Но всё-таки я считаю, что в идеале триггеры должны управлять простыми действиями, для более или менее сложной логики должны использоваться скрипты (как это сделано в Unreal Engine). Так что я полностью поддерживаю идею реализовать Lua-скриптинг в сэме, главное, чтобы было хорошо реализовано и не повлияло на производительность и стабильность движка. В первую очередь ради удобства, хотя большую часть можно и реализовать на триггерах.
Mechanixx, верный настрой. Однако, практика практикой, а вот теория тоже не лишнее. -- Чую запах паленых задов у новичков в SED'e. Но идея отличная. Каждое расширение стандартов движка - мощный и положительный толчок в его сторону. Может еще какие нибудь функции придумать? А точнее определиться с самыми нужными.
Сообщение отредактировалKadath - Пятница, 10.01.2014, 19:13
Mechanixx, скрины чего? Открытого текстового редактора со скриптами на Lua? Или кода на C++? Обещаю, когда функционал подрастет, я обязательно покажу видео с генерацией лабиринта, например
Конечно за идею. Будет больше возможностей , я сам конечно в кодинге не шыри-пыри , но поэкспериментировать и поиграть в новые карты от знатаков этого дела будет прикольно.
Ну, Революция, так Революция... что ж, пользуйтесь их разработками, ежели хотите --------------------------------------------- Первый сгенерированный лабиринт. Пока что все очень сырое, поэтому это чудо может подтормаживать
Also, ради эксперимента населил его врагами , опять же, рандомно)
Сообщение отредактировалthecre - Пятница, 10.01.2014, 21:59
Mechanixx, ты не понял. Это - дополнительный инструмент, который позволяет мапперам реализовывать их извращенные творческие замыслы. Он не имеет материальной формы, его нельзя заскринить. Это то же самое, что скринить EnemyCounter, например
Прикольно. ) Это он копирует браш много раз, или модифицирует геометрию единого браша?
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
SLAwww, пока что только копирует. Что при непроставленном Detail дает печальную производительность. Модификация геометрии в плане после реализации взаимодействия с игроком и врагами. То есть, сегодня вечером должна если не работать, то хотя бы "набросана"
Сообщение отредактировалthecre - Суббота, 11.01.2014, 06:01