Объекты в IF языках программирования это хорошо - можно задать общие для объектов вещи и более не мучиться... Проблемы есть, но их не много и они довольно просто решаются/избегаются. Это, например, приписывание не тех свойств объектам = простая невнимательность. Но, возможно, кто-нибудь скажет, что ООП (объектно-ориентированное программирование) сложнее, чем линейное программирование.
Короче не знаю.
Просто ищу оправдание внезапно наплывшему желанию написать простую платформу на Python для IF. Команды там будут обрабатываться совершенно линейно, как в "Васе". Т.е. те команды, кот. программист не задал пониматься просто не будут. Хотя будут некоторые вспомогательные механизмы - такие, как маски команд. Скажем, игрок набирает "отдать топор гоблину", находясь в комнате room1. Тогда последовательно будут вызываться следующие команды: room1_отдать_топор_гоблин, room1_отдать_топор_*, room1_отдать_*_гоблин, room1_отдать_*_*, room1, отдать_топор_гоблин, отдать_топор_*, отдать_*_гоблин, отдать_*_*, *. Вот примерно так. Надеюсь, что идея понятна. Следует ли пытаться сделать такую систему, или она по сути слишком примитивна и не стоит затраченного времени? А?
Неактивен
Хорошо, что Билли Хаст промелькнул в качестве примера примитивной разработки текстового квеста. Это действительно так. По теме я бы хотел сказать, что использование того или иного метода программирования исходит от понимания, что будет "в конце". ООП создано, что бы облегчить программирование, не для того что бы "оно было". С его использованием код становится меньше, логичней и проще в использовании, но только в тех случаях, когда это действительно необходимо.
Вот, опять же, взять исходники моего квеста (Билли Хаст, исходники здесь - http://breakmt.narod.ru/billy_src.zip). Многие сказали бы, что это очень плохие исходники. Я сам понимаю, что они могли бы быть гораздо лучше, используй я ООП, да и, вообще, подходя к этому делу серьезней. Другой вопрос был бы ли этот Билли Хаст вообще, если бы я надумал усложнить задачу, сделать редактор карт, диалогов, расчет времени суток, используя ООП ввести всякие контейнеры, поверхности и т.д. да и вообще необходимы ли они были бы в данной игре?
Что лучше - сделать игру за несколько дней и затем оттачивать ее, либо сделать демку, в которую невозможно будет играть, но в ней будет все вышеперечисленное? Многие начинающие (да и знающие) разработчики переоценивают свои силы и пытаются сделать универсальный движок для разработки продолжений. Я считаю, что это не правильно лично из своего опыта.
Короче, мой вывод: если ты размышляешь использовать ли ООП или нет, если ты новичок - пиши как ты привык, потому что только в этом случае ты получишь результат (причем может быть в короткие сроки) + обучишься чему то новому... иначе пиши используя ООП, потому что это удобно, когда понимаешь, что это такое.
Извиняюсь, если не в тему, потому что писал не для платформ (в которых я не секу), а для тех, кто делает квест с нуля используя язык программирования.
Неактивен