PSP рогалиг
Модератор: Jolly Roger
- Maelstrom
- Мастер
- Сообщения: 2062
- Зарегистрирован: 26 ноя 2006, 14:19
- Откуда: г. Усть-Кирдык
- Контактная информация:
Re: PSP рогалиг
Назови хотя бы одну разумную причину, почему тебе не следует сделать ходьбу просто на стрелки и освободить себе ещё 1 режим
Айв кнгенгах Йог-Сотот
- Aerton
- Сообщения: 503
- Зарегистрирован: 11 авг 2007, 02:58
- Откуда: Новосибирск
- Контактная информация:
Re: PSP рогалиг
Ааа. Я думал, это специально - анимация такая.Yozka писал(а):По поводу медленных шагов. Все дело в персонажах, их на втором уровне по 100 штук. их обработка AI - ресурсоемкий процесс.
Меню для редко используемых команд куда лучше, чем как сейчас - когда всё сделано одинаково неудобным. Посмотри какие-нибудь Harvest Moon: Futuristic или Monster Hunter - по сложности управления они вполне сравнимы с роглайками, однако играть в них удобно.Yozka писал(а):Управление. очень не стандартное
Почему выбран именно такой путь?
В игре будет очень мноого действий. Отаки, инвентарь, диалоги, итд. На все кнопок не хватить. Делать меню и оттуда выбирать необходимые команды - утопия, очень не удобно.
Кто-то будет помнить, чтобы ударить в монстра снизу, надо нажать треугольник+влево??? Ещё и не забыв перед этим повернуться?Yozka писал(а):треугольник - режим атаки
Стрелка вверх - использовать дистационное оружие (стрельнуть из лука)
Стрелка влево - ударить оружием ближнего боя (нарпмер ножег)
Не проще ли сделать, как во всех нормальных играх, стрелка и ходит и атакует, если есть кого, а выбор оружия - через инвентарь?
И вот, ради того, чтобы спуситься по лестнице было не через меню, принесена в жертву ходьба? То есть, мы 1000 ходов бегаем по уровню, ругаясь и нажимая по две конпки, и вот доходим до лестницы - тадам! Мы сэкономили целых три нажатия на меню!! При условии, что все эти комбо, достойные Tekken, прочно сидят в памяти и мы не попытались сначала нажть крест-направо, круг-наверх и ctrl-alt-del.Хрестик - режим взаимодействия
Стрелко вниз - спутится по лестнице
Нет, что-то в консверватории не так.
Re: PSP рогалиг
Хорошо уговорили.
По умолчанию ходить можно просто стрелками. без зажатия.
Когда кнопками выбираем режим, появляется иконки, которые какбы намекают на выполняемое действие. Тока я их еще не нарисовал
Частично, атаку можно совместить с движением, но что делать когда нужно дистационно атаковать?
Тогда вместо ходьбы, кнопкой квадратег будет включен режим выбора объекта (для атаки, разговора, пднятия в инвентарь, для исследования итд.)
Знаю что у меня с управлением - превед. и постараюсь сделать все возможное чтобы оно было удобным.
Былобы замечательно, еслиб ктонибудь мнеб дизайн нарисовал бы, там с меню, с заставкой на загрузку. на диалоги
По умолчанию ходить можно просто стрелками. без зажатия.
Когда кнопками выбираем режим, появляется иконки, которые какбы намекают на выполняемое действие. Тока я их еще не нарисовал
Частично, атаку можно совместить с движением, но что делать когда нужно дистационно атаковать?
Тогда вместо ходьбы, кнопкой квадратег будет включен режим выбора объекта (для атаки, разговора, пднятия в инвентарь, для исследования итд.)
Знаю что у меня с управлением - превед. и постараюсь сделать все возможное чтобы оно было удобным.
Былобы замечательно, еслиб ктонибудь мнеб дизайн нарисовал бы, там с меню, с заставкой на загрузку. на диалоги
Исходники
Усилено делаю GUI
Сделал диалоговое окно. Меню. Просмотр списка.
Теперь причесываю этот весь механизм.
Для ради хохмы и уподогрева интересса, показыаю исходники.
Конструктивная критика приветствуется!
Весь мой код, можете использовать в своих целях.
Сделал диалоговое окно. Меню. Просмотр списка.
Теперь причесываю этот весь механизм.
Для ради хохмы и уподогрева интересса, показыаю исходники.
Конструктивная критика приветствуется!
Весь мой код, можете использовать в своих целях.
- Вложения
-
- Mariner_source.zip
- Исходники
- (1.76 МБ) 212 скачиваний
- Aerton
- Сообщения: 503
- Зарегистрирован: 11 авг 2007, 02:58
- Откуда: Новосибирск
- Контактная информация:
Re: PSP рогалиг
Никогда бы не подумал, что для такой маленькой игры требуется столько кода!
Re: PSP рогалиг
Ну я бы не сказал что она маленькая. Да технодемка оччень маленькая. Это всеголишь вершина айсберга.
Самое глобальные штуки не видны.
Это кеширование карт, если присмотрется, и пойти вглубь других уровней, то на заставке видно как создается уровень. Если подняться. то можно увидеть заставку которая какбы говорит что идет погрузка карты. Карты которые сидят в памяти, полностью интерактивные. там также кипит жизнь. Игровые объекты, могут передвигаться из карты в карту (в пределах кеша конечно).
При загрузке и выгрузке карты, каждому объекту доступен механизм сохранения и загрузки. Причем объект не знает куда он сохраняется. Сохронять он может любую информацию в любом количестве.
При загрузке, фабрика классов сама создает нужный объект (впринципе она для этого и нужна)
Работа с файлами идет через кешь, тем самым вразы было увеличенно скорость работы с файлами на картах памяти в PSP.
Я тестировал, без кеша файлов, файл с 500 уровней обрабатывался оччень медленно. после реализации механизма кеширования, загрузка стала идти оочень быстро.
Также написан свой движог работы с тайлами.
Тайлы хранятся в файле, причем от изображения отделенна палитра. и в тайлах в качестве пикселя хранится не его цвет (порядка 4 байт) уже индекс на палитрру (1 байит) что позволило уменьшить спрайт файл в 4 раза.
Также там тоже используется кеширование. Кеширование на загрузку и отрисовку. Загрузка тайла идет по мере его использования.
Сейчас в спрайт фале находится чуть менее тыщи тайлов. используется память для хранения этого добра всего 2мб. и тормазов нет вообще. И это не предел. Тесты показвают, что заметные тормаза начинаются при размере в 40 тыщь тайлов. Но до этого недорастет. Максимум в игре будет 9тыщь картиног.
...
Делаю полноценное GUI. со своим апи и дургими плюхами. Сейчас мне это интересно.
...
Это даже не роглаик, система, на которой испытываю и реализую свои бредовые идеи.
...
Хотя может и быть, чтонибудь путнее из этго выйдет.
Самое глобальные штуки не видны.
Это кеширование карт, если присмотрется, и пойти вглубь других уровней, то на заставке видно как создается уровень. Если подняться. то можно увидеть заставку которая какбы говорит что идет погрузка карты. Карты которые сидят в памяти, полностью интерактивные. там также кипит жизнь. Игровые объекты, могут передвигаться из карты в карту (в пределах кеша конечно).
При загрузке и выгрузке карты, каждому объекту доступен механизм сохранения и загрузки. Причем объект не знает куда он сохраняется. Сохронять он может любую информацию в любом количестве.
При загрузке, фабрика классов сама создает нужный объект (впринципе она для этого и нужна)
Работа с файлами идет через кешь, тем самым вразы было увеличенно скорость работы с файлами на картах памяти в PSP.
Я тестировал, без кеша файлов, файл с 500 уровней обрабатывался оччень медленно. после реализации механизма кеширования, загрузка стала идти оочень быстро.
Также написан свой движог работы с тайлами.
Тайлы хранятся в файле, причем от изображения отделенна палитра. и в тайлах в качестве пикселя хранится не его цвет (порядка 4 байт) уже индекс на палитрру (1 байит) что позволило уменьшить спрайт файл в 4 раза.
Также там тоже используется кеширование. Кеширование на загрузку и отрисовку. Загрузка тайла идет по мере его использования.
Сейчас в спрайт фале находится чуть менее тыщи тайлов. используется память для хранения этого добра всего 2мб. и тормазов нет вообще. И это не предел. Тесты показвают, что заметные тормаза начинаются при размере в 40 тыщь тайлов. Но до этого недорастет. Максимум в игре будет 9тыщь картиног.
...
Делаю полноценное GUI. со своим апи и дургими плюхами. Сейчас мне это интересно.
...
Это даже не роглаик, система, на которой испытываю и реализую свои бредовые идеи.
...
Хотя может и быть, чтонибудь путнее из этго выйдет.
Re: PSP рогалиг
GUI будет выглядить вот так.
Минимализм в чистом виде.
Всплывающие подсказки сам исчезают когда будет нажата каканибудь кнобка.
Осталось совсем чуть чуть. допилить апи интерфеса. и можно клепать диалоги и формачки стахановскими методами.
Минимализм в чистом виде.
Всплывающие подсказки сам исчезают когда будет нажата каканибудь кнобка.
Осталось совсем чуть чуть. допилить апи интерфеса. и можно клепать диалоги и формачки стахановскими методами.
- Вложения
-
- GUI
- scrshot003.jpg (23.54 КБ) 8032 просмотра
- Jolly Roger
- Сообщения: 2973
- Зарегистрирован: 27 ноя 2009, 09:10
- Откуда: Minsk, Belarus
Re: PSP рогалиг
Я наркоман, думал, если рогалик для PSP, то в винде он не работал и удивлялся, сколько у нас на форуме счастливых обладателей PSP
По поводу тормозов AI, тоже попал в эту ловушку, самый простой вариант тех с кем игрок не взаимодействует лучшее помещать в спящий режим. Игрок почти ничего не заметит.
По поводу тормозов AI, тоже попал в эту ловушку, самый простой вариант тех с кем игрок не взаимодействует лучшее помещать в спящий режим. Игрок почти ничего не заметит.
Писать диздок спустя несколько лет разработки и множества изменений концепции - исконная русская девелоперская традиция.
Re: PSP рогалиг
Ну вот. Прошло несколько месяцев, сделано было немного. именно, написаны контролы для интерфейса. Пишу утилиту, которая по замыслу причешет все спрайты. Спрайты у меня натырины из японских форрумов обитателей RPG game market. Спрайты разношерстные. Утилита, эту графику отредактирует, приведет к одной палитре.
Делаю инвентарь. теперь все можно улаживать в рюкзачек.
Скриншотами порадовать не могу. Что то более рабочее выложу. Когда герой сможет убивать монстряков и собирать ништяки.
Делаю инвентарь. теперь все можно улаживать в рюкзачек.
Скриншотами порадовать не могу. Что то более рабочее выложу. Когда герой сможет убивать монстряков и собирать ништяки.
Re: PSP рогалиг
Добавил новую локацию - подземелье.
прикрутил к картам штуку - атмосфера, теперь если локация страшная и требует концентрации, то все что не входит в линию обзора рисуется темным, кровавым цветом. Ежели локация не страшная, например город с мирными жителями, то освещение будет более праздничным.
--
сейчас придумываю систему оружия.
еще немного, у уже можно будет убивать!
прикрутил к картам штуку - атмосфера, теперь если локация страшная и требует концентрации, то все что не входит в линию обзора рисуется темным, кровавым цветом. Ежели локация не страшная, например город с мирными жителями, то освещение будет более праздничным.
--
сейчас придумываю систему оружия.
еще немного, у уже можно будет убивать!
- Вложения
-
- Спасаем принцесс в подземельях
- scrshot004.PNG (31.64 КБ) 7827 просмотров
Re: PSP рогалиг
Полностью законченна концепция свойств у объекта.
Такие свойства как имя, сила, интеллект, грузоподъемность итд. Описываются в базовом классе объектов ввиде виртуальных методов. Вот так:
CStat это структура, в которой передаются параметры
она имеет приблизительно вот такой вид:
Далее, к примеру сделаем обект - цветочек. мы его унаследуем из базового класса CObject и перекроем виртуальные методы property_Name который возратит имя цветка. и метод property_Weight - возратит вес цветка.
Получается, если мы хотим задействовать свойство, то нужно включить его обработку (заполнить исходящую переменную CStat) и метод должен завершится с кодом возратом TRUE.
Плюсы такого подхода.
1. скорость доступа.
2. гибкость на уровне программы, свойство можно динамический подстраивать.
3. нет прямого доступа из вне к свойствам.
4. в базовом классе не хранятся данные свойства. (тем самым мы экномим память, есть свойства, которые задаются статический, есть которые высчитываются динамический исходя из других параметров, есть свойства данные которые находятся в переменных. вся реализация по обработке свойств выведенна на конкретный объект. В базовом классе описывается только методы доступа.)
Минусы.
1. Разросстается описание базового класса CObject. что ведет к очень длительной компиляции.
2. при добавлении нового свойства, нужно объявлять его в базовом классе CObject, что не безопасно, как на это отреагируют другие унаследованные объекты, непонятно...
----
Далее что было сделанно за месяц.
Переработан инвентарь, теперь он в завершонном виде, В инвентарь можно положить объект, при этом проверяется, влезет ли обхект по объему и по весу в рюкзак. Из инвентаря можно выложить объект на карту. Объеденение объектов в одно целое, например монеты, стрелы, пули итд. реализован механизм слияние двух объектов в одно целое. Из инветоря можно выложить только часть объектов, например из 100 монет выбросить только 1.
GUI запилен полностью, сделаны контролы список ввиде линйного списка и ввиде иконок.
Теперь делаю экипировку.
Замохнутся мечом в супостатов пока не получается.
Нужно чтобы игрок держал оружие в руке, да покрепче.
Такие свойства как имя, сила, интеллект, грузоподъемность итд. Описываются в базовом классе объектов ввиде виртуальных методов. Вот так:
Код: Выделить всё
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;};//уровень маг. силы
...
};
она имеет приблизительно вот такой вид:
Код: Выделить всё
struct CStat
{
int base; //Основное максимальное свойтво
int current; //текущее свойство
}
Получается, если мы хотим задействовать свойство, то нужно включить его обработку (заполнить исходящую переменную CStat) и метод должен завершится с кодом возратом TRUE.
Плюсы такого подхода.
1. скорость доступа.
2. гибкость на уровне программы, свойство можно динамический подстраивать.
3. нет прямого доступа из вне к свойствам.
4. в базовом классе не хранятся данные свойства. (тем самым мы экномим память, есть свойства, которые задаются статический, есть которые высчитываются динамический исходя из других параметров, есть свойства данные которые находятся в переменных. вся реализация по обработке свойств выведенна на конкретный объект. В базовом классе описывается только методы доступа.)
Минусы.
1. Разросстается описание базового класса CObject. что ведет к очень длительной компиляции.
2. при добавлении нового свойства, нужно объявлять его в базовом классе CObject, что не безопасно, как на это отреагируют другие унаследованные объекты, непонятно...
----
Далее что было сделанно за месяц.
Переработан инвентарь, теперь он в завершонном виде, В инвентарь можно положить объект, при этом проверяется, влезет ли обхект по объему и по весу в рюкзак. Из инвентаря можно выложить объект на карту. Объеденение объектов в одно целое, например монеты, стрелы, пули итд. реализован механизм слияние двух объектов в одно целое. Из инветоря можно выложить только часть объектов, например из 100 монет выбросить только 1.
GUI запилен полностью, сделаны контролы список ввиде линйного списка и ввиде иконок.
Теперь делаю экипировку.
Замохнутся мечом в супостатов пока не получается.
Нужно чтобы игрок держал оружие в руке, да покрепче.
- Вложения
-
- Диалог инвенторя
- scrshot005.PNG (147.08 КБ) 7780 просмотров
Re: PSP рогалиг
А рисуешь сам? Выглядит довольно мило
Мне не очень понравилось обозначение объема в литрах\смК, всегда же можно придумать абстрактные единицы и веса и объема, зачем усложнять подсчеты? Вычисление "сколько литров вина влезет в рюкзак если я выкину старую флягу с пивом, которая весит 2 кг и 421 грамм, в ней было налито 531 мл пива с плотностью 1045 кг\м3". Но это так, мелкие придирки
Мне не очень понравилось обозначение объема в литрах\смК, всегда же можно придумать абстрактные единицы и веса и объема, зачем усложнять подсчеты? Вычисление "сколько литров вина влезет в рюкзак если я выкину старую флягу с пивом, которая весит 2 кг и 421 грамм, в ней было налито 531 мл пива с плотностью 1045 кг\м3". Но это так, мелкие придирки
Re: PSP рогалиг
Тайлы нагло позаимствованны на одном из японских форрумов по изготовлению РПГ игрульки про покемонов в среде "гейммаркер"
Остальное, интерфейс, туман, и прочее эффекты рисую сам
Объем мне очень нужен. Им отсекаю вещи которые физический нельзя положить в рюкзак. Например двери, лестницы. у них большой объем. Скажем дверь - это тотже вещь. только с большим объемом и небольшим весом. ее можно здвинуть сместа (выломать) но положить к себе в рюкзак не получится.
Еще, объем мне нужен, чтобы реализовать экипировку.
Например, на голову можно одеть любую вещь. с объмом скажем от 2 до 5 литров.
На наги вещь. от 2 до 10 литров.
На палец - от 10 до 50 млл.
На грудь от 10 до 30 литров.
Получается, шапка объемом в 3 литра. можно одеть на голову или на ногу. на палец или на грудь уже не надеть.
Как будут рализовываться эффекты от носимых вещей, еще пока не продумал.
Остальное, интерфейс, туман, и прочее эффекты рисую сам
Объем мне очень нужен. Им отсекаю вещи которые физический нельзя положить в рюкзак. Например двери, лестницы. у них большой объем. Скажем дверь - это тотже вещь. только с большим объемом и небольшим весом. ее можно здвинуть сместа (выломать) но положить к себе в рюкзак не получится.
Еще, объем мне нужен, чтобы реализовать экипировку.
Например, на голову можно одеть любую вещь. с объмом скажем от 2 до 5 литров.
На наги вещь. от 2 до 10 литров.
На палец - от 10 до 50 млл.
На грудь от 10 до 30 литров.
Получается, шапка объемом в 3 литра. можно одеть на голову или на ногу. на палец или на грудь уже не надеть.
Как будут рализовываться эффекты от носимых вещей, еще пока не продумал.
- Jesus05
- Сообщения: 1840
- Зарегистрирован: 02 дек 2009, 07:50
- Откуда: Норильск, сейчас Санкт-петербург.
- Контактная информация:
Re: PSP рогалиг
то бишь возможна ситуация когда перс оденет на руки\ноги по шапке на голову шлем, и вместо брони натянет поножи?Yozka писал(а):Тайлы нагло позаимствованны на одном из японских форрумов по изготовлению РПГ игрульки про покемонов в среде "гейммаркер"
Остальное, интерфейс, туман, и прочее эффекты рисую сам
Объем мне очень нужен. Им отсекаю вещи которые физический нельзя положить в рюкзак. Например двери, лестницы. у них большой объем. Скажем дверь - это тотже вещь. только с большим объемом и небольшим весом. ее можно здвинуть сместа (выломать) но положить к себе в рюкзак не получится.
Еще, объем мне нужен, чтобы реализовать экипировку.
Например, на голову можно одеть любую вещь. с объмом скажем от 2 до 5 литров.
На наги вещь. от 2 до 10 литров.
На палец - от 10 до 50 млл.
На грудь от 10 до 30 литров.
Получается, шапка объемом в 3 литра. можно одеть на голову или на ногу. на палец или на грудь уже не надеть.
Как будут рализовываться эффекты от носимых вещей, еще пока не продумал.
в ухо вставит кольцо, а на палец намотает амулет
Re: PSP рогалиг
Да нет, я абсолютно не против объема\массы как характеристик предмета.Yozka писал(а):Тайлы нагло позаимствованны на одном из японских форрумов по изготовлению РПГ игрульки про покемонов в среде "гейммаркер"
Остальное, интерфейс, туман, и прочее эффекты рисую сам
Объем мне очень нужен. Им отсекаю вещи которые физический нельзя положить в рюкзак. Например двери, лестницы. у них большой объем. Скажем дверь - это тотже вещь. только с большим объемом и небольшим весом. ее можно здвинуть сместа (выломать) но положить к себе в рюкзак не получится.
Еще, объем мне нужен, чтобы реализовать экипировку.
Например, на голову можно одеть любую вещь. с объмом скажем от 2 до 5 литров.
На наги вещь. от 2 до 10 литров.
На палец - от 10 до 50 млл.
На грудь от 10 до 30 литров.
Получается, шапка объемом в 3 литра. можно одеть на голову или на ногу. на палец или на грудь уже не надеть.
Как будут рализовываться эффекты от носимых вещей, еще пока не продумал.
Вот только выражать объем в литрах и смК (в игре) как-то... чересчур, почему просто в условных единицах не считать? Скажем, дверь[Объем:500, Масса: 25], наковальня[Объем:50, Масса: 60] и т.д, так гораздо интуитивнее, чем пытаться промоделировать реальные физические параметры каждого предмета.
А что относительно
Это уже Dwarf Fortress какой-то.то бишь возможна ситуация когда перс оденет на руки\ноги по шапке на голову шлем, и вместо брони натянет поножи?
в ухо вставит кольцо, а на палец намотает амулет
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 47 гостей