|
Wow i'm so surprised at all the positive feedback. Thanks so much you guys! I'll try to answer all your questions and tweak or correct my post from your feedback.
On May 07 2009 20:04 pangshai wrote: when the larvae is morphing into an egg and you get the 5 animation frames, is it still considered a larvae, or is it an egg already?
Any unit morphing into an egg is immediately considered an egg. In other words, the larvae turns into an egg right after you click what unit to create, right when you morph a hydra into a lurker, or right when you morph mutalisks into guardians/devourers. thanks for pointing this out i will add it in.
On May 07 2009 21:26 justiceknight wrote: i wanna ask u something
when a drone is comes out from its egg,it always a bit before listen to my controls.Does it always like that cos its unlike other races where scv/probe appear from cc,i can move it imediately to the palce i want
During the 14 frames after the selected egg has become the unit you morphed it into (when it has the same percentage of health as the egg, hatching sound plays, minimap pings, etc), it does not have any action buttons. (no move, attack, patrol, stop, etc). This is why you cannot control the unit in this short time.
On May 08 2009 02:19 Chef wrote:Ahahha, this is great. SC University papers! Here's looking forward to more papers from this class. Please post them if you are attending :D Show nested quote + Mutalisks morphing OUT of guardians that die have the normal mutalisk death animation. Mutalisks morphing OUT of devourers that die have no death animation (disappear).
Nothing major, but I think this needs to be reworded (guardians morph out of their cocoons, Mutalisks only morph out of eggs).
aha yea whoops, i should have proofread this one more time. Thanks for pointing this out.
|
And people say that Starcraft has crappy animation.
|
This was very interesting. Thanks for taking the time to write it up!
|
Wow, haha, this was actually VERY interesting, especially the animation breakdowns. Good stuff!
|
On May 07 2009 18:02 Aqo[il] wrote: I'm not sure if you're aware of this but checking stuff like this is very easy with Starcraft modding tools such as ICE or IceCC (depends on your preference) which are very easy to acquire. You didn't have to go through the trouble of slowing down the game and testing those things like it looks you did, a quick glance at the scripts explains all those supposedly mysterious SC behaviors very quickly.
Also, Starcraft runs at 8 frames per second on Normal game speed, and 50% faster on fastest, which is 12 frames per second. This might feel slow to you because you're used to D3D accelerated graphics that reach numbers like 30-60FPS but for what appears to be a DD engine from 1997 that utilizes 8-bit indexed graphics this is pretty decent.
This also means that SC runs at 4 frames per second on slowest game speed. Try it out, enter singleplayer and spam the -/_ key, then tell a walking unit to move while looking at your clock. I don't think you're correct on 12 frames per second for fastest. Each frame on fastest is 42ms, so if you divide 1000ms/42ms, you get 23.8fps. Normal speed is 67ms per frame, which is 14.9fps. Slowest is 167per frame, which is 5.98fps. (All of those frame delay values are taken from SC memory, so they're 100% correct)
|
On May 07 2009 13:39 anch wrote: Zerg Biology class material. lol i laughed, it actually makes sense
|
Where did you get 42ms from? Maybe 42 is just a rounded version of 41.667, and the 23.8fps number you came up with is 24fps, which makes a lot more sense from the programmer's perspective. Also what MasterOfChaos said earlier was correct, I earlier disregarded the fact that most SC sprites use a delay of 2 ticks and not 1 so the 12 number really is actually supposed to be 24 -.-. Now that I think of it, it also matches the fact that in Starcraft's weapons.dat file which stores cooldowns for weapon attacks, a cooldown of 24 equals one second on fastest.
|
BWRepLib from JCA //---------------------------------------------------------------------------------------------------- // Replay Actions - jca (May 2003) //---------------------------------------------------------------------------------------------------- //------------------------------------------------------------------------------------------------------------
// to convert ticks to seconds const float BWrepAction::m_timeRatio = 23.8f;
this is from the BWRepLib of JCA. If you check the time after a game and compare it to the time in a replay its different. If you open a replay and check the time at the end and compare it with the one from bwchart its pretty accurate. I used a constant <24 too when i made APM calculations for a APM display ingame. Im pretty sure its not exactly 24. it also makes more sense from a programmers point of view to have an integer as delay (42ms) and not the fps rate which is rather unimportant to be accurate.
|
Great post. Look forward to reading more from your class.
|
On May 07 2009 23:53 Chill wrote: Interesting, although I can't really see any applications of it to the game. It's still really interesting to read about though.
Exactly what I thought
|
The next step would be, how does this relate to the Art of War?
Kinda easy actually.
|
On May 07 2009 15:12 AttackZerg wrote:Show nested quote +On May 07 2009 14:38 Superiorwolf wrote:Berkeley class final! Good work, I give it an A+! Very interesting to see the mechanics of egg hatching and why they disappear  Thank you  huh? None of this occured to you while playing ..... ever? It's a fucking class final and the guy put some nice effort into it, I was interested when I was reading it to understand why the eggs actually disappear. And no, this didn't occur to me when I played because I didn't know there were a few frames where the units health was different, all I knew was that if you attack the egg sometimes it doesn't spawn. Be supportive of someone's final, faggot.
|
Cool topic . Good thing it was linked on the front page, I probably would have missed it otherwise. I always assumed that the dissapearing thing had to do with cancelling an egg just as the hatching animation started (yeah, I don't actually play very much).
|
you can always look at the source when you want info about scbw animation data (iscribt.bin in your *.mpqs, need winmpq f.e. to extract files from mpqs(similar to zips), then 'decompile' the binary animation script file(/rez/iscript.bin iirc) with IceCC to plaintext animation script, where you will find ALL the scbw in-game animation data(pointers to various grps(scbw's multiframe graphics file format) and to the wavesounds (sometimes indirectly via linking through a dat file (the games static data storage file format))
hf
|
it also makes more sense from a programmers point of view to have an integer as delay (42ms) and not the fps rate which is rather unimportant to be accurate. Why would you choose an integer as arbitrary as 42 (douglas adams comes to mind)? In my programs I use a division mechanism, i.e., you tell it the FPS with a function call during initialization and it adjusts the delay accordingly. For example, if I tell it I want 60 FPS it'll set the delay to 1000/60 which is 16.667. I don't think some programmer was sitting down and thinking "oh 42 millisecond of delay sounds like a good amount".
|
Boring essay really. Its interesting to note but its not a significant discovery of any sort. I don't think it will affect the game too much to be honest.
|
On May 10 2009 22:40 XATMO8G wrote: Boring essay really. Its interesting to note but its not a significant discovery of any sort. I don't think it will affect the game too much to be honest.
Okay.
|
United States4126 Posts
The funny thing is, this happened in Effort v Flash which I saw right after I read this topic. What a coincidence
|
i was ready to flame after seeing the first 3 pictures - as I was not aware of how long and specific the post was. Good job, and good research.. very useful
|
|
|
|
|