• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 00:48
CEST 06:48
KST 13:48
  • 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] Ro16 Preview Pt1: Fresh Flow3[ASL21] Ro24 Preview Pt2: News Flash10[ASL21] Ro24 Preview Pt1: New Chaos0Team Liquid Map Contest #22 - Presented by Monster Energy21ByuL: The Forgotten Master of ZvT30
Community News
$5,000 WardiTV TLMC tournament - Presented by Monster Energy5GSL CK: More events planned pending crowdfunding7Weekly Cups (May 30-Apr 5): herO, Clem, SHIN win0[BSL22] RO32 Group Stage5Weekly Cups (March 23-29): herO takes triple6
StarCraft 2
General
MaNa leaves Team Liquid Team Liquid Map Contest #22 - Presented by Monster Energy Quebec Clan still alive ? BGE Stara Zagora 2026 cancelled Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool
Tourneys
$5,000 WardiTV TLMC tournament - Presented by Monster Energy Sparkling Tuna Cup - Weekly Open Tournament RSL Revival: Season 5 - Qualifiers and Main Event GSL CK: More events planned pending crowdfunding 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
Mutation # 521 Memorable Boss The PondCast: SC2 News & Results Mutation # 520 Moving Fees Mutation # 519 Inner Power
Brood War
General
[ASL21] Ro16 Preview Pt1: Fresh Flow JD's Ro24 review The Korean Terminology Thread so ive been playing broodwar for a week straight. ASL21 General Discussion
Tourneys
[ASL21] Ro16 Group A [Megathread] Daily Proleagues Escore Tournament StarCraft Season 2 [ASL21] Ro24 Group F
Strategy
Any training maps people recommend? Fighting Spirit mining rates Muta micro map competition What's the deal with APM & what's its true value
Other Games
General Games
Stormgate/Frost Giant Megathread Nintendo Switch Thread Battle Aces/David Kim RTS Megathread General RTS Discussion Thread Starcraft Tabletop Miniature Game
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
Vanilla Mini Mafia Mafia Game Mode Feedback/Ideas TL Mafia Community Thread Five o'clock TL Mafia
Community
General
US Politics Mega-thread European Politico-economics QA Mega-thread Russo-Ukrainian War Thread The China Politics Thread Trading/Investing Thread
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
World Cup 2022
Tech Support
[G] How to Block Livestream Ads
TL Community
The Automated Ban List
Blogs
lurker extra damage testi…
StaticNine
How Streamers Inspire Gamers…
TrAiDoS
Broowar part 2
qwaykee
Funny Nicknames
LUCKY_NOOB
Iranian anarchists: organize…
XenOsky
ASL S21 English Commentary…
namkraft
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1979 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
BSL
19:00
RO32 Group B
Sterling vs Azhi_Dahaki
Napoleon vs Mazur
Jimin vs Nesh
spx vs Strudel
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
WinterStarcraft503
RuFF_SC2 193
NeuroSwarm 164
Nina 107
StarCraft: Brood War
GuemChi 5945
Leta 169
ggaemo 70
scan(afreeca) 38
soO 27
Noble 24
Bale 18
Dota 2
ROOTCatZ288
League of Legends
JimRising 633
Counter-Strike
m0e_tv723
Super Smash Bros
C9.Mang0439
Mew2King58
Heroes of the Storm
Khaldor87
Other Games
summit1g17381
kaitlyn43
Organizations
Other Games
gamesdonequick593
Counter-Strike
PGL426
Other Games
BasetradeTV0
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
• RayReign 88
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Lourlo1751
• Rush1252
• Stunt350
Upcoming Events
Replay Cast
4h 12m
Wardi Open
5h 12m
Afreeca Starleague
5h 12m
Soma vs YSC
Sharp vs sSak
Monday Night Weeklies
11h 12m
OSC
19h 12m
Afreeca Starleague
1d 5h
Snow vs PianO
hero vs Rain
WardiTV Map Contest Tou…
1d 5h
GSL
1d 7h
Replay Cast
2 days
Kung Fu Cup
2 days
[ Show More ]
The PondCast
3 days
WardiTV Map Contest Tou…
3 days
Escore
4 days
WardiTV Map Contest Tou…
4 days
Korean StarCraft League
4 days
CranKy Ducklings
5 days
WardiTV Map Contest Tou…
5 days
IPSL
5 days
WolFix vs nOmaD
dxtr13 vs Razz
BSL
5 days
Sparkling Tuna Cup
6 days
WardiTV Map Contest Tou…
6 days
Ladder Legends
6 days
BSL
6 days
IPSL
6 days
JDConan vs TBD
Aegong vs rasowy
Replay Cast
6 days
Liquipedia Results

Completed

Escore Tournament S2: W2
RSL Revival: Season 4
NationLESS Cup

Ongoing

BSL Season 22
ASL Season 21
CSL 2026 SPRING (S20)
IPSL Spring 2026
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

Upcoming

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.