LINUX.ORG.RU
ФорумTalks

[специалистам по всему] Как пишут сценарии для игр?

 


0

0

Я пишу игру, фоториализм, полная свобода действий, как в крузисе тока луче.

Вот только со сценариями я уже затрахался. На карте у меня есть пачка хотспотов с состояними «вкл/выкл», есть пачка переменных с различными состояниями (массив целочисленных и сотни констант к нему) вроде «дверь открыта», «лампочка включена», «количество денег», и вот все это надо как-то разруливать. В начале писал простые скрипты вроде «пойди туда {{hotspot:1,time:434}}, вот тебе $500 {{addmoney:500}}», но получается полностью линейный сюжет, что плохо. Потом рассовал пачки хотспотов, каждый из которых активировал свой скрипт - стало лучше, но длинные события описывать крайне неудобно, ибо нужно учитывать каждый лишний шаг.

Чего бы покурить (хавту, маны, гайдлайны), дабы сделать все по-человечески?

ребят, вам пора филиал ассоциации игростроителей основать на ЛОРе

mikhalich ★★
()

Здравствуйте, я пишу игру, суть такова

В крузисе, очевидно, нет скриптов сложнее «по прибытию в точку A сделать десять корейцев с винтовками в точке B»

Линейный сюжет у 95% видеоигр и они прекрасно с этим живут, главное чтобы сценарий говном не был

Gary ★★★★★
()

кстати, как вообще эта схема скриптов внутри игры выглядит? Ну в смысле как реализуется, интерпретатор какого нить языка скриптового пилится внутрь?

mikhalich ★★
()

Емстудио, помнишь как ты вопил о необходимости опличивать твою работу? Готов махнуться ролями: с тебя деньги, с меня сюжет?

wyldrodney
()
Ответ на: комментарий от mikhalich

У каждого обекта сцены есть свои кординаты. Каждые несколько кадров движок проверяет колиизии/приближение а затем обрабатывает события.

На чём описывать события - твой выбор. Хоть на питоне. Хотя обычно используется lua.

wyldrodney
()
Ответ на: комментарий от wyldrodney

>На чём описывать события - твой выбор. Хоть на питоне. Хотя обычно используется lua.

ммм, то есть в данном случае lua и внутренняя логика движка связаны как iptables и netfilter?

mikhalich ★★
()

полная свобода действий, как в крузисе

Лоол.

pevzi ★★★★★
()

Чего бы покурить (хавту, маны, гайдлайны), дабы сделать все по-человечески?

Лучше выпей водки иии... (C)

Lighting ★★★★★
()
Ответ на: комментарий от mikhalich

>lua и внутренняя логика движка связаны как iptables и netfilter?

Логика на lua и пишется. Скрипты для ИИ, интерфейса, кнопочек и дверей(триггерами их раньше называли, емнип) и есть логика.

Есть главный render(отрисовка) цикл. Это покадровая отрисовка сцены - кадр за кадром попадающие в объектив объекты перерисовываются. Каждый кадр положение и состояние объектов заного одновляется кучей движков: физика, логика, ввод, звук, сеть... Часть из них обменивается данными между собой. Затем рисуется следующий кадр, и так проолжается до паузы.

Я в бастионах (так Линуксовый фаерволл в 2002-м, емнип, назывался) не разбираюсь :)

wyldrodney
()
Ответ на: комментарий от Gary

> Линейный сюжет у 95% видеоигр и они прекрасно с этим живут, главное чтобы сценарий говном не был

Я пишу нечто обдолбанное, что по определению не может быть линейным

simple_best_world_web_master
() автор топика
Ответ на: комментарий от mikhalich

> кстати, как вообще эта схема скриптов внутри игры выглядит? Ну в смысле как реализуется, интерпретатор какого нить языка скриптового пилится внутрь?

За всех не скажу, но у меня есть некоторое подобие графа, по которому пользователь ходит во время игры. События на таймеры, хотспоты и диалоги, в текстах могут быть управляющие теги (герой говорит о деньгах и ему деньги зачисляются). Все в виде текстового файла, который перловым скриптом компилируется в бинарник. Вот только меня затрахало разводить связи в этом графе, потому и создал тему.

simple_best_world_web_master
() автор топика
Ответ на: комментарий от wyldrodney

> Емстудио, помнишь как ты вопил о необходимости опличивать твою работу?

