• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 10:09
CEST 16:09
KST 23:09
  • 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
Code S Season 1 - RO12 Group A: Rogue, Percival, Solar, Zoun13[ASL21] Ro8 Preview Pt1: Inheritors16[ASL21] Ro16 Preview Pt2: All Star10Team Liquid Map Contest #22 - The Finalists22[ASL21] Ro16 Preview Pt1: Fresh Flow9
Community News
RSL Revival: Season 5 - Qualifiers and Main Event8Code S Season 1 (2026) - RO12 Results02026 GSL Season 1 Qualifiers25Maestros of the Game 2 announced92026 GSL Tour plans announced15
StarCraft 2
General
Code S Season 1 - RO12 Group A: Rogue, Percival, Solar, Zoun Code S Season 1 (2026) - RO12 Results Team Liquid Map Contest #22 - The Finalists Blizzard Classic Cup @ BlizzCon 2026 - $100k prize pool MaNa leaves Team Liquid
Tourneys
GSL Code S Season 1 (2026) RSL Revival: Season 5 - Qualifiers and Main Event SC2 INu's Battles#15 <BO.9 2Matches> WardiTV Spring Cup SEL Masters #6 - Solar vs Classic (SC: Evo)
Strategy
Custom Maps
[D]RTS in all its shapes and glory <3 [A] Nemrods 1/4 players [M] (2) Frigid Storage
External Content
The PondCast: SC2 News & Results Mutation # 523 Firewall Mutation # 522 Flip My Base Mutation # 521 Memorable Boss
Brood War
General
BW General Discussion Why there arent any 256x256 pro maps? BGH Auto Balance -> http://bghmmr.eu/ ASL21 General Discussion [BSL22] RO16 Group B - Saturday 21:00 CEST
Tourneys
[Megathread] Daily Proleagues [ASL21] Ro8 Day 2 Escore Tournament StarCraft Season 2 [BSL22] RO16 Group Stage - 02 - 10 May
Strategy
Fighting Spirit mining rates Simple Questions, Simple Answers What's the deal with APM & what's its true value Any training maps people recommend?
Other Games
General Games
Stormgate/Frost Giant Megathread Dawn of War IV Nintendo Switch Thread Daigo vs Menard Best of 10 Diablo IV
Dota 2
The Story of Wings Gaming
League of Legends
G2 just beat GenG in First stand
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Vanilla Mini Mafia Mafia Game Mode Feedback/Ideas TL Mafia Community Thread Five o'clock TL Mafia
Community
General
US Politics Mega-thread European Politico-economics QA Mega-thread Russo-Ukrainian War Thread 3D technology/software discussion Canadian Politics Mega-thread
Fan Clubs
The IdrA Fan Club
Media & Entertainment
[Manga] One Piece Anime Discussion Thread [Req][Books] Good Fantasy/SciFi books Movie Discussion!
Sports
2024 - 2026 Football Thread McBoner: A hockey love story Formula 1 Discussion
World Cup 2022
Tech Support
streaming software Strange computer issues (software) [G] How to Block Livestream Ads
TL Community
The Automated Ban List
Blogs
Movie Stars In Video Games: …
TrAiDoS
ramps on octagon
StaticNine
Broowar part 2
qwaykee
Funny Nicknames
LUCKY_NOOB
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1393 users

Day 1: BOO with Genetic Algorithms

Blogs > Revilo
Post a Reply
Revilo
Profile Blog Joined October 2010
Germany23 Posts
October 13 2010 10:53 GMT
#1
Hi there folks and welcome to my first day at creating a Build Order Optimization program using Genetic Algorithms. Following a discussion on the TL forums (Here), I have decided to create this blog to track my progress through making this wonderful little tool. With your support and a bit of programming finesse, I think this will turn into a very fruitful experiment.

I will be programming in Python and will start from a clean slate so as to optimize the code for Starcraft 2. I will start by creating the optimizer for Zerg but I believe branching into either Terran and Protoss will be easy once I get the foundation straight. Please feel free to comment and give suggestions or ask questions I love feedback and want to finally give something back to the community that has nurtured my Starcraft needs.

Looking for practice partners on EU! Message me if you like :) "I dont wtach porn anymore, I watch Socke" - Rotterdam
searcher
Profile Blog Joined May 2009
277 Posts
October 13 2010 11:43 GMT
#2
I hope you will have fun but I want to point out a rather annoying trend amongst computer scientists.

