Programming Pokemon Online replay player

Status
Not open for further replies.

Zarel

Not a Yuyuko fan
is a Site Content Manageris a Battle Simulator Administratoris a Programmeris a Pokemon Researcheris an Administrator
Creator of PS
Lots of updates today.

http://pokemon.aesoft.org/replay-Hobs-Goblin-vs-Serei--2011-03-02

The back sprite's size has been doubled. This lets me do cool perspective animations, and makes contact moves look a lot more "3D-ish" (isn't that perspectivey Bullet Punch amazing?).

On the downside, it looks really pixelated, like in BW. I REGRET NOTHING. (I might add a setting to un-double the back-sprite size if enough people complain, though.)

A background's been added. Should make the entire thing look less dull.

Aspect ratio's been changed to 16:10, from 4:3. Should fit YouTube and cell phones better. The toolbar's been rearranged accordingly.

A few non-perspective-related graphical updates have also been done. Switching in pokemon should look slightly nicer (I imitated the BW "drop" effect). Transform now correctly uses the animated sprite.
 
In other news, I've applied the back sprites from the animated sprite pack Tomxc helpfully packaged for me. With it, we've jumped from having around 5% of back sprites animated to around 70%. The sprites seem to be different from the ones I got from Arkeis in terms of speed and dimensions. :/ Someone should check to see if the front sprites are faster/slower than the game, and if the back sprites are faster/slower than the game, and if they're consistently the same factor.

If you do, make sure to use Firefox or Chrome. IE animates GIFs at incorrect speeds, and I don't know how Opera/Safari does GIF animation.
EDIT: *insert long-winded and ultimately unnecessary explanation*

tl;dr: as far as I can tell, all the sprites should be playing at 10fps. firefox is very good at butchering gif playing speeds.
 

Zarel

Not a Yuyuko fan
is a Site Content Manageris a Battle Simulator Administratoris a Programmeris a Pokemon Researcheris an Administrator
Creator of PS
EDIT: *insert long-winded and ultimately unnecessary explanation*

tl;dr: as far as I can tell, all the sprites should be playing at 10fps. firefox is very good at butchering gif playing speeds.
:(

I wanted to hear the long explanation.

Unfortunately, I don't know the exact settings Firefox, IE, and Chrome use for GIF playback or whether or not they've changed, but the way I understand it, IE slows down any gif faster than 10fps to 10fps, and Firefox doesn't. Unless I'm mistaken, I don't see how this translates to "Firefox butchers GIF playing speeds".

There's really only two important questions:

What framerate should the GIFs be changed to play at to match their normal (non-statused, non-red-HP) animation speed in BW? Is this the same framerate for every GIF?

(Well, three - the last is "are you sure?")

It sounds like your answer to these questions are "10fps" and "yes", but I'd like to know what you mean by "Firefox is very good at butchering gif playing speeds" first.
 
1) find youtube video of pokemon battle containing full victini animation: http://www.youtube.com/watch?v=njqyJhg_Ip0&t=33s
2) grab victini sprite from link i found: http://dialgafans.pytalhost.de/Back/494b.gif
3) determine that rip is much faster than in-game.
4) download rip, open in gimp, see that rip is set to 60ms/frame (16.67fps).
5) see that full animation takes 10 seconds. See that rip has 100 frames. Determine that rip should be moving at 100 ms/frame (10fps).
6) set rip to 10 fps.
7) upload slowed rip, see that it is much slower than in-game: http://oi52.tinypic.com/301hi4i.jpg
8) do again in chrome. get same results.
9) ???
10) either both ff and chrome screw up gif speeds, or gimp fails at setting gif speeds.
11) learn that you can play gifs in a powerpoint slideshow.
12) time gif while playing in slideshow.
13) gif plays in 10 seconds.
14) ???
15) ff and chrome mess up gif playback speeds.

EDIT: hrm...the in-game isnt actually playing at 10 fps...imma recheck

EDITEDIT: ah, that's the problem...the rips arent very exact...
take a look at the in-game victini. it has two distinct phases of movement: a 6-repeat loop and a completely different action
in the different action, at one point (right before he starts wiggling his ears) he almost teeters on his right foot for a fraction of a second
that teeter is absolutely not there in the rip...he just stomps his foot down
thats whats throwing my timing off


ignore all of the above. i cant for the life of me tell what the frame speed is supposed to be, i just know that ff and chrome play gifs at the wrong speeds, so check the gifs in powerpoint to get an accurate sense of the timing.
 

Kaphotics

Remodeling Kitchens
is a Top Researcher Alumnusis a Top Contributor Alumnus
Pretty sure the gif speeds are varied in battle; there's a RNG that determines their movements in battle (the Mersenne Twister) and then animates the patchwork sprite accordingly.

