Вета и Rono победили на КРИЛ 2010! Пи-хо! Вета даже два раза.
Искреннее поздравление победительницам!
Вета и Rono победили на КРИЛ 2010! Пи-хо! Вета даже два раза.
Искреннее поздравление победительницам!
В урке много недостатков. Мне, как автору фурки можете поверить. Вообще, чем дальше я пишу фурку, тем лучше понимаю, какой должна быть идеальная менюшная ИЛ-платформа. Возможно, я её когда-нибудь напишу. Имя, по крайней мере, уже придумал. 🙂 Впрочем, я отвлёкся.
Одной из самых неудобных в урке вещей является инвентарь. Написать игру, в которой инвентарь используется вменяемым образом, довольно сложно. Даже очень сложно. Я не говорю сейчас об играх, в которых инвентарь играет роль декорации или используется минимально. Я говорю об играх, где, скажем, предметы могут по-разному использоваться на различных локациях, плюс список и реализация действий над предметами различаются в зависимости от внутриигровых факторов.
Нет, конечно, урка предоставляет средства. Но лучше сразу убиться, чем писать сложное взаимодействие с предметами инвентаря. В платформе моей мечты инвентарь будет удобным и практичным. Но мы говорим об урке.
Сейчас взаимодействие с предметом в инвентаре реализуется через локации вида:
:use_Зелье_Выпить
pln ...
Если нужно реализовать различное взаимодействие в зависимости от текущей локации, то приходится писать что-то вроде:
:use_Зелье_Выпить
if cur_loc="пещера" then goto ...
При этом, если локаций, на которых нужна разная реакция на выпитое зелье, много, то этих if и goto в локации-действии будет на пол-экрана. Кроме того, все реакции будут располагаться в коде одной куче, зачастую далеко от той локации, к которой привязаны.
Мне пришла в голову идея реализовать в фурке локации следующего вида:
:пещера
pln Вы в пещере...
...
end
:use_Зелье_Выпить@пещера
pln Пьём зелье в пещере...
...
Т.е. в зависимости от текущей локации будет выбираться та или иная реализация на действие над предметом. Если не нашлось «специализированной» реализации, то выполняется стандартная use_Зелье_Выпить.
Этот подход, мне кажется, имеет несколько важных плюсов:
Также удобство использования инвентаря повысят события (events), которые стоят в планах на реализацию. Но о них в другой раз.
Ну вот. Я подумал и решил, что на семейный свой сайт я ничего по ИЛ не пишу. И не потому, что нечего сказать, а потому, что пытаясь рассказать друзьям, родственникам и знакомым про ИЛ, я чаще всего натыкаюсь на вежливое внимание (в лучшем случае) или на искреннее непонимание.
В общем, аудитории моего семейного сайта ИЛ, скорее всего неинтересна. Что ж, буду писать здесь. Благо, Олегус последнее время делает из iFiction ИЛ-портал, вот даже блогохостинг прикрутил.
Итак, поехали!