Instead actually trying to solve problems, too many computer scientists just shove their problems into some generic search algorithm, whether it is genetic algorithms or neural networks or whatnot. As a thinker trying to solve a problem you learn a lot less with this method, and furthermore in most cases there is no reason your solution should be easily found with your method. Many computer scientists like it simply because it always give an answer (and in the case of genetic algorithms, usually the local maxima).

For example in your case, why on earth would build orders "mate" well? There is very little reason why combining the better elements of different build orders will make a build order that is better. I think a naive search might actually yield better results. Finally, the process of optimizing build orders is very simple relative to things like even very simple game strategies. You could quite easily just run a search with some natural heuristics and solve the problem much easier and better.
Garrl
Profile Blog Joined February 2010
Scotland1978 Posts
October 13 2010 11:54 GMT
#3
Reminds me of a project a while ago for BW that was effectively a cheese generator made through genetic algorithms - you'd input exactly what you wanted (2 raxes and an acad, or something) and it'd generate a build order, but most of the time it'd turn into 100% cheese.

Either way, interesting project, hope it turns out well.
FaCE_1
Profile Blog Joined December 2006
Canada6184 Posts
October 13 2010 12:04 GMT
#4
noooooo python T________T lol

nice thing you make there, hope to see it work soon
n_n
Revilo
Profile Blog Joined October 2010
Germany23 Posts
October 13 2010 12:26 GMT
#5
On October 13 2010 20:43 searcher wrote:
I hope you will have fun but I want to point out a rather annoying trend amongst computer scientists.

Instead actually trying to solve problems, too many computer scientists just shove their problems into some generic search algorithm, whether it is genetic algorithms or neural networks or whatnot. As a thinker trying to solve a problem you learn a lot less with this method, and furthermore in most cases there is no reason your solution should be easily found with your method. Many computer scientists like it simply because it always give an answer (and in the case of genetic algorithms, usually the local maxima).

For example in your case, why on earth would build orders "mate" well? There is very little reason why combining the better elements of different build orders will make a build order that is better. I think a naive search might actually yield better results. Finally, the process of optimizing build orders is very simple relative to things like even very simple game strategies. You could quite easily just run a search with some natural heuristics and solve the problem much easier and better.


I agree wholy with your argument about the application of generic tools to problems in Computer Science. However, in this case "mating" actually makes a bit of sense since I will most likely be defining my buildorders as linear chromosomes. That means i can read off the build order by looking at the string of genes on my chromosomes. In this case, when we perform crossover, it is essentially giving the early game of one build order to another build order. In cases where suboptimal build orders are failing because of a few bad early decisions this may well allow a faster approach to some optima. I agree that this application would most likely only be very applicable to short term goals (for instance reaching 2 spine crawlers as soon as possible); but i hope to extend it so you can give a string of build order requirements. For example, if i want to first get 2 spine crawlers then get 10 zerglings, i would let the algorithm compute the (near to) optimal path to the 2 spine crawlers, then use that output as input for getting 10 zerglings as optimally as possible. In essence one would find that the overall buildorder for both may be suboptimal by far but it might be a constraint the user would like to implement because of some counter he needs to have at time X.

With respect to just performing a search, you will find that the search space explodes after about depth 3 or 4 for all the races. Once you get to the point where you want to make 10 marines as soon as possible, there are upwards of trillions of combinations reaching that target. Even using some kind of BFS takes some time. Of course I am not certain about this because I have not tested it, but I may implement that direct brute force approach in the future to compare.

For now this is going to simply educate me in the process of programming a genetic algorithm as well as hopefully give some interesting results about Build Orders. I really want to compare the algorithm against the so called "standard build orders" to see how well it fairs and whether there could be better ones!

Thanks for your input though, I value constructive criticism highly
Looking for practice partners on EU! Message me if you like :) "I dont wtach porn anymore, I watch Socke" - Rotterdam
NevilleS
Profile Blog Joined July 2009
Canada266 Posts
October 13 2010 13:30 GMT
#6
It's admirable that you want to try this out, and I highly recommend learning coding languages and concepts by building something you are interested in, but... I think the problem with all these build order programs people keep talking about is that while, yes, the tech tree decisions are strictly defined and easily programmable, the income model is always going to be very coarse. To discretize a build into a genetic sequence that accounts for mining and producing workers, it seems to me that you would need to pick some reasonably small timescale (i.e. 100ms?) and then model resource income as some non-linear gain wrt worker count. Every possible action then needs to have a fairly complex dependency resolution function (enough money, requisite tech, requisite building, idle production queue).

