afgbeatemup's People
afgbeatemup's Issues
Basic music loop
- Power plant intrusion import
- Power plant intrusion loop
- Power plant intrusion intro
- Seemless!
Separate Character MoveSet/Actions from Movement and P1 / P2
Goal:
- Be able to select different characters with same controller / P1 / P2 arrangement
- Reduce Coupling of systems
Basic Co-op
- Joining is Janky but possible
- Having Hit effects first might be a good idea
- Have two characters
- Two input sources
- One controller controls one character
- Make joining system that doesn't require unplugging before
- Try to follow this: https://www.youtube.com/watch?v=2YhGK-PXz7g
- Join Xrd Style for now (Start Button)
- More controlled joining system
- Hitstop affects P1 but not P2??? Weird hitstop interactions
- Work out inconsistent hit detection (probably need to be able to cancel hitstop
- Gatling cancels work for both players
- Changing attack names to match player
- Cancel Hitstop to refresh hitstop with other character
Deal with await warnings
- How does it work now?
- Weird async stuff is happening, is JTF usable here?
A + B causes gatling combo
Not intended,
This is a fixed issue now! :)
Research more into Modular design (for Unity)
AKA Monobehaviors might not be the best approach
Assembly Definitions in Unity
- Google searches
Modular Design
https://unity.com/how-to/architect-game-code-scriptable-objects
https://www.youtube.com/watch?v=6vmRwLYWNRo
emergent design??
Investigate how to use ScriptableObjects!
Investigate how to use a more robust event system
- pause screen
- game over screen
- Counter!
- P1 invalid combo
Notes:
- Prefabs should be able to work in a vacuum
Airdash movement RC cancel
Should look like a triangle jump when RC'd
Input History Side effect - Jump cancelling
When changing the input history by pressing more buttons / releasing them, or moving the stick, this can cause a jump cancel on accident.
- probably due to input history updating and tripping a jump cancel somewhere.
Better architecture for handling player state / animation
There is a LOT of state to keep track of, including animation state. Is there a safer / less bug prone approach?
Draw beta first stage background
Ideas:
- city streets, day
Make systems more universal
- Large overarching issue,
might make more sense once it needs to become more universal (aka coop etc.) - Make code more modular
- Remove some of the coupling between unrelated code
- define better interfaces to make code more modular
Stand Still Attacks not detected
move right, then stop for a second
attacks won'ts trigger Unity API collision events.
Player Inputs should not be read while game is paused
- New paused state variable
Create Interaction types for Hitbox / Hurtbox
Hitboxes could try passing along the necessary data for the receiver:
- Strike or throw?
- Clean hit?
- Launcher?
- Hit stun hit stop
- block stun / block angle
- air hit properties
- CH properties
Then let the receiver process that information,
possibly send an interaction back if the sender needs some information about the interaction
A hitbox hurtbox interaction:
- Multiple hitboxes
- multiple hurtboxes
- multiple enemies
- multiple players
Handle:
- One hitbox to multiple hurtboxes
ControllerReader Button Release detection
- Detect button release
- Detect current button state
Pretty much what the title says
- Be able to detect negative edge
Basic Hit SFX
Jump cancelling Bugs
Ground / Air:
- Fast tap jump cancel: Continuous hopping on the ground
Air:
- Hold jump cancel: Cancels animation, but doesn't jump, also ignores remaining air action count
Pause menu changes size depending on screen resolution
Basic RC system
Be able to cancel any* action any* time!
- (Meterless DPs cannot be RCd, Burst cannot be RCd)
- Similar to input buffer cancel
- Three buttons button combo
- Cancel any action
- Cancel Backdash
- Cancel Airdash
- Cancel Run
- Cancel remaining possible actions
- Make sure throw doesn't do weird Guile Handcuff glitch stuff
- Flashy visual effects later
- Time slow later
- Chain shift style universal reversal?
Airdashing / Backdash - Reversal 8 Jump sometimes carries previous horizontal speed
Keep the result consistent!
- Most likely going to go straight up without run momentum
Cannot attack during backdash without RC
Pretty straightforward, must have missed some logic somewhere
Polish Running
- Just like SM64, you don't want to change how running works later
Layer of abstraction (Input interpreter -> semantic actions)
Layers: Compiler like?
-
Scanner
-
Handle reading input from controller
-
send events to parser
-
Parser
-
detect special inputs
-
detect movement options (Running, stop running, jump)
-
detect button combos
-
Frame by frame 60 fps input detection / parsing
-
Semantics (Character specific / universal interface)
-
Take events / calls for RunStart() JumpStart() 236() 623()
-
Handle Input Buffer cancelling / "rolling back" actions
-
Handle Universal actions
-
Change game state
-
Called through semantic actions
Implement Shadow following fighters
Pushback should push back player in the corner
- Pushback should repel the two characters for a given amount of time
- Longer repel time = more pushback
- Bigger repel force = more pushback
- push back both characters??
Implement HitStun
Basic enemy key frame animations
- Hit
- Knockdown
- 5B
- Jump
etc.
Implement Forward and Back Universal Throw
- Button combos
- Animation Tree - Add Throw Whiff and Throw Hit
- Animation Vars - Add Throw Whiff and Throw Hit vars
- Input Code - Call Throw actions
- Code- Handle Animation states
- Handle ThrowBox summoning
- Handle Full invul No Hurtboxes
- Handle ThrowHitBox OnHit interaction
- Handle interaction in parent hurtbox
- Was the attack a throw?
- Throw conditions met?
- Freeze opponent, transport to correct location
- Throw Action
- Throw Hit and Hurtboxes
- Detect Throw Strike
- Throw Input
- Player update facing direction
- Side switching
- Launch Logic
Player animation Event based central controller
Write an event based animation controller
-
Land event
-
Backdash start event etc.
-
Refactor code to compiling state
-
Refactor code to running state (minimal bugs)
-
Change consumers of animation controller to subscribe as event callers / receivers
-
Add next steps as necessary
Notes:
https://unity.com/how-to/architect-game-code-scriptable-objects#example-players-health-points
Related:
#13
Investigate example game mechanics
Clash vs. Trade
https://www.dustloop.com/wiki/index.php?title=Hitboxes
Input command priorities
- Invul Attacks > Button combos (RC, Blitz) > special attacks > normal attacks (2 frames for 2 button combos, 3 frame for 3+ button combos)
- Most normals anti air launch at the same 45deg angle in GGXrd
Input management clean up
Is there a better way to handle numpad?
Maybe: Make side scrolling possible, based on location of all characters
Minimum AirDash height
Most likely minimum air dash height for IAD
- Determine a trigger collider box to push player up until at a IAD safe height
- IAD (meterless) should be a movement tool
- IAD (metered) can be a powerful combo tool
Run Speed differs depending on screen size
Maximize on play seems to move way faster than normal
Proof of concept Change Buttons
- Simple change button is now possible!
- [ ]
InputHistory Type
Make a comprehensive input history type
- will make it easier to transfer,
- encapsulate datatypes a bit more (kinda?)
- Hand it to UI to display etc.
Backdash logic could be affecting run currently?
Basic Stick input visualizer
- make UI respond to inputs
Implement more button options
- ABCD, Start Select at least
Player can stand on top of grounded enemies
How should this interaction work?
Can interact on the ? plane
- Grounded to Grounded pushboxes: X
- Falling to Grounded pushboxes: X
- Airdashing to Grounded pushboxes: X
- Air to Air pushboxes: X
Keep making more music / sounds!
- CityStreets theme
- Streamer theme
- Time chamber theme
- Lots of new music on the way!
Design Fighting game engine with minimal coupling
We gotta do some research on how to design a good system
- Make everything heavily modular
- Be able to add features later
- Have better state management (rollback compatible?)
- Strong foundation
Basic pause menu
Pause menu pauses the game
- Gives platform for changing controls
- Changing Dummy settings
- Gives platform for Adding coop player etc.
Better Attack cancel system
Bug:
- Remove inputting cancel button before cancel window
Features
- Implement cancel windows?
- Button cancel priority
Allow for
- Whiff cancellable
- Jump cancellable
- Resetting state back to neutral
- Cancel the current animation back to neutral state
- Then execute the cancel action (Jump, Dash, RC)
- Fix jump to walk combo
- Prevent jump cancel to grounded attack
- Jump cancel in multiple directions
- Use only jump cancellable registered normals / attacks
- Dash cancellable
- RC cancellable
Button Combo Input Buffer
All input combos (ABC, BC, etc.) a 2 frame buffer to be input.
-
NOTE: Eventually this might lead to movement exploits like FDC drill cancels. That's probably ok XD
-
Still tight to input, but not impossible (1 frame throw OS for every RC / Throw = not so fun)
-
Count frames
-
Be able to change your mind about what action should be sent to the player to do
Anti-air 5B and 5C
On an airborne opponent:
-
Attack launches at a more upwards angle
-
Attack data updated to have launch angle and force
-
Keep the same behavior for grounded normals
-
For now, make throw launch higher to combo into anti air combo
-
Leave room for gravity scaling
-
Stretch: Throw cannot hit airborne / prejump opponents
-
(Don't worry about hitstun for now)
Air Normals
- Condition B button use : Air or not?
- Land Cancelling Air Normals
- Attack connects on same frame of landing frame
- Air Gatlings
- Bug: Executing Cancel check carries over after land cancel
- One repro for the bug: JB -> JumpCancel -> RC -> JB (All within hitstop)
Implement Combo Counter
Implement Player side switching
- Flip player based on boss location
- Flip input interpreter
- Flip movement options
- Flip pushback
Basic hit sound effects implemented
- Learn how basic audio system works
- Import files in
- Play sound effects on hit
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.