• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 01:04
CEST 07:04
KST 14:04
  • 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
Serral wins HomeStory Cup 296Serral wins Maestros of the Game 243ByuL, and the Limitations of Standard Play3Team Liquid Map Contest #22: Results and Winners7Code S Season 2 (2026): RO4 and Finals Preview12
Community News
BSL Season 22 Full Overview & Conclusion7BSL Season 22 Full Overview & Conclusion7Weekly Cups (June 29-July 5): Solar Doubles0MC vs IdrA, Boxer vs Nal_rA to be Legacy Matches @ BlizzCon445.0.16 Hotfix (June 30) - Balance + Bug Fixes40
StarCraft 2
General
Serral wins HomeStory Cup 29 Serral wins Maestros of the Game 2 Reynor: GSL Loss Wasn't About Preparation Format 5.0.16 patch for SC2 goes live (8 worker start) What is your PC setup in 2026 for SCBW/SC2 ?
Tourneys
GSL CK #5 Race War WardiTV Summer Cup 2026 RSL Revival: Season 6 - Qualifiers and Main Event HomeStory Cup 29 Vespene Cup #1 — $300+ USD, July 10
Strategy
[G] Having the right mentality to improve
Custom Maps
New Map Maker - Looking for Advice - Love or Hate Work In Progress Melee Maps [D]RTS in all its shapes and glory <3
External Content
The PondCast: SC2 News & Results Mutation # 534 Burning Evacuation Mutation # 533 Die Together Mutation # 532 Nuclear Family
Brood War
General
Pros Debate: Zerg Unfairly Nerfed? (ASL S22 map) BSL Season 22 Full Overview & Conclusion BGH Auto Balance -> http://bghmmr.eu/ BW General Discussion ASL22 General Discussion
Tourneys
[ASL22] Wildcard Qualifier IPSL Spring 2026 Top 4! [Megathread] Daily Proleagues CSLAN 4 is Coming!
Strategy
Fighting Spirit mining rates Simple Questions, Simple Answers Creating a full chart of Zerg builds Relatively freeroll strategies
Other Games
General Games
Stormgate/Frost Giant Megathread General RTS Discussion Thread Path of Exile Summer Games Done Quick 2026! Nintendo Switch Thread
Dota 2
Looking for a Dota Mentor Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
NeO.D_StephenKing vs This Guy From 1 Million Dance TL Mafia Community Thread TL Mafia Power Rank Vanilla Mini Mafia
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread UK Politics Mega-thread YouTube Thread Canadian Politics Mega-thread
Fan Clubs
The IdrA Fan Club The HerO Fan Club!
Media & Entertainment
Movie Discussion! Anime Discussion Thread Series you have seen recently...
Sports
2024 - 2026 Football Thread McBoner: A hockey love story Tennis[sport] Formula 1 Discussion TeamLiquid Health and Fitness Initiative For 2023
World Cup 2022
Tech Support
Simple Questions Simple Answers FPS when play League Of Legend on laptop How to clean a TTe Thermaltake keyboard?
TL Community
The Automated Ban List
Blogs
Major Shifts in the Gaming I…
TrAiDoS
An Exploration of th…
waywardstrategy
Gauntlet SC2: A Retrospectiv…
Ctone23
ramps on octagon
StaticNine
Funny Nicknames
LUCKY_NOOB
Evil Gacha Games and the…
ffswowsucks
StarCraft improvement
iopq
Customize Sidebar...

Website Feedback

Closed Threads



Active: 5171 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
Replay Cast
00:00
GSL CK #5 - Day 2
CranKy Ducklings153
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
WinterStarcraft692
NeuroSwarm 191
oGsTOP 186
StarCraft: Brood War
Rain 7052
GuemChi 2956
Tasteless 109
ZergMaN 22
Bale 18
Noble 12
Icarus 9
Counter-Strike
summit1g8551
m0e_tv504
Other Games
JimRising 572
C9.Mang0362
Nina58
kaitlyn2
Organizations
Other Games
gamesdonequick2316
BasetradeTV212
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 15 non-featured ]
StarCraft 2
• Berry_CruncH288
• practicex 26
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• Azhi_Dahaki23
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Rush1167
• Stunt488
Upcoming Events
WardiTV Weekly
5h 56m
The PondCast
1d 4h
Replay Cast
2 days
CrankTV Team League
2 days
Replay Cast
3 days
CrankTV Team League
3 days
Replay Cast
3 days
RSL Revival
4 days
Clem vs Lambo
Scarlett vs Cure
CranKy Ducklings
4 days
IPSL
4 days
Dragon vs Hawk
[ Show More ]
RSL Revival
5 days
Classic vs Trap
herO vs SHIN
Sparkling Tuna Cup
5 days
IPSL
5 days
Bonyth vs Ret
WardiTV Weekly
6 days
Monday Night Weeklies
6 days
Liquipedia Results

Completed

YSL S3
HSC XXIX
Eternal Conflict S2 E2

Ongoing

IPSL Spring 2026
Acropolis #4
CSL 2026 Summer (S21)
RSL Revival: Season 6
CranK Gathers Season 4: BW vs SC2 Team League
SCTL 2026 Spring
XSE Pro League 2026
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

Upcoming

Escore Tournament S3: W3
ASL S22 SEASON OPEN Day 1
Escore Tournament S3: W4
ASL S22 SEASON OPEN Day 2
Escore Tournament S3: W5
CSLAN 4
Blizzard Classic Cup 2026
HSC XXX
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
Light Tournament 2026
Eternal Conflict S2 Finale
Eternal Conflict S2 E3
Logitech G Connect 2026
StarSeries Fall 2026
FISSURE Playground #5
BLAST Open Fall 2026
Esports World Cup 2026
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual
Stake Ranked Episode 3
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.