Форум » » Roguelike «Серафим» » Ответить

Roguelike «Серафим»

Irel: “Столетиями шли войны, и мир не мог не измениться…” Так начинается вступление Серафима, игры в сеттинге темного фэнтези и первого рогалика на платформах для создания текстовых квестов. Небеса, подземелья, ангелы и демоны, добро и зло, не имеющее границ. Эта тема посвящена ему.

Ответов - 43, стр: 1 2 3 All

Irel: Вопрос касательно тестирования остается открытым. Любой желающий принять участие в тестировании Серафима (и появлению в титрах), пишите на мыло mioirel@rambler.ru. Вам будет выслана текущая бета версия.

Irel: Немого истории. Задумка сделать свою игру в жанре roguelike зародилась у меня довольно давно. Была сделана невзрачная проба на qsp, но из-за недостатка интереса задумку пришлось отложить. Спустя время я повторил пробу на cpp, но для реализации чего-то цельного банально не хватило знаний. Правильно было сказано в одной статье, что для рогалика необходим тот язык, который хорошо знаешь. Сразу же после этого мной все же было принято решение сделать рогалик на qsp… и я сел за код. Выбор сеттинга решился сразу же как появился z=1 уровень “небо” (z=0 считается поверхностью, все что ниже – подземелье) и персонаж научился подниматься на него. Тут же вспомнилась старенькая игра Actraiser2 на тему воинствующих ангелов. Действие Серафима происходят в “мире Мертвой луны” из другой моей игры – WarSong. Спустя семь дней показавшихся мне беспрерывным боем с бесами (читай “багами”) первая версия Серафима была сохранена и заархивирована. Первыми нпс появившимися в игре стали зайцы и заслужили участь отчитываться за всех остальных. Так вот, одному богу известно, сколько зайцев полегло за эти семь дней! Минута молчания… Последняя версия разрослась по сравнению с предыдущей, игра стала длиннее и интереснее, а количество багов пропорционально уменьшилось. Игра позиционирует себя как участник конкурса “Иллюзия выбора”.

Byte: Я бы потестировал.. Почта всё та же - nporep _AT_ mail _DOT_ ru


Nex: а текущая бета - 7drl?

Irel: Нет, это предыдущая версия. Изменения (0.1): + Добавлены звуки (включаются/выключаются в настройках). + Эффект “кошмаров” пропадает вне логова зла. + Использование предметов не отнимает ход. + Эффект “кошмаров” отнимает святость. + Добавлена “безумная” сложность. + Подземелье увеличено. + Изменена концовка. + Добавлен разговор. + Устранение багов. + Новое оружие. В готовящейся версии 0.2 пока только устранены несколько багов и снижен дроп серебра.

elmortem: Весь вступительный текст до игрового процесса какой-то мутный и нифига не объясняет. Ясности бы больше в сюжет. Ну и не бросать игрока посредь леса... (: А если зацентрируете поле вывода - будет ваще ничтяк. И неплохо бы действия, которые после перемещения идут (в самом низу) вынести в виде объектов - задалбывает прокручивать постоянно. ):

elmortem: Да, а справа от игрового поля можно поместить маленбкую картинку с нарисованными стрелками и прикрученной к ней картой ссылок. Чтобы можно было удобно мышкой управлять.

Byte: elmortem пишет: И неплохо бы действия, которые после перемещения идут (в самом низу) вынести в виде объектов - задалбывает прокручивать постоянно. ): я расположил окошко действий слева от основного описания, вертикально - и никаких прокруток нет.. всё помещается. вот так:

Byte: Irel, сразу пока не забыл - в 1.0 был случай, что заяц находился на одном месте с деревом..

Irel: Никогда не видел скачущих по деревьям зайцев? .)

Irel: Это точно было дерево “T”, а не куст “&”?

Nex: elmortem мышкой не труЪ, это ж рогалик:)

Byte: Irel, да. помню ещё на карте был изображён заяц, но при перемещении на него, вместо атаки, было сообщение о том, что нельзя пройти. ну и была "T". проверь ещё раз код перемещения npc..

noname: так, хочу себе такое скачать... привлекает отрисовка карты- ровненько так, как в досе, но под винду... как такое делается? мне до сих пор дос оччень нравится

Nex: noname делается установкой моноширинного шрифта.

