Вот, решил написать что-нибудь свое. В качестве платформы выбрал Microsoft Quick C Compiler 2.5. Так как мои познания в “Си” носят весьма поверхностный характер (зря я лекции прогуливал
), то практически сразу возник вопрос: как реализовать функцию save/load в программе? Пробовал спрашивать у своих знакомых, ответы варьировались от привычного: “Ну, я так сразу не скажу”, до издевательского: “Да там не сложно, сам разберешься”. В общем, жду Ваших советов/предложений.
Неактивен
Могу сразу сказать, что выбор платформы, увы, неудачный. ![]()
А на вопрос "как реализовать сохр./восст." невозможно ответить без подробного знания, как реализована сама игра. В каком виде там хранятся данные? Если в виде массивов, то их и надо сохранять, и т.п.
Одно из преимуществ уже существующих ИФ-систем, вроде ТАДС или Информа, в том, что там все эти проблемы решаются автоматитчески и забесплатно.
Неактивен
Вот вот...
Тут каждый второй начинате писать IF cо своего движка :-/
И заканчивается .... плачевно вобщем...
Лучше потрать время на детальное изучение сущевующих движков, выбери наилудшим образом подходящий и вперед!
Бесплатный совет
Начинать надо с сюжета!
8)
Неактивен
Народ, помогите! У меня жесточайший кризис, из которого я безуспешно пытаюсь выбраться уже два месяца. За компьютером сижу час в неделю, и то играю в игрушки... Как вернуть любовь к программированию и текстовым играм?..
А еще я придумал новый вариант создания квестов: сначала придумать энное кол-во головоломок, потом на это нарастить сюжет, ну а потом - дело техники. Советую.
Отчаянный Дух (ОДИН)
Неактивен
Впринципе головоломки придумываются по ходу создания сюжета, за одно и вплетаютс в него самым наилудшим образом.
Например:
Вы нашли хорошо укрытую пешеру, зайдя в которую видна металлическа дверь, обследовав близлежащие стенки обнаружили небольшое углубление.
А вот чтобы открыть эту дверь, нужно вставить перстень мага Ордрога который жил в лесу вот уже 300 лет и живет по сей день, он вам естно не даст кольцо и тем более превратит в дерево, если заикнетесь про найденый тайник не для вас ведь он предназначен
и т.д. накручивается сюжет.
А головоломка здесь в кольце у которго 3 разноцветных обрамления которые можно покрутить но в определенное время они соединяются, что и позволяет октырть ту металлическую дверь, но крутить не так просто если неправильно накруить и вставить кольцо то ...
и т.п.
Неактивен
В том, что “Си” является даалееко не идеальной платформой для создания IF, я никогда не сомневался, и без малейших угрызений совести променял бы старичка на INFOTM, TADS или HUGO. Но проблема в том, что они не так уж милы, прозрачны и легки в освоении как, например, ADRIFT. А если с английским не настолько хорошо чтобы читать без словаря длиннючие мануалы, то процесс может затянуться не на один месяц. Язык то за это время, конечно, изучишь, а вот, желание что-либо писать может поотпасть.
Теперь сделаю небольшое отступление и расскажу, собственно, об игре. С начала я планировал сделать обычную адвентюру в фэнтезийном стиле с рыцарем, похищенной принцессой, замком и цветущими окрестностями. Все это сдобрить изрядным количеством паззлов, гобеленами, хитрой системой рычагов и порталов, плотно закрыть крышкой, взболтать и выдать готовую поделку к новогодним праздникам. И тут я вспомнил, что всегда любил РПГ, так почему бы не…
Почему бы для создания РПГ не воспользоваться движком какого-нибудь MUD’а. На .www лежат исходники, движок и редактор создания зон, пожалуй, лучшего (не хочу никого обидеть это всего лишь IMHO) русскоязычного МПМ "Былин”. После первого знакомства сразу понимаешь, что это то, что так долго искал: простота (исключительная) + широкие возможности. Я, конечно, понимаю, что должно быть, говорю очевидные вещи, но вдруг не все посетители форума сталкивались с МПМ, так что я постараюсь быть последовательным и рассказать обо всех плюсах (как я их вижу) такого решения.
Движок и редактор зон распространяются как freeware. Для запуска MUD’а необходимо скачать (можно с того же сайта) zMUD или JABA. Движок содержит в себе одну из зон реального МПМ “Былин”, 12 профессий для отыгрыша персонажа (колдун, волхв, витязь и т.д.), около 100 магических заклинаний и приблизительно 40 боевых (и не только) умений (сбить противника щитом, парировать атаку, украсть и проч.). Тут необходимо сделать еще одно отступление: все заклинания и умения являются лицензированными, свободно использовать разрешено только программный код движка, а все скилы и спелы придется придумывать самому (или переименовывать те, что уже есть). Процесс создания зоны (в данном случае игры) в редакторе – сплошное удовольствие. Вводим в специально отведенные графы описания комнат (аналог ADRIFT’а), расставляем в нужных местах NPC (торговцев, квестовых персонажей, противников). Вот, здесь, как говорится, вся соль. Каждому NPC можно задать ряд присущих только ему характеристик и умений, за счет чего каждый враждебно настроенный оппонент становится уникальным, требуя к своей персоне отдельного внимания и тактики ведения боя.
К примеру, зеленый дракон. Для начала просклоняем его, по всем известным в русском языке, падежам. Теперь выставляем флаги-ограничения. Очевидно, что дракона нельзя подсечь, обокрасть, парировать его атаки, сбить щитом не стоит и пытаться (разве что в цирке
) и т.д., зато от его атак можно уклоняться, кидать в последнего колюще-режущие предметы и перечень из 100 заклинаний. В свою очередь Змей-Горыныч тоже покастовать не дурак, и молнией засветит и от файерболла даст прикурить. Кроме того, он может позвать на помощь NPC с других клеток или банально сбежать. И все это мы сделали за 3 минуты, расставив десятка два галочек в нужных полях! А ведь еще существуют различия по фазам луны. К примеру, ведьмы на кладбище появляются только по ночам или 13 числа, а может в новолуние?
Теперь о паззлах: они, безусловно, есть (или могут появиться под Вашим чутким руководством) и реализуются по средствам набора задаваемых триггеров. Пока что не могу сказать, как именно все происходит. Но если кому-нибудь будет интересно, обещаю разобраться и представить письменный отчет. ![]()
Неактивен
Trifle написал:
Без малейших угрызений совести променял бы старичка на INFOTM, TADS или HUGO. Но проблема в том, что они не так уж милы, прозрачны и легки в освоении как, например, ADRIFT. А если с английским не настолько хорошо чтобы читать без словаря длиннючие мануалы, то процесс может затянуться не на один месяц.
...
Почему бы для создания РПГ не воспользоваться движком какого-нибудь MUD’а.
Во-первых с мануалами не так всё плохо - для ТАДС мануал большей частью уже переведён.
Про МУД я хочу сказать, что он не даёт таких возможностей как IF. Загадки вялые, изучение мира хилое. Можно в нём "осмотреть потолок" или "ощупать стены", или ввести совершенно дикие глаголы? МУД для других целей.
Неактивен
Не буду ничего доказывать (пока что), а приведу пример честно прихваченный из МПМ “Былин” Да простят меня его создатели…
В одной из зон перед нами ставилась задача по очистки русской земли от падшей богини. Убить просто так ее нельзя, сперва нужно достать порошок света, отыскать очаг возгорания адова пламени (основной источник сил нашей блудницы
) и подбросить лекарство в костер. А вот как это все будет выглядеть
“изнутри”.
(описание комнаты)
[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
Если нам хочется просто “осмотреть потолок” или “ощупать стены”, то нужный триггер уместится в три строчки, а на его описание уйдет пара минут дрогоценного билдерского времени. ![]()
Неактивен
Я думаю, то, что у тебя получится, будет МУДом. Или РПГ.
Но это не будет IF.
Впрочем, ты можешь на практике доказать обратное. Ждём этого аргумента ![]()
Неактивен
Хм, ну как там игра? Идея-то вроде была не плохая... Заглохло дело, да? :-/