Caster and CowCaster

stay up to date on what's going on
Post Reply
Xenozip.
Posts: 1574
Joined: Mon Dec 18, 2006 2:24 pm
Location: N.EC
Contact:

Caster and CowCaster

Post by Xenozip. »

I'd like to take a moment to talk about a topic that has been very interesting to me for the past few months. The subject: Caster.

Originally, Caster was written to be an external program for netplay for the game IaMP. What this means is that it's a separate program from the game, you run it and you use it to connect to other people and play the game.

Since then, it has been rewritten for SWR (IaMP's sequel) and MeltyBlood.

However, here's the important part: Mauve has rewritten the Caster into a new client he calls CowCaster and now it's no longer just for netplay, but it also does numerous other things than just connecting players with each other, and they are extremely awesome and exciting features.

I will copy and paste the details of what CowCaster is capable of in a bit (there's quite a lit), but first I'd like to talk about some other things.

If you are only interested in that, then please by all means skip my babble and head strait to the list.

GGPO is a netplay that uses Prediction. What that means is that the game actually runs in advance. In other words, ahead of real-time. That means that there isn't any input delay between your button press and what actually happens, but there is differences in what you see as apposed to what's actually happening. Since the game is running in advance, some one might input a throw command, and you might jump right when you see it occur, but unfortunately that was too late because by the time you saw it the throw had already occurred and therefor it skips back and you get thrown.

Input Delay is the opposite. What you see is what you get, but your inputs are not accepted immediately. With a 3-Delay, you push a button, and the actual action occurs 3 frames later. This can also cause similar problems as Prediction. To use the same example as above, some one might attempt to throw you and you see it occur then press jump, but unfortunately even though you pushed the button on time with what you saw, the actual jump input wasn't accepted until later so you got thrown.

Now, there has been a lot of interesting discussion around the communities that I frequent about which is more preferable; Delay or Prediction. A lot of the general consensus has been that it depends entirely on the game. For a game like SFA2, Prediction might actually be better since there are quite a lot of just-frame input timings that you really need to be able to press at the right time, based on what you see. But for other games, Delay may be much more preferable due the emphasis on movement, and always needing to see where you are and what is actually happening at any given moment, even if your inputs are delayed you need to be able to react very clearly to every frame.

Mauve and I recently had a discussion where we agreed that a netplay that was built around balancing both Prediction and Input Delay would be very interesting. I only hope this is seen some time in the future.

But, back to Caster and it's capabilities. A lot of the fighting game community has absolutely no idea about this client and what it can actually do, since the Caster written for Melty Blood is mostly just a stripped down version of caster that was designed only to connect people together and barely anything more than that.

That's sorta nice, but when you think about all the things that you can actually do with a game, things become more interesting.

Probably the best feature to Caster is the spectator-mode. This has been a concept since at least as far back as some of the earlier FPS games (Quake 1 comes to mind). Caster allows players to connect and watch other players playing a match. The cool thing is, is that a spectator-buffering was done so that this does not lag the players who are actually playing. This was done by buffering the data and sending it at low priority, and additionally a spectator-chain was done so that all new spectators who connect will connect to the first spectator in line, rather than connecting directly to the players who are playing. And the best part is that there is a fast forward mode, in case you are not fully caught up with what is actually happening. Basically this means you could hop on to a currently active game without lagging the players so you can watch, and catch up immediately to real-time (or choose not to).

My personal favorite feature by far has been Auto-Saving replays and Auto-Renaming replays based on time/date/player-name. It's a godsend to me since now every game I play is automatically saved and labeled by both players names, the time, and the date. And this works with spectating mode as well. Caster not only allows you to watch other games, but also save the recordings(replays) of these matches if you so choose (or choose not to). These replays can be shared with other players, reviewed and analyzed, and re-captured to be broad casted on other video mediums like YouTube.

Another extremely popular feature has been the implementation of custom colors for the character sprites being broad casted between players. Imagine if you were to play SF3 for example, but you were able to create custom palette swaps for your favorite characters, and these palettes swaps could be seen (and saved) over the network so that everyone could see them.

A great functionality to Caster has been using a Relay. What this does is that people who are behind firewalls or routers that are unable to host games will still be able to play using the Relay, which punches through routers. The Relay is basically a server that players can connect to, and the data is then routed through the server between players. Thus, it's no longer directly peer-to-peer, but it is a great benefit for those unable to bypass firewalls/routers.

Another great implementation has been the correction of some in-game code that caused players to normally desync (become unsynchronized) with one another during netplay due to a mathematical error in the code. This was fixed and now players with any kind of computer are able to play with one another without these desync issues.

The Japanese have also created a "Booster" which is a self-learning AI that gathers data from games played or replays watched and builds battle data off of what it sees. Caster allows players to play against this AI, and also lets Booster learn from the players during netplay matches or while replays are being watched. Although not the best AI around, it's certainly significantly better than the default AI.

There's numerous other features that have been added that are just <3 <3 <3. Such as disabling screen saves while the game is active, forcing always-on-top window mode so that other programs never steal focus, and the disabling of background music with a toggle.

This amazing utility needs more exposure, in my opinion, especially since it's open source. When I saw the Caster being rewritten so that it was compatible with a totally different game (MBAC) I damn near shit myself.

Although PC games and netplay in general isn't widely accepted by competitive players, I feel it's irrelevant. Just because other players don't find a use for it does not mean it's a bad thing. The real reason I became so inspired to post about this though, is that the player Brandino placed 1st at NEC in MeltyBlood, while the player Sphyra placed 5th in MeltyBlood at NEC, and these are both reputed netplay-only players (Sphyra in particular had never played offline before NEC). Brandino had to beat the community's top offline-only players such as Arlieth, Zar, Sp00ky, and MasterChibi. This, in my personal opinion, proves that netplay experience is nothing to scoff at. Especially when it connects you to a variety of player skills and styles nation-wide.

Since I mentioned Quake. I honestly feel that CowCaster is quite similar in form and function to the QuakeWorld netclient, which was an external client that allowed players to play Quake with improved netcode by connecting to servers (and also implemented several cool features like spectating and demo/replay recording).

And now for the CowCaster documentation:

(Features over regular Caster)

- New features:
* Replay autosaving. Originally from moeCaster.
* Automatic replay naming and file renaming when using autoSave
* Player name information transferred
* 4 more color slots for every character, and custom color edits
transferred to other players! Read palette.txt for info.
* Window resizing, UI render filtering.
* In-game BGM toggle
* Configurable keybinds.
* Infinite spirit cheat built-in
* Enhanced practice dummy to supplement IaMP's rather crummy built-in one.
It adds random guard, one-hit guard, selectable guard reactions, HJ
movement, random movement, move repeating, random guard crushes, random
attack, and configurable teching, amongst other things.

- Usability changes:
* config_caster.ini and info.ini translated to English.
* English documentation on general Caster usage added.
* Keyboard inputs no longer taken if window is not focused.
* Player 1 pad is optionally not bound if spectating, preventing charInit()
errors if you disconnect your pad when not playing.
* Player 2 pad is not bound if not in Broadcast mode, preventing
unnecessary charInit() errors relating to the secondary pad.
* Spellcard hiding has been fixed. Originally from moeCaster.
* Remembers the last picked characters after saving a replay.
* Automatically calculates a default delay on connecting.
* Can resolve hostnames now.
* All port options completely removed from main menu. In order to access a
non-standard port, enter the address in host:port form.
e.g: mizuumi.net:7500
* Remembers last chosen port and IP for connecting. Default Standby address
is now set to mizuumi.net
* roundShow flag can print out who won each match and the total number of
rounds won in a given session.
* Spectate option on main menu waits for the remote client to begin playing
before trying to connect.
* Get Information will now optionally report the remote host that the
destination is connected to if both clients are using CowCaster 070923
or later.
* Booster no longer listens when you play it when you don't want it to.
* noFast flag to disable high speed spectating.
* Can save a session log file, which keeps track of your matches.
* Names are optionally transferred when observing, so you can know who's
watching if they want you to know.
* Screensavers can be disabled.
* alwaysOnTop toggle key.
Looks like Jolly Ranchers & Baskin's Sherbet.
Maj
Posts: 6753
Joined: Wed Dec 13, 2006 12:53 am
Location: Los Angeles
Contact:

Re: Caster and CowCaster

Post by Maj »

That sounds awesome. Quality netplay is the only hope for survival for low-profile games. But that's kind of the issue right? Nobody's gonna pick up a game solely due to the excellence of its netplay client. They have to like the game itself first. Though as GGPO lures SRK into accepting netplay through nostalgic games like SFA2/MvC1, they'll probably become a lot more open to other online fighters.

I guess the main question is: Which is the more common case: Existing MvC1 players subscribing to GGPO after MvC1 support is added, or GGPO subscribers learning MvC1 from scratch due to satisfaction with SFA2 netplay?
Xenozip. wrote:the player Brandino placed 1st at NEC in MeltyBlood, while the player Sphyra placed 5th in MeltyBlood at NEC
Haha, this is exactly why i started writing players' names in bold.
Xenozip.
Posts: 1574
Joined: Mon Dec 18, 2006 2:24 pm
Location: N.EC
Contact:

Re: Caster and CowCaster

Post by Xenozip. »

Maj wrote:I guess the main question is: Which is the more common case: Existing MvC1 players subscribing to GGPO after MvC1 support is added, or GGPO subscribers learning MvC1 from scratch due to satisfaction with SFA2 netplay?
Both are common. To use MeltyBlood as an example, for the past two years it has been very unpopular in the US (struggling very hard), but now with the recent Caster netplay support it has acquired quite a following, both old players and new players have hopped on board. And with the recent hype at NEC it's expected to become even more popular. But the majority of the players are new players, though there are plenty of og players and a few IaMP players playing it.

Caster was a client that was pre-existing with IaMP, so when the IaMP players heard that Caster was rewritten for MB, some of them tried it out of curiosity and probably from familiarity with the netplay. Likewise, some of the MBAC players also tried IaMP. So far MB has been somewhat unpopular with the IaMP players, but IaMP has been a bit of an interest for a few MB players (HeartNana, Dakanya, Lokanas, Shardz, and myself spring to mind).

Though, to use Sphyra as an example again, he was originally an IaMP player who had never played MBAC until he heard Caster worked for it, then he became interested in trying it and played the game against some of the og. players until he familiarized himself with it. So now he's a MB player and an IaMP player, and he isn't the only one. But overall, I think there's less IaMP players playing Melty than there are Melty players playing IaMP (the IaMP players generally find MB's gameflow "silly"), although I certainly could name a few that regularly play both.

As far as MvC1 goes, I'm not really sure. If Caster supported it, I would personally try it, and probably get hooked on playing it regardless if I liked the game or not (cuz that's how I am). Though I believe the majority of the players would be Capcom fans, namely MvC2 players and MvC1 diehards, probably XvSF diehards as well.

