hentai
When's Melty on Steam?
ahaha that's no--wait, what?

Author Topic: The MB:AA:CC:PC thread: v.1.4 out  (Read 286134 times)

0 Members and 1 Guest are viewing this topic.

Offline Exciel

  • Spellcaster
  • ***
  • Posts: 313
  • Magic Circuits: 38
  • 工エエェェ(´д`)ェェエエ工工
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #175 on: August 16, 2011, 04:34:21 PM »


Hacking isn't my job, it's my passion.

Offline Rokunaya

  • Magus Candidate
  • ****
  • Posts: 954
  • Magic Circuits: 16
  • Keepin' it alive
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #176 on: August 16, 2011, 04:39:31 PM »
If you liked mbac at all odds are you'll freakin' love mbaa as far as I'm concerned, since i believe it to be an overall better game
clmelty: great roku! lol / I like roku lol
clmelty: I want to make CL like roku team
clmelty: Roku is best popular player in the meltyworld

Offline mauve

  • Soul Hacker
  • *****
  • Posts: 239
  • Magic Circuits: 144
  • 5̠̙ͩ͑̂ͭͧ̀͊̍2̵̠̟ͥ̀1̂̑̒ͥͯ̋ͫ̐ͣ҉̶̜̮̀4̩̳̬̠̯̲̠̲̼͑̊̌̃̀̚9ͮ
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #177 on: August 16, 2011, 04:42:53 PM »
If you liked mbac at all odds are you'll freakin' love mbaa as far as I'm concerned, since i believe it to be an overall better game
actually wasn't that really much of a fan of mbac. i like my bullshit zoning/footsie games and it wasn't until aa that those really seemed to start taking off.

i mostly just finished up the work on mbcaster because i couldn't stand leaving the (much larger at the time) mbac community with the spaniard's buggy as shit caster, when i was working on iamp's at the same time.

edit: also exciel's post is awesome
« Last Edit: August 16, 2011, 05:40:57 PM by mauve »

Offline 7thfonon

  • Jr. Spellcaster
  • **
  • Posts: 55
  • Magic Circuits: 0
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #178 on: August 16, 2011, 09:54:03 PM »


Hacking isn't my job, it's my passion.

I dunno why, but I like that top pic.  xD

Offline mauve

  • Soul Hacker
  • *****
  • Posts: 239
  • Magic Circuits: 144
  • 5̠̙ͩ͑̂ͭͧ̀͊̍2̵̠̟ͥ̀1̂̑̒ͥͯ̋ͫ̐ͣ҉̶̜̮̀4̩̳̬̠̯̲̠̲̼͑̊̌̃̀̚9ͮ
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #179 on: August 27, 2011, 11:25:20 AM »
So a few days ago the original th075Caster guy, Weltail, talked about netplay for MBAACC PC on the site, and things like how hard it'd be to do officially, the likelihood of foreigners doing it for them, possible fracturing of the userbase, piracy, etc.

Quote
メルブラのネット対戦、実装するだけなら技術的に難しいところは無いと思う。色々穿って考えてみる
・単純に実装が難しい→浮動小数点のズレを解消できないという意味?
・ロビー周り・ユーザーインターフェースの実装が難しい→メーカが自前でロビー提供は無謀と思うのでこれは無さそう(売ったからには保証がいるような)
・ユーザ認証まわりが難しい→海外販売ルートが充実しなければ、いつかは海外で割れ蔓延+Caster作られる。現実的に海外販売の充実はコストに見合うのかどうか。国内向け?
・デバッグされないようにするのが難しい→時間をかければ暗号化・パッケージ化も解除される。定期的なアップデートは真っ当なユーザに負担あるだろうからこれもなさそう。GameGuard検討してるなら目途は立つはず。
まとめてみると、”同期ズレを解消するのが時間かかりそう。それよりネット対戦省いてリリースする”という意味が濃厚のような気がする。
ユーザ認証のあたりはCasterが割れの象徴になりそうで嫌だが、悪貨は良貨を駆逐するということで個人的に折り合いをつけるしかない。Caster自体は単なる再利用しやすいコード。
何も関係ないところから眺めていられたらいいけれども。

I put up a thing on the MBCaster page giving my thoughts on it.
Quote
  • I want MBAACC to have good netplay. MBCaster has relatively few desyncs. I don't believe the FPU issue will be a large problem.
  • American Internet latency is awful. 50ms to 100ms average, often more. Japanese netplay generally does not understand this, and lags badly. Akatsuki Blitzkampf's netplay is literally unplayable. Touhou Hisouten uses double the necessary input delay.(WHY?!? Fucking shitty game.) Even commercial works like Street Fighter IV and Marvel vs Capcom 3 are almost unplayable online. So, I do not trust Japanese netplay to work well in America, and as such fan works like Caster and GGPO are very important to me.
  • On a related note: 3rd Strike Online has amazing netplay and is a great port. Buy it, guys. Support GGPO!
  • Piracy is unavoidable. If it is not through Caster it will be through something else. It is better to make them into customers, people generally will want to pay if it is available to them. Americans would absolutely get Melty if it were available on Steam.
  • In my mind, GameGuard is malware. I will never install any software that uses GameGuard, it is far too invasive. Worst of all, it doesn't work. Using it will lead to pirates having a better experience than normal users. Unacceptable.
  • (Weltail, French Bread should totally hire you to write it. Add rollbacks to it! It'll be awesome!) (... And let's play Suimusou sometime!)

Offline zeech

  • Jr. Spellcaster
  • **
  • Posts: 72
  • Magic Circuits: 1
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #180 on: August 28, 2011, 06:11:22 AM »
Apologies for the slight off topic.

Mauve, as a games programmer myself (although mostly a peon gameplay/scripter rather than wizard/tech guy), I've always been interested in how rollback netcode actually works.  I have a rough idea of it, but I'm unclear on the precise details.

Could you please point me to any links, articles, or code that explains the principle behind rollback netcode?  My understanding breaks down at the level of a frame-by-frame step through... I'm like, ok, PC1 at frame 2503 recieves a packet and detects a desync... what now?!?

If there are any resources on the net that you could show me, I'd much appreciate it.  Google has failed me so far, I'm sorry.
(alternatively I'm happy to pester you with specific questions but I imagine that would be more annoying for you.)

Offline mauve

  • Soul Hacker
  • *****
  • Posts: 239
  • Magic Circuits: 144
  • 5̠̙ͩ͑̂ͭͧ̀͊̍2̵̠̟ͥ̀1̂̑̒ͥͯ̋ͫ̐ͣ҉̶̜̮̀4̩̳̬̠̯̲̠̲̼͑̊̌̃̀̚9ͮ
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #181 on: August 28, 2011, 10:27:12 AM »
Apologies for the slight off topic.

Mauve, as a games programmer myself (although mostly a peon gameplay/scripter rather than wizard/tech guy), I've always been interested in how rollback netcode actually works.  I have a rough idea of it, but I'm unclear on the precise details.

Could you please point me to any links, articles, or code that explains the principle behind rollback netcode?  My understanding breaks down at the level of a frame-by-frame step through... I'm like, ok, PC1 at frame 2503 recieves a packet and detects a desync... what now?!?

If there are any resources on the net that you could show me, I'd much appreciate it.  Google has failed me so far, I'm sorry.
(alternatively I'm happy to pester you with specific questions but I imagine that would be more annoying for you.)

You keep save states of the start of each frame and make sure you can step the game forwards without needing to render to the screen. When you receive data from 'x' frames ago, you rewind to that frame and rerun everything from that frame up until now. Aside from the save states, you need to track sound too. Basically sounds that have already started need to remain playing if they have not been retconned out, and stopped if they were. This is a bit of extra accounting information but doable. Only other real problems are from solving synchronization issues.

How you do the state information is up to you. You can either retain full information for each frame and copy everything over, or keep reversable deltas so you 'rewind' everything one frame at a time.

There's a few things you would probably want to do like change the way the camera moves to be smoother, so it's not quite so jittery on massive movement changes.

Edit: Additionally, you can read the pain i went through hacking it into IaMP over on the now basically dead mizuumi blog.
« Last Edit: August 28, 2011, 10:38:34 AM by mauve »

Offline zeech

  • Jr. Spellcaster
  • **
  • Posts: 72
  • Magic Circuits: 1
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #182 on: August 28, 2011, 05:24:54 PM »
Ah k, thanks a lot!  Thinking about it more, I was confused whose "state" the system reverts to in the event of a desync.  But that's irrelevant because the system takes into account all inputs anyways, I guess.

I suppose if one was writing a game from scratch, it might be smarter for the netcode to be aware of animations, so rather than, "He activated his 10 frame jab 5 frames ago, so instantly jump to frame 5 now", it would instead play all/some of the frames of that jab in the remaining 5 frames, at a higher speed to fit it in.  Gameplay stuff like hitboxes will remain at the original speed, so its purely a visual hack.

For a 3D game, that would result in smoother visuals than a raw teleport.
Although expert players may not like the loss of precision when visuals no longer exactly match underlying mechanics.
« Last Edit: August 28, 2011, 05:35:52 PM by zeech »

Offline mauve

  • Soul Hacker
  • *****
  • Posts: 239
  • Magic Circuits: 144
  • 5̠̙ͩ͑̂ͭͧ̀͊̍2̵̠̟ͥ̀1̂̑̒ͥͯ̋ͫ̐ͣ҉̶̜̮̀4̩̳̬̠̯̲̠̲̼͑̊̌̃̀̚9ͮ
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #183 on: August 28, 2011, 05:31:33 PM »
I suppose if one was writing a game from scratch, it might be smarter for the netcode to be aware of animations, so rather than, "He activated his 10 frame jab 5 frames ago, so instantly jump to frame 5 now", it would instead play all/some of the frames of that jab in the remaining 5 frames, at a higher speed to fit it in.  Gameplay stuff like hitboxes will remain at the original speed, so its purely a visual hack.

If your logic is sufficiently detached from your rendering, you shouldn't have any problems just sliding the timeline of the visuals along without any real cost or loss in accuracy.

Offline zeech

  • Jr. Spellcaster
  • **
  • Posts: 72
  • Magic Circuits: 1
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #184 on: August 28, 2011, 05:36:44 PM »
Cool, thanks.


Oh, just one more question.  So, in GGPO (and presumably 3rd Strike OE), you'll get most people blindly setting 0, 1 or 2 for their input delay, even if their ping is above 33ms.  Does that mean, in a match, almost every attack/input from the other player skips the first few frames?

Offline mauve

  • Soul Hacker
  • *****
  • Posts: 239
  • Magic Circuits: 144
  • 5̠̙ͩ͑̂ͭͧ̀͊̍2̵̠̟ͥ̀1̂̑̒ͥͯ̋ͫ̐ͣ҉̶̜̮̀4̩̳̬̠̯̲̠̲̼͑̊̌̃̀̚9ͮ
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #185 on: August 28, 2011, 05:40:58 PM »
Cool, thanks.


Oh, just one more question.  So, in GGPO (and presumably 3rd Strike OE), you'll get most people blindly setting 0, 1 or 2 for their input delay, even if their ping is above 33ms.  Does that mean, in a match, almost every attack/input from the other player skips the first few frames?
The delay/buffer value is considered to be a synchronization value more than anything else. You rollback the instant you receive _ANYTHING,_ so the setting is irrelevant.

The input delay setting applies for your local game, not for the opponent's view. They don't even have to match on the other side: It's a slider where you control the amount of input delay to reduce the amount of rollbacks that you, and you alone, see.

Offline zeech

  • Jr. Spellcaster
  • **
  • Posts: 72
  • Magic Circuits: 1
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #186 on: August 28, 2011, 06:09:50 PM »
(should I take this to PM's?  or maybe its interesting to others?)

I'm confused.  Here's what I thought the input delay was for:

- My ping to you is about 5 frames worth.
- I set my input delay to 2 frames.
- I press a button at frame 500, it generates a "At frame 502, do a jab" packet to send to you.
- 5 frames later (frame 505), you receive the packet, process the jab from the past (frame 502), and skip the first 3 frames of the jab's animation.

Whereas if my input delay was 5 frames, then you would see the entire animation of the jab properly.
In "real life", our screens would match up. (if we were testing in the same room with a latency simulator, for example.)

So my input delay setting doesnt matter to the rollbacks of my moves that I see on my screen at all, (except when my moves interact with yours).

eg.  You have your input delay set to zero.  Every attack you do has an instantaneous start time.
Since I receive packets 5 frames later, every one of your attacks instantly skips forward to the 5th animation frame.

Is this incorrect?
« Last Edit: August 28, 2011, 06:21:09 PM by zeech »

Offline mauve

  • Soul Hacker
  • *****
  • Posts: 239
  • Magic Circuits: 144
  • 5̠̙ͩ͑̂ͭͧ̀͊̍2̵̠̟ͥ̀1̂̑̒ͥͯ̋ͫ̐ͣ҉̶̜̮̀4̩̳̬̠̯̲̠̲̼͑̊̌̃̀̚9ͮ
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #187 on: August 28, 2011, 06:46:56 PM »
I don't care in the slightest if this thread gets clogged up. This is probably keeping people from posting stupid shit really.

And, yeah, that's more or less right, except in your two input delay example I think you meant 'skip the first 2 frames', not 3.

It's a tradeoff that hides stuff in favor of letting your buttons pop up smoother.

Offline mauve

  • Soul Hacker
  • *****
  • Posts: 239
  • Magic Circuits: 144
  • 5̠̙ͩ͑̂ͭͧ̀͊̍2̵̠̟ͥ̀1̂̑̒ͥͯ̋ͫ̐ͣ҉̶̜̮̀4̩̳̬̠̯̲̠̲̼͑̊̌̃̀̚9ͮ
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #188 on: August 28, 2011, 07:02:47 PM »
I don't care in the slightest if this thread gets clogged up. This is probably keeping people from posting stupid shit really.

And, yeah, that's more or less right, except in your two input delay example I think you meant 'skip the first 2 frames', not 3.

It's a tradeoff that hides stuff in favor of letting your buttons pop up smoother.

Oh. I should clarify, though, that if you push the base input delay up, you're essentially stating that you don't need input until that frame, so it's likely that the game will synchronize on _that_ frame, which means you will get less rollback from the opponent since they'll still be syncing to the original frame value.

Offline zeech

  • Jr. Spellcaster
  • **
  • Posts: 72
  • Magic Circuits: 1
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #189 on: August 29, 2011, 04:41:05 AM »
Oh. I should clarify, though, that if you push the base input delay up, you're essentially stating that you don't need input until that frame, so it's likely that the game will synchronize on _that_ frame, which means you will get less rollback from the opponent since they'll still be syncing to the original frame value.

Sorry, I'm not really sure I understand what you are saying here.  Are you saying, if I set an input delay of 5, and press a button, the game wont actually try to send the packet until 5 frames later??  That seems kinda bad?


If the scenario I posted above was correct (apart from some minor maths fail :) ), then doesnt it mean that a person who sets his input delay to 0, will get instant response on his own screen, and cause maximum skipping and rollbacks on his opponent's screen?   Doesnt it mean that setting zero delay gives you an advantage over your more considerate opponent?

Offline mauve

  • Soul Hacker
  • *****
  • Posts: 239
  • Magic Circuits: 144
  • 5̠̙ͩ͑̂ͭͧ̀͊̍2̵̠̟ͥ̀1̂̑̒ͥͯ̋ͫ̐ͣ҉̶̜̮̀4̩̳̬̠̯̲̠̲̼͑̊̌̃̀̚9ͮ
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #190 on: August 29, 2011, 08:59:01 AM »
Sorry, I'm not really sure I understand what you are saying here.  Are you saying, if I set an input delay of 5, and press a button, the game wont actually try to send the packet until 5 frames later??  That seems kinda bad?


If the scenario I posted above was correct (apart from some minor maths fail :) ), then doesnt it mean that a person who sets his input delay to 0, will get instant response on his own screen, and cause maximum skipping and rollbacks on his opponent's screen?   Doesnt it mean that setting zero delay gives you an advantage over your more considerate opponent?

No, this is wrong. It's about the synchronization between the two systems. Take the following example.
  • There is a buffer value of 5 frames set for the match, to indicate an upper bound on the latency between the players. This is used to synchronize the games and prevent them from becoming too far apart, eg through packet loss or one computer slowing down.
  • Current frame is represented here by the value N.
  • The synchronization frame is N+Buffer-Input_Delay. This is because literally the only reason you would add input delay is to reduce the amount of visible rollbacks.
  • Player A has input delay 0 set. When he presses a button, it sends data for the frame N+0. Player A synchronizes for time N+Buffer-Input_Delay = N + 5, and will not proceed until this data is received. Player A will see 5 frames of rollbacks from Player B.
  • Player B has input delay 5 set. When he presses a button, it sends data for the frame N+5. Player B synchronizes for time N+Buffer-Input_Delay = N + 0, and will not proceed until this data is received. Player B will see no rollbacks from player A.
  • Player A and Player B are thus waiting on different frames(N+5 vs N+0), and sending data for different frames(N+0 vs N+5), causing a net change of zero.
  • Both players will be showing the opponent's data as soon as it is received, it's simply a matter of trading off input delay vs rolling back.
  • In the event that both players are sending data for N+0, they will still synchronize at N+5, causing both players to run the game 'ahead' by 5 frames. You can't erase latency.
This is the implementation as in RollCaster. Newer versions of GGPO have a separate synchronization clock which is far more lenient, sometimes allowing up to half a second of data loss without any frame drops, but this has its own drawbacks.

RollCaster has few special rules for handling packet loss, allowing one frame of drop before holding the game up, is handled as follows:
  • There is a GracePeriod value that is initialized to zero.
  • If the data for the next synchronization frame is not received and the GracePeriod value is zero, flag GracePeriod and run the game one frame anyway.
  • If GracePeriod is non-zero and not all data for frames up to the synchronization frame are received, block and wait.
  • If the data for all frames up to now are received, reset GracePeriod to zero.
AFAIK there's a bug which causes issues with spectators in this, but I don't know where it came from.
« Last Edit: August 29, 2011, 09:08:00 AM by mauve »

Offline sibladeko

  • Melty Muffin
  • ***
  • Posts: 66
  • Magic Circuits: 5
    • View Profile
    • FUTAE NO KIWAMI AAAAAAAAAAH!!!
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #191 on: August 29, 2011, 09:11:05 AM »
And this is why programming grades in universities are reverse bell curves.
"It's like Marvel with all Cables!"
-jwong on IaMP

Offline Komidol

  • Magus
  • *****
  • Posts: 1123
  • Magic Circuits: 57
  • わが名は征服王コミドール!、この大会のたびにおいては、フル琥珀のクラスを得てげんかいした!
    • View Profile
    • The Kingdom of Biscotti
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #192 on: August 29, 2011, 02:13:15 PM »
(should I take this to PM's?  or maybe its interesting to others?)

I'm reading.
GenericSuperHero: komidol's not a nerd, he's a visionary
AnFox: H-mech IS a character.
Exciel: It's 2011, use whoever the hell you want already. Fuck haters and relish the salty tears that drip from their skulls as you stand victorious.

Offline zeech

  • Jr. Spellcaster
  • **
  • Posts: 72
  • Magic Circuits: 1
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #193 on: August 30, 2011, 03:40:10 AM »
(1)
  • In the event that both players are sending data for N+0, they will still synchronize at N+5, causing both players to run the game 'ahead' by 5 frames. You can't erase latency.


(2)
  • If GracePeriod is non-zero and not all data for frames up to the synchronization frame are received, block and wait.
Ah ok.  I didn't know about the synchronisation part.

1. So both players have set 0 input delay.  I know I said that there are 5 frames of latency between the players, but how does rollcaster know that it needs to sync at N+5?  Does rollcaster measure the ping and decide on a value internally, outside of the control of the players?

2. Does rollcaster send an update every frame?  Or just when events occur / inputs are received?  How does it know when "all" data for a frame has been received?

Offline mauve

  • Soul Hacker
  • *****
  • Posts: 239
  • Magic Circuits: 144
  • 5̠̙ͩ͑̂ͭͧ̀͊̍2̵̠̟ͥ̀1̂̑̒ͥͯ̋ͫ̐ͣ҉̶̜̮̀4̩̳̬̠̯̲̠̲̼͑̊̌̃̀̚9ͮ
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #194 on: August 30, 2011, 07:35:02 AM »
Ah ok.  I didn't know about the synchronisation part.

1. So both players have set 0 input delay.  I know I said that there are 5 frames of latency between the players, but how does rollcaster know that it needs to sync at N+5?  Does rollcaster measure the ping and decide on a value internally, outside of the control of the players?

2. Does rollcaster send an update every frame?  Or just when events occur / inputs are received?  How does it know when "all" data for a frame has been received?
Latency is measured at the beginning of a connection and can be manually tweaked by the players afterwards. There's no need for this, a smarter system could analyze the ping throughout, but it's not that important.

Yes, input is sent every frame, even if there is no change, for purposes of sync.

Offline zeech

  • Jr. Spellcaster
  • **
  • Posts: 72
  • Magic Circuits: 1
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #195 on: August 30, 2011, 08:04:07 AM »
Cool, I understand a lot better now.  Thanks for answering my questions.  Looking forward to your excellent work on MBAACCPC ;)

Offline Lukahn

  • Apprentice
  • *
  • Posts: 3
  • Magic Circuits: 0
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #196 on: September 02, 2011, 06:07:38 AM »
Well I think It might not be so bad. A PC port means a compatibility with pretty much all arcade sticks btw. Better than PS2 controller anyway.

And maybe we can hope netplay like Act Cadenza ?

Offline abitofBaileys

  • zzz
  • Germaniac
  • *****
  • Posts: 2036
  • Magic Circuits: 159
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #197 on: September 02, 2011, 07:49:49 AM »
Did you read anything in this thread?

Offline mauve

  • Soul Hacker
  • *****
  • Posts: 239
  • Magic Circuits: 144
  • 5̠̙ͩ͑̂ͭͧ̀͊̍2̵̠̟ͥ̀1̂̑̒ͥͯ̋ͫ̐ͣ҉̶̜̮̀4̩̳̬̠̯̲̠̲̼͑̊̌̃̀̚9ͮ
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #198 on: September 02, 2011, 12:29:09 PM »
Did you read anything in this thread?
reading's for scrubs

Offline Lord Knight

  • Spellcaster
  • ***
  • Posts: 606
  • Magic Circuits: 71
  • Without love, it is lost
    • View Profile
Re: The MB:AA:CC:PC thread: at least the netplay will be good
« Reply #199 on: September 05, 2011, 07:55:20 PM »
im fine with it being after NEC

that means some drunk guy wont spill his liquor over someones PC
Keep climbin', gotta get to the top