PSP рогалиг

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

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

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

Re: PSP рогалиг

Сообщение Харука-тян » 14 янв 2011, 10:08

При проходе через предмет снизу вверх, (при движении от предмета) предмет перескакивает в верхний слой сразу.

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

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

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

Re: PSP рогалиг

Сообщение kipar » 14 янв 2011, 10:28

Аналогично при проходе слева направо.

Аватара пользователя
Yozka
Сообщения: 127
Зарегистрирован: 29 июл 2008, 06:42
Откуда: Тюмень
Контактная информация:

Re: PSP рогалиг

Сообщение Yozka » 14 янв 2011, 10:33

Да я это тоже видел. Думал никто не заметит. :oops:
Это особенность движка отрисовки. отрисовка карты идет снизу вверх. И когда объект начинает движение, его координаты переносятся сразу. а вот экранные координаты еще нет. они плавно изменяются чтобы достичь плавности перехода тайла с одного места в другое. Отсюда идет перекрывание статических объектов.
Пофиксил.
Сделал отрисовку в два прохода.
В первом проходе отрисовываются только статические не анимационные объекты.
Во втором проходе отрисовываются те кто движется.

По производительность вцелом немного упала. но вполне приемлемо. (га глаз незаметно)

Аватара пользователя
Aerton
Сообщения: 503
Зарегистрирован: 11 авг 2007, 02:58
Откуда: Новосибирск
Контактная информация:

Re: PSP рогалиг

Сообщение Aerton » 14 янв 2011, 11:24

PSP рогалиг
Скачаем, посмотрим...
Windows.zip
:?: #-o WTF?

Аватара пользователя
Yozka
Сообщения: 127
Зарегистрирован: 29 июл 2008, 06:42
Откуда: Тюмень
Контактная информация:

Re: PSP рогалиг

Сообщение Yozka » 14 янв 2011, 12:25

Версия под PSP еще не проверенна :) зызко дома лежит. Вылаживать под PSP непроверенную версию както не хочется.

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

Реализация интелекта сделал вот так.
Каждый персонаж монстр животное NPC итд. унаследован из базового класса CUnitObject.
В нем есть список мотиваций.
Мотивация - это объект который полностью управляет юнитом.
Список позволяет хранить несколько мотиваций.
Мотивации создаются при генерации юнита, также они добовляются по мере выполнении программы. Например когда мирного жителя атакует герой. то добовляется мотивация - атаковать вот этого персонажа... вот такая концепция.


Когда наступает для юнита очередь хода, то юнит бежит по списку мотивации и выполняет их. Причем выполняет не сразу все.
А по этапно. Сначало первый, если мотивация после выполнения возвратила true, то дальше ничего обрабоывать не нужно и просто выходим. если false то берем следующую мотивацию и выполняем.
И так пока весь список не переберем.
---
Сделал пока одну мотивацию - ходить по кругу, работает.
Теперь пытаюсь сделать более сложную задачу. Чтобы реализовать "интеллект" для кота. Это две мотивации: 1 - свободное блуждание. 2 - сон.
Если сон реализовать получится очень легко. достаточно повесить уже на готовую штуку времени таймер скажем на 3 часа, и всее.
То вот свободное блуждание это сложнее. в плане ресурсов.
Как представляю себе блуждение - найти точку на карте. построить путь и начинать двигаться туда.
И тут меня ждет засада, строить путь - это ооочень затратно по времени.
Есть идея. на карте хранить базовые точки и пути к ним. И тогда нахождение пути будет поиск первой базовой точки. а потом уже по прямой.
Мдя.

Аватара пользователя
Yozka
Сообщения: 127
Зарегистрирован: 29 июл 2008, 06:42
Откуда: Тюмень
Контактная информация:

Re: PSP рогалиг

Сообщение Yozka » 18 янв 2011, 20:32

Сделал FOV по алгоритму Брезенхема.
Теперь у каждого объекта есть возможность отрисовать фов. либо открыть (иследовать) регион карты.
Для чистоты эксперемента добавил новый объек - фонарег. он отбрасывает фов и освещает.

Столкнулся с небольшой трудностью.
На ЭВМ фов хорошо работает, без тормазов.
ВОт на зызке малость притормаживало. Пришлось высчитывать фов не во время движения, а сохранять в отдельный стек. и когда у программы появляются свободные ресурсы то начинает просчитывать фов беря данные из стека. В итоге удалось избежать тормозов. Но если не давать продохнуть программе (все время идти идти) то фов не будет успевать вычисляться. Если идти медленно, и делать передышки (хотяб ну гдето 100мсек) то фов тут же начнет высчитывается.

