PSP рогалиг

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

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

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

Re: PSP рогалиг

Сообщение Maelstrom » 21 янв 2011, 15:45

Назови хотя бы одну разумную причину, почему тебе не следует сделать ходьбу просто на стрелки и освободить себе ещё 1 режим
Айв кнгенгах Йог-Сотот

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

Re: PSP рогалиг

Сообщение Aerton » 21 янв 2011, 15:47

Yozka писал(а):По поводу медленных шагов. Все дело в персонажах, их на втором уровне по 100 штук. их обработка AI - ресурсоемкий процесс.
Ааа. Я думал, это специально - анимация такая.
Yozka писал(а):Управление. очень не стандартное 8)
Почему выбран именно такой путь?
В игре будет очень мноого действий. Отаки, инвентарь, диалоги, итд. На все кнопок не хватить. Делать меню и оттуда выбирать необходимые команды - утопия, очень не удобно.
Меню для редко используемых команд куда лучше, чем как сейчас - когда всё сделано одинаково неудобным. Посмотри какие-нибудь Harvest Moon: Futuristic или Monster Hunter - по сложности управления они вполне сравнимы с роглайками, однако играть в них удобно.
Yozka писал(а):треугольник - режим атаки
Стрелка вверх - использовать дистационное оружие (стрельнуть из лука)
Стрелка влево - ударить оружием ближнего боя (нарпмер ножег)
Кто-то будет помнить, чтобы ударить в монстра снизу, надо нажать треугольник+влево??? Ещё и не забыв перед этим повернуться?

Не проще ли сделать, как во всех нормальных играх, стрелка и ходит и атакует, если есть кого, а выбор оружия - через инвентарь?
Хрестик - режим взаимодействия
Стрелко вниз - спутится по лестнице
И вот, ради того, чтобы спуситься по лестнице было не через меню, принесена в жертву ходьба? То есть, мы 1000 ходов бегаем по уровню, ругаясь и нажимая по две конпки, и вот доходим до лестницы - тадам! Мы сэкономили целых три нажатия на меню!! При условии, что все эти комбо, достойные Tekken, прочно сидят в памяти и мы не попытались сначала нажть крест-направо, круг-наверх и ctrl-alt-del.

Нет, что-то в консверватории не так.

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

Re: PSP рогалиг

Сообщение Yozka » 21 янв 2011, 19:20

Хорошо уговорили.
По умолчанию ходить можно просто стрелками. без зажатия.
Когда кнопками выбираем режим, появляется иконки, которые какбы намекают на выполняемое действие. Тока я их еще не нарисовал :P
Частично, атаку можно совместить с движением, но что делать когда нужно дистационно атаковать?
Тогда вместо ходьбы, кнопкой квадратег будет включен режим выбора объекта (для атаки, разговора, пднятия в инвентарь, для исследования итд.)
Знаю что у меня с управлением - превед. и постараюсь сделать все возможное чтобы оно было удобным.

Былобы замечательно, еслиб ктонибудь мнеб дизайн нарисовал бы, там с меню, с заставкой на загрузку. на диалоги :roll:

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

Исходники

Сообщение Yozka » 28 янв 2011, 05:22

Усилено делаю GUI
Сделал диалоговое окно. Меню. Просмотр списка.
Теперь причесываю этот весь механизм.
Для ради хохмы и уподогрева интересса, показыаю исходники.
Конструктивная критика приветствуется!

Весь мой код, можете использовать в своих целях.
Вложения
Mariner_source.zip
Исходники
(1.76 МБ) 212 скачиваний

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

Re: PSP рогалиг

Сообщение Aerton » 28 янв 2011, 06:15

Никогда бы не подумал, что для такой маленькой игры требуется столько кода! :shock:

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

Re: PSP рогалиг

Сообщение Yozka » 28 янв 2011, 08:42

