Rising Force Roguelike

Закрытые или заброшенные проекты, не состоявшие в Клубе, но имевшие ветку на форуме.

Модератор: Jolly Roger

Аватара пользователя
kipar
Сообщения: 2083
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Rising Force Roguelike

Сообщение kipar » 30 май 2010, 13:00

Хм. форум тормозит.
Последний раз редактировалось kipar 30 май 2010, 13:20, всего редактировалось 1 раз.

Аватара пользователя
kipar
Сообщения: 2083
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Rising Force Roguelike

Сообщение kipar » 30 май 2010, 13:21

    Нда, несмотря на все игры препятствия я заставил себя продолжить работу - и выкладываю новую версию.
    Правда сделал не так много, но все же.
  • Самое главное - квесты: два фиксированных квеста у кладовщика беллато (просто как пример) и случайно-генерируемые квесты у всех нпц. Награда должна будет зависеть от типа нпц, да и тип квеста, наверное... В общем еще дорабатывать и дорабатывать.
  • Глобальная карта по кнопке "М" - с отображением положения игрока и квестовых локаций. Надо будет привязать к ней и выбор точки телепортации (с помощью карт и стационарного ТП).
  • ПТ крафта теперь действует, поэтому класс специалист перестал быть бессмысленным.
  • Слегка оптимизировал загрузку\сохранение файлов - теперь обращаюсь к диску один раз. Заодно упаковываю сейвы на лету алгоритмом gzip - теперь они не пугают своим размером и кучей одинаковых надписей в содержимом.
  • Ну и всякие мелочи типа переработок интерфейса.

Насчет интерфейса у меня вообще появились сомнения - может переходить пока не поздно на "консольный" модальный интерфейс, самому писать всякие кнопки\списки\менюшки?
    Плюс - проще будет портировать, меньше проблем с оформлением. Минус - куча проблем по переделке уже готовых окон, ну и излишняя (относительно) работа по созданию самопального оконного менеджера и дизайну интерфейса.
    А то в ММОРПГ эта куча окон (инвентарь\скиллы\карта\журнал\пати\чат\...) смотрится нормально, то там она и оформлена эргономично. А у меня как-то все не по-игровому выглядит. И вообще, оказывается модальный интерфейс - один из признаков roguelike.

    Еще размышляю (хотя и преждевременно, тьфу-тьфу-тьфу) насчет общей концепции игры. Думаю, фиксированные квесты и сюжет пока буду делать только для Беллато, а остальные расы оставлю для целей тестирования ПвП. Просто они как-то ближе к современным людям. Основные мотивы - жадность, социальный статус. Многоженство было отменено некоторое время назад, поэтому браки моногамны. Служба в армии по призыву (точнее говорится что обязаны отслужить все, но сомневаюсь что нет разных отсрочек и исключений). Колонизируют планету в поисках ресурсов.
    Насчет сюжета кучу идей можно подчерпнуть из "Аватара" - если отвлечься от предыстории, то там ну очень похожий мир, на самом деле. В принципе при игре за Беллато главной темой планирую сделать проблему одиночества, как ни пафосно это звучит. Вроде как герой должен чувствовать, что не нужен ни собратьям, которых он интересует в основном с практической точки зрения, ни туземцам - которые может и будут с ним общаться, но для которых он все равно останется чужаком. Ну и что-то исходя из этого будет предпринимать - в зависимости от решений игрока и своей стартовой истории.

Остальные расы:
  • Кора - религиозные фанатики, причем о их религии ничего толком неизвестно (кроме того что их Дайсем - бог тьмы), а аналогии с христианством будут неуместны. Институт семьи - отсутствует. Служба в армии - нет данных. Исходя из этого какой должна быть интрига сюжета? Какой моральный выбор может возникать? Не знаю.
  • Акретия - почти что роботы (при рождении пересаживают мозг ребенка в робота, т.к. некий вирус разрушает все остальные органы). Абсолютно тоталитарное общество, соответственно мотивы и моральные дилемы тоже непонятны. Насчет сюжета есть одна идея - проблема соотношения памяти и личности. Кто-то (вариант - главный герой) подвергся стиранию памяти в наказание за преступление и теперь должен понять - осталось в нем что-то от старой личности или нет. Но для сюжета этого все-таки недостаточно.
  • Туземцы - надо будет нагло скопировать с на'ви. Но это в очень далеких планах.
  • Ну и Геродиане, Главный Враг - смотрят, когда три расы окончательно передерутся, чтобы добить оставшихся. Боятся, как бы три расы не нарыли на Новусе оружие против них. В игре их не будет, так как на Новус они попасть не могут, могут участвовать косвенно, плести интриги.

