• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 01:25
CEST 07:25
KST 14: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
Team Liquid Map Contest #21 - Presented by Monster Energy5uThermal's 2v2 Tour: $15,000 Main Event14Serral wins EWC 202549Tournament Spotlight: FEL Cracow 202510Power Rank - Esports World Cup 202580
Community News
Weekly Cups (Aug 4-10): MaxPax wins a triple5SC2's Safe House 2 - October 18 & 195Weekly Cups (Jul 28-Aug 3): herO doubles up6LiuLi Cup - August 2025 Tournaments5[BSL 2025] H2 - Team Wars, Weeklies & SB Ladder10
StarCraft 2
General
#1: Maru - Greatest Players of All Time RSL Revival patreon money discussion thread Team Liquid Map Contest #21 - Presented by Monster Energy Lambo Talks: The Future of SC2 and more... uThermal's 2v2 Tour: $15,000 Main Event
Tourneys
SEL Masters #5 - Korea vs Russia (SC Evo) Enki Epic Series #5 - TaeJa vs Classic (SC Evo) ByuN vs TaeJa Bo7 SC Evo Showmatch Global Tourney for College Students in September RSL: Revival, a new crowdfunded tournament series
Strategy
Custom Maps
External Content
Mutation # 486 Watch the Skies Mutation # 485 Death from Below Mutation # 484 Magnetic Pull Mutation #239 Bad Weather
Brood War
General
ASL20 Pre-season Tier List ranking! ASL Season 20 Ro24 Groups BSL Polish World Championship 2025 20-21 September BGH Auto Balance -> http://bghmmr.eu/ BW General Discussion
Tourneys
KCM 2025 Season 3 [Megathread] Daily Proleagues Small VOD Thread 2.0 [ASL20] Online Qualifiers Day 2
Strategy
Simple Questions, Simple Answers Fighting Spirit mining rates [G] Mineral Boosting Muta micro map competition
Other Games
General Games
Stormgate/Frost Giant Megathread Total Annihilation Server - TAForever Nintendo Switch Thread Beyond All Reason [MMORPG] Tree of Savior (Successor of Ragnarok)
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Heroes of StarCraft mini-set
TL Mafia
TL Mafia Community Thread Vanilla Mini Mafia
Community
General
Bitcoin discussion thread Russo-Ukrainian War Thread The Games Industry And ATVI US Politics Mega-thread Things Aren’t Peaceful in Palestine
Fan Clubs
INnoVation Fan Club SKT1 Classic Fan Club!
Media & Entertainment
Anime Discussion Thread [\m/] Heavy Metal Thread [Manga] One Piece Movie Discussion! Korean Music Discussion
Sports
2024 - 2025 Football Thread TeamLiquid Health and Fitness Initiative For 2023 Formula 1 Discussion
World Cup 2022
Tech Support
Gtx660 graphics card replacement Installation of Windows 10 suck at "just a moment" Computer Build, Upgrade & Buying Resource Thread
TL Community
TeamLiquid Team Shirt On Sale The Automated Ban List
Blogs
Gaming After Dark: Poor Slee…
TrAiDoS
[Girl blog} My fema…
artosisisthebest
Sharpening the Filtration…
frozenclaw
ASL S20 English Commentary…
namkraft
from making sc maps to makin…
Husyelt
StarCraft improvement
iopq
Customize Sidebar...

Website Feedback

Closed Threads



Active: 427 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
PiGosaur Monday
00:00
#44
SteadfastSC76
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
Nina 216
SteadfastSC 76
StarCraft: Brood War
Leta 691
ggaemo 264
Snow 150
sorry 106
JulyZerg 34
ajuk12(nOOB) 26
SilentControl 23
Icarus 6
Bale 6
Counter-Strike
Stewie2K704
Super Smash Bros
C9.Mang0833
amsayoshi35
Other Games
summit1g8692
shahzam718
WinterStarcraft514
ViBE182
Mew2King94
Maynarde91
Organizations
Other Games
gamesdonequick838
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 15 non-featured ]
StarCraft 2
• Berry_CruncH322
• davetesta17
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Rush1990
• Lourlo1236
• Stunt486
Upcoming Events
WardiTV Summer Champion…
5h 36m
The PondCast
1d 4h
WardiTV Summer Champion…
1d 5h
Replay Cast
1d 18h
LiuLi Cup
2 days
Online Event
3 days
SC Evo League
3 days
uThermal 2v2 Circuit
3 days
CSO Contender
3 days
Sparkling Tuna Cup
4 days
[ Show More ]
WardiTV Summer Champion…
4 days
SC Evo League
4 days
uThermal 2v2 Circuit
4 days
Afreeca Starleague
5 days
Sharp vs Ample
Larva vs Stork
Wardi Open
5 days
RotterdaM Event
5 days
Replay Cast
5 days
Replay Cast
6 days
Afreeca Starleague
6 days
JyJ vs TY
Bisu vs Speed
WardiTV Summer Champion…
6 days
Liquipedia Results

Completed

StarCon 2025 Philadelphia
FEL Cracow 2025
CC Div. A S7

Ongoing

Copa Latinoamericana 4
Jiahua Invitational
BSL 20 Team Wars
KCM Race Survival 2025 Season 3
BSL 21 Qualifiers
WardiTV Summer 2025
uThermal 2v2 Main Event
HCC Europe
BLAST Bounty Fall Qual
IEM Cologne 2025
FISSURE Playground #1
BLAST.tv Austin Major 2025

Upcoming

CSL Season 18: Qualifier 1
ASL Season 20
CSLAN 3
CSL 2025 AUTUMN (S18)
BSL Season 21
BSL 21 Team A
RSL Revival: Season 2
Maestros of the Game
SEL Season 2 Championship
PGL Masters Bucharest 2025
MESA Nomadic Masters Fall
Thunderpick World Champ.
CS Asia Championships 2025
Roobet Cup 2025
ESL Pro League S22
StarSeries Fall 2025
FISSURE Playground #2
BLAST Open Fall 2025
BLAST Open Fall Qual
Esports World Cup 2025
BLAST Bounty Fall 2025
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 © 2025 TLnet. All Rights Reserved.