Купи пирацетама и пропей курс, может память будет лучше. Я говорил, что оплачивать нужно только при принципе «ты начальник - я дурак», по которому мы с тобой и работали.

Готов махнуться ролями: с тебя деньги, с меня сюжет?

Сюжет лежит у меня на столе, часть уже в виде файлов. Найдена хорошая художница, которая лепит арт, в перспективе будет еще нексколько укурков-писателей. А чем можешь похвастать ты, мальчик? Что просрал все свое коммунити? Или фейкоскринами, которые я за тебя постил?

simple_best_world_web_master
() автор топика
Ответ на: комментарий от Gary

> Иногда они возвращаются?

С лора не уходят же. Я даже сижу из неудобного говнофокса, но все равно продолжаю постить. И не говори, что раньше не догадался.

simple_best_world_web_master
() автор топика
Ответ на: комментарий от simple_best_world_web_master

>> Емстудио, помнишь как ты вопил о необходимости опличивать твою работу?

Купи пирацетама и пропей курс, может память будет лучше.

Лучше хлоропромазина, чтобы не ругаться матом на форуме.

Я говорил, что оплачивать нужно только при принципе «ты начальник - я дурак», по которому мы с тобой и работали.

Ещё ты говорил что ты серьёзно дебил, хотя я тебя отговаривал. А раз ты, дебил, можешь работать только тогда, когда тебе говорят что делать, но не можешь внести ценных предложений, то иначе быть и не могло.

А чем можешь похвастать ты, мальчик?

Тем что не лицемер, не нытик, не лжец, и у меня есть будущее и сила воли.

Что просрал все свое коммунити?

Ушедшие аж два человека были бесполезны и даже вредны.

Может у тебя есть что-то полезное и опенсорцное, что ты можешь показать? Ах да, это ведь я тебе помогал в твоё же резюме внятным языком написать аж о дву мелких проктиках, которые можно показать людям.

Или фейкоскринами, которые я за тебя постил?

Когда ты сам ушёл, ты сам же выдирал из переписки не относящиеся к игре скрины, и нагло тут лгал, дабы полить меня дерьмом. Ещё раз.

Хотя я старался прикрывать вас всех от потоков дерьма как мог, даже когда вы ушли.

Хватит, мне не интересно.

Сюжет лежит у меня на столе

Чего ж ты ноёшь и помощи просишь?

wyldrodney
()
Ответ на: комментарий от wyldrodney

>Лучше хлоропромазина, чтобы не ругаться матом на форуме.

Лучше сразу выйди в окно, для студенческого кошелька это будет не так накладно.

Ещё ты говорил что ты серьёзно дебил, хотя я тебя отговаривал. А раз ты, дебил, можешь работать только тогда, когда тебе говорят что делать, но не можешь внести ценных предложений, то иначе быть и не могло.

Конечно дебил, ведь я серьезно относился к твоей игре, даже верил в успех. Тратил на тебя кучу времени, рассказывая о оптимизациях, игровых техниках и основах, причем делал это бесплатно, а ведь дебилам тоже надо платить.

Тем что не лицемер, не нытик, не лжец, и у меня есть будущее и сила воли.

Айлолд, СХОРОНИЛ.

Ушедшие аж два человека были бесполезны и даже вредны.

А что, в умершей группе было всего 2 человека?

Может у тебя есть что-то полезное и опенсорцное, что ты можешь показать?

Конечно есть, у меня не меньше толстых и опенсорсных высеров, прославляюхих линакс, в этом у нас с тобой полный паритет.

Ах да, это ведь я тебе помогал в твоё же резюме внятным языком написать аж о дву мелких проктиках, которые можно показать людям.

Ах да, на твоей совести еще и один проебаный проект, ибо заказчику я отписал слишком толсто.

Когда ты сам ушёл, ты сам же выдирал из переписки не относящиеся к игре скрины, и нагло тут лгал, дабы полить меня дерьмом. Ещё раз.

Я показывал только текущие положение дел.

Хотя я старался прикрывать вас всех от потоков дерьма как мог, даже когда вы ушли.

Ой, ну прямо святая дева Мария...

Хватит, мне не интересно.

А зачем тогда простыню накатал?

Чего ж ты ноёшь и помощи просишь?

Хочу получить опыт других людей, повысить свою квалификацию, устранить свои ошибки. Я, в отличии от некоторых, молча проекты не закрываю.

simple_best_world_web_master
() автор топика