Ну я бы не сказал что она маленькая. Да технодемка оччень маленькая. Это всеголишь вершина айсберга.
Самое глобальные штуки не видны.
Это кеширование карт, если присмотрется, и пойти вглубь других уровней, то на заставке видно как создается уровень. Если подняться. то можно увидеть заставку которая какбы говорит что идет погрузка карты. Карты которые сидят в памяти, полностью интерактивные. там также кипит жизнь. Игровые объекты, могут передвигаться из карты в карту (в пределах кеша конечно).
При загрузке и выгрузке карты, каждому объекту доступен механизм сохранения и загрузки. Причем объект не знает куда он сохраняется. Сохронять он может любую информацию в любом количестве.
При загрузке, фабрика классов сама создает нужный объект (впринципе она для этого и нужна)
Работа с файлами идет через кешь, тем самым вразы было увеличенно скорость работы с файлами на картах памяти в PSP.
Я тестировал, без кеша файлов, файл с 500 уровней обрабатывался оччень медленно. после реализации механизма кеширования, загрузка стала идти оочень быстро.

Также написан свой движог работы с тайлами.
Тайлы хранятся в файле, причем от изображения отделенна палитра. и в тайлах в качестве пикселя хранится не его цвет (порядка 4 байт) уже индекс на палитрру (1 байит) что позволило уменьшить спрайт файл в 4 раза.
Также там тоже используется кеширование. Кеширование на загрузку и отрисовку. Загрузка тайла идет по мере его использования.
Сейчас в спрайт фале находится чуть менее тыщи тайлов. используется память для хранения этого добра всего 2мб. и тормазов нет вообще. И это не предел. Тесты показвают, что заметные тормаза начинаются при размере в 40 тыщь тайлов. Но до этого недорастет. Максимум в игре будет 9тыщь картиног.
...
Делаю полноценное GUI. со своим апи и дургими плюхами. Сейчас мне это интересно.
...
Это даже не роглаик, система, на которой испытываю и реализую свои бредовые идеи.
...
Хотя может и быть, чтонибудь путнее из этго выйдет.

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

Re: PSP рогалиг

Сообщение Yozka » 28 янв 2011, 13:17

GUI будет выглядить вот так.
Минимализм в чистом виде.
Всплывающие подсказки сам исчезают когда будет нажата каканибудь кнобка.
Осталось совсем чуть чуть. допилить апи интерфеса. и можно клепать диалоги и формачки стахановскими методами. :lol:
Вложения
scrshot003.jpg
GUI
scrshot003.jpg (23.54 КБ) 7936 просмотров

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

Re: PSP рогалиг

Сообщение Jolly Roger » 01 фев 2011, 11:16

Я наркоман, думал, если рогалик для PSP, то в винде он не работал и удивлялся, сколько у нас на форуме счастливых обладателей PSP :D
По поводу тормозов AI, тоже попал в эту ловушку, самый простой вариант тех с кем игрок не взаимодействует лучшее помещать в спящий режим. Игрок почти ничего не заметит. :roll:
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.

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

Re: PSP рогалиг

Сообщение Yozka » 27 май 2011, 19:01

Ну вот. Прошло несколько месяцев, сделано было немного. именно, написаны контролы для интерфейса. Пишу утилиту, которая по замыслу причешет все спрайты. Спрайты у меня натырины из японских форрумов обитателей RPG game market. Спрайты разношерстные. Утилита, эту графику отредактирует, приведет к одной палитре.
Делаю инвентарь. теперь все можно улаживать в рюкзачек.
Скриншотами порадовать не могу. Что то более рабочее выложу. Когда герой сможет убивать монстряков и собирать ништяки.

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

Re: PSP рогалиг

Сообщение Yozka » 31 май 2011, 05:43

Добавил новую локацию - подземелье.
прикрутил к картам штуку - атмосфера, теперь если локация страшная и требует концентрации, то все что не входит в линию обзора рисуется темным, кровавым цветом. Ежели локация не страшная, например город с мирными жителями, то освещение будет более праздничным.
--
сейчас придумываю систему оружия.
еще немного, у уже можно будет убивать!
Вложения
scrshot004.PNG
Спасаем принцесс в подземельях
scrshot004.PNG (31.64 КБ) 7731 просмотр

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

Re: PSP рогалиг

Сообщение Yozka » 20 июн 2011, 10:00

Полностью законченна концепция свойств у объекта.
Такие свойства как имя, сила, интеллект, грузоподъемность итд. Описываются в базовом классе объектов ввиде виртуальных методов. Вот так:

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