I wouldn't worry about the gif speed so long as it is around the same speeds you'd see in game.

One thing that would be cool is the post battle screen of who won and lost (with what pokemon). The box sprites that are used are available online on Veekun, but I DownloadedThemAll to a zip folder to contain all 730 images (formes etc). Here's the link.

Keep up the great work aeo!
 

Zarel

Not a Yuyuko fan
is a Site Content Manageris a Battle Simulator Administratoris a Programmeris a Pokemon Researcheris an Administrator
Creator of PS
One thing that would be cool is the post battle screen of who won and lost (with what pokemon). The box sprites that are used are available online I'm pretty sure :)
Will put on the to-do list.

That can happen when you have a slow Internet connection and the sprite isn't done loading. Just wait for it to load.

Oh, and I saw that pokèmon poisoned by Toxic lost 13% EVERY turn.
Do you have a link? I can't think of anything that would cause that. Are you sure it was Toxic, and not, like, a single layer of Toxic Spikes?
 
Hey, I noticed you wanted some LC battles to test, so I went through my logs and uploaded one from a few days ago: http://pokemon.aesoft.org/replay-Elevator-Music-vs-fatty--2011-08-23

It mostly did fine, except at turn 37/38/39 you can start to see the errors that came from hail damage. This happens because at level 5 the damage is rarely 1/16th of the Pokemon's HP, while I think the program just kind of assumes it is (because at level 100 it really doesn't matter). 99% of the time though the damage is only 1 HP (since the only poke that can get more than 32 HP is Munchlax), which is only like.... 3 or 4 or 5% depending on the poke.

Similar problems are recovery moves, entry hazard damage, and Life Orb recoil. Since recovery rounds up this gen, a lot of Pokemon with recovery moves run odd numbered HP stats (usually like 21, 23, 25), so instead of getting 50% of their HP back they get around 52% back. And with entry hazard damage, a Pokemon with 23 HP switching in while SR is up will really take 8.6% instead of 12.5%. In the same vein, many Pokemon with Life Orb only run an HP stat of 19, which drops the recoil to about 5%. None of those are as important as weather damage though, because weather damage adds up much faster.

Basically, the problem is anything where PO doesn't display a percent for the damage loss, so you have to assume damage percentage, and since every HP is ~5% in LC, the assumptions add up. Nothing incredibly new though. I don't know how to fix that or anything, but then again I would have no idea how to make this in the first place!

Anyways, since I hate to make solely negative posts, I just wanted to repeat what I told you on IRC and say that I still think this thing is awesome, and that all the problems addressed in my post are really pretty minor all considering (they really should only "glitch up" less than half the battles, so "w/e").

EDIT: Just clarifying that "SMienfoo" and "SChinchou" aren't glitched or anything, that's just terrible nicknaming on my part. Just thought there might be come possible confusion there.
 

Zarel

Not a Yuyuko fan
is a Site Content Manageris a Battle Simulator Administratoris a Programmeris a Pokemon Researcheris an Administrator
Creator of PS
Hey, I noticed you wanted some LC battles to test, so I went through my logs and uploaded one from a few days ago: http://pokemon.aesoft.org/replay-Elevator-Music-vs-fatty--2011-08-23
That was quite an informative replay. Apparently drowsiness from Yawn doesn't get Baton Passed, either.

It mostly did fine, except at turn 37/38/39 you can start to see the errors that came from hail damage. This happens because at level 5 the damage is rarely 1/16th of the Pokemon's HP, while I think the program just kind of assumes it is (because at level 100 it really doesn't matter). 99% of the time though the damage is only 1 HP (since the only poke that can get more than 32 HP is Munchlax), which is only like.... 3 or 4 or 5% depending on the poke.
This is one of the things that should be fixed by the latest version of PO, but I need a relevant replay to actually fix them.

Can you install this: http://sourceforge.net/projects/pogeymon-online/files/Pokemon-Online-Setup.exe/download

And then get another Little Cup replay file?

Anyways, since I hate to make solely negative posts, I just wanted to repeat what I told you on IRC and say that I still think this thing is awesome, and that all the problems addressed in my post are really pretty minor all considering (they really should only "glitch up" less than half the battles, so "w/e").
:)

In other news, punching attacks now show a fist, and bite attacks now show teeth. To do: claws for claw attacks.
 

Delta 2777

Machampion
is a Tiering Contributor Alumnusis a Contributor Alumnusis the Smogon Tour Season 10 Champion
In IE8, after the first Pokemon sent out is returned, its health bar remains on-screen, along with the new Pokemon sent out. In one of the logs I noticed three health bars were on one side at once when a Pokemon was Roared in.

I can give you a screenshot if it'd help.
 

