• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 22:51
CET 04:51
KST 12:51
  • 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
RSL Season 3 - Playoffs Preview0RSL Season 3 - RO16 Groups C & D Preview0RSL Season 3 - RO16 Groups A & B Preview2TL.net Map Contest #21: Winners12Intel X Team Liquid Seoul event: Showmatches and Meet the Pros10
Community News
Weekly Cups (Nov 24-30): MaxPax, Clem, herO win2BGE Stara Zagora 2026 announced15[BSL21] Ro.16 Group Stage (C->B->A->D)4Weekly Cups (Nov 17-23): Solar, MaxPax, Clem win3RSL Season 3: RO16 results & RO8 bracket13
StarCraft 2
General
Chinese SC2 server to reopen; live all-star event in Hangzhou Maestros of the Game: Live Finals Preview (RO4) BGE Stara Zagora 2026 announced Weekly Cups (Nov 24-30): MaxPax, Clem, herO win SC2 Proleague Discontinued; SKT, KT, SGK, CJ disband
Tourneys
StarCraft Evolution League (SC Evo Biweekly) RSL Offline Finals Info - Dec 13 and 14! RSL Offline FInals Sea Duckling Open (Global, Bronze-Diamond) $5,000+ WardiTV 2025 Championship
Strategy
Custom Maps
Map Editor closed ?
External Content
Mutation # 502 Negative Reinforcement Mutation # 501 Price of Progress Mutation # 500 Fright night Mutation # 499 Chilling Adaptation
Brood War
General
BW General Discussion Which season is the best in ASL? Data analysis on 70 million replays BGH Auto Balance -> http://bghmmr.eu/ [ASL20] Ask the mapmakers — Drop your questions
Tourneys
[BSL21] RO16 Group D - Sunday 21:00 CET [BSL21] RO16 Group A - Saturday 21:00 CET [Megathread] Daily Proleagues [BSL21] RO16 Group B - Sunday 21:00 CET
Strategy
Current Meta Game Theory for Starcraft How to stay on top of macro? PvZ map balance
Other Games
General Games
ZeroSpace Megathread Stormgate/Frost Giant Megathread Nintendo Switch Thread The Perfect Game Path of Exile
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
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Mafia Game Mode Feedback/Ideas TL Mafia Community Thread
Community
General
Things Aren’t Peaceful in Palestine Russo-Ukrainian War Thread US Politics Mega-thread The Big Programming Thread Artificial Intelligence Thread
Fan Clubs
White-Ra Fan Club
Media & Entertainment
[Manga] One Piece Movie Discussion! Anime Discussion Thread
Sports
2024 - 2026 Football Thread Formula 1 Discussion NBA General Discussion
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
Where to ask questions and add stream? The Automated Ban List
Blogs
James Bond movies ranking - pa…
Topin
Esports Earnings: Bigger Pri…
TrAiDoS
Thanks for the RSL
Hildegard
Saturation point
Uldridge
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1671 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
WardiTV Mondays #62
CranKy Ducklings155
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
Nathanias 169
RuFF_SC2 143
StarCraft: Brood War
Artosis 687
Shine 83
Tasteless 81
Bale 75
NaDa 12
Icarus 5
Dota 2
monkeys_forever851
NeuroSwarm158
League of Legends
JimRising 753
Counter-Strike
Coldzera 1289
Fnx 227
Other Games
summit1g13879
tarik_tv5038
shahzam591
C9.Mang0301
ViBE155
Mew2King92
WinterStarcraft1
Organizations
Other Games
gamesdonequick985
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 13 non-featured ]
StarCraft 2
• Hupsaiya 114
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• RayReign 24
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Doublelift4607
Upcoming Events
The PondCast
6h 9m
OSC
12h 9m
Demi vs Mixu
Nicoract vs TBD
Babymarine vs MindelVK
ForJumy vs TBD
Shameless vs Percival
Replay Cast
20h 9m
Korean StarCraft League
1d 23h
CranKy Ducklings
2 days
WardiTV 2025
2 days
SC Evo League
2 days
BSL 21
2 days
Sziky vs OyAji
Gypsy vs eOnzErG
OSC
2 days
Solar vs Creator
ByuN vs Gerald
Percival vs Babymarine
Moja vs Krystianer
EnDerr vs ForJumy
sebesdes vs Nicoract
Sparkling Tuna Cup
3 days
[ Show More ]
WardiTV 2025
3 days
OSC
3 days
BSL 21
3 days
Bonyth vs StRyKeR
Tarson vs Dandy
Replay Cast
4 days
Wardi Open
4 days
StarCraft2.fi
4 days
Monday Night Weeklies
4 days
Replay Cast
4 days
WardiTV 2025
5 days
StarCraft2.fi
5 days
PiGosaur Monday
5 days
StarCraft2.fi
6 days
Tenacious Turtle Tussle
6 days
Liquipedia Results

Completed

Proleague 2025-11-30
RSL Revival: Season 3
Light HT

Ongoing

C-Race Season 1
IPSL Winter 2025-26
KCM Race Survival 2025 Season 4
YSL S2
BSL Season 21
CSCL: Masked Kings S3
Slon Tour Season 2
Acropolis #4 - TS3
META Madness #9
SL Budapest Major 2025
ESL Impact League Season 8
BLAST Rivals Fall 2025
IEM Chengdu 2025
PGL Masters Bucharest 2025
Thunderpick World Champ.
CS Asia Championships 2025
ESL Pro League S22
StarSeries Fall 2025
FISSURE Playground #2

Upcoming

BSL 21 Non-Korean Championship
Acropolis #4
IPSL Spring 2026
Bellum Gens Elite Stara Zagora 2026
HSC XXVIII
RSL Offline Finals
WardiTV 2025
Kuram Kup
PGL Cluj-Napoca 2026
IEM Kraków 2026
BLAST Bounty Winter 2026
BLAST Bounty Winter Qual
eXTREMESLAND 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.