Новый метод программирования

Re: Новый метод программирования

Очень интересно. Хотелось воскликнуть: где ты был пару лет назад? big_smile Мне бы это очень помогло.
И тем не менее все хорошо в меру. Не для всех игр подойдёт такой код.

HIman написал(а):

просто большой набор состояний локации

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

Aleks Versus
воздвигатель башни
useravatar
Offline
1478 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Новый метод программирования

У меня обычно локация состоит из "стабильного" куска текста, который всегда одинаков, а дальше "возможный" текст, зависящий от переменных, например:
'В комнате стоит стол.'
if int=1:'На столе стоит лампа.'
if int=2:'На столе пусто.'
Причём, при желании, таким образом может генерироваться достаточно динамичный текст, который будет меняться в зависимости от многих факторов.
Код же вообще может находиться на рабочих локациях, для облегчения восприятия.

WladySpb
Planes Walker
useravatar
Offline
80 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Новый метод программирования

Aleks Versus написал(а):

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

Да будет 25 однотипных блоков в одной локации, завязанных на одну переменную состояния, но даже в этом случае описание локации, если он не меняется к примеру 20 раз из 5, удобно вынести все тексты в отдельную локацию. А в самих блоках писать код *p sp[sp]
Где sp - переменная от 1 до 25 состояние локации "спальня",
    sp[] - массив текстов для локации "спальня".

Таким образом можно локализовывать игры. Перед стартом выбирается язык и в зависимости от выбора активируется массивы текстов либо на русском, локация "RUS", либо на английском локация "ENG"и .т.п.
Содержание же локаций для локализации будет простой набор массивов, в каждой локации под свой язык.
Для примера:
! тексты локации спальня
sp[1]='описание спальни1'
sp[2]='описание спальни2'
sp[3]='описание спальни3'
...
sp[25]='описание спальни25'
! тесты локации коридор
kor[1]='описание коридора1'
kor[2]='описание коридора2'
...
kor[30]='описание коридора30'

Обратите внимание, цифра отражает состояние локации посему код описания в блоке упрощается до *pl sp[sp] или *pl kor[kor]

HIman
Режиссер игр
useravatar
Offline
30 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Новый метод программирования

WladySpb написал(а):

У меня обычно локация состоит из "стабильного" куска текста, который всегда одинаков, а дальше "возможный" текст, зависящий от переменных, например:
'В комнате стоит стол.'
if int=1:'На столе стоит лампа.'
if int=2:'На столе пусто.'
Причём, при желании, таким образом может генерироваться достаточно динамичный текст, который будет меняться в зависимости от многих факторов.

Вот у меня подобным образом написана игра "Великая пустота-9" в коде при посещении локации и динамические тексты, и проверки на предметы, и проверки на условия, и диалоги, и чего там только нет, сотня переменных которые пора выписывать столбиком и писать к каждой описание, и вообще страшно туда заглядывать, так как дернешь в одном месте отвалится в другом. Именно от такого программирования я и пытался уйти, а подвернувшийся метод очень хорошо справляется со своими задачами.

HIman
Режиссер игр
useravatar
Offline
30 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Новый метод программирования

HIman написал(а):

Да будет 25 однотипных блоков в одной локации, завязанных на одну переменную состояния, но даже в этом случае описание локации, если он не меняется к примеру 20 раз из 5, удобно вынести все тексты в отдельную локацию.

А. Так вот в чём соль. Весьма-весьма удобно.

Aleks Versus
воздвигатель башни
useravatar
Offline
1478 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Новый метод программирования