IMO a genetic algorithm will spend most of the time rejecting invalid mutations that don't satisfy the dependencies. If you loosen the dependencies, you will get invalid builds. If your dependency model isn't accurate enough, you will also get bogus results. Therefore, the hard work is developing an accurate dependency model that can evaluate whether a particular "action" is valid given all previous actions through time...
Sleight
Profile Blog Joined May 2009
2471 Posts
October 13 2010 13:52 GMT
#7
On October 13 2010 21:26 Revilo wrote:
Show nested quote +
On October 13 2010 20:43 searcher wrote:
I hope you will have fun but I want to point out a rather annoying trend amongst computer scientists.

Instead actually trying to solve problems, too many computer scientists just shove their problems into some generic search algorithm, whether it is genetic algorithms or neural networks or whatnot. As a thinker trying to solve a problem you learn a lot less with this method, and furthermore in most cases there is no reason your solution should be easily found with your method. Many computer scientists like it simply because it always give an answer (and in the case of genetic algorithms, usually the local maxima).

For example in your case, why on earth would build orders "mate" well? There is very little reason why combining the better elements of different build orders will make a build order that is better. I think a naive search might actually yield better results. Finally, the process of optimizing build orders is very simple relative to things like even very simple game strategies. You could quite easily just run a search with some natural heuristics and solve the problem much easier and better.


I agree wholy with your argument about the application of generic tools to problems in Computer Science. However, in this case "mating" actually makes a bit of sense since I will most likely be defining my buildorders as linear chromosomes. That means i can read off the build order by looking at the string of genes on my chromosomes. In this case, when we perform crossover, it is essentially giving the early game of one build order to another build order. In cases where suboptimal build orders are failing because of a few bad early decisions this may well allow a faster approach to some optima. I agree that this application would most likely only be very applicable to short term goals (for instance reaching 2 spine crawlers as soon as possible); but i hope to extend it so you can give a string of build order requirements. For example, if i want to first get 2 spine crawlers then get 10 zerglings, i would let the algorithm compute the (near to) optimal path to the 2 spine crawlers, then use that output as input for getting 10 zerglings as optimally as possible. In essence one would find that the overall buildorder for both may be suboptimal by far but it might be a constraint the user would like to implement because of some counter he needs to have at time X.

With respect to just performing a search, you will find that the search space explodes after about depth 3 or 4 for all the races. Once you get to the point where you want to make 10 marines as soon as possible, there are upwards of trillions of combinations reaching that target. Even using some kind of BFS takes some time. Of course I am not certain about this because I have not tested it, but I may implement that direct brute force approach in the future to compare.

For now this is going to simply educate me in the process of programming a genetic algorithm as well as hopefully give some interesting results about Build Orders. I really want to compare the algorithm against the so called "standard build orders" to see how well it fairs and whether there could be better ones!

Thanks for your input though, I value constructive criticism highly


So while this is true, the nice thing about programming is that you aren't obligated to deal with all possible cases... just the relevant ones. Sure, in an ideal world, you could code a solution to any and every case, but we don't have to deal with that, we can rule out an absolute ton of those searches.
'
As a Terran, I can say you can only really save up to expand when producing off of 3 structures, 4 if you are super marine heavy, while you can go up to 4 if you aren't expanding. So we can code to eliminate possibilities that might conflict. We know that you can only really support 5 or 6 (if you are marine heavy) off of 2 bases. We can cut out conflicting ones of those. In fact, by looking at the practical constraints of a game, you truly can weed out the proverbial 'trees' to a handful of relevant decisions given the current game state, matchup, and map. Now, wiggle room has to be allowed for making current decisions with significant later ramifications, but I personally think that the correct approach is by doing what chess computers do and using GMs for their opening tables and relying on itself later on when it can just brute force a much more limited set of possibilities. The appropriate parallel is that we use practical human input for the reasonable decisions and only allow searches in situations humans might be forced to make a decision based on incomplete or imperfect information.

