• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 09:53
CEST 15:53
KST 22:53
  • 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] Ro24 Preview Pt2: News Flash10[ASL21] Ro24 Preview Pt1: New Chaos0Team Liquid Map Contest #22 - Presented by Monster Energy18ByuL: The Forgotten Master of ZvT30Behind the Blue - Team Liquid History Book20
Community News
$5,000 WardiTV TLMC tournament - Presented by Monster Energy2GSL CK: More events planned pending crowdfunding3Weekly Cups (May 30-Apr 5): herO, Clem, SHIN win0[BSL22] RO32 Group Stage4Weekly Cups (March 23-29): herO takes triple6
StarCraft 2
General
Quebec Clan still alive ? BGE Stara Zagora 2026 cancelled Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool Weekly Cups (May 30-Apr 5): herO, Clem, SHIN win Rongyi Cup S3 - Preview & Info
Tourneys
GSL CK: More events planned pending crowdfunding $5,000 WardiTV TLMC tournament - Presented by Monster Energy Sparkling Tuna Cup - Weekly Open Tournament RSL Season 4 announced for March-April Sea Duckling Open (Global, Bronze-Diamond)
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 # 520 Moving Fees Mutation # 519 Inner Power Mutation # 518 Radiation Zone
Brood War
General
ASL21 General Discussion so ive been playing broodwar for a week straight. BW General Discussion Gypsy to Korea Pros React To: JaeDong vs Queen
Tourneys
[Megathread] Daily Proleagues Escore Tournament StarCraft Season 2 [ASL21] Ro24 Group F [BSL22] RO32 Group B - Sunday 21:00 CEST
Strategy
Muta micro map competition Fighting Spirit mining rates What's the deal with APM & what's its true value Simple Questions, Simple Answers
Other Games
General Games
General RTS Discussion Thread Stormgate/Frost Giant Megathread Starcraft Tabletop Miniature Game Nintendo Switch Thread Darkest Dungeon
Dota 2
The Story of Wings Gaming Official 'what is Dota anymore' discussion
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
Mafia Game Mode Feedback/Ideas TL Mafia Community Thread Five o'clock TL Mafia
Community
General
European Politico-economics QA Mega-thread Russo-Ukrainian War Thread US Politics Mega-thread Trading/Investing Thread Things Aren’t Peaceful in Palestine
Fan Clubs
The IdrA Fan Club
Media & Entertainment
[Manga] One Piece [Req][Books] Good Fantasy/SciFi books Movie Discussion!
Sports
2024 - 2026 Football Thread Formula 1 Discussion Cricket [SPORT] Tokyo Olympics 2021 Thread General nutrition recommendations
World Cup 2022
Tech Support
[G] How to Block Livestream Ads
TL Community
The Automated Ban List
Blogs
Loot Boxes—Emotions, And Why…
TrAiDoS
Broowar part 2
qwaykee
Funny Nicknames
LUCKY_NOOB
Iranian anarchists: organize…
XenOsky
FS++
Kraekkling
ASL S21 English Commentary…
namkraft
StarCraft improvement
iopq
Electronics
mantequilla
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1948 users

The Big Programming Thread - Page 336

Forum Index > General Forum
Post a Reply
Prev 1 334 335 336 337 338 1032 Next
Thread Rules
1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution.
2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20)
3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible.
4. Use [code] tags to format code blocks.
xbeo
Profile Joined July 2011
Germany19 Posts
August 06 2013 18:55 GMT
#6701
As a developer (mostly Spring MVC & JavaFX) and casual starcraft player, I would recommend everyone to just use stackoverflow for questions about programming or serverfault for questions about administration, or one of the countless question and answers pages - hell there's even a Unity3D answers site.

If you often google for problems or stacktraces you most likely already know that site but if you dont, you should start doing so.

At work I never go to these pages directly, I just use google, but still there is always a browser tab with stackoverflow open. And I don't even post questions there because I am too lazy to register but still it has helped me countless times.
spinesheath
Profile Blog Joined June 2009
Germany8679 Posts
August 06 2013 19:07 GMT
#6702
On August 07 2013 03:03 WindWolf wrote:
Show nested quote +
On August 07 2013 00:27 stormchaser wrote:
On August 07 2013 00:11 WindWolf wrote:
On August 06 2013 23:38 spinesheath wrote:
On August 06 2013 21:34 WindWolf wrote:
Visual C++ 2012 question, where should I put my .ini-files so that files in the project can read it? I tried different things, and it doesn't seem to work in the same way as it did in VS2010