(нет, версию выложу все-таки вечером - еще погоняю на предмет явных багов).

Аватара пользователя
kipar
Сообщения: 2083
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Rising Force Roguelike

Сообщение kipar » 30 май 2010, 20:58

Выложил версию в первом сообщении темы.

Аватара пользователя
Toth
Сообщения: 327
Зарегистрирован: 11 ноя 2009, 13:36
Откуда: Красноярск

Re: Rising Force Roguelike

Сообщение Toth » 02 июн 2010, 10:58

Побегал за война акрета, понравилось.
При выборе тактик выскакивает ошибка:
EXCEPTION: Access violation@ $0045EE99, Please send fails.log to kipar@front.ru with description of error
некоторые пожелания:
Выводить остаток денег при торговле, а то покупаешь - не видишь сколько у тебя есть, а сколько осталось.
Количество тактик думаю нужно сократить, 3-4 имхо будет достаточно, плюс умения.
Еще такой момент, монстры выстраиваются в очередь, хотя вокруг много свободного места чтобы обойти и атаковать игрока. Я кстати сейчас похожую задачу пытаюсь решить, но у меня открытых пространств пока что нет.

Аватара пользователя
kipar
Сообщения: 2083
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Rising Force Roguelike

Сообщение kipar » 02 июн 2010, 11:36

Спасибо за отзыв)

Насчет тактик - да, к следующему релизу исправлю. Будет три-четыре фиксированных (агрессивная\оборонительная\против шустрых\против крепких) и несколько настраиваемых игроком.

Деньги - в принципе можно смотреть через окно 'C'. Но в торговлю их тоже добавлю. Как-то не подумал.

Монстры - да, по идее они должны рассматривать для шага три направления из восьми - на игрока, чуть левее и чуть правее. Но случай, когда они точно по горизонтали или по вертикали я не учел - потому выстраиваются в линию. Но это непоный фикс - тогда игрока будет бить максимум три монстра, остальные все равно будут стоять. А чтоб было по-нормальному надо делать pathfinding A*.

Аватара пользователя
Toth
Сообщения: 327
Зарегистрирован: 11 ноя 2009, 13:36
Откуда: Красноярск

Re: Rising Force Roguelike

Сообщение Toth » 02 июн 2010, 15:20

Про систему ранений, тоже думал как лучше это реализовать. HP|MP уже надоели, захотел изобрести велосипед, исподтишка поглядывая на дворфов. Получилось примерно следующее:
МАССИВНЫЕ РАНЕНИЯ:
В голову (интеллект, мудрость, воля (у кого как) в минус), галлюцинации, конфуз, неправильное отображение статов, удары об стену, часть монстров становятся невидимыми, ярлыки на бутыках рандомные и т.д. Удар в глаза - слепота. В рот - немые не могут торговаться. В уши - обманут.
В руки - тут понятно, штрафы к попаданию/модификаторам, уронил, раздавил бутылку, выстрелил в ногу и т.д..
В ноги - тут понятно, штрафы к скорости, или перемещение рандомно, упал.
В спину, вероятен паралич какой-то конечности.
В живот, проникающее, у меня есть флаг внутреннего кровотечения, без помощи хирурга - умрешь, в шею - аналогично.
В пах - лол, у меня повлияет.
Ну и плюсом, раны болят, могут загнить (если шариться по болотам), может все закончится ампутацией (магазин/протез/коляска).

Примерно так.

Аватара пользователя
kipar
Сообщения: 2083
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Rising Force Roguelike

Сообщение kipar » 02 июн 2010, 19:13

На тему загнивания ран сразу вспомнилось:
viewtopic.php?f=2&t=151&p=3058&hilit=%D ... 0%B0#p3058

В общем с одной стороны реализм это хорошо, а с другой - главное не переборщить.

Аватара пользователя
Jolly Roger
Сообщения: 2973
Зарегистрирован: 27 ноя 2009, 09:10
Откуда: Minsk, Belarus

Re: Rising Force Roguelike

Сообщение Jolly Roger » 11 июн 2010, 11:17

kipar писал(а):Спасибо за отзыв)

Насчет тактик - да, к следующему релизу исправлю. Будет три-четыре фиксированных (агрессивная\оборонительная\против шустрых\против крепких) и несколько настраиваемых игроком.

Деньги - в принципе можно смотреть через окно 'C'. Но в торговлю их тоже добавлю. Как-то не подумал.