It's my personal belief that fighting game enthusiasts get addicted to new fighting games very easily. All they really need to do is actually try it, and given the right 'comp they are likely to continue playing. A lot of obscure games catch a lot of random hate and general disinterest, but I've seen these same people get very enthusiastic about the game after actually trying the game. But alas, people need the games simply handed to them, most won't go seeking the experinece without direct encouragement to do so (either by a friend or by hype around them).
Maj wrote:Haha, this is exactly why i started writing players' names in bold.
Explain?

My Great Wall of Text masking the juicy bits?
Looks like Jolly Ranchers & Baskin's Sherbet.
Maj
Posts: 6753
Joined: Wed Dec 13, 2006 12:53 am
Location: Los Angeles
Contact:

Re: Caster and CowCaster

Post by Maj »

Xenozip. wrote:It's my personal belief that fighting game enthusiasts get addicted to new fighting games very easily. All they really need to do is actually try it, and given the right 'comp they are likely to continue playing.
Very true.
Explain?
When you're referencing an unfamiliar name, "Brandino" works just as well as "the player Brandino." The internet is a pretty big place, and i noticed that i namedrop random not-famous players fairly often. So i started using bold letters every time i mentioned someone for the first time in a discussion. Plus it helps maintain clarity when talking about people who use common lower-case words as nicknames, like laugh and desk, or people whose nicknames contain grammatical punctuations.
Xenozip.
Posts: 1574
Joined: Mon Dec 18, 2006 2:24 pm
Location: N.EC
Contact:

Post by Xenozip. »

Well as you can see, I'm not too shy about typing letters. Lots and lots of them. :B
Looks like Jolly Ranchers & Baskin's Sherbet.
Xenozip.
Posts: 1574
Joined: Mon Dec 18, 2006 2:24 pm
Location: N.EC
Contact:

Post by Xenozip. »

I should probably point out this place as the original home for Caster.

And this place is where CowCaster gets updated.

And here is where MBCaster can be found.

Being that they are open source, I encourage anyone familiar with programming to take a peek at them.
Looks like Jolly Ranchers & Baskin's Sherbet.
Xenozip.
Posts: 1574
Joined: Mon Dec 18, 2006 2:24 pm
Location: N.EC
Contact:

Re: Caster and CowCaster

Post by Xenozip. »

Some one over at Capcom been doing some reading?

http://www.capcom-unity.com/glake/blog/ ... i_hd_remix
Looks like Jolly Ranchers & Baskin's Sherbet.
Post Reply