VS12 should put your executable into /bin/Debug/, and if you put your files in there you can access them easily using a relative path. If you put the file into your project folders and set "copy to output directory" in the file properties to "copy always" or "copy if newer", then the file should be copied into your /bin/Debug/ on build, using the relative path from the project root.

I can't find the "copy to output directory" settings anywhere in VS2012. Where is it locaed, I've searched both my project settings, solution settings and file settings for my ini-file

Select all of the project files in the solution explorer and in the properties panel click Copy to Output.

http://i.imgur.com/YjuZzPx.png

This is everything I see in the properties panel (The full path is whited out by me)

Heh, turns out that doesn't exist for c++, I assumed it would be the same as in c# (why wouldn't it). Check out this instead:
http://stackoverflow.com/questions/1568314/copy-to-output-directory-in-vc
If you have a good reason to disagree with the above, please tell me. Thank you.
stormchaser
Profile Joined January 2011
Canada1009 Posts
Last Edited: 2013-08-07 05:12:01
August 07 2013 05:11 GMT
#6703
On August 07 2013 03:03 WindWolf wrote:
Show nested quote +
On August 07 2013 00:27 stormchaser wrote:
On August 07 2013 00:11 WindWolf wrote:
On August 06 2013 23:38 spinesheath wrote:
On August 06 2013 21:34 WindWolf wrote:
Visual C++ 2012 question, where should I put my .ini-files so that files in the project can read it? I tried different things, and it doesn't seem to work in the same way as it did in VS2010

VS12 should put your executable into /bin/Debug/, and if you put your files in there you can access them easily using a relative path. If you put the file into your project folders and set "copy to output directory" in the file properties to "copy always" or "copy if newer", then the file should be copied into your /bin/Debug/ on build, using the relative path from the project root.

I can't find the "copy to output directory" settings anywhere in VS2012. Where is it locaed, I've searched both my project settings, solution settings and file settings for my ini-file

Select all of the project files in the solution explorer and in the properties panel click Copy to Output.

http://i.imgur.com/YjuZzPx.png

This is everything I see in the properties panel (The full path is whited out by me)

EDIT: ah I see that you are using c++.
gedatsu
Profile Joined December 2011
1286 Posts
August 07 2013 11:02 GMT
#6704
On August 06 2013 14:01 RoyGBiv_13 wrote:
Show nested quote +
On August 05 2013 18:03 gedatsu wrote:
On August 05 2013 16:49 teamamerica wrote:
But in Java the simplest way I can think of (and this only works for switching two integers) is

b = a + b
a = b - a
b = b - a

You can avoid overflow by using xor:

b = a^b;
a = a^b;
b = a^b;

I think this (and your method) can create a pipeline stall however, so it's not necessarily faster than swapping with the normal method of using an extra variable.

So I have a few questions:
1) In Java, is there a simple way to switch two objects without creating a temp object?

You only create objects by using the 'new' command. Since you can have two names referencing the same object, that is the best way to swap them and no extra object is created.


Compilers can figure out the fastest way to swap based on your architecture and language. They recognize this sort of pattern pretty well.

EDIT: confirmed: xor swaps, arithemetic swaps, an temporary variable swaps are all treated by the compiler to generate identical assembly. There is one case where this is not true, when a temporary variable is used for several uses, it is assumed the user did want to use a temporary holding state, usually a register.

It's true for this case and for a lot of other cases. Modern compilers are very intelligent and can make improvements on nearly all code written by a person. But I still think it's a good learning exercise to ignore this and imagine compilers as a 1-to-1 translation tool.
Deleted User 101379
Profile Blog Joined August 2010
4849 Posts
August 07 2013 11:52 GMT
#6705
On August 07 2013 20:02 gedatsu wrote:
Show nested quote +
On August 06 2013 14:01 RoyGBiv_13 wrote:
On August 05 2013 18:03 gedatsu wrote:
On August 05 2013 16:49 teamamerica wrote:
But in Java the simplest way I can think of (and this only works for switching two integers) is

