• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 17:25
CEST 23:25
KST 06:25
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
Code S Season 1 - RO12 Group A: Rogue, Percival, Solar, Zoun8[ASL21] Ro8 Preview Pt1: Inheritors16[ASL21] Ro16 Preview Pt2: All Star10Team Liquid Map Contest #22 - The Finalists20[ASL21] Ro16 Preview Pt1: Fresh Flow9
Community News
2026 GSL Season 1 Qualifiers25Maestros of the Game 2 announced92026 GSL Tour plans announced15Weekly Cups (April 6-12): herO doubles, "Villains" prevail1MaNa leaves Team Liquid25
StarCraft 2
General
Code S Season 1 - RO12 Group A: Rogue, Percival, Solar, Zoun Team Liquid Map Contest #22 - The Finalists Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool MaNa leaves Team Liquid Maestros of the Game 2 announced
Tourneys
SEL Masters #6 - Solar vs Classic (SC: Evo) $5,000 WardiTV TLMC tournament - Presented by Monster Energy GSL Code S Season 1 (2026) FSL Season 10 Individual Championship WardiTV Spring Cup
Strategy
Custom Maps
[D]RTS in all its shapes and glory <3 [A] Nemrods 1/4 players [M] (2) Frigid Storage
External Content
The PondCast: SC2 News & Results Mutation # 523 Firewall Mutation # 522 Flip My Base Mutation # 521 Memorable Boss
Brood War
General
BW General Discussion JaeDong's ASL S21 Ro16 Post-Review ASL21 General Discussion Leta's ASL S21 Ro.16 review [ASL21] Ro8 Preview Pt1: Inheritors
Tourneys
[ASL21] Ro8 Day 1 [BSL22] RO16 Group Stage - 02 - 10 May Korean KCM Race Survival 2026 Season 2 [ASL21] Ro8 Day 2
Strategy
Fighting Spirit mining rates Simple Questions, Simple Answers What's the deal with APM & what's its true value Any training maps people recommend?
Other Games
General Games
Daigo vs Menard Best of 10 Stormgate/Frost Giant Megathread Nintendo Switch Thread Dawn of War IV Diablo IV
Dota 2
The Story of Wings Gaming
League of Legends
G2 just beat GenG in First stand
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Vanilla Mini Mafia Mafia Game Mode Feedback/Ideas TL Mafia Community Thread Five o'clock TL Mafia
Community
General
Russo-Ukrainian War Thread US Politics Mega-thread European Politico-economics QA Mega-thread 3D technology/software discussion Canadian Politics Mega-thread
Fan Clubs
The IdrA Fan Club
Media & Entertainment
[Manga] One Piece Anime Discussion Thread [Req][Books] Good Fantasy/SciFi books Movie Discussion!
Sports
2024 - 2026 Football Thread Formula 1 Discussion McBoner: A hockey love story
World Cup 2022
Tech Support
streaming software Strange computer issues (software) [G] How to Block Livestream Ads
TL Community
The Automated Ban List
Blogs
Sexual Health Of Gamers
TrAiDoS
lurker extra damage testi…
StaticNine
Broowar part 2
qwaykee
Funny Nicknames
LUCKY_NOOB
Iranian anarchists: organize…
XenOsky
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1843 users

Replay Rewind - a second look - Page 7

Forum Index > SC2 General
Post a Reply
Prev 1 5 6 7 All
marshmallow
Profile Joined May 2007
United States93 Posts
August 26 2009 03:57 GMT
#121
Half Life engine games/mods have had rewindable demos for a long, long time. Of course if they did this with SC2 the replays would probably be a lot bigger.
Tyraz
Profile Blog Joined September 2008
New Zealand310 Posts
August 26 2009 06:58 GMT
#122
On August 25 2009 05:53 alt.tday wrote:
they should just record the video, not every action

lol, good one :p
100% Pure.
Polis
Profile Joined January 2005
Poland1292 Posts
Last Edited: 2009-08-26 07:18:41
August 26 2009 07:17 GMT
#123
On August 25 2009 05:36 Chill wrote:
I really doubt they would do that because it would feel like a really 2002 solution. Like you can't fastforward anything or rewind unless you've already gone past that point at 1x speed.