I foresee the program having a routine of preset initial openings with it allowed to improvise upon an established set of possible continuations that best orient towards a goal. The idea that any type of processing can optimize SC2 is silly... There are intangibles, *even in BOs*, that require human input to solve. It can create the most perfect 1 Tank push, but if 1 tank pushes aren't any good... I fail to see its significance.
One Love
Revilo
Profile Blog Joined October 2010
Germany23 Posts
October 13 2010 14:40 GMT
#8
On October 13 2010 22:30 NevilleS wrote:
It's admirable that you want to try this out, and I highly recommend learning coding languages and concepts by building something you are interested in, but... I think the problem with all these build order programs people keep talking about is that while, yes, the tech tree decisions are strictly defined and easily programmable, the income model is always going to be very coarse. To discretize a build into a genetic sequence that accounts for mining and producing workers, it seems to me that you would need to pick some reasonably small timescale (i.e. 100ms?) and then model resource income as some non-linear gain wrt worker count. Every possible action then needs to have a fairly complex dependency resolution function (enough money, requisite tech, requisite building, idle production queue).

IMO a genetic algorithm will spend most of the time rejecting invalid mutations that don't satisfy the dependencies. If you loosen the dependencies, you will get invalid builds. If your dependency model isn't accurate enough, you will also get bogus results. Therefore, the hard work is developing an accurate dependency model that can evaluate whether a particular "action" is valid given all previous actions through time...


Indeed, the granularity is going to be an issue. However I am starting with a simple model and I want to see how well it performs at matching some of the easier build orders we know. For instance how to best get 6 zerglings quickly (6Pool/7Pool, i am actually not sure ). For the income rates I will look up some minerals per second rate from the liquipedia I guess. Of course this is then just an approximation, but i think since all builds have this same constraint, it will still output a good build order (just the timing will be off by some seconds depending on how much "butterfly" effect we get from the small timings). This is where my idea of doing iterative GA for larger build orders comes in.
Looking for practice partners on EU! Message me if you like :) "I dont wtach porn anymore, I watch Socke" - Rotterdam
Revilo
Profile Blog Joined October 2010
Germany23 Posts
October 13 2010 14:47 GMT
#9
On October 13 2010 22:52 Sleight wrote:
Show nested quote +
On October 13 2010 21:26 Revilo wrote:
On October 13 2010 20:43 searcher wrote:
I hope you will have fun but I want to point out a rather annoying trend amongst computer scientists.

Instead actually trying to solve problems, too many computer scientists just shove their problems into some generic search algorithm, whether it is genetic algorithms or neural networks or whatnot. As a thinker trying to solve a problem you learn a lot less with this method, and furthermore in most cases there is no reason your solution should be easily found with your method. Many computer scientists like it simply because it always give an answer (and in the case of genetic algorithms, usually the local maxima).

For example in your case, why on earth would build orders "mate" well? There is very little reason why combining the better elements of different build orders will make a build order that is better. I think a naive search might actually yield better results. Finally, the process of optimizing build orders is very simple relative to things like even very simple game strategies. You could quite easily just run a search with some natural heuristics and solve the problem much easier and better.


I agree wholy with your argument about the application of generic tools to problems in Computer Science. However, in this case "mating" actually makes a bit of sense since I will most likely be defining my buildorders as linear chromosomes. That means i can read off the build order by looking at the string of genes on my chromosomes. In this case, when we perform crossover, it is essentially giving the early game of one build order to another build order. In cases where suboptimal build orders are failing because of a few bad early decisions this may well allow a faster approach to some optima. I agree that this application would most likely only be very applicable to short term goals (for instance reaching 2 spine crawlers as soon as possible); but i hope to extend it so you can give a string of build order requirements. For example, if i want to first get 2 spine crawlers then get 10 zerglings, i would let the algorithm compute the (near to) optimal path to the 2 spine crawlers, then use that output as input for getting 10 zerglings as optimally as possible. In essence one would find that the overall buildorder for both may be suboptimal by far but it might be a constraint the user would like to implement because of some counter he needs to have at time X.

With respect to just performing a search, you will find that the search space explodes after about depth 3 or 4 for all the races. Once you get to the point where you want to make 10 marines as soon as possible, there are upwards of trillions of combinations reaching that target. Even using some kind of BFS takes some time. Of course I am not certain about this because I have not tested it, but I may implement that direct brute force approach in the future to compare.

For now this is going to simply educate me in the process of programming a genetic algorithm as well as hopefully give some interesting results about Build Orders. I really want to compare the algorithm against the so called "standard build orders" to see how well it fairs and whether there could be better ones!

Thanks for your input though, I value constructive criticism highly


