Replay Rewind - a second look - Page 3
Forum Index > SC2 General |
Nitro68
France470 Posts
| ||
tec27
United States3700 Posts
On April 01 2009 03:44 SonuvBob wrote: do it do it do it do it do it do it do it do it! ![]() Maybe doable, the max speedup I can see getting (for caching the replay initially) is about 1.4 seconds per minute of gameplay (since each fastest frame is 42ms, and therefore the max we can speed the game up is to 1ms per frame). I guess thats reasonable, now I just need to figure out the optimal way to save game states ![]() On April 01 2009 05:14 Nitro68 wrote: It's a little bit off topic but how does a replay work with random things ? Like, if you have 30% chance to hit against upperground units, how can a replay works everytime ? The random "seed" is in the replay ? Correct. | ||
stk01001
United States786 Posts
| ||
CharlieMurphy
United States22895 Posts
| ||
404.Nintu
Canada1723 Posts
On April 01 2009 05:16 stk01001 wrote: i know nothing about programming, all I do know is that your wrong, rewinding replays is not as easy as you say. If you understand how replays work, how starcraft works and have any logical thinking ability then it's pretty obvious your wrong.. A great post. "I don't know if you're right or wrong, but I do know you're wrong and lack any logical thinking ability." The concept of rewinding replays is simple, it's the technical aspect that makes it difficult. You seem like you're just trying to sound intelligent by flaming someone for being wrong, when you don't know how or why they're wrong. lol@TLstreetcred | ||
DeathSpank
United States1029 Posts
just reopen the replay and ultra fast fwd! XD I win! | ||
prOxi.swAMi
Australia3091 Posts
This, imo, is the solution. (I didn't read page 2 and 3, sorry if someone alrdy posted this) | ||
DeathSpank
United States1029 Posts
| ||
onmach
United States1241 Posts
As for randomness, I'd bet that they seed a random based on game time, and perhaps the units id number. So basically it adds up (for example) the number of seconds played + the unique number of the unit that is firing, use that number to generate a random number which determines whether it hits a unit on hire ground. So during the game or during replay, the unit number and attack time will always match up causing the unit to either always miss or always hit, but the player would perceive it as random and be unable to predict such an outcome during a game. As for what method will be used, they will probably use save checkpoints plus fast forwarding. The reason they'll do this is because they already had to write the save game code anyhow, so they might as well use it, and they already had to write the replay code that could go at any speed, so they'll slap those together in half a day, tweak the snapshot length until they have a happy medium between size and speed and get on with coding the rest of the game. Of course it may turn out that fast forwarding is all they need, given that the game logic really isn't much more complex that it was in BW, unit pathing aside. So don't worry about it, it is hardly the worst engineering problem this team has had to deal with. | ||
D10
Brazil3409 Posts
On March 31 2009 17:25 Bill307 wrote: Oh yeah, and let's not forget how the game would also have to save the ending times of every single animation in the game. But can you make it so that you are able to jump to a specific point in time of the replay ? Lets suppose, and im a complete programming newb, that you are watching a replay and at 7:35 theres 2 battles going on. Can you watch one battle in 1 place, then jump back to 7:35 (no reverse animatons nor rewind effect just starting it again and going at x60000 speed to that exact time) would it be possible ? Because if some way of going back in the replay is doable at all, its all that counts, rewind effect for animations and shit are useless, unless you think the only cool thing about it is to grab the handle and see that shot flying in the air. | ||
Tyraz
New Zealand310 Posts
On April 01 2009 05:06 BluzMan wrote: Hoohoho, no. As a Java, C++ programmer you should certainly know the concept of hashing which is behind every data integrity check, associative array lookup and many more things. That, itself, is a small part of a larger concept - there are functions that are irreversibly introducing a loss of data, in which the input is not possible to reconstruct from output. In a hash function, you can not theoretically reconstruct the input even if you know every nook and cranny of the algorithm and the output (trust me, I've tried). It's irreversible, because it implies information loss. While hashing itself doesn't have any use in gamestate chaging, many other irreversible operations do. Examples? 1) Pathfinding. Provided it doesn't calculate the whole path from A to B but updates it as the unit goes along an approximated one, the corresponding path from B to A will be different. Guess what? Pathing algorithms have non-linear computational difficulty, so this will surface up no matter how good the player's computer is. It is bound to happen. Desynch. 2) Physics. StarCraft II will not use animations for explosions and debris, it will use physics, meaning that a piece of scrap metal will behave like a physical object bouncing at landscape impurities. Will you be able to reconstruct it's path back to the origin? Hell no. Desynch or disable animations. 3) Many other fields where information loss happens which could theoretically be made two-way compartible, but that would require tons of work. Will not happen. I'm sorry, but I doubt your programming credibility now. +1 physics in particular... Since Havok is middleware i doubt they could 'reverse the physics'... And if they could, then you'd need to reprogram the engine to be able to work in reverse (i.e. negate all movement values including acceleration, velocity)... i suppose it doesn't help that it's 3d and your not working with sprites any more ether for reversing the animation... | ||
Llamaz
Australia90 Posts
| ||
Plutonium
United States2217 Posts
| ||
IdrA
United States11541 Posts
On April 01 2009 07:09 CharlieMurphy wrote: Wait , when did Drone drilling get removed? Wtf ? it didnt get removed, workers still stack and stuff, but the path finding and unit behavior is so clean now that they unstack and clear each other so fast that you dont get the same effect. on the other hand they practically autosurround now so you can still hold off rushes with workers, easier than in sc1 actually. | ||
Cheerio
Ukraine3178 Posts
| ||
BluzMan
Russian Federation4235 Posts
Replay rewinding itself is possible (but to a limited extent and probably not online) if the game is making a shadow copy of every second's gamestate while the replay is being played. As soon as you finish the replay, the memory is freed. The player can set the size of the replay backwards cache depending on his system capabilities. Say I have 4 Gb Ram, and in SC II settings I set up the replay cache to 1000 Mb. I will be able to go back as deep as 300 seconds backwards from a given point, that's 5 minutes. That is possible, "true" backwards playing is definetely not. | ||
meegrean
Thailand7699 Posts
| ||
VIB
Brazil3567 Posts
If you're going that far isn't it better to simply fraps it and play it on a video player? ![]() Blizzard's idea already is to save it once every 3minute'ish so you can jump around (proly even adjustable to even less than that). That's good enough lol | ||
Day[9]
United States7366 Posts
the main reason Braid hasn't been released on a computer is due to hardware issues. Though the graphics look cartoonish and low level, the game demands such an insane amount of memory due to having to record the game state for that awesome "rewind" function. Without a super tripped out computer, you'd be living in frown town. That said, I'm still curious how much memory/processing power a rewind function would ACTUALLY demand (because I'm a mathematician and <3 complexity theory hahaha). MIT just came out with a 1000ghz processor. Now they just need to hop on 1000gb of ram hahaha. | ||
lowlypawn
United States241 Posts
On April 01 2009 18:53 meegrean wrote: I just don't want replays to take up a shitload of space like those Warcraft 3 ones. Hu??? The average 1v1 WC3 replay is 150KB. Most 4 - 6 player FFA games are less then 350KB... | ||
| ||