• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 06:17
CET 11:17
KST 19:17
  • 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
[ASL22] Finals Preview: Sweet Victory!9[ASL22] Ro4 Preview: Mirror Mirror6[ASL22] Ro8 Preview: Within Reach5[ASL22] Ro8 Preview: In A Tizzy11[ASL22] Ro16 Preview: Holy Diver5
Community News
Evil Geniuses - shutting down14ISSL (IntoTheTV x SOOP SC2 League): Premier5Weekly Cups (October 12-18): 5.0.17 era begins1[$1250] International ShieldBattery League70Weekly Cups (October 5-11): Farewell to 5.0.167
StarCraft 2
General
REPORT: StarCraft 2: Remastered In Development Team Liquid Map Contest #22: Results and Winners No more SC2 streamers on team liquid? Evil Geniuses - shutting down How do you feel about the mass reverts in the 5.0.17 PTR?
Tourneys
ScienceCraft (October 24-25) - Live Event Sparkling Tuna Cup - Weekly Open Tournament RSL goes to London! 2026 Offline Finals Nov 21-22 ISSL (IntoTheTV x SOOP SC2 League): Premier WORTEX Challenger Series — Open SC2 LAN in Budapes
Strategy
[H] ZvP Mid-Late Game: Stalkers Collossi HT
Custom Maps
[G] How to playtest arcade maps [A] Nemrods 1/4 players [M] (2) Sweltering Sands
External Content
Mutation # 549 Endless Sparkles The PondCast: SC2 News & Results Mutation # 548 Shining Bright Mutation # 547 Temple Of Terror
Brood War
General
Oceanic Brood War - Join and chat! Bot on ladder Do we even care about balance? [Recap] 0-6 Defeat for Mong's Team BGH Auto Balance -> http://bghmmr.eu/
Tourneys
[$1250] International ShieldBattery League [ASL22] Grand Finals [BSL23] RO24 Group C Small VOD Thread 2.0
Strategy
Cliff Jump Revisited (1 in a 1000 strategy) 50,000-Word Terran Builds Memo 2026-10-22 Simple Questions, Simple Answers
Other Games
General Games
Mobile Legends: Bang Bang Stormgate/Frost Giant Megathread Nintendo Switch Thread Armies of Exigo - YesYes? General RTS Discussion Thread
Dota 2
Dota 2 Champions League Season 3 Begins April 25!
League of Legends
[TL LoL EUW IHs] Teemo shall perish
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Community Thread
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread Things Aren’t Peaceful in Palestine Canadian Politics Mega-thread Artificial Intelligence Thread
Fan Clubs
The Flash Fan Club Serral Fan Club
Media & Entertainment
Anime Discussion Thread Movie Discussion! [Manga] One Piece
Sports
Football (Soccer) Thread TeamLiquid Health and Fitness Initiative For 2023 MLB/Baseball 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
Recent Gifted Posts
Blogs
Innovate or Game Over?
TrAiDoS
ShieldBattery on Mac
Kraekkling
[ASL22] Ro4 Day1 Ticket Giv…
bITt.mAN
Can Bots Beat Pros?? Starcr…
namkraft
Customize Sidebar...

Website Feedback

Closed Threads



Active: 8073 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
Next event in 1h 43m
[ Submit Event ]
Live Streams
Refresh
StarCraft: Brood War
Calm 4810
Shuttle 4150
firebathero 3023
Rain 2174
Horang2 1048
Hyuk 342
Larva 236
EffOrt 177
Rush 152
Soma 149
[ Show more ]
Light 139
Soulkey 105
Pusan 85
ZerO 80
JYJ 73
Mind 66
Killer 42
Shinee 32
sorry 26
ZergMaN 25
Sharp 25
ToSsGirL 23
Movie 22
Hm[arnc] 14
Sacsri 12
Terrorterran 8
yabsab 8
Noble 5
Dota 2
Gorgc11403
ODPixel244
XcaliburYe28
Counter-Strike
shoxiejesuss958
dupreeh921
Other Games
Happy308
Livibee259
crisheroes215
Pyrionflax173
ZerO(Twitch)3
Organizations
Counter-Strike
PGL12043
Other Games
gamesdonequick913
StarCraft: Brood War
lovetv 6
[ Show 11 non-featured ]
StarCraft 2
• LUISG 25
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• Migwel
StarCraft: Brood War
• iopq 4
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Stunt462
Upcoming Events
WardiTV Weekly
1h 43m
IntoTheTV X SOOP
1d
ByuN vs Lambo
MaxPax vs Bunny
PiGosaur Cup
1d 13h
The PondCast
1d 23h
Kung Fu Cup
2 days
IntoTheTV X SOOP
3 days
SHIN vs GuMiho
Clem vs Classic
WardiTV Invitational
4 days
GSL
4 days
Epic.LAN
4 days
Replay Cast
4 days
[ Show More ]
Sparkling Tuna Cup
4 days
Epic.LAN
5 days
Yamato Cup
6 days
Liquipedia Results

Completed

Acropolis #5 - GSC
Blizzard Classic Cup 2026
HCC Season 3

Ongoing

Acropolis #5
KCM Race Survival 2026 Season 4
BSL Season 23
PGL Masters Bucharest 2026
1win Private Club #2
Thunderpick World Champ. '26
ESL Pro League Season 24
Stake Ranked Episode 4
1win Private Club #1
Logitech G Play Connect 2026
SL StarSeries Fall 2026
FISSURE Playground #3
BLAST Open Fall 2026
Esports World Cup 2026

Upcoming

IPSL Winter 2026-27
SC4ALL II: Brood War
BSL 23: Non-Korean Championship
HSC XXX
Stellar Fest 2: Lunar Cup
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
RSL Offline Finals
eXTREMESLAND 2026
PGL Major Singapore 2026
Stake Ranked Episode 6
BLAST Rivals Fall 2026
IEM Beijing 2026
Stake Ranked Episode 5
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.