Korwin: Byte пишет: я расположил окошко действий слева от основного описания, вертикально - и никаких прокруток нет.. всё помещается. вот так: Гениально! Byte, может его туда по умолчанию запихнуть? И кстати, не помню, можно принудительно автору игры окна расставить как ему удобно или нет?

Byte: Korwin пишет: И кстати, не помню, можно принудительно автору игры окна расставить как ему удобно или нет? Можно скрывать/показывать окошки программно, а располагать доверяется игроку..

Korwin: Ок. Можно тогда в помощи по игре просто картинку вставить с оптимальным расположением окошек.

Nex: Korwin только для послеконкурсной версии. На конкурсе графика запрещена.

Byte: Irel, на локации "нпс_жизнь" в теле условия "if $нпс_ии[шаг]='охотник':" ошибки: if проход=1: gs 'нпс_ломалка' & $карта_нпс['<<нпсX[шаг]>>,<<нпсY[шаг]>>,<<нпсZ[шаг]>>']='' & нпсX[шаг]=нпсX[шаг]+1 & нпсY[шаг]=нпсY[шаг]-1 & $карта_нпс['<<x>>,<<y>>,<<z>>']=$нпс_вид[шаг] else x=x-1 if проход=1: gs 'нпс_ломалка' & $карта_нпс['<<нпсX[шаг]>>,<<нпсY[шаг]>>,<<нпсZ[шаг]>>']='' & нпсX[шаг]=нпсX[шаг]-1 & нпсY[шаг]=нпсY[шаг]-1 & $карта_нпс['<<x>>,<<y>>,<<z>>']=$нпс_вид[шаг] else x=x-1 if проход=1: gs 'нпс_ломалка' & $карта_нпс['<<нпсX[шаг]>>,<<нпсY[шаг]>>,<<нпсZ[шаг]>>']='' & нпсX[шаг]=нпсX[шаг]-1 & нпсY[шаг]=нпсY[шаг]+1 & $карта_нпс['<<x>>,<<y>>,<<z>>']=$нпс_вид[шаг] else x=x-1 if проход=1: gs 'нпс_ломалка' & $карта_нпс['<<нпсX[шаг]>>,<<нпсY[шаг]>>,<<нпсZ[шаг]>>']='' & нпсX[шаг]=нпсX[шаг]+1 & нпсY[шаг]=нпсY[шаг]+1 & $карта_нпс['<<x>>,<<y>>,<<z>>']=$нпс_вид[шаг] else x=x-1 для "else"..

Byte: Нашёл ещё пару багов. Один из них - получилось, что на карте оказалось 2 ГГ: Другой - npc (мясная стена) напал на игрока, изображение ГГ заменилось на npc и он стал перемещаться вместе с ним.. м.б. это нормально для этой "мясной стены"?: UPD: Всё, понял. 2е - не баг. Нужно "атаковать на месте". Что с 1м?

Byte: Irel, ещё: на локации "нпс_жизнь" условия вида [pre2]if X<=игрокX and Y>=игрокY and X!игрокX and Y!игрокY:[/pre2] сократи до [pre2]if X<игрокX and Y>игрокY:[/pre2] Зачем делать проверки "больше или равно" / "меньше или равно", а затем ещё на "не равно"?.. там 8 таких условий.

Irel: Спасибо Байт. К сожалению, я не имел возможностью просмотреть форум, перед тем как выкинуть игру на конкурс. В новой версии, которая будет выложена на сайт, будут произведены соответствующие изменения.