Why at 1x speed? It could scale if you watched at 4x speed and it saves every second then you you have 1 saved state every 4 sec for 1x, for 8x it would just skip half etc. The benefit of this is that you could rewind pretty much the point that you want becouse space will not limit the amount of save states as it does for the replay. Both could exist at once have some saved states every minute or so so you could fast forward.
lazz
Profile Blog Joined January 2009
Australia3119 Posts
August 26 2009 07:52 GMT
#124
reverse engineering the replay would take way too much time/resources on blizz's part. instead, they should simply allow for faster replay fast forwarding, like x256 or something. so if you want to "rewind" you just restart the replay and fast forward at an absurdly fast speed until you get to where you want to watch.
WolfStar
Profile Joined February 2008
United Kingdom155 Posts
August 26 2009 11:13 GMT
#125
Reading this I've just had a thought, if the old replay system simply replays user commands how does it deal with the miss chance to higher ground? Presumably you could end up with units living longer than they should have done through freak runs of misses.

Sorry if this was answered already but it's a long thread..
The early bird catches the worm but the second mouse gets the cheese.
DeCoup
Profile Joined September 2006
Australia1933 Posts
August 26 2009 11:43 GMT
#126
On August 26 2009 20:13 WolfStar wrote:
Reading this I've just had a thought, if the old replay system simply replays user commands how does it deal with the miss chance to higher ground? Presumably you could end up with units living longer than they should have done through freak runs of misses.

Sorry if this was answered already but it's a long thread..

There is no chance to miss on high ground in SC2. But since it is possible to enable the feature (or use randomness in other ways) in UMS maps i'll explain how it is implemented.

There is no such thing as true random on a computer. They are only capable of performing calculations on existing data. There are 2 commands used to give the illusion of randomness on a PC.
1) The seed (eg Randomize 34, would set the seed to 34). Depending on the program you can set a seed to anything you like. A number, a string of text etc. (Think of the seed as a number for this example to make it easier to understand).
2) Generate number (ill call the command RND for the rest of this post). The command that actually generates a 'random number'.

The RND generates a 'random number' based on the seed, then increases the seed by 1. So if your initial seed was 32 then after you generate a random number the seed becomes 33. etc.
A random number is just a maths formula performed on the seed. So if for example you made a game that rolled a dice 5 times, and you set the seed to 34 the sequence of 'random numbers' would ALWAYS be (for example) 1 4 3 2 4. If you load the game again and run it again the game would always produce those numbers in that order.

The way games appear to have randomness is to set the Seed to the current date/time (in milliseconds). So every time you play the game the seed is different, but technically it is still not truly considered to be random, because if we were to save that seed (whatever the time was) and use it later we would get the same results. But it appears to be random. Basicly computers are not capable of generating random numbers, but we trick them into it by using a number under constant change (time).

So all a game needs to do is at the start, save the seed it generated from the clock time to the replay dile. Next time the replay is watched the seed is set to that same number and all 'random' events will be the same result as when you played it.

I hope my 'Understanding Random 101' lesson made sense to at least a few of you. I am not that great at explaining things such as this, but it is actually pretty interesting when you look into it.
"Poor guy. I really did not deserve that win. So this is what it's like to play Protoss..." - IdrA
EmS.Radagast
Profile Joined November 2004
Israel280 Posts
August 26 2009 12:01 GMT
#127
Actually the mechanism used in most implementations for "random" (the simple ones anyway) is called a "linear congruential sequence" where a simple transform is repeatedly applied on the seed value.
Typically seed <-- (A * seed + B) mod M, where A, B, M are properly chosen constants. then the random number that is returned is usually taken from the bits of the seed value with shift/mask. The least bits have repeating patterns but the higher bits appear random enough to qualify.

So starting from the same seed you would get the same sequence.
But if you start from seed + 1, you get a totally different sequence, where in your example, you would get the same sequence, with the first number missing. This would be considered a bad thing for a random number generator.
I know its not THREE-DEE!!
DeCoup
Profile Joined September 2006
Australia1933 Posts
August 26 2009 12:12 GMT
#128
Very true. I tried to make it easy to explain but told a small white lie to do so, haha. But yeah, it is very important to note that seed+1 would be totally different. Thanx ;P
"Poor guy. I really did not deserve that win. So this is what it's like to play Protoss..." - IdrA
EmS.Radagast
Profile Joined November 2004
Israel280 Posts
August 26 2009 12:12 GMT
#129
As for reversing a replay in an RTS.
This is an extremely difficult thing to implement -- if we ignore the brute force solution of re-running the replay from the last available saved game state until just before the current "game tick".

