• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 11:35
CEST 17:35
KST 00:35
  • 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
Team Liquid Map Contest #22: Results and Winners7Code S Season 2 (2026): RO4 and Finals Preview12TL.net Map Contest #22 - Voting & Ladder Map Selection7Code S Season 2 (2026) - RO8 Preview8[ASL21] Finals Preview: Two Legacies21
Community News
ZeroSpace at Steam NextFest - Last free demo16Weekly Cups (June 8-14): Clem and Solar double, PTR tested0RSL: S6 Finals played at BlizzCon 202611Douyu Cup 2026: $20,000 Legends Event (June 26-28)10[BSL22] Non-Korean Championship from 13 to 28 June4
StarCraft 2
General
What kind of tool would you be interested in? StarCraft II 5.0.16 PTR Patch Notes may 26th Daily SC2 Player Grid - feedback wanted Code S Season 2 (2026) - RO8 Preview TL Poll: How do you feel about the 5.0.16 PTR balance changes?
Tourneys
GSL CK #4 20-21th June Sparkling Tuna Cup - Weekly Open Tournament Master Swan Open (Global Bronze-Master 2) Crank Gathers Season 4: BW vs SC2 Team League Douyu Cup 2026: $20,000 Legends Event (June 26-28)
Strategy
[G] Having the right mentality to improve
Custom Maps
Work In Progress Melee Maps [D]RTS in all its shapes and glory <3
External Content
Mutation # 530 One For All The PondCast: SC2 News & Results Mutation # 529 Opportunities Unleashed Mutation # 528 Infection Detected
Brood War
General
STARCRAFT MOVIE - Last Night at the Command center BW General Discussion BGH Auto Balance -> http://bghmmr.eu/ Battle cruiser feet vs Carrier fleet Fact based Zerg Upgrade Tier List
Tourneys
[Megathread] Daily Proleagues CSLAN 4 is Coming! Small VOD Thread 2.0 The Casual Games of the Week Thread
Strategy
Why doesn't anyone use restoration? Simple Questions, Simple Answers Relatively freeroll strategies Creating a full chart of Zerg builds
Other Games
General Games
Stormgate/Frost Giant Megathread Nintendo Switch Thread Path of Exile ZeroSpace at Steam NextFest - Last free demo ZeroSpace Megathread
Dota 2
Looking for a Dota Mentor Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
Vanilla Mini Mafia
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread [H]Internet/Gaming Cafe Tips and Tricks The Games Industry And ATVI UK Politics Mega-thread
Fan Clubs
The HerO Fan Club! The herO Fan Club!
Media & Entertainment
Movie Discussion! [Req][Books] Good Fantasy/SciFi books [TV/BOOK] *SPOILERS* Game of Thrones Discussion
Sports
2024 - 2026 Football Thread McBoner: A hockey love story TeamLiquid Health and Fitness Initiative For 2023 Formula 1 Discussion Cricket [SPORT]
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread Facing Challenges in Mobile App Development
TL Community
The Automated Ban List
Blogs
How To Predict Tilt in Espor…
TrAiDoS
An Exploration of th…
waywardstrategy
I'm an arrogant trash talke…
FlaShFTW
Gauntlet SC2: A Retrospectiv…
Ctone23
Why RTS gamers make better f…
gosubay
Customize Sidebar...

Website Feedback

Closed Threads



Active: 7901 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
Next event in 25m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
SHIN 550
Harstem 251
BRAT_OK 47
StarCraft: Brood War
Britney 28424
Mini 1219
firebathero 317
Hyuk 292
Soulkey 174
actioN 131
Dewaltoss 79
Mong 78
Pusan 65
Sea.KH 64
[ Show more ]
Free 41
ToSsGirL 33
910 28
Rock 25
JulyZerg 25
Movie 24
GoRush 20
HiyA 17
ajuk12(nOOB) 10
Sacsri 7
Shine 7
Dota 2
Gorgc6144
Counter-Strike
fl0m10414
summit1g8489
byalli747
Heroes of the Storm
Khaldor327
Liquid`Hasu264
MindelVK11
Other Games
gofns67458
tarik_tv16133
Grubby3342
singsing2161
B2W.Neo1132
Mlord702
PiGStarcraft361
KnowMe61
Organizations
Dota 2
PGL Dota 2 - Main Stream6639
Other Games
EGCTV962
WardiTV519
StarCraft: Brood War
UltimateBattle 71
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 14 non-featured ]
StarCraft 2
• poizon28 36
• Response 15
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Counter-Strike
• C_a_k_e 1866
• Shiphtur128
Upcoming Events
IPSL
25m
Hawk vs Julia
Patches Events
1h 25m
BSL22 NKC (BSL vs China)
3h 25m
Dewalt vs Messiah
Bonyth vs Mihu
TerrOr vs XuanXuan
eOnzErG vs Messiah
Jaystar vs Mihu
Dewalt vs XuanXuan
Bonyth vs TerrOr
Replay Cast
8h 25m
WardiTV Weekly
19h 25m
Monday Night Weeklies
1d
Sparkling Tuna Cup
1d 18h
The PondCast
2 days
Douyu Cup 2020
3 days
Oliveira vs Trap
Jieshi vs XY
soO vs FanTaSy
TY vs Coffee
Douyu Cup 2020
4 days
Neeb vs Impact
MacSed vs Cyan
Scarlett vs Kelazhur
INnoVation vs Dear
[ Show More ]
Douyu Cup 2020
5 days
Maestros of the Game
5 days
herO vs Classic
Maru vs Serral
BSL22 NKC (BSL vs China)
5 days
Douyu Cup 2020
6 days
BSL22 NKC (BSL vs China)
6 days
Liquipedia Results

Completed

Proleague 2026-06-19
uThermal 2v2 2026 Main Event
Heroes Pulsing #2

Ongoing

IPSL Spring 2026
Acropolis #4
CSCL: Masked Kings S4
YSL S3
BSL 22 Non-Korean Championship
CSL Season 21: Qualifier 1
SCTL 2026 Spring
Maestros of the Game 2
Murky Cup 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026
BLAST Rivals Spring 2026
IEM Rio 2026
PGL Bucharest 2026

Upcoming

CSL Season 21: Qualifier 2
CSL 2026 Summer (S21)
CSLAN 4
Blizzard Classic Cup 2026
Kung Fu Cup 2026 Grand Finals
RSL Revival: Season 6
CranK Gathers Season 4: BW vs SC2 Team League
HSC XXIX
Douyu Cup 2026
BCC 2026
Light HT
Heroes Pulsing #3
BLAST Open Fall 2026
Esports World Cup 2026
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 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.