Хоча це може здатися 3D, ігри "hack and slash" (як Diablo) - це справді 2D ігри. Часто компоненти (спрайти) створюються в інструменті тривимірного моделювання, але в реальній грі використовуються лише двовимірні рендери. Цей тип гри, як правило, набагато більше стосується взаємодії даних (карта, гравець, скарби та монстри), ніж про візуальне зображення.
2D ігри, як правило, не використовують динамічну анімацію (скелети та деформації.) Натомість анімації часто створюються в 3D-пакеті і зберігаються як бібліотека зображень. Потім у спрайта є таблиця пошуку зображень (або зберігається як єдиний масивний спрайт-лист, або як серія окремих зображень.) На етапі анімації гри сприйт визначає, яке зображення відображати, виходячи з поточного стану спрайта. Наприклад, у мене є анімація корови (http://www.aharrisbooks.net/pythonGame/ch08/cow.py), яка йде у вісім напрямках. Кожен напрямок - анімація з десяти кадрів.
(більше прикладів в Python на веб- сайті http://wwww.aharrisbooks.net/pythonGame )
Зразок програми перевіряє напрямок і кадр, після чого відображає відповідне зображення. Мій приклад написаний на Python, але мова не важлива; ідея залишається такою ж.
Візуальні аспекти перебування в різних станах (бій, поранення тощо) можна було б вирішити шляхом простого додавання в стек більше анімації.
Однак більш складними аспектами цих речей є аспекти даних. Наприклад, як управляється місцевість. Можливо, я б скористався варіантом алгоритму A *, щоб вибрати шлях між тим, де знаходиться спрайт і куди він хоче пройти, і я додав би якусь вагу кожному вузлу, щоб зобразити складність цієї місцевості. (дороги мали б дуже малу вагу, гори та океани були б дуже «важкі»)
Напевно, я б не переймався динамікою м'якої форми тіла в 2D двигуні. Це можна додати пізніше, але це не є ключовим для функціонування гри.
Ви, безумовно, можете створити "хак і косу рису" в 3D. Однак додаткові проблеми 3D-моделювання ускладнюють концентруватися на геймплейній механіці, яка часто залучає гравців до подібної гри.
Удачі вам….