b = a + b
a = b - a
b = b - a

You can avoid overflow by using xor:

b = a^b;
a = a^b;
b = a^b;

I think this (and your method) can create a pipeline stall however, so it's not necessarily faster than swapping with the normal method of using an extra variable.

So I have a few questions:
1) In Java, is there a simple way to switch two objects without creating a temp object?

You only create objects by using the 'new' command. Since you can have two names referencing the same object, that is the best way to swap them and no extra object is created.


Compilers can figure out the fastest way to swap based on your architecture and language. They recognize this sort of pattern pretty well.

EDIT: confirmed: xor swaps, arithemetic swaps, an temporary variable swaps are all treated by the compiler to generate identical assembly. There is one case where this is not true, when a temporary variable is used for several uses, it is assumed the user did want to use a temporary holding state, usually a register.

It's true for this case and for a lot of other cases. Modern compilers are very intelligent and can make improvements on nearly all code written by a person. But I still think it's a good learning exercise to ignore this and imagine compilers as a 1-to-1 translation tool.


Microoptimization is the root of all evil.

I think it's bad to do this, especially when you are learning. Do it simple first and when there is a performance bottleneck, optimize. Yes, knowing such "tricks" is nice but having simple code is even nicer.
WindWolf
Profile Blog Joined July 2012
Sweden11767 Posts
Last Edited: 2013-08-07 13:33:07
August 07 2013 13:21 GMT
#6706
On August 07 2013 04:07 spinesheath wrote:
Show nested quote +
On August 07 2013 03:03 WindWolf wrote:
On August 07 2013 00:27 stormchaser wrote:
On August 07 2013 00:11 WindWolf wrote:
On August 06 2013 23:38 spinesheath wrote:
On August 06 2013 21:34 WindWolf wrote:
Visual C++ 2012 question, where should I put my .ini-files so that files in the project can read it? I tried different things, and it doesn't seem to work in the same way as it did in VS2010

VS12 should put your executable into /bin/Debug/, and if you put your files in there you can access them easily using a relative path. If you put the file into your project folders and set "copy to output directory" in the file properties to "copy always" or "copy if newer", then the file should be copied into your /bin/Debug/ on build, using the relative path from the project root.

I can't find the "copy to output directory" settings anywhere in VS2012. Where is it locaed, I've searched both my project settings, solution settings and file settings for my ini-file

Select all of the project files in the solution explorer and in the properties panel click Copy to Output.

http://i.imgur.com/YjuZzPx.png

This is everything I see in the properties panel (The full path is whited out by me)

Heh, turns out that doesn't exist for c++, I assumed it would be the same as in c# (why wouldn't it). Check out this instead:
http://stackoverflow.com/questions/1568314/copy-to-output-directory-in-vc

Nice, thanks for the link

Edit: The command I should write was
copy "$(ProjectDir)SKYENGINE_CONFIG.ini" "$(TargetDir)"
EZ4ENCE
Shield
Profile Blog Joined August 2009
Bulgaria4824 Posts
Last Edited: 2013-08-07 14:54:21
August 07 2013 14:53 GMT
#6707
I've noticed you discuss xor swap. Could you please explain the idea behind it?

b = a^b;
a = a^b;
b = a^b;

It seems like a^b is everywhere, and I'm not sure how it is supposed to do anything or differentiate.

I know what XOR usually means, it's "exclusive or", so either A or B but not both. I still don't get it though.
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
August 07 2013 14:58 GMT
#6708
http://en.wikipedia.org/wiki/XOR_swap_algorithm#Proof_of_correctness
There is no one like you in the universe.
Shield
Profile Blog Joined August 2009
Bulgaria4824 Posts
August 07 2013 15:07 GMT
#6709
Right, thanks. So it seems like xor swap is useless for general use from what I've read on SO and on that link.
Deleted User 101379
Profile Blog Joined August 2010
4849 Posts
August 07 2013 15:13 GMT
#6710
On August 07 2013 23:53 darkness wrote:
I've noticed you discuss xor swap. Could you please explain the idea behind it?

b = a^b;
a = a^b;
b = a^b;

It seems like a^b is everywhere, and I'm not sure how it is supposed to do anything or differentiate.

I know what XOR usually means, it's "exclusive or", so either A or B but not both. I still don't get it though.


