Механика передвижения необычного платформера
| |
SSF_Games | Дата: Воскресенье, 24 Декабря 2023, 13:27 | Сообщение # 1 |
был не раз
Сейчас нет на сайте
| Всем привет! Я начинающий.
Мне нужно закодировать механику передвижения, которая представляет из себя нечто промежуточное между самым обычным 2D-платформером и Соником. Должно быть так: персонаж может перемещаться по стенам и потолку (подобно насекомому), но в отличии от Соника, я хочу вручную сделать анимированые переходы персонажа (имеется ввиду, например, переход, когда персонаж взбирается с пола на стену, или со стены на крышу). Я уже проделал определённую работу и пришёл к одному из удовлетворющих вариантов. Вот результат.
Однако, мой код/способ в процессе его написания неоднократно ставил передо мной трудно решаемые задачи и вынуждал делать непростой выбор. И в итоге в текущем виде, хоть он и работает как надо, в ряде моментов усложняет либо ограничивает дальнейшую разработку.
Прошу опытных, пожалуйста, взгляните на результат по ссылке, поиграйтесь с ним, отнеситесь внимательно к деталям и поделитесь своими мыслями по поводу того, как бы вы реализовали такое в коде. Каким методом? От чего стоит отталкиваться? Как сохранить гибкость и свободу дальнейшей разработки?
Управление: WASD, Spase, Shift (чтобы не цепляться).
Сообщение отредактировал SSF_Games - Понедельник, 25 Декабря 2023, 06:48 |
|
| |
DmitriyIM | Дата: Понедельник, 25 Декабря 2023, 01:04 | Сообщение # 2 |
частый гость
Сейчас нет на сайте
| SSF_Games, можно, вместо .exe файла, выложить сюда видео или хотя бы gif с анимацией?
Цитата Мне нужно закодировать механику передвижения, которая представляет из себя нечто промежуточное между самым обычным 2D-платформером и Соником. Должно быть так: персонаж может перемещаться по стенам и потолку (подобно насекомому), но в отличии от Соника, я хочу вручную сделать анимированые переходы персонажа (имеется ввиду, например, переход, когда персонаж взбирается с пола на стену, или со стены на крышу).
Мне такая механика больше консольные игры про Человека-паука напоминает
Хочется больше подробностей, так как в реализации кода для такой задачи пока даже не понятно в чём проблема... Например, подошёл ГГ максимально близко к стене, далее либо прыжок, либо, если нужно "взбирается на стену сразу с пола", можно и без прыжка сделать прилипание, а потом просто поменять клавиши управления, для перемещения по стене, сменив их с [<] и [>] на [^] и [v]. Или подразумевается что-то другое?
P. S. Очень хочется увидеть видео или анимацию с демонстрацией нужной механики, или хотя бы схематичное отображение игрового процесса, которое хочется получить в итоге...
|
|
| |
SSF_Games | Дата: Понедельник, 25 Декабря 2023, 06:46 | Сообщение # 3 |
был не раз
Сейчас нет на сайте
| DmitriyIM, ок. Вот, пожалуйста. Хотя я сомневаюсь, что благодаря лишь видео можно полностью понять.
Сообщение отредактировал SSF_Games - Понедельник, 25 Декабря 2023, 09:05 |
|
| |
al_mt | Дата: Понедельник, 25 Декабря 2023, 14:02 | Сообщение # 4 |
постоянный участник
Сейчас нет на сайте
| Не понял, куда делся мой пост...
Я бы каждому квадратику карты придал атрибут "гравитационный вектор". Правда как это скрестить с GM не знаю...
|
|
| |
SSF_Games | Дата: Понедельник, 25 Декабря 2023, 18:39 | Сообщение # 5 |
был не раз
Сейчас нет на сайте
| al_mt, думаю, это не лучший выбор, хотя бы с точки зрения производительности игры. И потом в игре всё-таки должна быть нормальная гравитация, действующая на всех юнитов. Я в каком-то смысле как раз и прошу опытных предостеречь меня по-максимуму от таких вещей (которые могут существенно ограничить или излишне усложнить разработку на более поздних этапах).
|
|
| |
DmitriyIM | Дата: Понедельник, 25 Декабря 2023, 21:06 | Сообщение # 6 |
частый гость
Сейчас нет на сайте
| Цитата SSF_Games ( ) Я в каком-то смысле как раз и прошу опытных предостеречь меня по-максимуму от таких вещей (которые могут существенно ограничить или излишне усложнить разработку на более поздних этапах).
Мне кажется, это возможно только в том случае, если твоя игра полный клон чьей-то другой. Например, ты делаешь ещё одну Flappy Bird и не вводишь никаких новых механик, а просто меняешь графику... Но, с каждым изменением, новые возможности могут привести к нерациональности использования какого-то решения
Цитата SSF_Games ( ) И потом в игре всё-таки должна быть нормальная гравитация, действующая на всех юнитов.
Так вот это и нужно сразу всё расписывать... Например, ГГ держится за стену, будет ли он соскальзывать вниз через какое-то время, если он не двигается по ней, или падать с потолка
Кстати, что ему позволяет удерживаться на таких поверхностях как стена или потолок? Запас сил или активация какого-то предмета, и как долго может длиться этот процесс...
А из того, что было на видео, это просто прилипание к объектам или ландшафту карты. Написать такое можно несколькими условиями...
Цитата SSF_Games ( ) Хотя я сомневаюсь, что благодаря лишь видео можно полностью понять. Ну, у меня вопрос только один возник, когда примерно с 12 секунды ГГ крутится по поверхности небольшого квадрата, это управление происходит через чередование клавиш W, S, A, D или он управляется только клавишей D, например? Если первый вариант, то это простое перемещение с прилипанием к поверхности объекта, если второе, то кода будет немного больше. А так, в целом, вроде всё понятно...
Сообщение отредактировал DmitriyIM - Понедельник, 25 Декабря 2023, 21:16 |
|
| |
SSF_Games | Дата: Вторник, 26 Декабря 2023, 05:22 | Сообщение # 7 |
был не раз
Сейчас нет на сайте
| Цитата DmitriyIM ( ) это управление происходит через чередование клавиш W, S, A, D или он управляется только клавишей D, например? Осуществляется чередованием двух противоположных клавиш (WS или AD).
|
|
| |
al_mt | Дата: Вторник, 26 Декабря 2023, 10:36 | Сообщение # 8 |
постоянный участник
Сейчас нет на сайте
| Цитата SSF_Games ( ) al_mt, думаю, это не лучший выбор, хотя бы с точки зрения производительности игры. И потом в игре всё-таки должна быть нормальная гравитация, действующая на всех юнитов. Я в каком-то смысле как раз и прошу опытных предостеречь меня по-максимуму от таких вещей (которые могут существенно ограничить или излишне усложнить разработку на более поздних этапах). На современных, даже смартфонах, производительность кушает только 3D Чтобы 2D игрушка перегрузила смартфон, она должна быть написана на интерпретаторе бейсика запущеном на эмуляторе 8080 написанном в браузерном javascript... ...и сам браузер должен быть написан тоже на бейсике в эмуляторе ардуино
Держать несколько разных карт для разных типов объектов. Я для трехмерного пространства 64 на 64 на 64 так делаю. В браузере. На javascript Правда на десктопе, но тормозить начинает, только если запускаю три копии одновременно на трех дисплеях, два из которых, отображаются встроенной видюхой
|
|
| |
SSF_Games | Дата: Вторник, 26 Декабря 2023, 12:42 | Сообщение # 9 |
был не раз
Сейчас нет на сайте
| al_mt, Цитата al_mt ( ) Держать несколько разных карт для разных типов объектов. вот это навело меня на одну мысль. В итоге я придумал один вариант, который хотя бы в меньшей степени ограничивает/усложняет дальнейшую разработку. Только заключается он не в создании разных карт, а в создании разных типов стен.
|
|
| |
TLT | Дата: Вторник, 26 Декабря 2023, 13:52 | Сообщение # 10 |
Сейчас нет на сайте
| Зависит от управления, наверное. А так проблем нет же - стены остаются стенами, персонаж остаётся тем же.
Дао, выраженное словами, не есть истинное Дао.
|
|
| |
SSF_Games | Дата: Вторник, 26 Декабря 2023, 15:43 | Сообщение # 11 |
был не раз
Сейчас нет на сайте
| TLT, так-то оно так. Видимо, многого прошу. Добавлено (26 Декабря 2023, 23:18) --------------------------------------------- Кому интересно, вот тема, где описываю идею игры. Свежий взгляд всегда полезен. Добавлено (30 Декабря 2023, 14:07) --------------------------------------------- Вот, также добавлю сюда видео-пример разрабатываемой игры (не моей), где такая же механика передвижения. Прям один в один. Однако, повторюсь, по видео вряд ли можно понять правильно. Но можно найти в сети альфа версию этой игры.
В ней у автора по задумке в основном лишь стелс, как я понял. А у меня в планах больше разных элементов. Поэтому, например, мне может потребоваться перемещение по наклонным поверхностям (склонам, slope). Может ещё что-то потребуется, связанное с перемещением. Кто хорошо видит наперёд (как программист и геймдизайнер), какие проблемы могут возникнуть, как бы вы реализовали это в коде? Спрашиваю, чтобы избежать (насколько это возможно) тупиковой ситуации, в которой пришлось бы переписывать весь код перемещения с нуля.
|
|
| |
|