Немного оптимизирую, навожу марофет.
Вложения
scrshot002.jpg
Включите FOV
scrshot002.jpg (63.97 КБ) 6812 просмотров

Аватара пользователя
Yozka
Сообщения: 127
Зарегистрирован: 29 июл 2008, 06:42
Откуда: Тюмень
Контактная информация:

Проверка FOV

Сообщение Yozka » 19 янв 2011, 10:31

Допилил фов.
Высаживаю версию под виндоус и PSP.
Под PSP толком не оттестировал. Если не будет работать - пожалуйста сообщайте об возникших проблемах.
--
Что появилось новенькое?
Это фов, идет не только от героя, но и от некоторых вещей. Фов можно включить для любого объекта.
Черный туман не исследованной местности, он динамичен, и убирается по простому алгоритму. Алгоритм - убрать всю тумманость меньше некого числа, в мирное время это число равно 4. Не исследуемые области меньше 4 сами убираются, это удобно.
Есть еще одна перделка и свистелка, это - граница фова обрисовывается зелененькой каемочкой.

В ходе работы, немного столкнулся с AI...
жопа.
Сижу думаю как красивее это сделать.
--
Пока делаю интерфейс для инвентаря.
Пора уже ништяки по карте собирать.
Вложения
MarinerPSP.zip
PSP версия
(158.22 КБ) 175 скачиваний
Windows.zip
Виндовс версия
(149.58 КБ) 167 скачиваний

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

Re: PSP рогалиг

Сообщение Харука-тян » 19 янв 2011, 16:06

[Windows] При первом запуске оно повисло при генерации карты. При последующих отказалось ходить.
"Женщина верит, что дважды два будет пять, если хорошенько поплакать и устроить скандал" (© Дж. Элиот).
ИзображениеИзображение

Аватара пользователя
Yozka
Сообщения: 127
Зарегистрирован: 29 июл 2008, 06:42
Откуда: Тюмень
Контактная информация:

Re: PSP рогалиг

Сообщение Yozka » 19 янв 2011, 16:36

Харука-тян Всетаки баг при генерации появляется. у меня такое один раз было. потом не смог воспроизвести ситуацию. В целом знаю где нужно править.. буду искать и исправлять.
Чтобы ходить, нужно зажать кнопку Q и стрелками двигать персонажа. Чтобы перейти на другой уровень, нужно подойти к лестнице, нажать A и кнопку вниз.
Если оно не реагирует на кнопки, то возможно поврежден конфигурационный файл mvstudio.ini

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

Re: PSP рогалиг

Сообщение Харука-тян » 20 янв 2011, 01:21

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

Аватара пользователя
Yozka
Сообщения: 127
Зарегистрирован: 29 июл 2008, 06:42
Откуда: Тюмень
Контактная информация:

Re: PSP рогалиг

Сообщение Yozka » 20 янв 2011, 05:29

Харука-тян какой хороший у тебя компутер с хорошим генератором чисел. :D
Я поправил, нашел логически баг, при генерации комнаты, если комната маленькая, то программа входила в бесконечный цикл. Сделал счетчик, если количество итерации превысило 20, то оставлять эту комнату и дальше выполнять алгоритм.

Про инвентарь.
Как определять, какую вещь можно положить в инвентарь, какую нет?
Думаю нужно проверять по двум параметром:

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

2. объем. Тоже самое что и с весом, поднять можно то что поместится по габаритам.

Интерфейс игры:
Стрелками выберается клетка, на котором будут расположены вещи, либо монстры, тоесть какиенебудь объекты.
Нажимаем кнопку "A" - появляется меню действий (в этом меню уже реализованно действие "спустится по лестнице") если нажать "вверх" то поднимится инвентарь который находится в подсвеченной клетке.
Ежели вещь только одна. то она безоговорочна ложится в инвентарь.
Если несколько, то показать диалог с выбором какой именно взять вещь.
Также, если не одна клетка не подсвеченна, и явно невыбран объект для поднятия. То автоматом берется все объекты которые расположены непосредственно в близи игрока.
Так будет нормально?

Этим я и буду теперь заниматься.

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

Re: PSP рогалиг

Сообщение Харука-тян » 21 янв 2011, 09:52

Сегодня уже не зависало. Видимо, это было погодно-Марсовое...
"Женщина верит, что дважды два будет пять, если хорошенько поплакать и устроить скандал" (© Дж. Элиот).
ИзображениеИзображение