So while this is true, the nice thing about programming is that you aren't obligated to deal with all possible cases... just the relevant ones. Sure, in an ideal world, you could code a solution to any and every case, but we don't have to deal with that, we can rule out an absolute ton of those searches.
'
As a Terran, I can say you can only really save up to expand when producing off of 3 structures, 4 if you are super marine heavy, while you can go up to 4 if you aren't expanding. So we can code to eliminate possibilities that might conflict. We know that you can only really support 5 or 6 (if you are marine heavy) off of 2 bases. We can cut out conflicting ones of those. In fact, by looking at the practical constraints of a game, you truly can weed out the proverbial 'trees' to a handful of relevant decisions given the current game state, matchup, and map. Now, wiggle room has to be allowed for making current decisions with significant later ramifications, but I personally think that the correct approach is by doing what chess computers do and using GMs for their opening tables and relying on itself later on when it can just brute force a much more limited set of possibilities. The appropriate parallel is that we use practical human input for the reasonable decisions and only allow searches in situations humans might be forced to make a decision based on incomplete or imperfect information.

I foresee the program having a routine of preset initial openings with it allowed to improvise upon an established set of possible continuations that best orient towards a goal. The idea that any type of processing can optimize SC2 is silly... There are intangibles, *even in BOs*, that require human input to solve. It can create the most perfect 1 Tank push, but if 1 tank pushes aren't any good... I fail to see its significance.


I agree that a lot of requests will make little sense when you first ask them (such as a 1 tank push). However, if you know what you want or think there may be an interesting opening to get, this algorithm should give some nice starting point for you. Of course if you already know some constraint beforehand that you want to use as input (for example, the expand after 3 production buildings), by all means add that constraint. It will only give you a nice follow up to what ever goal you have. The "pruning" you refer to is something that we have been doing as human players for quite some time. But imagine you could actually discover something fundamentally unstable about the early build orders for Terran. Perhaps an 8 racks or a 6 racks might be extremely effective at getting you 5 marines as soon as possible, yet leave your economy wailing. However, these are builds a lot of people would never even try because they think there is only one way of doing something, or only a few set Build Orders to follow. I want to wait for the results first to see what the algorithm can come up with, it would be interesting to see.

The algorithm is not "smart", as you mention above, but rather if it is used by someone with game knowledge, it can really help you in prepping some nice transitions or openers to surprise your opponent or help you deal with particular build orders of your opponents.
Looking for practice partners on EU! Message me if you like :) "I dont wtach porn anymore, I watch Socke" - Rotterdam
Gummy
Profile Blog Joined October 2010
United States2180 Posts
October 13 2010 15:13 GMT
#10
On October 13 2010 21:26 Revilo wrote:
Show nested quote +
On October 13 2010 20:43 searcher wrote:
I hope you will have fun but I want to point out a rather annoying trend amongst computer scientists.

Instead actually trying to solve problems, too many computer scientists just shove their problems into some generic search algorithm, whether it is genetic algorithms or neural networks or whatnot. As a thinker trying to solve a problem you learn a lot less with this method, and furthermore in most cases there is no reason your solution should be easily found with your method. Many computer scientists like it simply because it always give an answer (and in the case of genetic algorithms, usually the local maxima).

For example in your case, why on earth would build orders "mate" well? There is very little reason why combining the better elements of different build orders will make a build order that is better. I think a naive search might actually yield better results. Finally, the process of optimizing build orders is very simple relative to things like even very simple game strategies. You could quite easily just run a search with some natural heuristics and solve the problem much easier and better.


I agree wholy with your argument about the application of generic tools to problems in Computer Science. However, in this case "mating" actually makes a bit of sense since I will most likely be defining my buildorders as linear chromosomes. That means i can read off the build order by looking at the string of genes on my chromosomes. In this case, when we perform crossover, it is essentially giving the early game of one build order to another build order. In cases where suboptimal build orders are failing because of a few bad early decisions this may well allow a faster approach to some optima. I agree that this application would most likely only be very applicable to short term goals (for instance reaching 2 spine crawlers as soon as possible); but i hope to extend it so you can give a string of build order requirements. For example, if i want to first get 2 spine crawlers then get 10 zerglings, i would let the algorithm compute the (near to) optimal path to the 2 spine crawlers, then use that output as input for getting 10 zerglings as optimally as possible. In essence one would find that the overall buildorder for both may be suboptimal by far but it might be a constraint the user would like to implement because of some counter he needs to have at time X.

With respect to just performing a search, you will find that the search space explodes after about depth 3 or 4 for all the races. Once you get to the point where you want to make 10 marines as soon as possible, there are upwards of trillions of combinations reaching that target. Even using some kind of BFS takes some time. Of course I am not certain about this because I have not tested it, but I may implement that direct brute force approach in the future to compare.