почитал тему решил попробовать ,конечно в прямом виде слишком сложно особенно когда в локации происходит взаимодействие нескольких персонажей в разное время,если брать тупо и срисовать как здесь то порой можно достичь десятки описания локаций и того что в них происходит нереально абсолютно,но с explain очень понравилось,беру чистую полосу в центре, пишу с одной стороны время, с другой локации, с третьей персонажи, с четвертой условия ,и т.д.и пытаюсь провести героя через игру ,это в центре создавая точки-узлы и соединяя их со следующим узлом создавая идеальный проход героя если такой проход есть, и соединяя в них локацию,персов, время ,рюкзак и т.д. подписываю кратко чтоб не забивало поле,а основные описания в комментах к узлу что внутри него,если идут разные варианты раздваиваю узел создавая полоску узлов сколько надо раз и в каждой коммент или условия или что необходимо и оставляю на узле. в результате получается абракадабра из синих и красных линий с подписанными узлами ,но видно траекторию движения героев от начала к концу игры  и что творится в каждой точке движения ,если надо подробнее просто тяну узел в сторону от траектории игры и разбираю узел и все что с ним связано линиями, исправляю текст и прочее и загоняю обратно на траекторию,конечно знание QSP мне это не заменяет но становится наглядно видно все связи всех персонажей если локация усложняется сзади создаю точки её описаний  и все обязательно соединяю линиями связи. Для меня такой вариант оказался понятным и наглядным так как опыта у меня никакого ,кстати мне кажется очень удобно задавать таким макаром массивы описаний и уже затем вводить их в редактор ,похоже я просто переталдычиваю  автора темы но повторение мать учения и расшифровка чайника возможно будет понятнее другому чайнику)
Если кто то тоже этим пользуется хотел узнать,у меня иногда комменты к узлу не полностью сохраняются так как пишу и затем дописываю кусками ,причина какая то простая но пока не пойму почему один раз сохраняет а в другой может добавленный кусок не сохранить,наверно подозреваю то ли от курсора мышки то ли от чего то подобного, может кто сталкивался подскажите.
и по поводу сохранения,если надо несколько параллельных проектов,то тупо перетаскиваешь лист на чистое место  и все?или есть возможность классического сохранения,кто как решает эту проблему если это проблема?

fau2
useravatar
Offline
17 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Новый метод программирования

Честно попытался прочитать - ни черта не понял )
Все-таки я не программист.

MasterSet
Миротворец
useravatar
Offline
646 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Новый метод программирования

намечаем персонажей ,локации,предметы и прочее
http://s53.radikal.ru/i142/1204/4b/b3cebe9c4af4.jpg

рисуем движение игры от начала до конца
http://s019.radikal.ru/i623/1204/af/9dcbc179f79d.jpg

то же самое крупным планом
http://s53.radikal.ru/i141/1204/aa/fe6efd4064db.jpg

внутри узла можно писать комментарии,я пишу диалоги и пояснения
http://s019.radikal.ru/i640/1204/fc/ea354db99140.jpg

каждый узел можно оттянуть в сторону для работы а потом вернуть на место
http://s57.radikal.ru/i158/1204/fb/68158a165d38.jpg

сорри если коряво получилось,как смог

fau2
useravatar
Offline
17 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Новый метод программирования

To fau2 идея с выделением предметов, нпс, т.п, неплохая, и действительно можно совместить эти да подхода, но вот с линиями на графе получится перебор smile тут обычное перемещение по локациям уже каша получается, а если ещё каждую точку(локацию) соединить линией с предметами нпс и т.п. то получится ужас.
Можно предметы, нпс и т.п. не соединять линиями с локацией (точкой следования персонажа), а в сторонке рисовать каждому предмету 2(минимум) линии c пометками:
+ предмет будет добавлен в инвентарь на локации,
- предмет будет исключен на локации,
* предмет используется на локации.

http://qsp.su/components/com_agora/img/members/8/mini_risunok_dereva_predmetov.png

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

HIman
Режиссер игр
useravatar
Offline
30 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Информация

Статистика форума:
 
Всего тем:
970
Всего опросов:
14
Всего сообщений:
16790545
Сообщений на этой неделе:
10
Пользователи форума:
 
Всего пользователей:
2346
Последним зарегистрировался:
Rizrael