To do this you would have to store game state changes as a series of transactions, and store sufficient information in the replay to reverse them. You would have to cover everything, from units to projectile movement to automatic retargetting, application of special abilities on targetted units and buildings, and so on.

Reversible replays would still take a lot less storage than videos, but much more than "commands only" replays like those in BW.
I know its not THREE-DEE!!
WolfStar
Profile Joined February 2008
United Kingdom155 Posts
August 26 2009 15:22 GMT
#130
Thanks chaps very interesting.

Ah the mighty computer is unable to just pick a number lol
The early bird catches the worm but the second mouse gets the cheese.
hixhix
Profile Blog Joined September 2004
1156 Posts
Last Edited: 2009-08-26 15:47:11
August 26 2009 15:43 GMT
#131
On August 26 2009 20:43 DeCoup wrote:
Show nested quote +
On August 26 2009 20:13 WolfStar wrote:
Reading this I've just had a thought, if the old replay system simply replays user commands how does it deal with the miss chance to higher ground? Presumably you could end up with units living longer than they should have done through freak runs of misses.

Sorry if this was answered already but it's a long thread..

There is no chance to miss on high ground in SC2. But since it is possible to enable the feature (or use randomness in other ways) in UMS maps i'll explain how it is implemented.

There is no such thing as true random on a computer. They are only capable of performing calculations on existing data. There are 2 commands used to give the illusion of randomness on a PC.
1) The seed (eg Randomize 34, would set the seed to 34). Depending on the program you can set a seed to anything you like. A number, a string of text etc. (Think of the seed as a number for this example to make it easier to understand).
2) Generate number (ill call the command RND for the rest of this post). The command that actually generates a 'random number'.

The RND generates a 'random number' based on the seed, then increases the seed by 1. So if your initial seed was 32 then after you generate a random number the seed becomes 33. etc.
A random number is just a maths formula performed on the seed. So if for example you made a game that rolled a dice 5 times, and you set the seed to 34 the sequence of 'random numbers' would ALWAYS be (for example) 1 4 3 2 4. If you load the game again and run it again the game would always produce those numbers in that order.

The way games appear to have randomness is to set the Seed to the current date/time (in milliseconds). So every time you play the game the seed is different, but technically it is still not truly considered to be random, because if we were to save that seed (whatever the time was) and use it later we would get the same results. But it appears to be random. Basicly computers are not capable of generating random numbers, but we trick them into it by using a number under constant change (time).

So all a game needs to do is at the start, save the seed it generated from the clock time to the replay dile. Next time the replay is watched the seed is set to that same number and all 'random' events will be the same result as when you played it.

I hope my 'Understanding Random 101' lesson made sense to at least a few of you. I am not that great at explaining things such as this, but it is actually pretty interesting when you look into it.