For now this is going to simply educate me in the process of programming a genetic algorithm as well as hopefully give some interesting results about Build Orders. I really want to compare the algorithm against the so called "standard build orders" to see how well it fairs and whether there could be better ones!

Thanks for your input though, I value constructive criticism highly


Also, since most computers are not organic or living, and do not require respiration to bring in oxygen and eliminate wastes, I don't think it's particularly efficient to have the computer take a breath before looking at the next BO. Thus, I must agree that BFS is no good.
¯\_(ツ)_/¯ There are three kinds of people in the world: those who can count and those who can't.
Please log in or register to reply.
Live Events Refresh
uThermal 2v2 Circuit
14:00
Season 2 - May 2026
RotterdaM627
uThermal321
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
RotterdaM 627
uThermal 321
Railgan 131
Rex 125
Creator 46
mouzHeroMarine 18
BRAT_OK 9
MindelVK 6
StarCraft: Brood War
Britney 65085
EffOrt 1585
Horang2 1376
Shuttle 1132
Hyuk 596
ggaemo 416
Rush 327
Soma 291
firebathero 256
Leta 199
[ Show more ]
Pusan 155
Last 106
PianO 91
Sharp 84
actioN 74
ToSsGirL 73
Barracks 61
Sea.KH 59
Hm[arnc] 49
Sacsri 24
Terrorterran 23
IntoTheRainbow 20
zelot 16
Rock 16
JulyZerg 14
GoRush 13
yabsab 13
Noble 12
Icarus 9
Shine 5
Dota 2
qojqva1170
XaKoH 708
monkeys_forever199
Fuzer 62
Heroes of the Storm
Khaldor278
Other Games
singsing2565
B2W.Neo1316
Liquid`RaSZi1115
Beastyqt707
KnowMe100
Organizations
Other Games
BasetradeTV627
Dota 2
PGL Dota 2 - Main Stream71
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 14 non-featured ]
StarCraft 2
• Adnapsc2 2
• iHatsuTV 2
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• WagamamaTV61
League of Legends
• Jankos3118
Upcoming Events
BSL
4h 51m
IPSL
4h 51m
eOnzErG vs TBD
G5 vs Nesh
Patches Events
9h 51m
Replay Cast
18h 51m
Wardi Open
19h 51m
Afreeca Starleague
19h 51m
Jaedong vs Light
Monday Night Weeklies
1d 1h
Replay Cast
1d 9h
Sparkling Tuna Cup
1d 19h
Afreeca Starleague
1d 19h
Snow vs Flash
[ Show More ]
WardiTV Invitational
1d 20h
GSL
2 days
Classic vs Cure
Maru vs Rogue
GSL
3 days
SHIN vs Zoun
ByuN vs herO
OSC
3 days
OSC
3 days
Replay Cast
4 days
Escore
4 days
The PondCast
4 days
WardiTV Invitational
4 days
Replay Cast
5 days
CranKy Ducklings
5 days
RSL Revival
5 days
SHIN vs Bunny
ByuN vs Shameless
WardiTV Invitational
5 days
BSL
6 days
Replay Cast
6 days
Sparkling Tuna Cup
6 days
RSL Revival
6 days
Cure vs Zoun
Clem vs Lambo
WardiTV Invitational
6 days
Liquipedia Results

Completed

Proleague 2026-05-02
WardiTV TLMC #16
Nations Cup 2026

Ongoing

BSL Season 22
ASL Season 21
CSL 2026 SPRING (S20)
IPSL Spring 2026
KCM Race Survival 2026 Season 2
KK 2v2 League Season 1
Acropolis #4
SCTL 2026 Spring
RSL Revival: Season 5
2026 GSL S1
BLAST Rivals Spring 2026
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League S23 Finals
ESL Pro League S23 Stage 1&2
PGL Cluj-Napoca 2026

Upcoming

Escore Tournament S2: W6
BSL 22 Non-Korean Championship
Escore Tournament S2: W7
Escore Tournament S2: W8
CSLAN 4
Kung Fu Cup 2026 Grand Finals
HSC XXIX
uThermal 2v2 2026 Main Event
Maestros of the Game 2
2026 GSL S2
Stake Ranked Episode 3
XSE Pro League 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
IEM Atlanta 2026
Asian Champions League 2026
PGL Astana 2026
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.