Apparently in the new pokemon, if you plug in two controllers at once you can run twice as fast. Like you hold both joysticks and it just... adds the speed
these devs had NO TIME lmao
How does ROLLBACK NETCODE work, and why is it so difficult to program? A whirlwind tour of different solutions
#pixelart
#gamedev
The setup: you have a video game with couch co-op (pictured) and want to add online multiplayer. Easy, right...?
(thread)
I didn't have time to finish the down special for my character, so you'll have to code it yourself during the match.
Hope that's ok for the contest
@StudiosofAether
...and you can even PUNISH people for hacking the game! Both players can safely trust the server to give accurate info.
Unfortunately, servers are too expensive for starving indie devs (e.g. Nintendo), so let's explore other options.
Animation vs... Rivals?
This stick figure dude must have snuck onto my computer and uploaded himself to the Rivals Workshop while I was away... can you give me a hand with this
@alanthebecker
??? :P
Updated my Steve character mod to have a working chat that you can type messages in!
For accuracy to Minecraft, it also has Player Chat Reporting. Please understand.
#RivalsofAether
#saveminecraft
How do you design a 2D GAME CAMERA that properly frames the action? A whirlwind tour of different solutions, animated!
#pixelart
#gamedev
The setup: you've made your platform game's player character and need to make the camera follow them. Easy, right...?
On Friday the 13th, Sonic the Hedgehog will release - a surprise reveal!
He can use the Wisps from Sonic Colors to become a laser, rocket upward, or drill through the stage - and the Wisp Capsule left behind can be hit into enemies.
Planet Wisp is his stage!
#RivalsofAether
7/
Some are asking "why wasn't this in at launch?"
In reality there's a lot that goes into a simple feature like this. Any new menu/UX requires a design process to make it a reality, but beyond that this feature also has some challenges attached to it.
Thread
#gamedev
A new Custom Items feature is now available for all
#MarioKart
8 Deluxe owners via a free update. Use it to choose which items appear in offline VS Races and certain online modes!
Well, it's not so simple. If you send each player's button presses over the internet (big arrows), there's some delay due to how far the signal must travel. So the inputs get out of sync between the 2 screens.
Notice that the order of the characters jumping changes.
ROLLBACK NETCODE sends inputs back and forth. However, each input is sent along with a timestamp of when it was pressed.
When the input is received, the client calculates what WOULD have happened if it HAD received the input on time. Then it "skips ahead" to that point.
...In practice, there's a LOT that needs to happen to make this work:
- Keep track of past game states
- Rewind time
- Resimulate those frames with the newly received input in mind
...all in the span of 1/60th of a second. You're basically programming time travel in your game.
...but since you're sending state data, both clients will agree on the outcome at the end. Notice how Mario still hits the block and gets the coin on P2's screen... even if it looks janky.
This is why in Mario Kart, you can throw a green shell at someone but somehow miss.
...This out-of-sync thing is a problem because it can make a player succeed on one screen but fail on the other. A few frames doesn't sound like a lot, but it can be the difference between victory and defeat in an action game.
E.g. Mario gets/misses the coin.
PROBLEM: Each client is now TRUSTING the other client to send accurate state information. So if P2 hacks the game to make Luigi fly on his screen, P1 will trust it, and P2 will have an unfair advantage.
So that's kinda wack.
I ran out of my fancy animations so here are some text-only posts :^)
Adding rollback to a game is like adding a drive-thru to a restaurant: you need to rethink how everything works in order to enable an entirely different mode of operation.
This gif has bigger input delay. Notice on P1's screen, Luigi "skips ahead" to the peak of his jump: "teleporting" effect.
It's like missing your cue in a recital and skipping to the middle of the song (rather than starting from the beginning), to get in sync with everyone else.
...However, due to the extra input delay, Mario's timing is messed up. He now has to press jump earlier in order to hit the block.
This is a downside of delay-based netcode: your muscle memory for combos / techniques needs to CHANGE in online vs local, or w/ connection speed.
If you're making a fighting game, you don't want ANYTHING to be different across the 2 screens. Timing matters!
SO let's sync everything up by DELAYING the local input to match the network input. On P1's screen, Mario hesitates to jump.
Everything is in sync now!
Here's another approach: what if P1 runs the game, and P2 just STREAMS it? So P2 sends controller inputs, and P1 sends video/audio data. E.g. Steam remote play
No out-of-sync issues here, but P2 has HUGE input lag. He presses A but Luigi hesitates to jump. NO GOOD
What if you (the game dev) create a server to mediate player interactions? In this example, players send inputs and the server sends states, acting as a middle-man to verify that a state is valid.
OK, what if instead of sending INPUTS thru the net, we send STATES? E.g. instead of "I pressed the A button", send "My character is at position (x,y), has 5 coins, etc".
On the surface, it looks the same, since you're still out-of-sync due to delay...
Another fun analogy: Rollback netcode is like Back to the Future.
BttF: Time travel back and ask "what would have happened if Marty's parents never met?"
Rollback: Time travel back and ask "what would have happened if P2 pressed jump 5 frames ago?"
On the plus side, notice that we're sending INPUTS back and forth rather than STATES - so cheating doesn't work. Luigi can't fly, since P1 just receives the A presses.
Some games will detect cheating by comparing player coordinates (but they can't tell WHO is cheating).
little-known fact: this livestream got canceled and never aired due to legal complications. instead, sakurai had to go door-to-door and explain Terry Bogard’s moveset to everyone
Join Super
#SmashBrosUltimate
Director Masahiro Sakurai on 11/6 at 5am PT for a roughly 45-minute video livestream featuring an in-depth look at upcoming DLC Fighter, Terry Bogard from the FATAL FURY series!
Good time to show off my WIP Steve mod for
#RivalsOfAether
, huh? It's themed toward the kinds of tactics that speedrunners or PVPers use, and will also come with a stage. Look forward to a release early next year, alongside Coda!
#Minecraft
#SmashBros
...I forgot to really cover this, but the reason rollback is great is because it combines:
1) No (or very little) input delay
2) Perfect in-sync
3) Impossible to cheat (no trusted state data)
So it's the gold standard for fighting games. All of the cool kids are doing it.
DISCLAIMER: I have never programmed netcode for a video game. Only offline stuff :^)
I don't expect there to be any major errors (except for one on the last Server gif; see replies there) but I apologize if there are any!
The "or very little" input delay is because a game can optionally ADD some input delay artificially. This reduces the "teleporting effect", so it might be worth.
Melee (on slippi) runs FASTER than gamecube by default, so it can afford to add delay and still feel silky smooth!
I didn't have time to finish the down special for my character, so you'll have to code it yourself during the match.
Hope that's ok for the contest
@StudiosofAether
The moment you’ve all been waiting for. Our sequel to Rivals of Aether is deep into development, with stunning gameplay footage ready for the public!
Rivals 2 is coming in 2024; until then, stay up to date with the development process on our Website:
Moveset Monday
#50
🦊
Fleet's Up Smash fires an arrow straight up into the sky. Hit opponents up close with the bow hitbox, or aim for a bullseye when you catch someone above.
Hi
#screenshotsaturday
- after years of modding, I'm finally creating my own indie game!
SLINGSHELL is an arcade romp through endless levels - featuring guest character Orcane from
#RivalsofAether
!
WISHLIST NOW:
#RivalsOfAether
Otto has many features available in Training Mode... the one I'll show off today is the Move Guide. Read about the features of every attack, and view live frame data to help with labbing! I'll leave the rest of those menu options a surprise for tomorrow. 😉(1/3)
Hey guys, I reposted my thread on ROLLBACK NETCODE as a blog post on my website!
Now you can view it all in one piece, and it'll be there even if twitter dies in a fire.
View it here:
Future threads (and the camera one soon) will be mirrored too! 🫠
The
#RivalsofAether
Workshop Muno Direct has just wrapped up! Lots of stuff was shown off to release over the next week.
Watch the Direct if you missed it:
Download everything shown:
1/
DID YOU KNOW: to make my Minecraft stage mod for Rivals, I actually built it ingame by copy-pasting terrain chunks from a natural village (and nearby ravine)
I have so many
#RivalsofAether
Workshop mods to reveal that I'm hosting my own Direct!
If you liked Trummel, Otto, or my Coda and Steve previews, you owe it to yourself to tune in.
⏩Watch the YouTube Premiere this Saturday:
RTs appreciated!😄
#RivalsofAether
Otto's NSpecial is Billiard Charge. It's a chargeable projectile that cycles between 8 billiard balls. Each has its own knockback, and the 8-Ball stuns enemies on hit. Anyone who's played PAC-MAN in smash should feel right at home. (1/3)
@PandaGlobal
We are proud to announce our partnership with
@NintendoAmerica
In 2022 Panda will bring the first officially licensed circuit for Super Smash Bros. Ultimate and Super Smash Bros. Melee to North America.
More details for this short series of events with cash prizes coming later.
Honestly one of the big challenges was just picking 16 variables that rivals code would actually let me mess with LOL
I wanted to include ranno's bubbled status but that's hard to do without ranno actually spawning a bubble object
I didn't have time to finish the down special for my character, so you'll have to code it yourself during the match.
Hope that's ok for the contest
@StudiosofAether
I guess it's about time I show off my WIP
#ASTRALCHAIN
character for
#RivalsofAether
!
So far, Akira has her non-attacking animations, basic Legion mechanics, and a three-hit attack combo.
Stay tuned for whenever I finish and release it:
#RivalsofAether
The MunoPhone is no longer tied to the Training Town stage! Now your character can access Tips, Cheat Codes, Frame Data, and more on ANY stage in practice mode.
Find out how to update, and get notified of future firmware updates:
First off, ANY menu you design for your game needs to go through the same design process to make sure it's very intuitive, polished, visually appealing, and bug-free.
This is rarely enough to kill a whole feature on its own. But it's a consideration in budget/planning.