[システム]プレイヤー操作:[Systems]player control
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.
本稿は最初期の仕様書となり、実際のリリース物と明らかに異なる部分については取り消し線を引いておりますが、詳細な部分に於ける相違点については敢えて修正しておりませんのでご了承ください。
Please note that this is an early version of the specifications, and we have struck out the parts that clearly differ from the actual release, but we have not dared to correct the differences in the details.
The player character in this work can separate attacks 180 degrees forward and can attack with weapons at any time while waiting, moving, or jumping. For this reason, we would like to separate the upper and lower body controls. This system will allow the player to attack at any point in the cycle of running and jumping without any interruption in motion, and thus will allow for high-speed gameplay. *The merging of the upper and lower body is explained in a separate document.
On the other hand, when the character is unable to attack, such as during an emergency forward roll or a double jump, the upper and lower body are not controlled separately, but the entire character is controlled as a single unit. Although this is a trigger-happy game, the intention is to show a smooth, uninterrupted movement of ducking and dodging while maintaining the crispness of the attack and evasion.
Neutral for the directional key is the standby state. At this point, if the key is entered up, the character's upper body will face straight up, and if the key is entered down, the character will crouch in place. It is also possible to turn the character at a 45 degree angle, but at the same time, the character will move because the key is also being pressed in the left and right directions. For this reason, the two directions the character can face in normal standby mode are horizontally (even when crouching) and 90 degrees up.
The player character has a left/right "direction". When the player character inputs in the opposite direction of this "direction," the character will perform a left/right flip after performing the "turn around" action described here. This is not intended to be a "gap" in terms of gameplay, so when an attack is made during the "facing" action, the animation is canceled (just as in a gaming game, the moment the input is made, the action is completed, and the action is internally reversed). The moment the action is completed, the animation is internally reversed), and the attack is executed. This "turn around" animation is also played during crouching and jumping, if a key is input in the opposite direction of the direction the character is facing. Each has its own dedicated image, but they are all the same in performance.
I would like to make the actual turnaround animation as shown above. With this lineup, you may be thinking, "What's wrong? Isn't that strange?" But with this method, even if the animation is canceled in the middle of the swinging motion, it will be processed after the player has turned around, so the player will not feel any discomfort. This is also how 2D fighting games are handled.
By inputting the directional key left or right, you can move in the direction of your input. Also, by inputting diagonally up or diagonally down, the player will move left or right while facing 45 degrees up or 45 degrees down, respectively. Because of the high possibility of repeated fine positional adjustments to avoid enemy attacks, we do not plan to employ a stop motion from moving, the so-called brake animation. The moment the input is stopped, the robot will return to the standby state, but we will focus on the playability of the robot.
By holding down the L button and operating the directional key, you can change the direction of your upper body while standing still in place. This allows you to attack diagonally upward or downward while standing still, which is not normally possible, as well as to attack directly downward while standing still (usually crouching).
Press B button (switch compliant) to jump in place. The jump is a step, rise (loop), apex, descent (loop), and landing, with separate files, and advanced speeds can be adjusted. The trajectory can be adjusted after the jump, but we hope to make it feel like a small operation. Also, the left/right key input + B button will be used for the forward jump. We would like to make adjustments while touching this one as well. The jump-related specifications are quite specific, as we want to give priority to a good look, so we will explain them in more detail in the next section.
[Input]>[Step into]>[Jumpup]>[Jumping aerial]>[Jump down]>[Landing]
While waiting and running, the body tilts -90 to +90 degrees in the direction of the directional key input, but for normal jumps, a fixed jump animation is played regardless of the direction of the key input (for both vertical and forward jumps). I would like to do the above for jumps, because if I control the direction of the upper body during the jump motion as well, the motion would look very stiff. However, if a turn or an attack interrupts the jump motion in the middle of a jump, it will shift to the next "jump standby".
During a jump, pressing Y (attack button) will cause an attack in the direction of the key input, just as on the ground. After that action is completed, the jump will be shifted to "jump standby" as shown in the above figure, and all actions thereafter will be performed through this "jump standby" until the jump ends when the jump lands. Once in "jump standby," the body is tilted in the direction of the key input, just as it would be on the ground. In addition to attacks, if you press a key in the opposite direction while jumping, you will turn around and enter "jump standby".
In this game, when you jump down from a high place, for example, you "jump down" and fall to the ground. We would like to use this to create a situation in which the player defeats enemies while falling into a vertical hole. However, if this is done, it is necessary to be able to control the ship to some extent during the jump descent. Originally, it is possible to adjust the trajectory during the jump, but we cannot determine at this point whether it is possible to control the aircraft enough to make the game work during the descent. We would appreciate it if you could keep this in mind when creating the game. Since there are only a limited number of places where the plane can scroll vertically and fall, I think it would be fine to use a dedicated process.
If there is a hollow floor at the destination of the jump and the player character jumps over the floor, the landing decision is made on the floor in question, i.e., the player jumps onto the floor above. However, if the player character continues to press the down key during the jump, the process of jumping onto the hollow floor is skipped, and the original jump activation is performed to the landing (stop if it is hard to play). *In the diagram above, the jump is moving left to right, but in reality, the jump is directly below the floor.
When you are on a hollow floor that is not on the ground, you can jump down by pressing the B button with the down key pressed. If there is no floor below you, you will fall off the screen, and you will make one mistake, regardless of how many lives you have left. If you do this on a floor that is not hollow (the ground), the jump will be a normal jump. *In the above diagram, the jump is in the left/right direction, but in reality, the jump is directly down.
When on the ground, pressing the A button (switch compliant) will "roll forward" in the direction the player character is facing at the time. While rolling forward, you cannot attack, but you are invincible at the start of the roll, and you can slip past enemies, so you can dodge enemy attacks and turn to attack. If there is no floor at the destination during the forward roll, the jump down animation will be transitioned to the jump down animation at that point.
While jumping, press the A button to perform a two-step jump from the current coordinates; the trajectory of the two-step jump is the same as that of a normal jump, but since attacks are not possible while somersaulting, this action is more of an evasive maneuver. The start of this action is also invincible.
By pressing the Y button (switch compliant), the player attacks with the main weapon, the "sword". The sword attack can also be performed in any direction by pressing the Y button while pressing the up and down keys.
If you press the Y button while holding the L button to fix the direction, you can swing the sword in the direction you are facing while standing still.
By pressing the B button while inputting the left and right keys, you can perform a sword attack while moving. If the B button is pressed during left/right key input with an up/down element, the attack can be performed at 45 degrees up and down respectively.
By pressing the B button while inputting the left and right keys, you can perform a sword attack while moving. If the B button is pressed during left/right key input with an up/down element, the attack can be performed at 45 degrees up and down respectively. Unlike on the ground, in the air you can attack with the sword in all directions.
The ability to fire a sword or subweapon at any time (henceforth referred to as an attacking action) is a feature of this game, but there are certain actions during which the attacking action cannot be performed, or the attacking action that was performed in the middle of the action is canceled. These are when landing on a jump, during a forward roll, and during a somersault. During these actions, the attacking action cannot be performed during these actions, and the attacking action that has been performed is also canceled.
The player character's attack animation and the slash effect are controlled separately, so even if the player character's attack action is canceled for some reason, the slash effect that occurred immediately before will not be canceled as well. No matter what happens to the player, once a slash is generated, it will continue to play until the end. In this sense, slashes are also treated as shots. This may increase the possibility of a double KO with an enemy character, but it is acceptable.
Pressing the R button (switch compliant) pauses the game progression and deploys a ring of subweapon icons (called ring commands for convenience), which remain active as long as the button is held down and are closed when released. When the ring command is deployed, the directional keys switch to selecting the ring command icon instead of player control. The L2 and R2 buttons can also be used to directly select a subweapon without using the ring command. The cursor on the command can be moved by pressing up/down or left/right 45 degrees (dial-like operation is also possible), and the subweapon at the cursor stop will be selected. Note that the position of the icon to be drawn in the ring command is an absolute relation and does not change regardless of whether the player character is facing left or right.
Pressing the A button (switch compliant) attacks with the currently selected (held) subweapon. The subweapon has some of the same features as the main weapon (sword), such as the ability to switch directions by lever input, but each subweapon has a different performance and control method.
Since you mentioned that the X-BOX360 gamepad is a more standard controller, we have created an operation chart for the X-BOX360 controller. From now on, we will proceed with the X-BOX360 as the basic controller. In consideration of the fact that the game will be released on PC, we will also make it possible to control the game with a keyboard.