Среда, 19 Декабря 2018, 14:23

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: Ordan  
Форум игроделов » Ваши проекты » Проекты в разработке » В разработке RPG для Neo-Geo по мотивам Shaman King (Среда разработки - SDK от Sebastian Mihai, с применением...)
В разработке RPG для Neo-Geo по мотивам Shaman King
ТомахомэДата: Воскресенье, 06 Мая 2018, 16:29 | Сообщение # 1
частый гость
Сейчас нет на сайте
...графической библиотеки DATlib v0.3.

Необычна данная RPG будет прежде всего тем, что в нём не будут использоваться вид сверху и изрядно недолюбливаемые мной chibi-пропорции спрайтов персонажей и прочей графики, игровое пространство будет наиболее близко к характерному для beat-em`up!'ов, плюс встречи с врагом будут не рандомными (как это обычно бывает с 8- и 16-битными RPG), а вызываемыми столкновением со спрайтом противника во время внебоевой прогулки по локации (похожим образом, с поправкой на трёхмерность, это реализовано в играх серии Xenosaga).

На данном этапе программа представляет собой пока что лишь модифицированный (в частности, код отображения спрайтов и фона, ранее разбросанный по разным функциям, теперь объединён в одну - она же теперь является главной в новой программе, плюс скроллинг фона управляется теперь не простым движением джойстика, а движением персонажа к краю экрана, плюс возможность персонажа перемещаться я ограничил соответствующим "полу" куском экрана, как в beat'em-up!'ах) пример работы библиотеки (собственно, этим и объясняется то, что графика в программе с Shaman King'ом вроде никак не связана), но, думаю, код её будет использован в качестве базы для внебоевой части геймплея.

Скачать программу можно здесь, (а для обеспечения возможности протестировать её на MAME кидайте XML-файл по ссылке, где уже заранее прописаны характеристики каждого ром-файла, в папку hash, затем создайте в директории MAME для ромов папку DATdemo и кидайте туда char.bin и fix.bin из папки out внутри директории непосредственно с исходниками плюс dev_p1.rom из этой же директории, а остальные нужные файлы берите из архива DATdemo.zip из папки DATdemo_rom) посмотреть видео геймплея - здесь. Скриншоты прикреплены ниже.





Надо подметить, кстати, что RPGшку свою я планирую делать по мотивам именно анимэ-сериала (по которому ещё с 2008 г. загорелся мечтой сделать RPG именно для Neo-Geo, о самом существовании которой узнал незадолго до этого) - хотя, может быть, и от оригинальной манги кое-какие элементы достанутся.
Для начала, раз уж упомянул причину отсутствия оригинальной графики, мне бы хотелось как-нибудь достать спрайт Haohmaru из первой части Samurai Shodown, чтобы с его поз и движений срисовать спрайт Йо, а также спрайт одного из противников в игре Burning Fight по имени Robert Baun (это который гангстер с револьвером) - на него в моей игре должен будет стать похож Рио (да и другие спрайты противников из Burning Fight могут понадобиться - для рядовых членов банды Рио, с которой героям поначалу придётся враждовать).

Добавлено (03 Мая 2018, 07:50)
---------------------------------------------
Тем временем я, в ожидании завоза оригинальной графики, решил хотя бы в плане геймплея хоть какого-нибудь прогресса добиться, и решил добавить первого врага. Реализовано это дело, правда, пока что на уровне вражеского спрайта, непосредственно сама функция боя и код её вызова в результате столкновения с этим спрайтом будут добавлены позже.




Добавлено (04 Мая 2018, 17:03)
---------------------------------------------
Заодно добавил также зачатки функции боевых сцен (для перехода на "арену боя" спрайты игрока и врага должны столкнуться друг с другом). Правда, есть одна проблема - всё никак не удаётся мне заставить персонажа во время атаки плавно подходить к врагу, а не "телепортироваться", как сейчас. Код, ответственный за ходы противника после игрока, будет добавлен позже.





Кстати, боево-ролевую систему, думаю, лучше всего было бы создать на основе результатов реверс-инжениринга кода Xenosaga Episode II (знать бы только, где приличный дизассемблер PS2 достать).

Добавлено (06 Мая 2018, 16:29)
---------------------------------------------
Добавил ходы противника с сопутствующей анимацией вражеских атак. Теперь прояснилась причина того, почему, несмотря на то, что в прошлых версиях я четко прописывал команду персонажу плавно подойти к врагу, затем воспроизвести анимацию удара и вернуться на прежнее место, команда эта не работала - что-то мешает программе плавно выполнять всю последовательность операций шаг за шагом (подход героя к врагу -> удар героя -> отход героя на прежнюю позицию -> переход очереди к противнику -> удар противника -> возвращение противника назад -> очередь игрока, и т. д.), и весь результат "выплёвывается" практически сразу, оттого и получается, что игрок с противником друг друга атакуют почти что одновременно.
Только вот что именно мешает, и как эту проблему решить?





Сообщение отредактировал Томахомэ - Пятница, 04 Мая 2018, 17:10
Hobo_GusДата: Воскресенье, 06 Мая 2018, 18:52 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
сколько я уже видел проектов на гцупе от тебя, хоть один то закончить смогеш?

Weedman
ТомахомэДата: Воскресенье, 13 Мая 2018, 18:09 | Сообщение # 3
частый гость
Сейчас нет на сайте
Цитата Hobo_Gus ()
сколько я уже видел проектов на гцупе от тебя, хоть один то закончить смогеш?


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

Добавлено (13 Мая 2018, 18:09)
---------------------------------------------
Наконец-таки дошёл своим умом до решения проблемы.

Как выглядят теперь бои, можно посмотреть в видео по ссылке.

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

Выход из функции битвы после победы или поражения, а также анимации получения ударов, будут добавлены позже.

TLTДата: Воскресенье, 13 Мая 2018, 18:37 | Сообщение # 4
Сейчас нет на сайте
Из видео чет я ничего не понял... В чём смысл такой боёвки?

Дао, выраженное словами, не есть истинное Дао.
ТомахомэДата: Понедельник, 14 Мая 2018, 04:40 | Сообщение # 5
частый гость
Сейчас нет на сайте
Боёвку я ещё пока что только начинаю делать, до нужного результата там ещё достаточно далеко.
afqДата: Понедельник, 14 Мая 2018, 05:41 | Сообщение # 6
Разработчик
Сейчас нет на сайте
Томахомэ, да кто ж так дерётся. Ты когда нибудь видел, чтобы кто нибудь подойдёт, ударит и уйдёт на своё место, потом другой подойдёт ударит и уйдёт на своё место. Сделай лучше, чтобы они рядом друг с другом стояли и не ходили туда сюда. Тогда будет похоже на драку. И блоки бы сделал ещё, чтобы один заблокировал голову, а ты в живот ударил. Ты заблокировал голову, и он в голову ударил в блок твой.

видео покер в 3d для android ссылка
летающая птица для android ссылка
ТомахомэДата: Понедельник, 14 Мая 2018, 10:29 | Сообщение # 7
частый гость
Сейчас нет на сайте
Цитата afq ()
Томахомэ, да кто ж так дерётся. Ты когда нибудь видел, чтобы кто нибудь подойдёт, ударит и уйдёт на своё место, потом другой подойдёт ударит и уйдёт на своё место.


Почему-то в Xenosaga и многих других jRPG как раз так и сделали. А я как раз с самого начала и не скрывал, что именно как раз на Xenosaga и ориентируюсь.
Блоки также будут добавлены позже.
afqДата: Понедельник, 14 Мая 2018, 22:24 | Сообщение # 8
Разработчик
Сейчас нет на сайте
Томахомэ, ты главное не забрасывай игру. Потом будешь радоваться когда закончишь.

видео покер в 3d для android ссылка
летающая птица для android ссылка
ТомахомэДата: Понедельник, 04 Июня 2018, 17:59 | Сообщение # 9
частый гость
Сейчас нет на сайте
Добавлены возможность проигрыша и анимации реакции на удары (как у врага, так и у игрока).






Добавлено (31 Мая 2018, 11:09)
---------------------------------------------
Меня уже давно мучает проблема с камерой во внебоевом режиме. В предыдущей запощенной здесь версии игры, если помните, в самом конце поля справа можно было заметить "двойника" спрайта противника, который, правда, в отличие от "оригинала", на столкновения со спрайтом игрока никак не реагировал. Я попробовал исправить этот баг (код ниже, правда, он немного отличается от того, что лежит в архиве по ссылке), и "двойник" действительно исчез, однако при этом сам спрайт противника стал, если игрок доходил до правого края фона, заметно смещаться вправо.
До:
После:

Код

  if((p1&JOY_LEFT)&&((x<=32)&&(x>0)))
  {
   scrl_x--;
   if ((scrl_x>FRONT_MIN_X)&&(enemyX<(320+(enemy_spr.maxWidth*16))))
   {
    clearFixLayer();
    enemyX++;
    aSpriteSetPos(&Enemy,enemyX,enemyY);
   }
  }
  
  if((p1&JOY_RIGHT)&&((x>=288)&&(x<320)))
  {
   scrl_x++;
   if ((scrl_x<FRONT_MAX_X)&&(enemyX>(0-(enemy_spr.maxWidth*16))))
   {
    clearFixLayer();
    enemyX--;
    aSpriteSetPos(&Enemy,enemyX,enemyY);
   }
  }


Интересную вещь также можно заметить в этом видео (в записанной версии добавлено отображение переменной enemyX) - оказывается, убывание переменной enemyX прекращается ещё до того, как игрок успеет упереться в конец скроллинга справа.

В чём тут дело, и какие решения проблемы можете посоветовать?

Добавлено (04 Июня 2018, 17:59)
---------------------------------------------
Ну что ж, хотя бы уродливую вертикальную тоненькую серую полосу в самом правом конце фона удалось убрать. Тем не менее, мне по-прежнему требуется помощь с камерой.

Добавлено (19 Октября 2018, 11:50)
---------------------------------------------
До меня уже, кажется, начинает доходить, что зря я внёс в игру вот этот код:

Код
if ((scrl_x>FRONT_MIN_X)&&(enemyX<(320+(enemy_spr.maxWidth*16))))
{
    clearFixLayer();
    enemyX++;
    //aSpriteSetPos(&Enemy,enemyX,enemyY);
}


Можете мне посоветовать хоть какой-нибудь другой способ предотвратить сползание вражеского спрайта на противоположный конец карты при скроллинге вправо?

Добавлено (07 Ноября 2018, 06:06)
---------------------------------------------
Наконец-то додумался решить свою давнюю проблему вот таким способом:

Код
aSpriteSetPos(&Enemy,enemyX,((enemyX>(0-(enemy_spr.maxWidth*16)))&&(enemyX<(320+(enemy_spr.maxWidth*16))))?enemyY:400);


Можете проверить результаты - всё отлично работает.

Добавлено (12 Ноября 2018, 07:12)
---------------------------------------------
Вот вам ещё пока новая версия:


  • Добавлен экран Game Over после поражения.
  • Больше нет внутриигрового дебаггинга переменных scrl_x и EnemyX в функции main.
  • Также удалён код, очищающий fix layer после первого же за игросеанс скроллинга.


Геймплейное видео можно скачать здесь.

Добавлено (17 Ноября 2018, 13:11)
---------------------------------------------
Добавлены кое-какие новые элементы интерфейса, однако вот в этом вот коде -

Код
if(turn==0&&phase==0)
{
    fixPrint(2,22,4,3,"Press 1P A, B");
    fixPrint(2,23,4,3,"or C button to");
    fixPrint(2,24,4,3,"attack enemy.");
}
else
{
    fixPrint(2,22,4,3,"             ");
    fixPrint(2,23,4,3,"              ");
    fixPrint(2,24,4,3,"             ");
}


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

Код
if(turn==0&&phase==0)
{
    fixPrint1(17,22,3,3,"Willy the Buller");
    fixPrint1(17,23,3,3,"LIFE: %d", enemy_hp);
    fixPrint1(17,24,3,3,"SC");
    fixPrint1(17,25,3,3,"ZONE: ?");
}
else
{
    fixPrint1(17,22,3,3,"                ");
    fixPrint1(17,23,3,3,"                       ");
    fixPrint1(17,24,3,3,"  ");
    fixPrint1(17,25,3,3,"       ");
}


- происходит ошибка, компиляции, так что я этот код пока до поры до времени закомментил.




Сообщение отредактировал Томахомэ - Четверг, 31 Мая 2018, 11:15
drcrackДата: Суббота, 17 Ноября 2018, 13:57 | Сообщение # 10
почти ветеран
Сейчас нет на сайте
Цитата
а также по какой-то непонятной причине

fixPrint1 точно не опечатка? в первом случае у тебя fixPrint без 1
ТомахомэДата: Суббота, 17 Ноября 2018, 16:30 | Сообщение # 11
частый гость
Сейчас нет на сайте
Цитата drcrack ()
fixPrint1 точно не опечатка? в первом случае у тебя fixPrint без 1


Опечаточка-то и впрямь закралась - только не там, где можно подумать: просто функция fixPrint (в отличие от функции fixPrintf, с помощью которой отображается большая часть надписей в игре), оказывается, для отображения переменных не годится. А что до цифр - это просто разные способы реализации fixPrint в DATlib (в чём их отличие, можно посмотреть в мануале по DATlib).

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


Добавлено (18 Ноября 2018, 04:44)
---------------------------------------------
Ещё раз обновил версию по последней ссылке - на этот раз пришлось сдвинуть элементы интерфейса на одну ячейку 8x8 от краёв экрана - сделано это специально для пользователей ЭЛТ-телевизоров, где верхние и нижние 8 строк скрыты от глаз зрителя.


Форум игроделов » Ваши проекты » Проекты в разработке » В разработке RPG для Neo-Geo по мотивам Shaman King (Среда разработки - SDK от Sebastian Mihai, с применением...)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2018 Рейтинг