Монстры - да, по идее они должны рассматривать для шага три направления из восьми - на игрока, чуть левее и чуть правее. Но случай, когда они точно по горизонтали или по вертикали я не учел - потому выстраиваются в линию. Но это непоный фикс - тогда игрока будет бить максимум три монстра, остальные все равно будут стоять. А чтоб было по-нормальному надо делать pathfinding A*.
Давно мы не слышали начальника транспортного цеха.
Где новый релиз, народ, в моём лице, ждёт! :evil:
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.

Аватара пользователя
Харука-тян
Мастер
Сообщения: 544
Зарегистрирован: 29 ноя 2006, 00:23
Контактная информация:

Re: Rising Force Roguelike

Сообщение Харука-тян » 11 июн 2010, 14:26

Я тоже в лице Весёлого Роджера жду обновлений :mrgreen:
"Женщина верит, что дважды два будет пять, если хорошенько поплакать и устроить скандал" (© Дж. Элиот).
ИзображениеИзображение

Аватара пользователя
kipar
Сообщения: 2083
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Rising Force Roguelike

Сообщение kipar » 11 июн 2010, 17:59

Создал страничку http://rfrl.sf.net
Выложил туда небольшой фикс-релиз 0.0.7.2, с убранной под впечатлением от ДиаблыРЛ регенерацией и разными пофиксенными багами.
Молчал, потому что хотел сначала доделать релиз 0.0.8, но все еще работаю над реализацией умений и заклинаний - их должно быть больше 9000. А надо еще и хотя бы минимальный АИ сделать.

Аватара пользователя
kipar
Сообщения: 2083
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Rising Force Roguelike

Сообщение kipar » 03 окт 2010, 18:14

Проект (пока?) жив!

Хотя я так до сих пор и не вернулся из командировки, но смог раздобыть последнюю версию исходников и потихоньку возобновляю работу.

- Оптимизировал загрузку\сохранение. Убедился, что сохранять в строку так, как я делал раньше - жутко неоптимально (даже стыдно вспомнить), поэтому теперь использую потоки (TStream).

- Теперь предметы и монстры кроме общего списка хранятся и в клетках карты. Прироста производительности правда не видно, но и падения производительности нет, так что все ок. Если монстров около 200, а карта 100*100 (из которых на экране 76*32), то поиск ближайшего врага или вывод монстров\предметов на экран быстрее делать перебором общего списка монстров\предметов, чем перебирая клетки на карте. Так что пока списки объектов в заданной клетке используются только при обработке наступания на клетку.

- Переделал АИ на потомки класса Стимул - хотя по функциональности он пока повторяет то что было. Ну разве что в линию монстры теперь не выстраиваются. В общем над ним еще надо работать. Просто поиграв в Crawl я понял, что может АИ не так уж и важен. Там даже A* я не уверен что реализован - монстры спокойно застревают в тупиках. Но никого это не смущает. Главное чтоб они логично вели себя когда игрок их видит.

- ШД (они же "территории войн" или мгновенные подземелья) - в процессе реализации. Правда проходить их придется соло, т.к. командной игры пока нет и вообще потребуется некоторый рефакторинг, чтобы переносить между картами не только игрока, но и других героев.

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

- Начал переводить на OpenGL, но передумал. С одной стороны с OpenGL экран будет гарантированно быстро обновлятся независимо от компа и операционной системы, а с другой - на кпк его нет, так что для портирования на WinCE придется возвращать все назад. Так что оставлю пока как было.

- Навыки, заклинания... Придумал их много, а вот писать конкретные цифры и отлаживать баланс (при том что баланса монстров и баланса оружия все равно нет) лень.

- Исправил разные глюки, сделал таймаут у квестов. Урезал ХП игроку в 5 раз, а монстрам в 10, чтобы сделать бои быстрее.

В общем новой версии пока нет, но я работаю над этим.

Кстати начал читать "Совершенный код" :) . В принципе там нужные вещи написаны. Что-то я и до этого знал, из других книжек, да и сам до чего-то дошел, что-то - новое узнал. Желания все переписать пока не появилось. Хотя я понимаю, что пишу в чем-то неправильно (перекрестные ссылки между классами, недостаточное сокрытие информации и т.д. и т.п.), но пока меня архитектура устраивает. Хотя неочевидные места уже есть, а со временем их будет становится только больше, но это же все-таки рогалик, а не система управления бизнес-процессами, так что надеюсь играбельная версия появится до того, как код перестанет быть управляемым.
К тому же автор игнорирует паскаль (только один раз упомянул про него, и то мимоходом) - уже повод относится к нему с недоверием :lol: .

Аватара пользователя
kipar
Сообщения: 2083
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Rising Force Roguelike

