• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 11:04
CET 17:04
KST 01: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
TL.net Map Contest #21: Winners8Intel X Team Liquid Seoul event: Showmatches and Meet the Pros10[ASL20] Finals Preview: Arrival13TL.net Map Contest #21: Voting12[ASL20] Ro4 Preview: Descent11
Community News
Starcraft, SC2, HoTS, WC3, returning to Blizzcon!33$5,000+ WardiTV 2025 Championship6[BSL21] RO32 Group Stage4Weekly Cups (Oct 26-Nov 2): Liquid, Clem, Solar win; LAN in Philly2Weekly Cups (Oct 20-26): MaxPax, Clem, Creator win9
StarCraft 2
General
RotterdaM "Serral is the GOAT, and it's not close" TL.net Map Contest #21: Winners Starcraft, SC2, HoTS, WC3, returning to Blizzcon! 5.0.15 Patch Balance Hotfix (2025-10-8) Weekly Cups (Oct 20-26): MaxPax, Clem, Creator win
Tourneys
$5,000+ WardiTV 2025 Championship Sparkling Tuna Cup - Weekly Open Tournament Constellation Cup - Main Event - Stellar Fest Merivale 8 Open - LAN - Stellar Fest Sea Duckling Open (Global, Bronze-Diamond)
Strategy
Custom Maps
Map Editor closed ?
External Content
Mutation # 498 Wheel of Misfortune|Cradle of Death Mutation # 497 Battle Haredened Mutation # 496 Endless Infection Mutation # 495 Rest In Peace
Brood War
General
BW General Discussion [ASL20] Ask the mapmakers — Drop your questions [BSL21] RO32 Group Stage BGH Auto Balance -> http://bghmmr.eu/ SnOw's ASL S20 Finals Review
Tourneys
[Megathread] Daily Proleagues [ASL20] Grand Finals [BSL21] RO32 Group B - Sunday 21:00 CET [BSL21] RO32 Group A - Saturday 21:00 CET
Strategy
Current Meta PvZ map balance How to stay on top of macro? Soma's 9 hatch build from ASL Game 2
Other Games
General Games
Stormgate/Frost Giant Megathread Dawn of War IV Nintendo Switch Thread ZeroSpace Megathread General RTS Discussion Thread
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
TL Mafia Community Thread SPIRED by.ASL Mafia {211640}
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread Things Aren’t Peaceful in Palestine YouTube Thread Dating: How's your luck?
Fan Clubs
White-Ra Fan Club The herO Fan Club!
Media & Entertainment
Anime Discussion Thread Movie Discussion! [Manga] One Piece Korean Music Discussion Series you have seen recently...
Sports
2024 - 2026 Football Thread NBA General Discussion MLB/Baseball 2023 TeamLiquid Health and Fitness Initiative For 2023 Formula 1 Discussion
World Cup 2022
Tech Support
SC2 Client Relocalization [Change SC2 Language] Linksys AE2500 USB WIFI keeps disconnecting Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List Recent Gifted Posts
Blogs
Coffee x Performance in Espo…
TrAiDoS
Saturation point
Uldridge
DnB/metal remix FFO Mick Go…
ImbaTosS
Why we need SC3
Hildegard
Reality "theory" prov…
perfectspheres
Our Last Hope in th…
KrillinFromwales
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1696 users

The Big Programming Thread - Page 898

Forum Index > General Forum
Post a Reply
Prev 1 896 897 898 899 900 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.
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
Last Edited: 2017-07-08 23:42:06
July 08 2017 23:40 GMT
#17941
On July 07 2017 09:08 berated- wrote:
Show nested quote +
On July 07 2017 08:30 Blisse wrote:
Thoughts? A coworker merges a PR where you completely disagreed with their implementation. One senior/not-really person OK'd the PR but he never leaves comments. How would you handle this?