class CObject 

{
public:
...
	/*
	 * -------------------------------------------------------------------------------------
	 * Cвойства объекта
	 *		все свойства начинаются с префикса property, на входе set - признак что нужно установить свойство
	 *		возвращается true - такое свойство есть, false - свойства нет
	 * 
	*/
	virtual bool property_Weight	(CStat& value)const	{return false;};//вес объекта
	virtual bool property_Volume	(CStat& value)const	{return false;};//объем объекта
	virtual bool property_RadVisible(CStat& value)const	{return false;};//Возвратим радиус действия области просмотра
	virtual bool property_MergeCount(CStat& value)const	{return false;};//количество слитых объектов (колСтрел, колМонет)


	virtual bool property_Name		(LString& value)	{return false;};//имя объекта
	virtual bool property_Race		(int& value)const	{return false;};//Расса, человеки, животные
	virtual bool property_Class		(int& value)const	{return false;};//Класс, воин, маг, турист

	virtual bool property_Strength	(CStat& value)const	{return false;};//Сила
	virtual bool property_Intellect	(CStat& value)const	{return false;};//Интеллект
	virtual bool property_Dexterity	(CStat& value)const	{return false;};//Ловкость
	virtual bool property_Health	(CStat& value)const	{return false;};//Здоровье
	virtual bool property_Charisma	(CStat& value)const	{return false;};//Харизма
	virtual bool property_WCapacity	(CStat& value)const	{return false;};//Грузоподьемность
	virtual bool property_VCapacity	(CStat& value)const	{return false;};//Объем карманов или рюкзака

	virtual bool property_SpeedMove	(CStat& value)const	{return false;};//Скорость перемещения секуну на метр
	virtual bool property_SpeedInventory(CStat& value)const	{return false;};//Скорость поднятия, выбрасывания вещичег

	virtual bool property_HP		(CStat& value)const	{return false;};//Hit points очки здоровья
	virtual bool property_AR		(CStat& value)const	{return false;};//класс брони
	virtual bool property_SP		(CStat& value)const	{return false;};//уровень маг. силы

   ...
};
CStat это структура, в которой передаются параметры
она имеет приблизительно вот такой вид:

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

struct CStat
{
	int base;		//Основное максимальное свойтво
	int current;	//текущее свойство
}
Далее, к примеру сделаем обект - цветочек. мы его унаследуем из базового класса CObject и перекроем виртуальные методы property_Name который возратит имя цветка. и метод property_Weight - возратит вес цветка.
Получается, если мы хотим задействовать свойство, то нужно включить его обработку (заполнить исходящую переменную CStat) и метод должен завершится с кодом возратом TRUE.

Плюсы такого подхода.
1. скорость доступа.
2. гибкость на уровне программы, свойство можно динамический подстраивать.
3. нет прямого доступа из вне к свойствам.
4. в базовом классе не хранятся данные свойства. (тем самым мы экномим память, есть свойства, которые задаются статический, есть которые высчитываются динамический исходя из других параметров, есть свойства данные которые находятся в переменных. вся реализация по обработке свойств выведенна на конкретный объект. В базовом классе описывается только методы доступа.)

Минусы.
1. Разросстается описание базового класса CObject. что ведет к очень длительной компиляции.
2. при добавлении нового свойства, нужно объявлять его в базовом классе CObject, что не безопасно, как на это отреагируют другие унаследованные объекты, непонятно...

----
Далее что было сделанно за месяц.
Переработан инвентарь, теперь он в завершонном виде, В инвентарь можно положить объект, при этом проверяется, влезет ли обхект по объему и по весу в рюкзак. Из инвентаря можно выложить объект на карту. Объеденение объектов в одно целое, например монеты, стрелы, пули итд. реализован механизм слияние двух объектов в одно целое. Из инветоря можно выложить только часть объектов, например из 100 монет выбросить только 1.
GUI запилен полностью, сделаны контролы список ввиде линйного списка и ввиде иконок.


Теперь делаю экипировку.
Замохнутся мечом в супостатов пока не получается.
Нужно чтобы игрок держал оружие в руке, да покрепче.
Вложения
scrshot005.PNG
Диалог инвенторя
scrshot005.PNG (147.08 КБ) 7684 просмотра