A simple example (Numbers starting with b are the binary representation):

a =13 = b1101
b = 7 = b0111

b = 7^13 = b1010 = 12
a = 7^12 = b1101 = 13
b = 13^12 = b0111 = 7


In the first step you XOR both numbers together. In the second the new XOR pulls it apart and gives the opposite number, i.e. (a^b)^b = a. The third XOR then takes the combined number again and pulls out the second number, i.e. (a^b)^a = b.
spinesheath
Profile Blog Joined June 2009
Germany8679 Posts
August 07 2013 20:14 GMT
#6711
On August 07 2013 20:52 Morfildur wrote:
Microoptimization is the root of all evil.

Since you brought it up - there's a thing that has been bugging me for a while:
Somewhere on TL, quite a while ago, someone brought up the task of implementing
int Difference(char* number1, char* number2);

I think it was part of a job interview. Now there is this trick where you subtract the characters, abusing the way ASCII sorts numbers. This seems like the intended solution for the task.

However, if I were to code this function for real, I would do it like this:
return Parse(number1) - Parse(number2);

Along with a note to the guy that requested the function that he should try to clean up his mess and parse those strings much earlier.
After all it's completely ridiculous to pass around strings as numbers but at the same time try to optimize that code.

So if I ever were to encounter such a question in a job interview or such, should I assume that they want to see if I know these cute tricks, or is it a trick question and the correct solution is what I would normally do?
If you have a good reason to disagree with the above, please tell me. Thank you.
Smackzilla
Profile Blog Joined April 2010
United States539 Posts
Last Edited: 2013-08-07 20:39:09
August 07 2013 20:34 GMT
#6712
Deleted, sorry
You see a mousetrap. I see free cheese and a f&%*ing challenge - Scroobius Pip
Smackzilla
Profile Blog Joined April 2010
United States539 Posts
Last Edited: 2013-08-07 20:38:12
August 07 2013 20:37 GMT
#6713
On August 08 2013 05:14 spinesheath wrote:
Show nested quote +
On August 07 2013 20:52 Morfildur wrote:
Microoptimization is the root of all evil.

Since you brought it up - there's a thing that has been bugging me for a while:
Somewhere on TL, quite a while ago, someone brought up the task of implementing
int Difference(char* number1, char* number2);

I think it was part of a job interview. Now there is this trick where you subtract the characters, abusing the way ASCII sorts numbers. This seems like the intended solution for the task.

However, if I were to code this function for real, I would do it like this:
return Parse(number1) - Parse(number2);

Along with a note to the guy that requested the function that he should try to clean up his mess and parse those strings much earlier.
After all it's completely ridiculous to pass around strings as numbers but at the same time try to optimize that code.

So if I ever were to encounter such a question in a job interview or such, should I assume that they want to see if I know these cute tricks, or is it a trick question and the correct solution is what I would normally do?


I'm not sure about your specific example, but in general, when it comes to using tricks in interviews, I'd at least mention both: describe how you might make a clean, simple, maintainable implementation and then mention the cute trick. Be sure to say that you typically write the former for real work and then ask them what they want to see.

You see a mousetrap. I see free cheese and a f&%*ing challenge - Scroobius Pip
CecilSunkure
Profile Blog Joined May 2010
United States2829 Posts
August 07 2013 21:57 GMT
#6714
Funny thing about the XOR swap, in some C++ profiling I did a while ago a simple swap function in C++:

template <typename T>
void Swap( T& a, T& b )
{
T c = a;
a = b;
b = T;
}


Was actually significantly more efficient, even with integers, for some reason. The above code must have produced results the compiler knew how to optimize away. The above is also simpler and more flexible than the silly XOR trick.
RoyGBiv_13
Profile Blog Joined August 2010
United States1275 Posts
Last Edited: 2013-08-07 22:39:45
August 07 2013 22:37 GMT
#6715
On August 08 2013 06:57 CecilSunkure wrote:
Funny thing about the XOR swap, in some C++ profiling I did a while ago a simple swap function in C++:

template <typename T>
void Swap( T& a, T& b )
{
T c = a;
a = b;
b = T;
}


Was actually significantly more efficient, even with integers, for some reason. The above code must have produced results the compiler knew how to optimize away. The above is also simpler and more flexible than the silly XOR trick.