Can you verbalize all the reasons you disagree with their implementation? How much code are we talking about? If it's under a couple hours work, I generally try to rework it in the way that I think that it should be done differently without pushing any code off hours. This has a couple benefits, if you figure out along the way that you've missed some assumptions that are actual trade offs that they already considered, you did so without putting your foot in your mouth first. It also provides the benefit that if it works out as you expected then you would now have a talking point that you can approach, I saw your code but was curious did you consider x or y?

Either way, hopefully you work in an environment where you can freely and openly question why things are done. Seek to understand why they did it their way instead of imposing your own way. If you really think you know better then you should be able to ask them questions that lead them to your own conclusion without making any statements making them defensive. I personally also like to have these meetings 1 on 1 to make people feel less vulnerable and less likely to get defensive.


Sorry my response took so long. The change was very straightforward.


void function() {

string a;
if (condition) {

// BEGIN NEW CODE
if (condition) {
doSomething
doSomethingElse
return
}
// END NEW CODE

a = some a
} else {
a = other a
}

string b;
if (condition) {
b = some b
}

call(a, b, c, ...)
}


Simplified code of course, but basically the exact control flow. I agree with and attempt to try all of your suggestions (minus coding it myself to test, as I think asking them why they couldn't do it my other way works similarly) if this was an architectural or over-reaching change, but this was a straightforward change in one function that affected control flow that I feel could've been integrated much better. Now there's just an arbitrary short circuit.

I think I'm more annoyed with upstream things being: the one coworker doesn't seem to give much feedback in PRs when he approves them, and that the PR was merged early by my coworker when there was still ongoing questions about the PR.

Plus I was kind of annoyed the coworker's reasoning for putting the code there was that "it would be faster". I think I understand why he thinks so, as he's coming from embedded.
There is no one like you in the universe.
phar
Profile Joined August 2011
United States1080 Posts
July 11 2017 01:50 GMT
#17942
I mean if you have no real code review policy at your company, there's not much you can do, save for go back and change it yourself later. Not really worth the bad blood and stress over such a small thing. There's nothing horribly wrong with that code. If you sent in a comment on their change and they didn't take your advice, you kinda just have to move on.
Who after all is today speaking about the destruction of the Armenians?
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
July 11 2017 06:34 GMT
#17943
We do have a code review policy. It's one approval. 2 people who left feedback (me + coworker) didn't approve it. A third reviewer approved it but didn't leave feedback. I believe the root problem is the one coworker who approves things but never leaves any feedback and I asked my manager about it.

Also, the code adds unnecessary nesting and an abrupt change in control flow. Just generally lowers the quality of the codebase. I happily push back against that. I disagree with the idea of moving on instead of fixing the root problems, though I can understand if it sounds like I'm nitpicking on small details.
There is no one like you in the universe.
spinesheath
Profile Blog Joined June 2009
Germany8679 Posts
July 11 2017 16:00 GMT
#17944
So if someone accepts it that overrides the explicit disapproval of 2 other people? Or did you just not approve it as in not say whether it was ok or not?
If you have a good reason to disagree with the above, please tell me. Thank you.
Blitzkrieg0
Profile Blog Joined August 2010
United States13132 Posts
July 11 2017 16:16 GMT
#17945
On July 12 2017 01:00 spinesheath wrote:
So if someone accepts it that overrides the explicit disapproval of 2 other people? Or did you just not approve it as in not say whether it was ok or not?


The approver who doesn't leave feedback is the real problem. Seems like someone is just pushing buttons instead of actually reviewing the pull request.
I'll always be your shadow and veil your eyes from states of ain soph aur.
berated-
Profile Blog Joined February 2007
United States1134 Posts
July 11 2017 21:45 GMT
#17946
On July 11 2017 15:34 Blisse wrote:
We do have a code review policy. It's one approval. 2 people who left feedback (me + coworker) didn't approve it. A third reviewer approved it but didn't leave feedback. I believe the root problem is the one coworker who approves things but never leaves any feedback and I asked my manager about it.

Also, the code adds unnecessary nesting and an abrupt change in control flow. Just generally lowers the quality of the codebase. I happily push back against that. I disagree with the idea of moving on instead of fixing the root problems, though I can understand if it sounds like I'm nitpicking on small details.


Do you guys use tools that measure cyclomatic complexity? If not, then, it feels like "unnecessary nesting" is a matter of opinion vs fact. If you do, and it didn't trigger violations, then I would start to lean towards being overly nitpicky.

Sucks that someone can approve when other people bring up concerns without any sort of explanation at all.
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
Last Edited: 2017-07-11 23:12:50
July 11 2017 22:55 GMT
#17947
Good point about cyclomatic complexity. If it were measured, it'd be easy to point out in a numbers game, though I wouldn't want to work at a place that had strict policies like that.

Regarding the code, I just haven't heard a satisfactory argument re: how it's not objectively worse. If there was worry about speed (which there is not) we could just early return at the top. The existing function has a flat, logical structure to each block of code. The new code adds nesting complexity and breaks the intended logic in each code block.

I can live with the code -- given next time (unlikely) I work in the area I'll opportunistically refactor it, but there were larger factors in play, and complaining about it here is useful for narrowing down exactly what I was annoyed with :p




I think the Approval/Decline system (we use Bitbucket) is relaxed because being too strict is bad for developer morale. But not being strict can lead to moments of disagreement like this. I've worked at places where you'd tag the PR as "Needs Improvement" and wouldn't be okay to merge until that tag was removed. Good for enforcing your disagreement is heard, bad for contributing to the PR if you don't feel like stamping the PR with a giant red flag.
There is no one like you in the universe.
netherh
Profile Blog Joined November 2011
United Kingdom333 Posts
July 14 2017 12:06 GMT
#17948
On July 12 2017 07:55 Blisse wrote:
Regarding the code, I just haven't heard a satisfactory argument re: how it's not objectively worse. If there was worry about speed (which there is not) we could just early return at the top. The existing function has a flat, logical structure to each block of code. The new code adds nesting complexity and breaks the intended logic in each code block.


I think part of the problem is that the existing code is substandard too (or at least not defensively written). It's declaring a variable outside a scope, then doing a bunch of logic to populate the string (or not?), and then repeat. This "pattern" should actually be enforced in code by splitting it into separate functions. That way it's easier to understand, and a lot harder to change it "incorrectly". e.g.


void function()
{
string a = calculateA();
string b = calculateB();
call(a, b, ...);
}


Now you can't mess with the control flow of "function()" while calculating "a", unless you do something drastic.
sabas123
Profile Blog Joined December 2010
Netherlands3122 Posts
July 14 2017 14:14 GMT
#17949
On July 12 2017 06:45 berated- wrote:
Show nested quote +
On July 11 2017 15:34 Blisse wrote:
We do have a code review policy. It's one approval. 2 people who left feedback (me + coworker) didn't approve it. A third reviewer approved it but didn't leave feedback. I believe the root problem is the one coworker who approves things but never leaves any feedback and I asked my manager about it.

Also, the code adds unnecessary nesting and an abrupt change in control flow. Just generally lowers the quality of the codebase. I happily push back against that. I disagree with the idea of moving on instead of fixing the root problems, though I can understand if it sounds like I'm nitpicking on small details.


Do you guys use tools that measure cyclomatic complexity? If not, then, it feels like "unnecessary nesting" is a matter of opinion vs fact. If you do, and it didn't trigger violations, then I would start to lean towards being overly nitpicky.

Sucks that someone can approve when other people bring up concerns without any sort of explanation at all.

Even if you use tools for computing cyclomatic complexity, you still run into a lot of murky areas for instance I don't think its possible convincing someone that a cyclomatic complexity of 10 is a generally a bad thing without resorting to opinions.

The harder it becomes, the more you should focus on the basics.
aRyuujin
Profile Blog Joined January 2011
United States5049 Posts
July 14 2017 15:46 GMT
#17950
Anyone have insight on using Gower distance + a hierarchical clustering method vs using k-prototypes for clustering mixed categorical + continuous data?
can i get my estro logo back pls
berated-
Profile Blog Joined February 2007
United States1134 Posts
Last Edited: 2017-07-14 21:07:29
July 14 2017 21:06 GMT
#17951
On July 14 2017 23:14 sabas123 wrote:
Show nested quote +
On July 12 2017 06:45 berated- wrote:
On July 11 2017 15:34 Blisse wrote:
We do have a code review policy. It's one approval. 2 people who left feedback (me + coworker) didn't approve it. A third reviewer approved it but didn't leave feedback. I believe the root problem is the one coworker who approves things but never leaves any feedback and I asked my manager about it.

Also, the code adds unnecessary nesting and an abrupt change in control flow. Just generally lowers the quality of the codebase. I happily push back against that. I disagree with the idea of moving on instead of fixing the root problems, though I can understand if it sounds like I'm nitpicking on small details.


Do you guys use tools that measure cyclomatic complexity? If not, then, it feels like "unnecessary nesting" is a matter of opinion vs fact. If you do, and it didn't trigger violations, then I would start to lean towards being overly nitpicky.

Sucks that someone can approve when other people bring up concerns without any sort of explanation at all.

Even if you use tools for computing cyclomatic complexity, you still run into a lot of murky areas for instance I don't think its possible convincing someone that a cyclomatic complexity of 10 is a generally a bad thing without resorting to opinions.



Sure but at least there are guidelines around when you should maybe start to have conversations and bring in more view points -- and when someone might be just being picky for not a lot of gain. Programming is so much about trade offs that there is rarely a one size fits all. I definitely agree with you though.
BluzMan
Profile Blog Joined April 2006
Russian Federation4235 Posts
July 14 2017 23:29 GMT
#17952
On July 14 2017 21:06 netherh wrote:
Show nested quote +
On July 12 2017 07:55 Blisse wrote:
Regarding the code, I just haven't heard a satisfactory argument re: how it's not objectively worse. If there was worry about speed (which there is not) we could just early return at the top. The existing function has a flat, logical structure to each block of code. The new code adds nesting complexity and breaks the intended logic in each code block.


I think part of the problem is that the existing code is substandard too (or at least not defensively written). It's declaring a variable outside a scope, then doing a bunch of logic to populate the string (or not?), and then repeat. This "pattern" should actually be enforced in code by splitting it into separate functions. That way it's easier to understand, and a lot harder to change it "incorrectly". e.g.


void function()
{
string a = calculateA();
string b = calculateB();
call(a, b, ...);
}


Now you can't mess with the control flow of "function()" while calculating "a", unless you do something drastic.


Funnily enough, I find this code pretty bad because it makes me think:
- Is a used anywhere else? Is b? Why are they variables? Am I missing something?
Almost unavoidable in a messy language like Java, but there's no excuse for that in C or C++.
You want 20 good men, but you need a bad pussy.
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
Last Edited: 2017-07-14 23:54:54
July 14 2017 23:44 GMT
#17953
On July 15 2017 08:29 BluzMan wrote:
Show nested quote +
On July 14 2017 21:06 netherh wrote:
On July 12 2017 07:55 Blisse wrote:
Regarding the code, I just haven't heard a satisfactory argument re: how it's not objectively worse. If there was worry about speed (which there is not) we could just early return at the top. The existing function has a flat, logical structure to each block of code. The new code adds nesting complexity and breaks the intended logic in each code block.


I think part of the problem is that the existing code is substandard too (or at least not defensively written). It's declaring a variable outside a scope, then doing a bunch of logic to populate the string (or not?), and then repeat. This "pattern" should actually be enforced in code by splitting it into separate functions. That way it's easier to understand, and a lot harder to change it "incorrectly". e.g.


void function()
{
string a = calculateA();
string b = calculateB();
call(a, b, ...);
}


Now you can't mess with the control flow of "function()" while calculating "a", unless you do something drastic.


Funnily enough, I find this code pretty bad because it makes me think:
- Is a used anywhere else? Is b? Why are they variables? Am I missing something?
Almost unavoidable in a messy language like Java, but there's no excuse for that in C or C++.



And what is your solution for that abstraction in C/C++ that isn't possible in Java... ? Other than exposing methods unnecessarily it looks.. fine?
There is no one like you in the universe.
Manit0u
Profile Blog Joined August 2004
Poland17420 Posts
Last Edited: 2017-07-17 01:05:14
July 17 2017 01:00 GMT
#17954
On July 15 2017 08:44 Blisse wrote:
Show nested quote +
On July 15 2017 08:29 BluzMan wrote:
On July 14 2017 21:06 netherh wrote:
On July 12 2017 07:55 Blisse wrote:
Regarding the code, I just haven't heard a satisfactory argument re: how it's not objectively worse. If there was worry about speed (which there is not) we could just early return at the top. The existing function has a flat, logical structure to each block of code. The new code adds nesting complexity and breaks the intended logic in each code block.


I think part of the problem is that the existing code is substandard too (or at least not defensively written). It's declaring a variable outside a scope, then doing a bunch of logic to populate the string (or not?), and then repeat. This "pattern" should actually be enforced in code by splitting it into separate functions. That way it's easier to understand, and a lot harder to change it "incorrectly". e.g.


void function()
{
string a = calculateA();
string b = calculateB();
call(a, b, ...);
}


Now you can't mess with the control flow of "function()" while calculating "a", unless you do something drastic.


Funnily enough, I find this code pretty bad because it makes me think:
- Is a used anywhere else? Is b? Why are they variables? Am I missing something?
Almost unavoidable in a messy language like Java, but there's no excuse for that in C or C++.



And what is your solution for that abstraction in C/C++ that isn't possible in Java... ? Other than exposing methods unnecessarily it looks.. fine?


I believe that he'd like it to look like that:


void callSomeMethods()
{
call(calculateA(), calculateB(), ...);
}


Also, Java since version 8 became much less of a mess (it just needs more type inference and getting rid of primitives like they did in Scala).
Time is precious. Waste it wisely.
MrBrokenPenis
Profile Joined July 2017
3 Posts
July 17 2017 15:18 GMT
#17955
I hope this is the right place to post this.
Is there any library or API to get your opponents name at the start of a SCII match?
Would prefer python, if possible
IyMoon
Profile Joined April 2016
United States1249 Posts
July 17 2017 15:24 GMT
#17956
On July 18 2017 00:18 MrBrokenPenis wrote:
I hope this is the right place to post this.
Is there any library or API to get your opponents name at the start of a SCII match?
Would prefer python, if possible


Doesn't the name just show up? It has been awhile since I played SC2 but doesn't your handle just come up on load screen?

Or are you talking about your real name that you register Bnet with?
Something witty
MrBrokenPenis
Profile Joined July 2017
3 Posts
July 17 2017 15:47 GMT
#17957
No, I would like to have script running, that grabs the name of my opponent
Blisse
Profile Blog Joined July 2010
Canada3710 Posts
Last Edited: 2017-07-17 21:10:19
July 17 2017 21:10 GMT
#17958
You'll probably get banned by Blizzard for using third-party things to read their game data. Against ToS most likely. If you want opponent data just use the SC2 api https://dev.battle.net/io-docs
There is no one like you in the universe.
Nesserev
Profile Blog Joined January 2011
Belgium2760 Posts
Last Edited: 2017-07-18 06:05:50
July 18 2017 06:03 GMT
#17959
--- Nuked ---
dsyxelic
Profile Joined May 2010
United States1417 Posts
July 19 2017 01:02 GMT
#17960
can anyone help a c noob?
--
say there is a text file with a string, say "abcdefghijk"

read in that file and delete a substring from it (have file update the new string)
--
is there a very simple way to do this?

so far all I got is fopen with the r+ mode and fgetc which doesn't seem to be what i'm looking for..

any easy to read resource or pointers(heh) for the best approach would be greatly appreciated. I've only gotten around to parsing individual strings from file or going by each character, but not substrings :/
TL/SKT
Prev 1 896 897 898 899 900 1032 Next
Please log in or register to reply.
Live Events Refresh
Next event in 1h 56m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
RotterdaM 572
BRAT_OK 90
Codebar 41
Livibee 31
StarCraft: Brood War
Jaedong 1495
GuemChi 1465
EffOrt 1325
Stork 698
Light 607
Larva 417
Snow 411
Mini 356
Rush 223
Barracks 222
[ Show more ]
Leta 119
hero 112
sSak 111
JYJ47
Aegong 37
Backho 34
sorry 29
zelot 26
soO 23
Terrorterran 16
HiyA 15
scan(afreeca) 12
Bale 9
Dota 2
qojqva3422
420jenkins258
syndereN218
Other Games
singsing2199
Sick375
DeMusliM352
crisheroes342
Lowko284
Hui .257
Liquid`VortiX150
oskar109
KnowMe96
XcaliburYe58
QueenE29
Trikslyr17
Organizations
Counter-Strike
PGL201
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 16 non-featured ]
StarCraft 2
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• Michael_bg 4
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• C_a_k_e 2491
• WagamamaTV466
League of Legends
• Nemesis4280
• Jankos3067
• TFBlade809
Upcoming Events
LAN Event
1h 56m
Lambo vs Harstem
FuturE vs Maplez
Scarlett vs FoxeR
Gerald vs Mixu
Zoun vs TBD
Clem vs TBD
ByuN vs TBD
TriGGeR vs TBD
Korean StarCraft League
10h 56m
CranKy Ducklings
17h 56m
IPSL
1d 1h
dxtr13 vs OldBoy
Napoleon vs Doodle
LAN Event
1d 1h
BSL 21
1d 3h
Gosudark vs Kyrie
Gypsy vs Sterling
UltrA vs Radley
Dandy vs Ptak
Replay Cast
1d 6h
Sparkling Tuna Cup
1d 17h
WardiTV Korean Royale
1d 19h
IPSL
2 days
JDConan vs WIZARD
WolFix vs Cross
[ Show More ]
LAN Event
2 days
BSL 21
2 days
spx vs rasowy
HBO vs KameZerg
Cross vs Razz
dxtr13 vs ZZZero
Replay Cast
2 days
Wardi Open
2 days
WardiTV Korean Royale
3 days
Replay Cast
4 days
Kung Fu Cup
4 days
Classic vs Solar
herO vs Cure
Reynor vs GuMiho
ByuN vs ShoWTimE
Tenacious Turtle Tussle
5 days
The PondCast
5 days
RSL Revival
5 days
Solar vs Zoun
MaxPax vs Bunny
Kung Fu Cup
5 days
WardiTV Korean Royale
5 days
RSL Revival
6 days
Classic vs Creator
Cure vs TriGGeR
Kung Fu Cup
6 days
Liquipedia Results

Completed

BSL 21 Points
SC4ALL: StarCraft II
Eternal Conflict S1

Ongoing

C-Race Season 1
IPSL Winter 2025-26
KCM Race Survival 2025 Season 4
SOOP Univ League 2025
YSL S2
Stellar Fest: Constellation Cup
IEM Chengdu 2025
PGL Masters Bucharest 2025
Thunderpick World Champ.
CS Asia Championships 2025
ESL Pro League S22
StarSeries Fall 2025
FISSURE Playground #2
BLAST Open Fall 2025
BLAST Open Fall Qual

Upcoming

BSL Season 21
SLON Tour Season 2
BSL 21 Non-Korean Championship
Acropolis #4
IPSL Spring 2026
HSC XXVIII
RSL Offline Finals
WardiTV 2025
RSL Revival: Season 3
META Madness #9
BLAST Bounty Winter 2026: Closed Qualifier
eXTREMESLAND 2025
ESL Impact League Season 8
SL Budapest Major 2025
BLAST Rivals Fall 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.