Basically you're right. But there is true randomness generators on computer such as /dev/random that intercepts environmental noise to generate `random' seed. And if you are really biased to say the environmental noise is not `random' then theoretically, nothing in the universe is random Also, there are tons of methods to generate random numbers. The way you describe is the simplest way, it can be used for statistical stuffs, but for security, you need strong cryptographic random generators which are way more complicated than just increasing the seed by 1.
lowlypawn
Profile Joined January 2009
United States241 Posts
August 26 2009 16:12 GMT
#132
On August 26 2009 21:01 EmS.Radagast wrote:
Actually the mechanism used in most implementations for "random" (the simple ones anyway) is called a "linear congruential sequence" where a simple transform is repeatedly applied on the seed value.
Typically seed <-- (A * seed + B) mod M, where A, B, M are properly chosen constants. then the random number that is returned is usually taken from the bits of the seed value with shift/mask. The least bits have repeating patterns but the higher bits appear random enough to qualify.

So starting from the same seed you would get the same sequence.
But if you start from seed + 1, you get a totally different sequence, where in your example, you would get the same sequence, with the first number missing. This would be considered a bad thing for a random number generator.


Interesting stuff! I never read much about how random numbers were generated and found this little program which I found pretty interesting.

http://www.vias.org/simulations/simusoft_lincong.html
agorist
Profile Joined July 2009
United States115 Posts
August 26 2009 17:00 GMT
#133
Meh, it's easy. Most video codecs solved this problem eons ago.

You store "keyframes" at specific intervals with the state of the entire game saved. When you want to go backwards, you skip to the nearest saved keyframe, and then, resume to where you want to see.

This would allow you to go backwards to previous parts in the match and resume. To achieve real time reverse playback, you'd have either in a seperate manner record actions as they're played back (and simply reverse them), or, split a span of time into a ton of keyframes. You could do this in an efficient matter from the nearest keyframe k when you're at position n. Compute a new keyframe at (k+n)/2, and repeat until you're some small threshold t from n. As you recurse through the match you'll have nearly all of the keyframes you need computed.
dnosrc
Profile Joined May 2009
Germany454 Posts
August 26 2009 17:06 GMT
#134
I would say: use the old small "encrypted" replay format, but save the state while replaying x times per second. This way u should be able to rewind and so on
Prev 1 5 6 7 All
Please log in or register to reply.
Live Events Refresh
Next event in 2h 35m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
mouzHeroMarine 376
JuggernautJason97
ForJumy 21
StarCraft: Brood War
Mini 410
ggaemo 178
Dewaltoss 156
910 38
Hyun 33
NaDa 9
League of Legends
Doublelift2810
Counter-Strike
fl0m5095
Coldzera 1781
shahzam370
Pyrionflax158
Heroes of the Storm
Liquid`Hasu1383
Other Games
summit1g6415
Grubby5286
tarik_tv2857
C9.Mang0251
Sick186
Mew2King64
ZombieGrub32
Organizations
Other Games
BasetradeTV248
Dota 2
PGL Dota 2 - Main Stream105
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 14 non-featured ]
StarCraft 2
• musti20045 28
• Reevou 4
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Other Games
• imaqtpie1363
• Shiphtur323
Upcoming Events
Replay Cast
2h 35m
GSL
12h 5m
Cure vs TriGGeR
ByuN vs Bunny
KCM Race Survival
12h 35m
Big Gabe
14h 35m
Replay Cast
1d 2h
Replay Cast
1d 11h
Escore
1d 12h
OSC
1d 15h
Replay Cast
2 days
Replay Cast
2 days
[ Show More ]
RSL Revival
2 days
IPSL
2 days
Ret vs Art_Of_Turtle
Radley vs TBD
BSL
2 days
Replay Cast
3 days
RSL Revival
3 days
uThermal 2v2 Circuit
3 days
BSL
3 days
IPSL
3 days
eOnzErG vs TBD
G5 vs Nesh
Replay Cast
4 days
Wardi Open
4 days
Afreeca Starleague
4 days
Jaedong vs Light
Monday Night Weeklies
4 days
Replay Cast
5 days
Sparkling Tuna Cup
5 days
Afreeca Starleague
5 days
Snow vs Flash
GSL
6 days
Liquipedia Results

Completed

Proleague 2026-04-28
WardiTV TLMC #16
Nations Cup 2026

Ongoing

BSL Season 22
ASL Season 21
CSL 2026 SPRING (S20)
IPSL Spring 2026
KCM Race Survival 2026 Season 2
StarCraft2 Community Team League 2026 Spring
2026 GSL S1
BLAST Rivals Spring 2026
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League S23 Finals
ESL Pro League S23 Stage 1&2
PGL Cluj-Napoca 2026

Upcoming

Escore Tournament S2: W5
KK 2v2 League Season 1
Acropolis #4
BSL 22 Non-Korean Championship
CSLAN 4
Kung Fu Cup 2026 Grand Finals
HSC XXIX
uThermal 2v2 2026 Main Event
Maestros of the Game 2
2026 GSL S2
RSL Revival: Season 5
XSE Pro League 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
IEM Atlanta 2026
Asian Champions League 2026
PGL Astana 2026
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.