Сообщение kipar » 07 окт 2010, 18:56

Сделал, раз уж он самый лучший, алгоритм RPAS FOV (точнее перевел на паскаль C-шную реализацию Dominik Marczuk-а).
Допущенные при этом две опечатки вылавливал часа три - т.к. хотя идею метода я понял, в деталях реализации мне разбираться лень.
Скорость не поменялась(если только для игрока ФОВ считать, то любой алгоритм быстро считается), зато теперь и в лесу и в зданиях тени ложатся вполне красиво :)

Аватара пользователя
kipar
Сообщения: 2083
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Rising Force Roguelike

Сообщение kipar » 13 окт 2010, 07:25

Уффф, сделал больше половины умений и заклинаний ступени Новичок. Осталось еще 30. Причем чтобы не втыкать lua или другой скриптовый язык использую хитрую иерархию классов - зато всякие атаки с разворотом, атаки с отбрасыванием и шансы контратаки при успешном блокировании могу реализовывать в файлах данных, не трогая код.

Сделал базовую функциональность игры в пати - смог успешно собрать группу приключенцев и отправить на верную смерть от клыков раптора в ШД :evil: . Осталось допилить собственно АИ, ну и сделать генерацию снаряжения для приключенцев.

Для реализации предыдущего пункта теперь обрабатываю ходы не на одной карте с игроков, а на нескольких. При десяти картах особых тормозов не было (один раз только задержка обработки дошла до 77мс - видимо все монстры разом решили поискать врага\друга). В принципе думаю надо ограничиться картами, на которых находится хоть кто-нибудь из пати игрока.

Раз есть обработка нескольких карт, то можно бы сделать и псевдо-бесшовность мира (т.е. выводить кроме текущей 3 ближайших карты, ну и обрабатывать границы между картами в АИ монстров), но пока генератор карт довольно кривой, так что смысла в бесшовности не вижу - есть большой шанс сгенерировать непроходимые местности.
Есть правда идея совместить бесшовность с непостоянством карт - т.е. прошел 200 клеток в одну сторону, возвращаешься - а там уже другая местность. Но подзреваю выглядеть будет довольно бредово. Хотя можно будет задействовать в чем-то типа Abyssa.

Аватара пользователя
Jolly Roger
Сообщения: 2973
Зарегистрирован: 27 ноя 2009, 09:10
Откуда: Minsk, Belarus

Re: Rising Force Roguelike

Сообщение Jolly Roger » 17 окт 2010, 07:29

kipar писал(а): Есть правда идея совместить бесшовность с непостоянством карт - т.е. прошел 200 клеток в одну сторону, возвращаешься - а там уже другая местность. Но подзреваю выглядеть будет довольно бредово. Хотя можно будет задействовать в чем-то типа Abyssa.
фор хум хау, но только не это!
Нет ничего более чудовищного, чем такая реализация.
Пропадает ощущение реальности, а уж сколько эксплоитов, ууу...
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.

Аватара пользователя
kipar
Сообщения: 2083
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Rising Force Roguelike

Сообщение kipar » 17 окт 2010, 12:16

Ну нет так нет)

Просто не могу придумать, как лучше всего большой мир показать. У глобальной карты свои недостатки, у полностью бесшовного мира - свои.

-----
Сделал A*. Почему то он раньше он казался мне чем-то запутанным и сравнимым с FOV :) На самом деле, оказывается, очень простой алгоритм.
Правда реализовал его неоптимально - не учел, что список должен быть сортированный, поэтому сортирую его на каждом шаге. Ну, если будут тормоза придется исправлять.

Слегка поменял АИ - теперь он сделан в стиле "fuzzy-logic" - есть входные переменные, есть выходные действия, есть таблица правил (и все это хранится в файле данных). Разве что всякую фаззификацию\дефаззификацию не делаю, просто беру первое подходящее действию с максимальным весом.
Правда любая система АИ бесполезна, если нет наполнения, т.е. конкретных действия и правил. А их у меня пока нет и все сводится к нападению на игрока и убеганию при низких хп.

Код: Выделить всё

[StdMonsterAI]
Class=TStimulAI
Rule1=condLowHealth:stEscape:30
Rule2=condHaveTarget:stAttack:20
Rule3=condHaveTarget:stFollow:10
Rule4=condNoTarget:stAggr:100
Rule5=condHaveTarget:stForgetTarget:100
Rule6=condNoTarget:stSeekSame:20
Rule7=condAlways:stRandomGo:1
Последний раз редактировалось kipar 18 окт 2010, 05:20, всего редактировалось 1 раз.

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей