Unoffical empeg BBS

Quick Links: Empeg FAQ | RioCar.Org | Hijack | BigDisk Builder | jEmplode | emphatic
Repairs: Repairs

Topic Options
#202409 - 03/02/2004 17:34 Soul Calimeter
mschrag
pooh-bah

Registered: 09/09/2000
Posts: 2303
Loc: Richmond, VA
We play Soul Calibur 2 every day at work and I've finally gotten fed up with trying to guess at all the statistical data about best character, best matchups, wins/losses, etc. And of course, there's no SC2 API that I can hookup to So I've been working on an app that uses a video capture card to grab the SC2 video and screen scrape data (current characters playing, who wins each round, who wins the battle, health recorded throughout the fight, etc). So hopefully we'll end up with a huge database of Soul Calibur statistics -- so when your fight starts, the computer can tell you who is favored to win, how long the fight might last, it will be able to show you your best character, overall best character, best matchups for you, etc. I can't wait -- There's no such thing as too much data analysis

Anyway, this leads me to one issue we have. There are as many as 5 or 6 people who rotate the controllers in a circuit. The rotation rules are very strict, so conceivably I could just have the computer tell us who is up for 95% of the time. But my concern is when there are exhibition matches after the tournament when people are leaving and the rotation breaks down. What I really want is to somehow be able to figure out who is actually playing at the moment.

This is my problem, though -- I can't come up with any reliable way to actually figure it out. Anyone have any clever ideas? I've considered making a small IR transmitter for each person that they can just press a player 1 or player 2 button when they come up, but that kind of sucks. The other option is maybe voice recognition -- pretty limited grammar of words, but it's a pretty noisy environment (what with soul calibur going in the background).

The other thing I can't wait to make is the Choke Alarm so when someone falls behind after winning the entire fight they can be sure to be demoralized by the computer notifying everyone in the room of it

ms

Top
#202410 - 03/02/2004 17:37 Re: Soul Calimeter [Re: mschrag]
loren
carpal tunnel

Registered: 23/08/2000
Posts: 3826
Loc: SLC, UT, USA
You could sell the hell out of this software... you do realize this...
_________________________
|| loren ||

Top
#202411 - 03/02/2004 21:10 Re: Soul Calimeter [Re: mschrag]
eliceo
enthusiast

Registered: 18/02/2002
Posts: 335
This does sound really cool, as the reason my friends and I play these games is to make fun of each other. Stats like this would make for some better and/or angrier players. Any particualr console you are working on?

Top
#202412 - 03/02/2004 21:27 Re: Soul Calimeter [Re: eliceo]
mschrag
pooh-bah

Registered: 09/09/2000
Posts: 2303
Loc: Richmond, VA
We play on GameCube at work, but I have it on XBox at home ... While I've been waiting for my capture card to be delivered I've been developing off of an AVI I made of screenshots from the XBox version.

Top
#202413 - 03/02/2004 21:28 Re: Soul Calimeter [Re: loren]
mschrag
pooh-bah

Registered: 09/09/2000
Posts: 2303
Loc: Richmond, VA
We'll see how it ends up ... It may just end up being a bizarre frankenstein app for a while.

Top
#202414 - 03/02/2004 22:41 Re: Soul Calimeter [Re: mschrag]
JeffS
carpal tunnel

Registered: 14/01/2002
Posts: 2858
Loc: Atlanta, GA
As an alternative to the IR solution you could use something like an ibutton. Same issue I suppose, but at least you could create custom decoder rings.
_________________________
-Jeff
Rome did not create a great empire by having meetings; they did it by killing all those who opposed them.

Top
#202415 - 04/02/2004 04:42 Re: Soul Calimeter [Re: mschrag]
drakino
carpal tunnel

Registered: 08/06/1999
Posts: 7868
It's a shame no other game has copied the amazing amount of statistics Super Smash Brothers Melee keeps. Every person who has played on my system has their name entered, and with such stats, we can see who does best with what character.

Let me know how the program goes, I do have my consoles hooked up to my media PC, so even without player tracking, it could lead to some interesting stats.

Top
#202416 - 16/02/2004 16:28 Re: Soul Calimeter [Re: drakino]
mschrag
pooh-bah

Registered: 09/09/2000
Posts: 2303
Loc: Richmond, VA
For those who care about such things Here's a recording from the second of a two fight game:

GameManager.globalEventOccurred: [VideoEvent: name=Fight!!; mask=[Mask: height=30; width=102; maskName=events/fight.raw]]
GameManager.fightStarted
GameManager.healthChanged: [Person: name=Mel; id=3]; health = 100
GameManager.healthChanged: [Person: name=Schrag; id=1]; health = 100
GameManager.healthChanged: [Person: name=Mel; id=3]; health = 92
GameManager.healthChanged: [Person: name=Schrag; id=1]; health = 95
GameManager.healthChanged: [Person: name=Mel; id=3]; health = 87
GameManager.healthChanged: [Person: name=Mel; id=3]; health = 81
GameManager.healthChanged: [Person: name=Schrag; id=1]; health = 87
GameManager.healthChanged: [Person: name=Mel; id=3]; health = 77
GameManager.healthChanged: [Person: name=Mel; id=3]; health = 71
GameManager.healthChanged: [Person: name=Schrag; id=1]; health = 83
GameManager.healthChanged: [Person: name=Mel; id=3]; health = 62
GameManager.healthChanged: [Person: name=Mel; id=3]; health = 52
GameManager.healthChanged: [Person: name=Mel; id=3]; health = 45
GameManager.healthChanged: [Person: name=Mel; id=3]; health = 41
GameManager.healthChanged: [Person: name=Schrag; id=1]; health = 78
GameManager.healthChanged: [Person: name=Schrag; id=1]; health = 72
GameManager.healthChanged: [Person: name=Mel; id=3]; health = 34
GameManager.healthChanged: [Person: name=Mel; id=3]; health = 27
GameManager.healthChanged: [Person: name=Schrag; id=1]; health = 54
GameManager.healthChanged: [Person: name=Schrag; id=1]; health = 51
GameManager.healthChanged: [Person: name=Schrag; id=1]; health = 47
GameManager.healthChanged: [Person: name=Schrag; id=1]; health = 36
GameManager.healthChanged: [Person: name=Mel; id=3]; health = 18
GameManager.healthChanged: [Person: name=Mel; id=3]; health = 11
GameManager.healthChanged: [Person: name=Mel; id=3]; health = 6
GameManager.healthChanged: [Person: name=Schrag; id=1]; health = 31
GameManager.healthChanged: [Person: name=Schrag; id=1]; health = 27
GameManager.healthChanged: [Person: name=Mel; id=3]; health = 1
GameManager.contextEventOccurred: [VideoEvent: name=KO; mask=[Mask: height=33; width=70; maskName=events/ko.raw]]
GameManager.fightEnded
GameManager.winsChanged: [Person: name=Schrag; id=1]; wins = 2
GameManager.fightEndedWithKO: winningPlayer = [Player: person=[Person: name=Schrag; id=1]; character=[Character: name=Xianghua; id=22]; controller=[Controller: name=Player 2; id=2]; health=27; wins=2]
GameManager.gameEnded: winningPlayer = [Player: person=[Person: name=Schrag; id=1]; character=[Character: name=Xianghua; id=22]; controller=[Controller: name=Player 2; id=2]; health=27; wins=2]
DatabaseGameListener.gameEnded: [Game: id=1076969756100; startTime=1076969756100; winner=[Player: person=[Person: name=Schrag; id=1]; character=[Character: name=Xianghua; id=22]; controller=[Controller: name=Player 2; id=2]; health=27; wins=2]; draw=false; players=[class com.inzyme.soulcalimeter.Player[] of length 2]; fights=[class com.inzyme.soulcalimeter.Fight[] of length 2]; endGameEvent=com.inzyme.soulcalimeter.WinEvent@19c4091; currentFight=[Fight: duration=47398; active=false; startTime=1076969868381; winner=[Player: person=[Person: name=Schrag; id=1]; character=[Character: name=Xianghua; id=22]; controller=[Controller: name=Player 2; id=2]; health=27; wins=2]; draw=false; endTime=1076969915779; endGameEvent=[KOEvent: time=1076969915779; player=[Player: person=[Person: name=Schrag; id=1]; character=[Character: name=Xianghua; id=22]; controller=[Controller: name=Player 2; id=2]; health=27; wins=2]]; healthEvents=[class com.inzyme.soulcalimeter.HealthEvent[] of length 28]; timeUp=false]]
GameManager.checkForNewGame: Created game [Game: id=1076969915850; startTime=1076969915850; winner=null; draw=false; players=[class com.inzyme.soulcalimeter.Player[] of length 2]; fights=[class com.inzyme.soulcalimeter.Fight[] of length 0]; endGameEvent=null; currentFight=null]
GameManager.checkForNewGame: [Player: person=[Person: name=Mel; id=3]; character=null; controller=[Controller: name=Player 1; id=1]; health=0; wins=0] vs [Player: person=[Person: name=Schrag; id=1]; character=null; controller=[Controller: name=Player 2; id=2]; health=0; wins=0]
GameManager.globalEventOccurred: [VideoEvent: name=Character Select; mask=[Mask: height=12; width=116; maskName=events/characterSelect.raw]]
GameManager.characterChanged: [Person: name=Schrag; id=1] chose [Character: name=Xianghua; id=22]
GameManager.characterChanged: [Person: name=Mel; id=3] chose [Character: name=Taki; id=19]

Top
#202417 - 16/02/2004 16:41 Re: Soul Calimeter [Re: mschrag]
Dignan
carpal tunnel

Registered: 08/03/2000
Posts: 12338
Loc: Sterling, VA
The statistics for my friends and I are quite easy. I will try to step through them now:

1) I am Talim

2) They are the loser


HAHA!

But really, it's just that I played through the entire game, unlocking every little thing possible (including that story mode (yes, every time through)), with Talim, whereas they come over on the weekends and get their asses handed to them. It's quite simple and I don't need software for it

Besides, if a program told me I'd be best off fighting with Voldo, I wouldn't take its advice. I simply don't want to take the necessary amount of time to learn his fighting style
_________________________
Matt

Top
#202418 - 16/02/2004 16:54 Re: Soul Calimeter [Re: Dignan]
mschrag
pooh-bah

Registered: 09/09/2000
Posts: 2303
Loc: Richmond, VA
We've played SC/SC2 every day at lunch for the past 4 years ... Always unfortunate for visitors when they roll in here

We did just enough story mode to unlock Lizardman (which is just about everything except the all the extra weapons and clothing) ... It took forever -- it was like a marathon of playing everytime we sat down to just crank through it.

Some of the stats we're planning on running:
1) Total play time per person / total
2) Best/Worst character per person
3) Best/Worst character overall
4) Best/Worst character matchups per person
5) Best/Worst character matchups overall
6) % chance of winning a match given a particular character/opponent matchup
7) Predicated length of fight (given character/opponent matchup)
8) Choke alarm (huge swing in health) / Comeback King alarm
9) Longest/Most Exciting games
10) Alarm if someone doesn't select random on the selection screen (that's our in-house rules)
11) Win streak in a circuit (so if I've rotated in against you and lost the last five times in a row, it will say that)
12) Most Blockful Player/Game (longest timespan with no health loss)
13) % chance of ending in a Ring Out vs Time Up vs KO
14) Impending Perfect warning

Phew. That's all I can think of off the top of my head, but you can see the potential ... I'm going to be hooking it up to the AT&T Natural Voices for voice synthesis too, so I'm thinking some NFL-style stats-based voiceovers are going to be in its future. It's basically a huge timesink of interesting problems

Top
#202419 - 08/04/2004 03:09 Re: Soul Calimeter [Re: mschrag]
Geoff
enthusiast

Registered: 21/08/1999
Posts: 381
Loc: Northern Ireland
Congratulations on the Slashdotting!
_________________________
Geoff
---- -------
Mk1 Blue - was 4GB, now 16GB
Mk2 Red - was 12GB, now 60GB

Top
#202420 - 08/04/2004 06:15 Re: Soul Calimeter [Re: Geoff]
mschrag
pooh-bah

Registered: 09/09/2000
Posts: 2303
Loc: Richmond, VA
Man am I glad I put that page at mac.com It was funny -- I was sitting there and all of a sudden I got like 10 emails all at once about it. Couldn't figure out what in the world was going on until the last email said at the end "have fun being slashdotted"

So depressing that the underwater scuba scooter got 5 times more comments than my story though

Top
#202421 - 08/04/2004 06:34 Re: Soul Calimeter [Re: mschrag]
Geoff
enthusiast

Registered: 21/08/1999
Posts: 381
Loc: Northern Ireland
In reply to:

So depressing that the underwater scuba scooter got 5 times more comments than my story though



But it's quality rather than quantity that counts
The most negative comments I saw about Soul Calimiter were the one or two from people who thought it should have had a different name... that's got to be good going for a story on /.
_________________________
Geoff
---- -------
Mk1 Blue - was 4GB, now 16GB
Mk2 Red - was 12GB, now 60GB

Top
#202422 - 09/04/2004 12:54 Re: Soul Calimeter [Re: mschrag]
drakino
carpal tunnel

Registered: 08/06/1999
Posts: 7868
So any update on releasing something? I'd love to give this a try, as SC was even more popular at my house this last round with enough wavebird controllers to go around.

Top
#202423 - 09/04/2004 13:57 Re: Soul Calimeter [Re: drakino]
mschrag
pooh-bah

Registered: 09/09/2000
Posts: 2303
Loc: Richmond, VA
We definitely are going to release ... there was a pretty big response from slashdot actually. There's actually an open discussion with a company that does game tournaments though, so we won't release until that is worked out.

ms

Top
#202424 - 10/04/2004 16:01 Re: Soul Calimeter [Re: mschrag]
image
old hand

Registered: 28/04/2002
Posts: 770
Loc: Los Angeles, CA
shoryuken.com?

Top
#202425 - 10/04/2004 23:50 Re: Soul Calimeter [Re: image]
mschrag
pooh-bah

Registered: 09/09/2000
Posts: 2303
Loc: Richmond, VA
I don't know what I'm allowed to say about it at this point, but it's not them ...

Top