Учись у half-life. Жуткая линейность при иллюзии нелинейности и свободы действий у игрока.

PolarFox ★★★★★
()

Выдели код сценариев в отдельные подгружаемые библиотеки, для каждого уровня своя. Библиотека экспортирует функцию вроде do_scenario(), которая вызывается из игрового цикла.

Код библиотеки пишется на С (или на чем там игра пишется) и должен иметь доступ к внтуренностям игры (игровым объектам, переменным).
А скрипты/шмрипты - это не Ъ :)

Harald ★★★★★
()

*Берёт кувалду и угрожающе замахивается в сторону ТС*
Сколько раз повторять, что любой проект сначала делается на, вашу мать, бумажке!!1

Terrens
()
Ответ на: комментарий от simple_best_world_web_master

*Угрожающий замах оказался ложным, и кувалда полетела на конкурс кувалдометателей*
Тогда всё хорошо :)
Можно взять лист А2, к примеру. Несколько листов А2.

Terrens
()

Так как все игры написаны... улучшается только графика... то пишем по шаблону:

1) Вы хороший, назовем героя: Сержант Форес
2) Есть Враг: Лорд Донской
3) Нас ожидают много уровней, не приводящих ни к чему...
4) Посеять интригу, типа враг то на самом деле не Лорд, а темная половина Сержанта
5) Тут следует ролик, где Сержант якобы вспоминает, что в детстве у него брали кровь для клонирования...

и т.д.

lexxus-lex ★★★
()

Я не знаю сколько надо было выкурить табака чтобы придумать «беременную улицу» которая была в PS:T. Я бы с интересом пообщался с человеком который это придумал.

Absurd ★★★
()
Ответ на: комментарий от dragonfly

>Ещё там можно было драться своей оторванной рукой

Это из Evil Dead же :)

Gary ★★★★★
()
Ответ на: комментарий от Gary

>Точно, делать говно-инди-игры. С душой.

Не знаю как сейчас вообще дела с РПГ дела обстоят, но DragonAge приятно удивил отсутствием палладинства. Там ты в любом квесте либо идиот либо сволочь.

Absurd ★★★
()
Ответ на: комментарий от simple_best_world_web_master

simple_best_world_web_master> Я пишу нечто обдолбанное, что по определению не может быть линейным

То есть настольк багнутая игра, что глюки обеспечивают нелинейность? То бишь кривость сюжета и игры. Мдя... точно как крюзис.

Quasar ★★★★★
()

Линейный сценарий надо скрывать режиссурой. Например, заставить человека пойти туда и только туда, чтобы он САМ решил, что больше идти некуда. См. Max Payne (первого) или HL2 (проходя в первый раз никто при выходе из вагончика не оглянулся? и правильно, ибо вагончик несколько нереалистичен).

AITap ★★★★★
()
Ответ на: комментарий от simple_best_world_web_master

simple_best_world_web_master> у меня есть некоторое подобие графа, по которому пользователь ходит во время игры.

Между ходями отрисовываются фотки.

simple_best_world_web_master> События на таймеры, хотспоты и диалоги, в текстах могут быть управляющие теги (герой говорит о деньгах и ему деньги зачисляются).

«Гони бабло, с*ка!!! А то порешу на месте, б*ять!». Теперь понятно. Это RPG «Ксакеп».

Сюжет: ксакеп догамался со спамботом - его дом за спам спалили, и теперь нужно перебиватьсяслучайными доходами, качать скиллы обращения с компьютером, и не огрести люлей.

Начало игры: на помойке ксакеп начинает свой путь. Он развоваривается с бомжом, который недавно отмарадёрил магазин, подвергшийся атаке футбольных фанатов, и стырил оттуда ASUS Eee 701 с линуксом на борту. Ну и даёт три квеста - найти пожрать, принести 3 бутылки водки (можно на пустых бутылках насобирать денег) и найти на помойке, куда того бомжа не пускают тамошние обитатели, пальто, шапку, и тёплые штаны, так как осень наступает. В результате выполнения этих учебных квестов персонаж получает этот «нетбук». Его надо подзаряжать, обслуживать технически, пользоваться при выполнении квестов и т.д.

Quasar ★★★★★
()
Ответ на: комментарий от AITap

>или HL2

HL2 искушает покидаться мусором в метрокопов. Первые 20 минут игры я это и делал, впервые увидев такую физику :)

Gary ★★★★★
()

а грабить корованы в твоей игре можно?

drull ★☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.