JustHarry
Сообщения: 655
Зарегистрирован: 30 июл 2010, 17:13

Re: PSP рогалиг

Сообщение JustHarry » 21 июн 2011, 07:00

А рисуешь сам? Выглядит довольно мило :D

Мне не очень понравилось обозначение объема в литрах\смК, всегда же можно придумать абстрактные единицы и веса и объема, зачем усложнять подсчеты? Вычисление "сколько литров вина влезет в рюкзак если я выкину старую флягу с пивом, которая весит 2 кг и 421 грамм, в ней было налито 531 мл пива с плотностью 1045 кг\м3". Но это так, мелкие придирки :mrgreen:

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

Re: PSP рогалиг

Сообщение Yozka » 21 июн 2011, 07:55

Тайлы нагло позаимствованны на одном из японских форрумов по изготовлению РПГ игрульки про покемонов в среде "гейммаркер"
Остальное, интерфейс, туман, и прочее эффекты рисую сам


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

Еще, объем мне нужен, чтобы реализовать экипировку.
Например, на голову можно одеть любую вещь. с объмом скажем от 2 до 5 литров.
На наги вещь. от 2 до 10 литров.
На палец - от 10 до 50 млл.
На грудь от 10 до 30 литров.

Получается, шапка объемом в 3 литра. можно одеть на голову или на ногу. на палец или на грудь уже не надеть.
Как будут рализовываться эффекты от носимых вещей, еще пока не продумал.

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: PSP рогалиг

Сообщение Jesus05 » 21 июн 2011, 08:06

Yozka писал(а):Тайлы нагло позаимствованны на одном из японских форрумов по изготовлению РПГ игрульки про покемонов в среде "гейммаркер"
Остальное, интерфейс, туман, и прочее эффекты рисую сам


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

Еще, объем мне нужен, чтобы реализовать экипировку.
Например, на голову можно одеть любую вещь. с объмом скажем от 2 до 5 литров.
На наги вещь. от 2 до 10 литров.
На палец - от 10 до 50 млл.
На грудь от 10 до 30 литров.

Получается, шапка объемом в 3 литра. можно одеть на голову или на ногу. на палец или на грудь уже не надеть.
Как будут рализовываться эффекты от носимых вещей, еще пока не продумал.
то бишь возможна ситуация когда перс оденет на руки\ноги по шапке на голову шлем, и вместо брони натянет поножи?
в ухо вставит кольцо, а на палец намотает амулет :)

JustHarry
Сообщения: 655
Зарегистрирован: 30 июл 2010, 17:13

Re: PSP рогалиг

Сообщение JustHarry » 21 июн 2011, 08:40

Yozka писал(а):Тайлы нагло позаимствованны на одном из японских форрумов по изготовлению РПГ игрульки про покемонов в среде "гейммаркер"
Остальное, интерфейс, туман, и прочее эффекты рисую сам


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

Еще, объем мне нужен, чтобы реализовать экипировку.
Например, на голову можно одеть любую вещь. с объмом скажем от 2 до 5 литров.
На наги вещь. от 2 до 10 литров.
На палец - от 10 до 50 млл.
На грудь от 10 до 30 литров.

Получается, шапка объемом в 3 литра. можно одеть на голову или на ногу. на палец или на грудь уже не надеть.
Как будут рализовываться эффекты от носимых вещей, еще пока не продумал.
Да нет, я абсолютно не против объема\массы как характеристик предмета.

Вот только выражать объем в литрах и смК (в игре) как-то... чересчур, почему просто в условных единицах не считать? Скажем, дверь[Объем:500, Масса: 25], наковальня[Объем:50, Масса: 60] и т.д, так гораздо интуитивнее, чем пытаться промоделировать реальные физические параметры каждого предмета.

А что относительно
то бишь возможна ситуация когда перс оденет на руки\ноги по шапке на голову шлем, и вместо брони натянет поножи?
в ухо вставит кольцо, а на палец намотает амулет :)
Это уже Dwarf Fortress какой-то. :mrgreen:

Ответить

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

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