Вот, решил написать что-нибудь свое. В качестве платформы выбрал Microsoft Quick C Compiler 2.5. Так как мои познания в “Си” носят весьма поверхностный характер (зря я лекции прогуливал
), то практически сразу возник вопрос: как реализовать функцию save/load в программе? Пробовал спрашивать у своих знакомых, ответы варьировались от привычного: “Ну, я так сразу не скажу”, до издевательского: “Да там не сложно, сам разберешься”. В общем, жду Ваших советов/предложений.
Неактивен
В том, что “Си” является даалееко не идеальной платформой для создания IF, я никогда не сомневался, и без малейших угрызений совести променял бы старичка на INFOTM, TADS или HUGO. Но проблема в том, что они не так уж милы, прозрачны и легки в освоении как, например, ADRIFT. А если с английским не настолько хорошо чтобы читать без словаря длиннючие мануалы, то процесс может затянуться не на один месяц. Язык то за это время, конечно, изучишь, а вот, желание что-либо писать может поотпасть.
Теперь сделаю небольшое отступление и расскажу, собственно, об игре. С начала я планировал сделать обычную адвентюру в фэнтезийном стиле с рыцарем, похищенной принцессой, замком и цветущими окрестностями. Все это сдобрить изрядным количеством паззлов, гобеленами, хитрой системой рычагов и порталов, плотно закрыть крышкой, взболтать и выдать готовую поделку к новогодним праздникам. И тут я вспомнил, что всегда любил РПГ, так почему бы не…
Почему бы для создания РПГ не воспользоваться движком какого-нибудь MUD’а. На .www лежат исходники, движок и редактор создания зон, пожалуй, лучшего (не хочу никого обидеть это всего лишь IMHO) русскоязычного МПМ "Былин”. После первого знакомства сразу понимаешь, что это то, что так долго искал: простота (исключительная) + широкие возможности. Я, конечно, понимаю, что должно быть, говорю очевидные вещи, но вдруг не все посетители форума сталкивались с МПМ, так что я постараюсь быть последовательным и рассказать обо всех плюсах (как я их вижу) такого решения.
Движок и редактор зон распространяются как freeware. Для запуска MUD’а необходимо скачать (можно с того же сайта) zMUD или JABA. Движок содержит в себе одну из зон реального МПМ “Былин”, 12 профессий для отыгрыша персонажа (колдун, волхв, витязь и т.д.), около 100 магических заклинаний и приблизительно 40 боевых (и не только) умений (сбить противника щитом, парировать атаку, украсть и проч.). Тут необходимо сделать еще одно отступление: все заклинания и умения являются лицензированными, свободно использовать разрешено только программный код движка, а все скилы и спелы придется придумывать самому (или переименовывать те, что уже есть). Процесс создания зоны (в данном случае игры) в редакторе – сплошное удовольствие. Вводим в специально отведенные графы описания комнат (аналог ADRIFT’а), расставляем в нужных местах NPC (торговцев, квестовых персонажей, противников). Вот, здесь, как говорится, вся соль. Каждому NPC можно задать ряд присущих только ему характеристик и умений, за счет чего каждый враждебно настроенный оппонент становится уникальным, требуя к своей персоне отдельного внимания и тактики ведения боя.
К примеру, зеленый дракон. Для начала просклоняем его, по всем известным в русском языке, падежам. Теперь выставляем флаги-ограничения. Очевидно, что дракона нельзя подсечь, обокрасть, парировать его атаки, сбить щитом не стоит и пытаться (разве что в цирке
) и т.д., зато от его атак можно уклоняться, кидать в последнего колюще-режущие предметы и перечень из 100 заклинаний. В свою очередь Змей-Горыныч тоже покастовать не дурак, и молнией засветит и от файерболла даст прикурить. Кроме того, он может позвать на помощь NPC с других клеток или банально сбежать. И все это мы сделали за 3 минуты, расставив десятка два галочек в нужных полях! А ведь еще существуют различия по фазам луны. К примеру, ведьмы на кладбище появляются только по ночам или 13 числа, а может в новолуние?
Теперь о паззлах: они, безусловно, есть (или могут появиться под Вашим чутким руководством) и реализуются по средствам набора задаваемых триггеров. Пока что не могу сказать, как именно все происходит. Но если кому-нибудь будет интересно, обещаю разобраться и представить письменный отчет. ![]()
Неактивен
Не буду ничего доказывать (пока что), а приведу пример честно прихваченный из МПМ “Былин” Да простят меня его создатели…
В одной из зон перед нами ставилась задача по очистки русской земли от падшей богини. Убить просто так ее нельзя, сперва нужно достать порошок света, отыскать очаг возгорания адова пламени (основной источник сил нашей блудницы
) и подбросить лекарство в костер. А вот как это все будет выглядеть
“изнутри”.
(описание комнаты)
[28866] /*номер комнаты*/ Прямо по центру зала горит костер, горит без дров, огромные камни кровавого цвета лежат в основании костра и создают это жадное злое пламя.
/*Для каждой комнаты можно задать десятки различных параметров: скакун сюда не пройдет, на комнату не влияют погодные условия, в комнате темно и т.д. Кроме того комната может иметь дверь (открытую, закрытую, запертую,) */
Комната содержит объект: [28801] огромное пламя
(объекты)
[28801] огромное пламя
/*Для начала просклоняем объект по падежам, определим тип материала из которого он создан: органика, укажем вес, таймер и свойства*/
[28814] порошок света … триггер [28805] бросить порошок
(триггер)
[28805] бросить порошок
wait 1
if (%actor.realroom%==28866) && (%world.curobjs(28801)%)==1
oecho Только порошок коснулся языков пламени, так сразу началось что-то
oecho странное - порошок не горел, не улетучивался, а пламя стало гаснуть
oecho и гаснуть, пока полностью не погасло.
oecho Откуда то с юга раздался крик страшной боли и ужаса.
calcuid hobj 28801 obj
opurge %hobj.name%
opurge %self.name%
end
Если нам хочется просто “осмотреть потолок” или “ощупать стены”, то нужный триггер уместится в три строчки, а на его описание уйдет пара минут дрогоценного билдерского времени. ![]()
Неактивен
Больше никаких мнений на этот счет не будет ?
Неактивен