Byte: Жаль, что та ошибка с else всё-таки присутствует :( Надеюсь, в скором времени будет исправлено.. Может, ещё не совсем поздно обновить конкурсную версию? Баллы за это снимают?

Irel: Новая версия доступна для скачивания. Изменения 0.3: + Новая локация "облачные руины" (7 уровней). + Добавлен легендарный доспех. + Устранение багов. + Новые мобы.

Nex: Блин, я тебе про старые баги ещё не успел багреп отослать. Он тебе уже не нужен?

Irel: Нужен-нужен. Просто я не думал, что ты его пишешь.

Byte: Irel, когда выйдет 5.4 - вышлю подправленный вариант.. там установка громкости реализована немного по-другому.. вместо play 'file.wav:10' будет play 'file.wav',10.

Irel: Да, мне давно известна эта особенность. По-хорошему надо поставить if на версии плейера.

Nex: Так, вдогонку к тем письмам, что я отправил, ещё один совет по оптимизации: локация нпс_жизнь, после строки [pre2]шаг=шаг+1[/pre2] вставить [pre2]if шаг!нпс_максимум and нпсZ[шаг]!игрокZ: jump 'другой'[/pre2] чтобы не тратить ресурсы на "проживание" мобов вне уровня игрока. Это не всё, есть большое замечание по локации counter, но это лучше "вживую" обсуждать, т.к. там много подробностей.

Irel: Просмотрел письма. Обновленную версию выложу теперь уже после завершения конкурса. Отдельное спасибо за оптимизацию. Пересечемся в аське.

Byte: Тогда лучше вставить не " if шаг!нпс_максимум and нпсZ[шаг]!игрокZ: jump 'другой' ", а [pre2] if шаг>нпс_максимум:exit if нпсZ[шаг]!игрокZ:jump 'другой'[/pre2] при этом в конце кода строчку " if шаг!нпс_максимум: jump 'другой' " заменить на [pre2]jump 'другой'[/pre2] т.е. без условия.. это лучше, потому что в предыдущем варианте последний НПС (шаг=нпс_максимум) обрабатывался бы в любом случае, независимо от его нахождения..

Byte: и ещё метку ":конец" тогда можно совсем убрать, а единственный jump 'конец' заменить на jump 'другой'

Nex: Byte верно :) как-то я не заметил

Byte: Случайно увидел в коде (локация "лавка"): $меню[2]='Продать:вещь_продать' & $меню[0]='-:вещь_отмена' & $меню[1]='-:вещь_отмена' Название пункта меню "-" означает разделитель.. На него нельзя "нажать" и, соответственно, игроку нельзя перейти на "вещь_отмена".. С учётом этого, это верный код или недосмотр?

Byte: Irel, если будешь обновлять "Серафима" - бери исходный вариант из каталога (я там исправил вызовы "PLAY" с громкостью, для 5.4).

Byte: В 0.7 при генерации иногда зависает где-то в области циклов [pre2] :лестница ok2=0 & x=rand(карта_размерX,1) & y=rand(карта_размерY,1) & z=карта_уровень if $карта['<<x>>,<<y>>,<<z>>']=$тайл_пол or $карта['<<x>>,<<y>>,<<z>>']=$тайл_полкровь or $карта['<<x>>,<<y>>,<<z>>']=$тайл_вода: ok2=1 & $карта['<<x>>,<<y>>,<<z>>']=$тайл_подъем if ok2=0: jump 'лестница' if без_лестницы!1: :лестница2 ok2=0 & x=rand(карта_размерX,1) & y=rand(карта_размерY,1) & z=карта_уровень if $карта['<<x>>,<<y>>,<<z>>']=$тайл_пол or $карта['<<x>>,<<y>>,<<z>>']=$тайл_полкровь or $карта['<<x>>,<<y>>,<<z>>']=$тайл_вода: ok2=1 & $карта['<<x>>,<<y>>,<<z>>']=$тайл_спуск if ok2=0: jump 'лестница2' end[/pre2] Видимо, могут генериться уровни без пола, крови и воды? (Показывает 24%).

Byte: И еще - на локации fog_gen [pre2] x=0 & y=0 & z=карта_уровень :nw туман['<<x>>,<<y>>,<<z>>']=1 x=x+1 if x<=карта_размерX: jump 'nw' y=y+1 & *nl if y<=карта_размерY: x=0 & jump 'nw' else exit[/pre2] & *NL нужно убрать - из-за него во время генерации появляется куча пустых строк.. else exit - тоже можно убрать, здесь он ни к чему.. UPD: Заметил, что & *nl в таком же контексте присутствует на многих локациях - везде нужно убрать: fog_gen карта_небо карта_руины карта_руины2 карта_харибда конец_игры

Byte: Хм, 0.7b всё равно иногда зависает при генерации карты. Вот сейчас на 20%.

Byte: Хм, это было всего 1 раз.. может, я просто не дождался тогда? :/ Потом перезапускал много раз - не зависало.

Mioirel: Похоже, не дождался. Смени описание на сайте: “Первая полноценная игра в жанре rogue-like на платформах для создания текстовых квестов. Примите схватку со Злом! Сразитесь с Добром! Утопите небеса и землю в крови врагов!!!”

Byte: Обновил.

Mioirel: Мне хотелось без переноса на новую строку, ну да ладно…)



полная версия страницы