• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 11:12
CEST 17:12
KST 00:12
  • 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
[ASL21] Ro8 Preview Pt1: Inheritors13[ASL21] Ro16 Preview Pt2: All Star10Team Liquid Map Contest #22 - The Finalists19[ASL21] Ro16 Preview Pt1: Fresh Flow9[ASL21] Ro24 Preview Pt2: News Flash10
Community News
2026 GSL Season 1 Qualifiers21Maestros of the Game 2 announced92026 GSL Tour plans announced15Weekly Cups (April 6-12): herO doubles, "Villains" prevail1MaNa leaves Team Liquid25
StarCraft 2
General
Team Liquid Map Contest #22 - The Finalists MaNa leaves Team Liquid Maestros of the Game 2 announced 2026 GSL Tour plans announced Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool
Tourneys
2026 GSL Season 1 Qualifiers Sparkling Tuna Cup - Weekly Open Tournament INu's Battles#14 <BO.9 2Matches> GSL CK: More events planned pending crowdfunding RSL Revival: Season 5 - Qualifiers and Main Event
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
BGH Auto Balance -> http://bghmmr.eu/ [ASL21] Ro8 Preview Pt1: Inheritors FlaSh: This Will Be My Final ASL【ASL S21 Ro.16】 Leta's ASL S21 Ro.16 review ASL21 General Discussion
Tourneys
[ASL21] Ro8 Day 1 [Megathread] Daily Proleagues [ASL21] Ro16 Group D Escore Tournament StarCraft Season 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
Stormgate/Frost Giant Megathread Dawn of War IV Diablo IV Nintendo Switch Thread Total Annihilation Server - TAForever
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
US Politics Mega-thread 3D technology/software discussion European Politico-economics QA Mega-thread Canadian Politics Mega-thread Things Aren’t Peaceful in Palestine
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: 1570 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
Wardi Open
11:00
#84
WardiTV1402
IntoTheiNu 964
OGKoka 557
Rex149
Ryung 42
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
OGKoka 557
Hui .279
Rex 149
Ryung 42
StarCraft: Brood War
Calm 7973
Sea 2471
Jaedong 2030
Hyuk 1155
EffOrt 997
BeSt 581
Stork 540
actioN 406
ggaemo 303
Rush 192
[ Show more ]
Hyun 173
Snow 164
PianO 120
Sea.KH 60
Free 54
Nal_rA 53
[sc1f]eonzerg 52
Killer 43
ToSsGirL 41
Barracks 36
Pusan 34
Sacsri 34
Shinee 32
soO 31
Sexy 24
ajuk12(nOOB) 23
yabsab 22
HiyA 21
910 18
Bale 14
scan(afreeca) 14
Terrorterran 13
GoRush 13
Dota 2
qojqva2946
BananaSlamJamma188
Counter-Strike
byalli808
Super Smash Bros
Mew2King53
Heroes of the Storm
Khaldor183
Other Games
singsing2363
B2W.Neo1463
hiko1001
Lowko340
XBOCT311
crisheroes307
XaKoH 150
ArmadaUGS115
KnowMe45
Trikslyr21
ceh95
Organizations
Dota 2
PGL Dota 2 - Main Stream381
StarCraft: Brood War
Kim Chul Min (afreeca) 10
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 16 non-featured ]
StarCraft 2
• poizon28 26
• intothetv
• AfreecaTV YouTube
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• blackmanpl 20
• FirePhoenix2
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Nemesis3982
Other Games
• Shiphtur113
• WagamamaTV35
Upcoming Events
Monday Night Weeklies
48m
Replay Cast
8h 48m
Replay Cast
17h 48m
Afreeca Starleague
18h 48m
Leta vs YSC
GSL
1d 18h
Rogue vs Percival
Zoun vs Solar
Replay Cast
2 days
GSL
2 days
Cure vs TriGGeR
ByuN vs Bunny
The PondCast
2 days
KCM Race Survival
2 days
Replay Cast
3 days
[ Show More ]
Replay Cast
3 days
Escore
3 days
Replay Cast
4 days
Replay Cast
4 days
IPSL
5 days
Ret vs Art_Of_Turtle
Radley vs TBD
BSL
5 days
Replay Cast
5 days
uThermal 2v2 Circuit
5 days
BSL
6 days
IPSL
6 days
eOnzErG vs TBD
G5 vs Nesh
Replay Cast
6 days
Wardi Open
6 days
Afreeca Starleague
6 days
Jaedong vs Light
Liquipedia Results

Completed

Escore Tournament S2: W4
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
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
2026 GSL S1
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
BLAST Rivals Spring 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.