3Dに見えるかもしれませんが、「ハックアンドスラッシュ」ゲーム(Diabloなど)は実際には2Dゲームです。多くの場合、コンポーネント(スプライト)は3Dモデリングツールで作成されますが、実際のゲームではスプライトの2Dレンダリングのみが使用されます。このタイプのゲームは、視覚的な表現よりも、データのやり取り(マップ、プレイヤー、宝物、モンスター)について多くの傾向があります。
2Dゲームは動的アニメーション(スケルトンと変形)を使用しない傾向があります。代わりに、アニメーションは3Dパッケージで作成され、画像のライブラリとして保存されることがよくあります。スプライトには、画像のルックアップテーブルがあります(1つの大きなスプライトシートまたは一連の個別の画像として保存されます)。ゲームアニメーションフェーズ中に、スプライトは、スプライトの現在の状態に基づいて、表示する画像を決定します。たとえば、8方向に歩く牛のアニメーション(http://www.aharrisbooks.net/pythonGame/ch08/cow.py)があります。各方向は10フレームのアニメーションです。
(http://wwww.aharrisbooks.net/pythonGameにあるPythonのその他の例)
サンプルプログラムは、方向とフレームをチェックし、適切な画像を表示します。私の例はPythonで書かれていますが、言語は重要ではありません。考え方は変わりません。
スタックにアニメーションを追加するだけで、さまざまな状態(戦闘中、負傷中など)の視覚的側面を処理できます。
ただし、これらのもののより難しい側面はデータの側面です。たとえば、地形はどのように管理されますか。A *アルゴリズムのバリエーションを使用して、スプライトの場所と行きたい場所の間のパスを選択し、各ノードに何らかの重みを追加して、その地形の難しさを表現します。(道路は非常に軽量で、山と海は非常に「重い」でしょう)
おそらく、2Dエンジンのソフトボディダイナミクスについては心配しません。これは後で追加できますが、ゲームの機能にとって重要ではありません。
あなたは確かに3Dで「ハックアンドスラッシュ」を構築することができます。ただし、3Dモデリングに追加された課題により、この種のゲームにプレイヤーを引き付けることが多いゲームプレイメカニズムに集中することが難しくなっています。
幸運を祈ります。