protip, inline this function... or it could be that the compiler already did so, and that was why it was so fast...
Any sufficiently advanced technology is indistinguishable from magic
CecilSunkure
Profile Blog Joined May 2010
United States2829 Posts
August 07 2013 22:50 GMT
#6716
On August 08 2013 07:37 RoyGBiv_13 wrote:
Show nested quote +
On August 08 2013 06:57 CecilSunkure wrote:
Funny thing about the XOR swap, in some C++ profiling I did a while ago a simple swap function in C++:

template <typename T>
void Swap( T& a, T& b )
{
T c = a;
a = b;
b = T;
}


Was actually significantly more efficient, even with integers, for some reason. The above code must have produced results the compiler knew how to optimize away. The above is also simpler and more flexible than the silly XOR trick.


protip, inline this function... or it could be that the compiler already did so, and that was why it was so fast...

Well in the test we wrote the XOR inline, and then changed it out for this function. Both had no jump.
Kambing
Profile Joined May 2010
United States1176 Posts
August 07 2013 23:50 GMT
#6717
On August 08 2013 07:50 CecilSunkure wrote:
Show nested quote +
On August 08 2013 07:37 RoyGBiv_13 wrote:
On August 08 2013 06:57 CecilSunkure wrote:
Funny thing about the XOR swap, in some C++ profiling I did a while ago a simple swap function in C++:

template <typename T>
void Swap( T& a, T& b )
{
T c = a;
a = b;
b = T;
}


Was actually significantly more efficient, even with integers, for some reason. The above code must have produced results the compiler knew how to optimize away. The above is also simpler and more flexible than the silly XOR trick.


protip, inline this function... or it could be that the compiler already did so, and that was why it was so fast...

Well in the test we wrote the XOR inline, and then changed it out for this function. Both had no jump.


Yea with optimizations on, this function will certainly be inlined by any reasonable compiler. The wikipedia article details why the naive swap performs better than the xor version in practice. It's not necessarily because the compiler will insert the xor-swap when appropriate as it turns out xor'ing doesn't "play nice" with the rest of the system:

(1) Xor'ing of pointers or references ruins aliasing analysis which is fundamental for a variety of optimizations (e.g., constant propagation), especially in the context of C++.
(2) Xor'ing operations sometimes perform horribly in practice because of CPU pipelining.
Shield
Profile Blog Joined August 2009
Bulgaria4824 Posts
Last Edited: 2013-08-08 00:55:54
August 08 2013 00:47 GMT
#6718
On August 08 2013 06:57 CecilSunkure wrote:
Funny thing about the XOR swap, in some C++ profiling I did a while ago a simple swap function in C++:

template <typename T>
void Swap( T& a, T& b )
{
T c = a;
a = b;
b = T;
}


Was actually significantly more efficient, even with integers, for some reason. The above code must have produced results the compiler knew how to optimize away. The above is also simpler and more flexible than the silly XOR trick.


What is
T c = a;
exactly? From my limited knowledge on generics (C++ templates), 'T' can represent any primitive data type such as int, then what is 'c' here? My guess is 'T' here is a class of primitive data type (say 'int' like when you declare array "new int"), then you make an instance called 'c'. Is this the case?

Edit: I don't know C++, I have experience with Java though. I may be completely wrong.
Nesserev
Profile Blog Joined January 2011
Belgium2760 Posts
Last Edited: 2013-08-08 01:01:33
August 08 2013 00:58 GMT
#6719
--- Nuked ---
CptCutter
Profile Joined September 2010
United Kingdom370 Posts
August 08 2013 01:28 GMT
#6720
On August 08 2013 09:58 Nesserev wrote:
Show nested quote +
On August 08 2013 09:47 darkness wrote:
On August 08 2013 06:57 CecilSunkure wrote:
+ Show Spoiler +
Funny thing about the XOR swap, in some C++ profiling I did a while ago a simple swap function in C++:

template <typename T>
void Swap( T& a, T& b )
{
T c = a;
a = b;
b = T;
}


Was actually significantly more efficient, even with integers, for some reason. The above code must have produced results the compiler knew how to optimize away. The above is also simpler and more flexible than the silly XOR trick.