Zarel

Not a Yuyuko fan
is a Site Content Manageris a Battle Simulator Administratoris a Programmeris a Pokemon Researcheris an Administrator
Creator of PS
Yes, I'm Crystal on there :3
I'm Anonymous on there. :3

In IE8, after the first Pokemon sent out is returned, its health bar remains on-screen, along with the new Pokemon sent out. In one of the logs I noticed three health bars were on one side at once when a Pokemon was Roared in.

I can give you a screenshot if it'd help.
I can give you a screenshot, too. ;)



I've fixed it, but in general your experience is going to be significantly worse on IE8 and below than on literally any other browser.
 
In other news, punching attacks now show a fist, and bite attacks now show teeth. To do: claws for claw attacks.
http://bulbapedia.bulbagarden.net/wiki/Iron_Fist_(ability)

If you're going to be true to Iron Fist, then make sure that Meteor Mash, Hammer Arm, and Sky Uppercut show punches, but Sucker Punch doesn't

(half the pokes that can learn sucker punch dont even have hands, let alone arms lol; it's called Surprise Attack in Japanese and so doesn't get the Iron Fist boost)
 

Zarel

Not a Yuyuko fan
is a Site Content Manageris a Battle Simulator Administratoris a Programmeris a Pokemon Researcheris an Administrator
Creator of PS
http://bulbapedia.bulbagarden.net/wiki/Iron_Fist_(ability)

If you're going to be true to Iron Fist, then make sure that Meteor Mash, Hammer Arm, and Sky Uppercut show punches, but Sucker Punch doesn't

(half the pokes that can learn sucker punch dont even have hands, let alone arms lol; it's called Surprise Attack in Japanese and so doesn't get the Iron Fist boost)
Heh, I knew about Sucker Punch; I am a pokemon nerd, you know. I also know Faint Attack is a typo that should have been Feint Attack. :P

I did add Meteor Mash and Hammer Arm to the punch animations. I don't think it needs to be that accurate, though - Close Combat doesn't get Iron Fist boosts but it still gets fist animations.
 

Zarel

Not a Yuyuko fan
is a Site Content Manageris a Battle Simulator Administratoris a Programmeris a Pokemon Researcheris an Administrator
Creator of PS
http://pokemon.aesoft.org/replay-Gazooki-vs-Thisisnotasmile--2011-02-20http://pokemon.aesoft.org/replay-Gazooki-vs-Thisisnotasmile--2011-02-20

Roar seems to sometimes not recognise the Pokemon behind the nickname. Salamence was showing up fine when it got roared in but Milotic always became invisible for some reason. I checked the log and every time it just shows the nickname, but it seems like when Salamence comes in it fills in the gaps whereas Milotic just confuses it.
http://pokemon.aesoft.org/uploads/Gazooki-vs-Thisisnotasmile--2011-02-20.html

Ctrl+F, look for Milotic. Nowhere in the entire replay does it say the word "Milotic".

There's nothing I can do about this. :( Update to the newest version of PO; it won't have this problem: http://sourceforge.net/projects/pogeymon-online/files/Pokemon-Online-Setup.exe/download

(Well, probably. I haven't tested it. Please link the new replay if you still have that problem.)

It recognizes Salamence because while it's roared in, it can still figure out it's a Salamence because it says "Gazooki sent out Trevor! (Salamence)" later on.
 
Hi! It's seems that I have found a bug here:
http://pokemon.aesoft.org/replay-WombatWilly-vs-I-M-Noone--29-aot-2011-at-01h07
Turn 19
Lilligant used Healing Wish, and then, nothing happens. :/

I don't really know if someone has already found that; I have tried to read the whole thread and it seems that Healing Wish had issues, but I'm not sure it was the same problem. If it's an already known bug, sorry. ^^'

PS: This log viewer is seriously fucking awesome, congrats.
PPS: sorry for my pretty bad English.
 

Zarel

Not a Yuyuko fan
is a Site Content Manageris a Battle Simulator Administratoris a Programmeris a Pokemon Researcheris an Administrator
Creator of PS
Hi! It's seems that I have found a bug here:
http://pokemon.aesoft.org/replay-WombatWilly-vs-I-M-Noone--29-aot-2011-at-01h07
Turn 19
Lilligant used Healing Wish, and then, nothing happens. :/

I don't really know if someone has already found that; I have tried to read the whole thread and it seems that Healing Wish had issues, but I'm not sure it was the same problem. If it's an already known bug, sorry. ^^'
You found a pretty obscure bug there. :) Crash when a pokemon behind a substitute tries to attack when there's no target. Don't worry, it hasn't been reported before, this new one actually doesn't have very much to do with Healing Wish. Fixed.
 
Status
Not open for further replies.

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top