• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 19:00
CEST 01:00
KST 08:00
  • 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
Maestros of the Game: Week 1/Play-in Preview9[ASL20] Ro24 Preview Pt2: Take-Off7[ASL20] Ro24 Preview Pt1: Runway132v2 & SC: Evo Complete: Weekend Double Feature4Team Liquid Map Contest #21 - Presented by Monster Energy13
Community News
LiuLi Cup - September 2025 Tournaments2Weekly Cups (August 25-31): Clem's Last Straw?39Weekly Cups (Aug 18-24): herO dethrones MaxPax6Maestros of The Game—$20k event w/ live finals in Paris48Weekly Cups (Aug 11-17): MaxPax triples again!15
StarCraft 2
General
Team Liquid Map Contest #21 - Presented by Monster Energy Weekly Cups (August 25-31): Clem's Last Straw? Heaven's Balance Suggestions (roast me) Geoff 'iNcontroL' Robinson has passed away Speculation of future Wardii series
Tourneys
RSL: Revival, a new crowdfunded tournament series Maestros of The Game—$20k event w/ live finals in Paris LiuLi Cup - September 2025 Tournaments Sea Duckling Open (Global, Bronze-Diamond) Sparkling Tuna Cup - Weekly Open Tournament
Strategy
Custom Maps
External Content
Mutation # 489 Bannable Offense Mutation # 488 What Goes Around Mutation # 487 Think Fast Mutation # 486 Watch the Skies
Brood War
General
ASL20 General Discussion Pros React To: herO's Baffling Game BW General Discussion BGH Auto Balance -> http://bghmmr.eu/ BSL Polish World Championship 2025 20-21 September
Tourneys
Is there English video for group selection for ASL Small VOD Thread 2.0 [Megathread] Daily Proleagues [ASL20] Ro24 Group F
Strategy
Simple Questions, Simple Answers Muta micro map competition Fighting Spirit mining rates [G] Mineral Boosting
Other Games
General Games
Stormgate/Frost Giant Megathread General RTS Discussion Thread Nintendo Switch Thread Path of Exile Warcraft III: The Frozen Throne
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
Heroes of StarCraft mini-set
TL Mafia
TL Mafia Community Thread Vanilla Mini Mafia
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread Things Aren’t Peaceful in Palestine Canadian Politics Mega-thread YouTube Thread
Fan Clubs
The Happy Fan Club!
Media & Entertainment
Anime Discussion Thread Movie Discussion! [Manga] One Piece [\m/] Heavy Metal Thread
Sports
2024 - 2026 Football Thread Formula 1 Discussion TeamLiquid Health and Fitness Initiative For 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread High temperatures on bridge(s)
TL Community
The Automated Ban List TeamLiquid Team Shirt On Sale
Blogs
A very expensive lesson on ma…
Garnet
hello world
radishsoup
Lemme tell you a thing o…
JoinTheRain
How Culture and Conflict Imp…
TrAiDoS
RTS Design in Hypercoven
a11
Evil Gacha Games and the…
ffswowsucks
INDEPENDIENTE LA CTM
XenOsky
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1061 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
Scotland1974 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
Canada6173 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 4h
[ Submit Event ]
Live Streams
Refresh
StarCraft: Brood War
Britney 16005
Artosis 636
firebathero 97
Aegong 50
sSak 42
NaDa 16
Stormgate
BeoMulf3
Dota 2
monkeys_forever556
420jenkins496
NeuroSwarm16
Super Smash Bros
hungrybox413
Liquid`Ken7
Other Games
summit1g8199
FrodaN1017
fl0m617
Sick237
ToD195
Maynarde109
C9.Mang0109
ViBE68
Mew2King38
PPMD32
Nathanias23
Organizations
Other Games
BasetradeTV16
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 19 non-featured ]
StarCraft 2
• davetesta48
• StrangeGG 38
• musti20045 38
• IndyKCrew
• Migwel
• AfreecaTV YouTube
• intothetv
• Kozan
• sooper7s
• LaughNgamezSOOP
StarCraft: Brood War
• Azhi_Dahaki21
• Michael_bg 5
• STPLYoutube
• ZZZeroYoutube
• iopq 0
• BSLYoutube
Dota 2
• masondota22140
Other Games
• imaqtpie952
• Scarra232
Upcoming Events
OSC
4h
MaNa vs SHIN
SKillous vs ShoWTimE
Bunny vs TBD
Cham vs TBD
RSL Revival
11h
Reynor vs Astrea
Classic vs sOs
Maestros of the Game
18h
Serral vs Ryung
ByuN vs Zoun
BSL Team Wars
20h
Team Bonyth vs Team Dewalt
CranKy Ducklings
1d 11h
RSL Revival
1d 11h
GuMiho vs Cham
ByuN vs TriGGeR
Cosmonarchy
1d 15h
TriGGeR vs YoungYakov
YoungYakov vs HonMonO
HonMonO vs TriGGeR
Maestros of the Game
1d 18h
Solar vs Bunny
Clem vs Rogue
[BSL 2025] Weekly
1d 19h
RSL Revival
2 days
Cure vs Bunny
Creator vs Zoun
[ Show More ]
Maestros of the Game
2 days
Maru vs Lambo
herO vs ShoWTimE
BSL Team Wars
2 days
Team Hawk vs Team Sziky
Sparkling Tuna Cup
3 days
Monday Night Weeklies
3 days
The PondCast
6 days
Liquipedia Results

Completed

CSL Season 18: Qualifier 2
SEL Season 2 Championship
HCC Europe

Ongoing

Copa Latinoamericana 4
BSL 20 Team Wars
KCM Race Survival 2025 Season 3
BSL 21 Qualifiers
ASL Season 20
CSL 2025 AUTUMN (S18)
RSL Revival: Season 2
Maestros of the Game
BLAST Open Fall Qual
Esports World Cup 2025
BLAST Bounty Fall 2025
BLAST Bounty Fall Qual
IEM Cologne 2025
FISSURE Playground #1
BLAST.tv Austin Major 2025

Upcoming

LASL Season 20
2025 Chongqing Offline CUP
BSL Polish World Championship 2025: Warsaw LAN
BSL Season 21
BSL 21 Team A
Chzzk MurlocKing SC1 vs SC2 Cup #2
EC S1
BLAST Rivals Fall 2025
IEM Chengdu 2025
PGL Masters Bucharest 2025
Thunderpick World Champ.
MESA Nomadic Masters Fall
CS Asia Championships 2025
ESL Pro League S22
StarSeries Fall 2025
FISSURE Playground #2
BLAST Open 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.