What is
T c = a;
exactly? From my limited knowledge on generics, 'T' can represent any primitive data type such as int, then what is 'c' here? My guess is 'T' here is a class of primitive data type (say 'int' like when you declare array "new int"), then you make an instance called 'c'. Is this the case?

Edit: I don't know C++, I have experience with Java though. I may be completely wrong.

c is an object of any class T; T doesn't have to be a primitive data type.
But I don't get why the 6th line is:
b = T;

and not
b = c;


its just a typo, im assuming the original question was more on the theory than actual code, therefor this is not being used as code.

And just as he says, 'T' (a template) can represent any data structure.

Prev 1 334 335 336 337 338 1032 Next
Please log in or register to reply.
Live Events Refresh
WardiTV Team League
11:00
Playoffs
WardiTV758
ComeBackTV 444
IndyStarCraft 141
Rex116
3DClanTV 49
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
Lowko301
IndyStarCraft 141
Rex 116
Codebar 60
StarCraft: Brood War
Britney 46149
Mini 1130
Soma 646
Stork 628
EffOrt 628
Soulkey 177
ggaemo 174
Snow 174
Rush 157
hero 153
[ Show more ]
Zeus 139
Hyuk 120
sSak 101
Shinee 95
Shuttle 76
Pusan 73
Sea.KH 68
Sharp 66
Hyun 66
[sc1f]eonzerg 62
Barracks 55
ToSsGirL 44
Movie 39
Hm[arnc] 35
Free 33
Nal_rA 29
scan(afreeca) 28
sorry 28
Sexy 18
yabsab 18
soO 17
GoRush 16
Sacsri 14
Terrorterran 12
ajuk12(nOOB) 10
Icarus 4
Dota 2
qojqva498
420jenkins316
Counter-Strike
edward202
Other Games
Gorgc3710
singsing2286
B2W.Neo1042
hiko755
Mlord471
RotterdaM427
crisheroes363
DeMusliM322
ArmadaUGS121
djWHEAT109
XaKoH 99
QueenE77
Mew2King47
Organizations
Counter-Strike
PGL6747
StarCraft: Brood War
UltimateBattle 1527
Other Games
BasetradeTV611
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 14 non-featured ]
StarCraft 2
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• lizZardDota242
League of Legends
• Jankos2257
• Nemesis2002
• TFBlade1036
Upcoming Events
CranKy Ducklings
20h 7m
WardiTV Team League
21h 7m
uThermal 2v2 Circuit
1d 1h
IPSL
1d 2h
Hawk vs TBD
StRyKeR vs TBD
BSL
1d 5h
n0maD vs perroflaco
TerrOr vs ZZZero
MadiNho vs WolFix
DragOn vs LancerX
Sparkling Tuna Cup
1d 20h
WardiTV Team League
1d 21h
OSC
1d 23h
BSL
2 days
Sterling vs Azhi_Dahaki
Napoleon vs Mazur
Jimin vs Nesh
spx vs Strudel
IPSL
2 days
Artosis vs TBD
Napoleon vs TBD
[ Show More ]
Replay Cast
2 days
Replay Cast
2 days
Wardi Open
2 days
Afreeca Starleague
2 days
Soma vs YSC
Sharp vs sSak
Afreeca Starleague
3 days
Snow vs PianO
hero vs Rain
GSL
3 days
Replay Cast
4 days
Kung Fu Cup
4 days
Replay Cast
5 days
The PondCast
5 days
Replay Cast
6 days
Escore
6 days
Liquipedia Results

Completed

CSL Elite League 2026
RSL Revival: Season 4
NationLESS Cup

Ongoing

BSL Season 22
ASL Season 21
CSL 2026 SPRING (S20)
StarCraft2 Community Team League 2026 Spring
Nations Cup 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
IEM Kraków 2026
BLAST Bounty Winter 2026

Upcoming

Escore Tournament S2: W2
IPSL Spring 2026
Escore Tournament S2: W3
Acropolis #4
BSL 22 Non-Korean Championship
CSLAN 4
Kung Fu Cup 2026 Grand Finals
HSC XXIX
uThermal 2v2 2026 Main Event
RSL Revival: Season 5
WardiTV TLMC #16
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026
BLAST Rivals Spring 2026
CCT Season 3 Global Finals
IEM Rio 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.