PistonDevelopers / project_r

DEPRECATED - Collaboration on an open source game to push Piston forward
MIT License
4 stars 0 forks source link

Brainstorming #1

Open bvssvni opened 9 years ago

bvssvni commented 9 years ago

Some ideas are discussed here https://github.com/PistonDevelopers/piston/issues/775

bvssvni commented 9 years ago

Should there be a goal of making an in-game animation editor? As I understand a goal is to make users contribute with content, so perhaps we should think of editors from the start.

bvssvni commented 9 years ago

I have a small idea for core game mechanics. The principle is to use maximum two buttons for the basic fighting, and instead of more buttons for different attacks, the character automatically picks an appropriate attack for the situation. The attack system is symmetric with the defense system, such that the strategy is about the technique instead of attacking vs defense.

If you have two different stands and can attack or defend yourself in the stand, then it becomes four possible states.

Each player sees the other's stand, so by changing stand and attacking they can do damage unless the defender changes stand. The dominating strategy is to attack with the opposite stand of the other player.

The mechanics requires reaction, but it is simple to learn and becomes surprisingly sophisticated very quickly. By learning to recognize patterns of the other player, and hide your own patterns, you add another level of technique which requires attention to the fights of the other player. Watching fights will make it possible to prepare for the battle.

This is a simple concept that makes it possible to do damage and protect yourself even when fighting another player on a higher level. People who win fights at higher level can advance faster.

It is also not logically closed which makes it possible to adopt for different gameplay/story. For example, if one player is AttA and the other is AttB, one can add additional game mechanics to determine who is doing damage. This is the ad-hoc state which makes it possible to build the higher levels of gameplay. For example, one style of fighting can have an advantage in AttA against AttB. Other factors: Body type (strong, lean), level (high, low), status (master, apprentice), endurance (whether your character has slept well), psyche (how well your team has done recently). This will affect the decision of whether to attack or defend, but the story can change this dynamically.

Another way to sophisticate the system is using timing. For example, when doing AttA vs AttA, how long time takes it to get back into AttA, relative to AttA vs AttB. Timing will be important to not lock up players into random pressing buttons or not attacking at all.

By reducing the basic attack system to two buttons, one can use the others for different game play. This could be a first person view, magical items or team work. This could depend on a specific scene setup or situation.

The goal with this mechanics is to make it easy to reuse. Once it is proven for a subset of the game it will be easier to know whether it will work for other parts of the game. I want a core mechanics that require skills, easy to learn, and which opens up a larger world the more you get into it.

bvssvni commented 9 years ago

@advanced Do you have any thoughts?

advanced commented 9 years ago

@bvssvni I had a hard time getting back into the groove after the vacation. I will post a comment later today about your suggestion on game mechanics.

advanced commented 9 years ago

@bvssvni I think it's one of the best ideas I have heard in a while. The system is simple yet it opens the doors to so many exiting options. It can be used for other games but i will comment on the fighter aspect first.

It's radically different from the mainstream fighters. Usually a hit connects when you are not blocking or blocking toward wrong direction. Let's say If you are crouching and blocking you have to worry about overhead moves and if you are standing you have to worry about low hits such as a sweep. No more ambiguous cross up on wakeup and throws are not necessary anymore.

The game is now about making your opponent change stance or trick him/her into believing you are about to change yours.

I'm thinking that if you change your stance from neutral it should have some recovery but you can cancel into a stance from certain attacks. This is useful for combos. Imagine you have a successful hit you could do : A , A , B , change stance , A , B and then combo ender. We may want to give a chance to get out of the combo by timing a stance change at the same time as the attacker. But if you decided to not extend the combo and the opponent changes stance anyway he/she is now vulnerable.

I'm also considering having a stance gauge to limit the time you can be in a particular stance. There is so many possibilities and it's beginner friendly.

About the 2 buttons input, It might seem limiting but I think as you mentioned it's actually 4 attacks. I would go further and say it might be even because we could have a different attacks whether you are close to your opponent or in the air etc. Also games with more buttons have to design their characters so they can fight the whole cast. You don't really use all the buttons against all the characters. Since we can select our attacks before the fight this is not a problem. If you have trouble against a strategy you can always look for tools that can deal with it better.

bvssvni commented 9 years ago

Picturing how this would work with a similar fighting system to Final Fantasy XIII, which I thought was cool from a strategic point of view:

https://www.youtube.com/watch?v=VonK7oYo9iQ

What would happen if you added the stand mechanism to this game?

Imagine two teams fighting each other at the same time. Any player can choose to attack any of the other players on the team. When you do nothing, a gauge is charging up. Some attacks requires 1, others require 2 or 3 or maybe even 4. You can chain attacks and then press a button to execute them. Each player on a team has a captain that controls a paradigm shift, which decides what kind of attacks the players can do at a given time.

While you are executing the attack, you might cancel it to build up a new charge, or adopt your stand to match the opposite of your opponent. Attacking in the same stand as the opponent might lead to slower recharge afterwards.

When defending yourself from multiple people, they can get guaranteed hits by attacking with opposite stands, but this will also make one of them more vulnerable after the attack, which makes it difficult to coordinate a new attack at the same time. While not that useful in the middle of the fight, this could be good strategy for a final attack to finish off an enemy.

Some attacks could do damage to multiple opponents at the same time. Attacking opponents, grouped together, that are in chaotic states will probably have some success. This means the team need to decide how they should position themselves, which might depend on what kind of enemy they are facing.

You could have a healing system that works directly but requires keeping the same stand as your team mate to work.

You could also have a mixed state stand where the stand is not changing instantly from A to B, but each is given a weight that accounts for the probability or rate of success. This might be useful for animation transitions. For discrete actions, the weight could be used for probability. Analog actions, where the meaning makes sense in a mixed state could weight the consequence.

bvssvni commented 9 years ago

One idea is to use deformed images instead of 3D. This technique is something we can pull off with least effort, and it could make it easier to test the fighting system before investing into 3D art. Here is a game that uses this for sprites, but we can do this in real time with Piston.

We could start with 2D with a cartoonish style and then gradually build the 3D tech. This will make it possible to build the RPG system in parallel and test how it works out with the fighting system. You could have a library that loads the characters and animations and then people could experiment with different types of games. When we have something working that gives a feel of particular situation, then we could evolve the story around these pieces.

advanced commented 9 years ago

I haven't really played final fantasy much actually I only played the VII on ps1. I have to watch some more videos and read up some articles to make a real opinion on that. But it sounds like it could work.
i didn't know that was called deformed 3D. How does it work? is it some kind of shading applied to a base 3d model? I was thinking about using cel shading but this looks similar maybe it's the same.

bvssvni commented 9 years ago

@advanced It's 2D images, but deformed by applying control points. Take a look at the "deform" example https://github.com/pistondevelopers/piston-examples