Dev Log #1: A 3D Parkour Danmaku

About a month ago I began taking the Udemy Course from the GameDev.tv Team for Unreal Engine 5. While taking this course, I began planning what my first game would be after completing the course. While building a basic obstacle course, I got an idea. What if I added danmaku to this? For reference, Danmaku literally translates to bullet curtain or curtain fire. It is a term often used to refer to bullet hell games where the player has to avoid thousands of bullets at a time. A popular example is the Touhou series of games. 

So I decided, why not? I have not heard of many games that used danmaku in 3D (maybe with good reason?) as most dammaku games are in 2D. This would prove a fun challenge to prove my skills as a game developer and as a creative upon finishing the Udemy Course. 

Having now finished the Udemy Course, I have now begun development of this game. The basic plan is as follows: 

The player has to run through a series of unique and increasingly more difficult levels that they have to jump through. Each level will have its own boss and minions to accompany said boss. The only way to complete each level is to defeat the boss. From this I can begin drafting some form of project plan to keep me on track with what I need to build. 

First, I will need to build C++ classes and Unreal Blueprints to handle the variety of characters that the game has. I already know that I will have a class for the player and one for the bosses and minions. To go with these classes, I will need to also have animations to program for the variety of actions that can be done by the characters. I also can start to think about some of the features that each of the character classes will need. For all the characters, they need to handle movement, health, and a variety of actions. The player will need to be able to have XP and interact with item drops. On the other hand, the bosses and minions need to be able to drop items upon death. 

I will also need a class to handle the variety of platforms and obstacle that will fill each level. Currently, I do not have any solid plans for the levels yet, so the classes to handle the platforms and obstacles need to be robust enough to handle all the ways I could potentially move them around. For example, a variety of translation and rotation movements. 

From this class to handle movement of the platforms and obstacles, I can build out a class to handle the bullets. The bullets will need to be able to move in a variety of ways after being spawned. 

I will also need to build out classes to handle the variety of item drops that will exist, from health drops, to maybe different kinds of bullets that the player can use. 

Controllers will also need to be built for the player and the AI’s. Different controllers are likely needed for the bosses and the minions. 

I’ll also need to build out a UI to handle the HUD and the variety of menus that will be required to handle the more administrative side of the game. For example, saving and loading various saves. 

Of course, each level needs to be built out as well. Each level will use unique set of assets, have its own boss and type of minions. To further differentiate the levels, they will each have their own, unique background music. 

Potentially, I might also build out some form of visual novel element so that a story can be told throughout this game. Likely, this will only have speech bubbles and no system for handling choices or tracking them either. 

From this project plan I have been able to start outlining the C++ classes I will need to write and how they will inherit from each other. From here, I can begin writing the code to make the game run. A diagram of the Inheritance of most of the classes I intend to build can be seen below.

Inheritance Diagram of the 3D Parkour Danmaku Game

So what is next? From this Inheritance Diagram I can see the critical items that I need to create first. Namely the Moving Tiles Class and the Character Class.

1 Comment

Comments are closed