見出し画像

[ボス]1-1:鬼目坊[Boss]1-1:Kiganbo

Steamにて配信中の2D忍者アクションシューティングゲーム「Shinobi non grata」の仕様書(と言っていいか微妙ですが)となります。
この資料は飽くまでも初稿であり、最終的に実装された内容と異なる部分も多々あります。製品版を遊んで頂いて、どこがそのままの形で実現し、どこが変更されたかをご確認頂いても良いかもしれません(と、シレっと宣伝)。
https://store.steampowered.com/app/1796870/SHINOBI_NON_GRATA/
また、このタイトルはフルリモート環境で、1年2ヶ月で完成した実績(準備段階含めるともう少し掛かっていますが)があるため、遠隔でゲーム開発するための参考になるかもしれません。

This is the specifications (if you can call it that) for "Shinobi non grata", a 2D ninja action shooting game available on Steam.
This document is a first draft, and there are many differences from the final version. You may play the full version of the game to see what has been realized in its original form and what has been changed (casual advertising).
https://store.steampowered.com/app/1796870/SHINOBI_NON_GRATA/
Also, this title was completed in a full remote environment in one year and two months (although it took a little longer if you include the preparation phase), so it may serve as a reference for developing games remotely.

1-1 boss Kiganbo
1-1 boss Kiganbo

It floats above the player's head and burns away the ground with its fiery fury technique. The flames become a damage resource that remains on the ground for a certain amount of time and must be jumped over. Shurikens are assumed to be an effective sub-weapon.
The action pattern is to move at N-frame intervals to a position directly above the player's X-axis, where the sword cannot reach, and fire a flame laser directly down from that spot (see Appendix for details). In other words, fire the flame, move above the player's head, fire the flame, and repeat. If it hits the ground, the area it hits burns up and remains as a damage resource for N seconds.
After repeating this action N times, the player moves to either the left or right screen edge (randomly) and fires an uninterrupted laser across the screen. There is no way to avoid this attack except by rolling forward or running to the opposite screen edge. After this attack is over, it returns to its normal flame laser firing behaviour.

Attack01 Flame Laser

As with the first mid-boss, the behaviour is simple. It moves to the head of its own ship at that point, fires a flame laser, moves back to the head of its own ship... and repeats the process. The Y-axis (height) when above the own ship's head is based on a certain distance with some error. Tracking is not done in a straight line, but with a parabolic travel route.
If your ship is completely stationary, the mid-boss will not move from there (it will move on the Y-axis because it is mountainous) and will continue firing its lasers on the spot. Under certain conditions, the player will enter madness mode, which increases the frequency of movement and adds time to the burning of the ground flame.

Attack02 Tracking with flame lasers out.

After four laser attacks, the player moves to the opposite side of the screen from where his ship is (or randomly to the left or right if his ship is in the middle) and then moves to the opposite end of the screen, still emitting a laser.
The player can avoid the laser by rolling forward at the right moment. However, the Onigakebo does not move to the edge of the screen, so if the player's ship can escape to the edge of the screen in a hurry, it will not be hit by the laser attack. Furthermore, this attack does not leave flames on the ground.
The effects play "Laser_Begin", "Laser_Loop" and "Laser_End" in sequence.
For some of these attacks, no flames remain on the ground and the ground flames follow the laser, so please specify "VFX_Burn_Ground_S.prefab".

Display priority with background

This is not specific to this boss, but we would like to consider what to do when this type of laser attack hits the ground, walls or other background objects.
There may be a method to take a proper hit detection and dynamically hide the part overlapping with the background, but as a less time-consuming method, it is possible to lower the display priority of long effects such as lasers compared to the floor on the frontmost layer, and burn a reflective effect (in this case, flames burning on the ground) on the ground contact surface, so that it looks like it is interrupted by the ground or a wall. This can be used to make it look as if the laser is being blocked by the ground or a wall.
This type of infinite range laser doesn't come into play very often (and I don't have one), so I don't see any particular problem with it.

Animation

There are three boss animations, but sb1-1_Attack01 actually only comes with a tin cane tip effect (layer split on SpriteStudio), and the animation itself remains in Idle state.
When sb1-1_Attack01 is playing, it generates a flame laser produced in Shuriken.
When it dies, sb1-1_dead is played and the generic effect death effect is superimposed.

Effects

The laser is divided into three parts: start, loop and end. Use the loop effect until you reach the destination point by adjusting the time by moving. When it arrives, the end effect is generated and then the laser returns to around the position it was in when it first appeared.

Enemies appearing with the boss.

aIn battles with bosses, the strategy can sometimes be short and souls can be depleted. For this reason, Zakos appear at the same time as the bosses, in order to slow down the game development and as a means of recovering souls for the player.

However, we do not want to increase the score by "earning" points during the boss battles, so we have created a slow and steady pace by having the zakos that appear during the boss battles appear in batches and then not appearing for a while, for example, so that combos are interrupted halfway through the game, thereby preventing players from earning points unintentionally. We want to prevent unintentional score-scoring.

Parameters

I would like to be able to adjust the following elements externally (Unity inspector?).

Boss search frequency
Boss speed
Boss durability
Bullet speed (not necessary when using effects)
Burning time of ground fire.
Boss search frequency (insane mode)
Boss speed (insane mode)
Burning time of ground fire (insane mode)

この記事が気に入ったらサポートをしてみませんか?