Аватара пользователя
Aerton
Сообщения: 503
Зарегистрирован: 11 авг 2007, 02:58
Откуда: Новосибирск
Контактная информация:

Re: PSP рогалиг

Сообщение Aerton » 21 янв 2011, 14:29

Смотрится красиво, но управление - это жуть. Меню состоит из одного слова ПРОДОЛЖИТЬ и размытого облака снизу. Какая-то из этих опций запустила-таки игру.

Методом тыка нашёл, что ходить можно, зажав квадрат и нажимая стрелки. Одно нажатие - один медленный шажок. Если нажать крестик, вокруг героя появляется три значка, и на стрелки уже нет реакиции. Нашёл лестницу, как-то даже прошёл по ней, нажимая все конпки подряд. Для подбора фонарика этот метод не сгодился. Дальше просто не выдержал с таким упрвлением и полными непонятками.

Ходьба - самое частое действие в игре, почему оно должно требовать постоянно держать одну кнопку (причём даже не шифтовую), и монотонно барабанить по второй? Пусть будет как везде - просто стрелками и не требовать повторного нажатия, если надо сделать ещё шаг.

Автору просьба не обижаться, а сделать новую, более дружественную к пользователю, версию!

Аватара пользователя
Maelstrom
Мастер
Сообщения: 2062
Зарегистрирован: 26 ноя 2006, 14:19
Откуда: г. Усть-Кирдык
Контактная информация:

Re: PSP рогалиг

Сообщение Maelstrom » 21 янв 2011, 14:57

Мда, ходить квадратом - это конечно очень остроумно
Айв кнгенгах Йог-Сотот

Аватара пользователя
Yozka
Сообщения: 127
Зарегистрирован: 29 июл 2008, 06:42
Откуда: Тюмень
Контактная информация:

Re: PSP рогалиг

Сообщение Yozka » 21 янв 2011, 15:11

Все пучком, критика приветствуется.
По поводу медленных шагов. Все дело в персонажах, их на втором уровне по 100 штук. их обработка AI - ресурсоемкий процесс. и я вкачестве теста, загрузил их по максимуму. в реальной игре. они не будут столь активными. то есть активно себя будут вести 10 персонажей. остальные, например монстряки. будут активированы и вести бурную деятельность когда игрок будет рядом. Но все равно, подумываю изменить внутреннею концепцию AI, текущее положение дел меня не устраивает.
Меню, и все что связанно с интерфейсом - руки еще не дошли все сделать нормально. Теперь мне нужно показывать диалоги и инвентарь и другие вещи. Стандартный виндовый GUI использовать незя, нужно чтобы это работало и на зызке. Соответственно нужно всю реализацию писать свою.
Думаю над архитектурой GUI.
Также, по сохранение и загрузка игры. Уже сделан механизм. осталось тлько разобратся с форматом сейвок. хочу чтобы на зызке исопльзовалось общее хранилище сейфок. это удобно. теперь два файла сохраняются в корне карты памяти на зызке. это не првельно. и не пугайтесь, смело их удаляйте.

--
Управление. очень не стандартное 8)
Почему выбран именно такой путь?
В игре будет очень мноого действий. Отаки, инвентарь, диалоги, итд. На все кнопок не хватить. Делать меню и оттуда выбирать необходимые команды - утопия, очень не удобно.
Вот мной и было предприянта попытка сделать следующие.
Правые кнопки - выбор режима. стрелки - непосредственно выбор команды.
Получается четыре режима. в каждом режиме по 4 команды. В итоге получается 16 действий. это вполне достаточно. мне хватит.
Режимы следующие:

Квадрат - режим ходьбы
стрелками ходить влево вправо вверх вниз.

треугольник - режим атаки
Стрелка вверх - использовать дистационное оружие (стрельнуть из лука)
Стрелка влево - ударить оружием ближнего боя (нарпмер ножег)
Стрелка вправо - ударить голыми руками (например булова)
Стрелка вниз - сделать блок

Хрестик - режим взаимодействия
Стрелко вниз - спутится по лестнице
Стрелко вверх - поднять предмет и положить в инвентарь
Стрелко влево- показать диалог инвентаря (где можно манипулировать с объектами)
Стрелко вправо - показать даилог амуницию и своей характеристики

Круглешок - режим команд
Стрелко вправо - говорить с персонажем
Стрелко вверх - покупать
Стрелко вниз - обократь персонажа или монстра
Стрелко влево - пукать :D

Шифты - переключение между персонажами (да да да можно управлять будет толпой безумцев андавременно)
Селект миникарта

Хотя- возможно, я пересмотрю все управление.

Ответить

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

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