• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 12:14
CET 18:14
KST 02:14
  • 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
RSL Season 3 - Playoffs Preview0RSL Season 3 - RO16 Groups C & D Preview0RSL Season 3 - RO16 Groups A & B Preview2TL.net Map Contest #21: Winners12Intel X Team Liquid Seoul event: Showmatches and Meet the Pros10
Community News
Weekly Cups (Nov 24-30): MaxPax, Clem, herO win2BGE Stara Zagora 2026 announced15[BSL21] Ro.16 Group Stage (C->B->A->D)4Weekly Cups (Nov 17-23): Solar, MaxPax, Clem win3RSL Season 3: RO16 results & RO8 bracket13
StarCraft 2
General
Chinese SC2 server to reopen; live all-star event in Hangzhou Maestros of the Game: Live Finals Preview (RO4) BGE Stara Zagora 2026 announced Weekly Cups (Nov 24-30): MaxPax, Clem, herO win SC2 Proleague Discontinued; SKT, KT, SGK, CJ disband
Tourneys
Sparkling Tuna Cup - Weekly Open Tournament RSL Offline Finals Info - Dec 13 and 14! StarCraft Evolution League (SC Evo Biweekly) RSL Offline FInals Sea Duckling Open (Global, Bronze-Diamond)
Strategy
Custom Maps
Map Editor closed ?
External Content
Mutation # 502 Negative Reinforcement Mutation # 501 Price of Progress Mutation # 500 Fright night Mutation # 499 Chilling Adaptation
Brood War
General
BW General Discussion Which season is the best in ASL? Data analysis on 70 million replays BGH Auto Balance -> http://bghmmr.eu/ [ASL20] Ask the mapmakers — Drop your questions
Tourneys
[Megathread] Daily Proleagues [BSL21] RO16 Group D - Sunday 21:00 CET [BSL21] RO16 Group A - Saturday 21:00 CET [BSL21] RO16 Group B - Sunday 21:00 CET
Strategy
Current Meta Game Theory for Starcraft How to stay on top of macro? PvZ map balance
Other Games
General Games
Stormgate/Frost Giant Megathread ZeroSpace Megathread Nintendo Switch Thread The Perfect Game Path of Exile
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Mafia Game Mode Feedback/Ideas TL Mafia Community Thread
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread Things Aren’t Peaceful in Palestine The Big Programming Thread Artificial Intelligence Thread
Fan Clubs
White-Ra Fan Club
Media & Entertainment
[Manga] One Piece Movie Discussion! Anime Discussion Thread
Sports
2024 - 2026 Football Thread Formula 1 Discussion NBA General Discussion
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
Where to ask questions and add stream? The Automated Ban List
Blogs
Physical Exertion During Gam…
TrAiDoS
James Bond movies ranking - pa…
Topin
Thanks for the RSL
Hildegard
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1406 users

[mod] Starcraft AI project - Dorfl - Page 2

Forum Index > SC2 Maps & Custom Games
Post a Reply
Prev 1 2 3 Next All
turtles
Profile Blog Joined August 2011
Australia360 Posts
August 18 2015 04:11 GMT
#21
Argh. OK I know what the problem was now. Explanation at the end of the post.

For the moment you REALLY want to watch AI battles! Thanks for your patience. I can do one better than a single replay. I uploaded the mod to battlenet and tested it online. just follow these steps:

  1. make sure you are on the NA servers (uploading takes time, I only upload to NA unless I make big releases)

  2. go into custom games, select map (I tried with coda, I would recomend a map with 2 spawn locations as I'm not sure what will happen if there are more), and click on "create with mod" button.

  3. find and select the mod call "testing dorfl not playable"

  4. you need to remove yourself as a player and make yourself a spectator. right click on your icon and click "make spectator" [image loading]

  5. add 2 AI players. Make sure to set the difficulty to medium and the races to Protoss. [image loading]

  6. start the game. Player 1 will be controlled by the Blizzard AI and player 2 will be controlled by Dorfl. Dorfl will introduce itself a few seconds after the game starts so you will know which one it is. There will be a few seconds pause at the start of the game while everything gets set up. [image loading]


Watch dorfl fight against the Blizzard AI as much as you want. I only got half way through its first game before the Blizzard servers shut down for maintanence (stupid Bnet) but it all seemed to be good.

Insert disclaimer about how this is only the begining and there is a long road ahead. Dorfl has never even played on any of these maps before and doesn't know WTF it is doing, but it can hold its own in a fight.

Also the code is available for anyone who wants to have a look for themselves. just download the mod using the map editor.

+ Show Spoiler +
explanation of the problem with the replay:

Doesn't really matter any more but FWIW, I was playing offline while testing Dorfl as it saves a lot of time. I was also setting up the player slots so that there would be two AI opponents. This however counts as a modification to the map as the map determines the player slots. So I was actually playing on a slightly modified version of the map which only exists on my computer. Hence why it worked fine for me but no one else.

To fix this I can just use online replays from Bnet from now on if I want to share a replay
Leviance
Profile Joined November 2009
Germany4079 Posts
August 30 2015 18:20 GMT
#22
this is awesome!!!! thank you very much! I'll try it immediately
"Blizzard is never gonna nerf Terran because of those American and European fuck" - Korean Netizen
turtles
Profile Blog Joined August 2011
Australia360 Posts
September 06 2015 02:46 GMT
#23
Hey you!

Somebody casted a game of Dorfl vs Blizzard AI and stuck it on youtube!

Thank you to GamerSteed for the cast. I stuck the replay file up on /r/castit, a subreddit for players to get their games cast and for aspiring casters in the community to source replays.

In the blue corner (left) is Blizzard AI - created by Blizzard Entertainment, one of the heaviest hitters in gaming and worth $18.9 billion.

In the orange corner (right) is Dorfl - created by me in my spare time and worth about $400.

"Lets get ready to rrrruuuuuummmmmmmmbbbbbblllllllleeeeee"



He said it in the video but let me repeat. This is only the framework of a fully functioning AI. It doesn't use warpgate, the stalkers don't know how to blink, the unit pathing glitches and the units sometimes spaz out (or dance ), I wrote the script for unit kiting in a single afternoon with a lot of coffee... you get the idea. But every few weeks Dorfl takes a few more baby steps towards being a good AI player.

Those of you who are likewise fascinated by watching a computer "make it's own decisions" will enjoy watching this AI vs AI battle.
Leviance
Profile Joined November 2009
Germany4079 Posts
September 13 2015 21:28 GMT
#24
Is the dorfl that is uploaded also being updated regularly like the version you work on?
"Blizzard is never gonna nerf Terran because of those American and European fuck" - Korean Netizen
turtles
Profile Blog Joined August 2011
Australia360 Posts
September 14 2015 01:51 GMT
#25
On September 14 2015 06:28 Leviance wrote:
Is the dorfl that is uploaded also being updated regularly like the version you work on?


Hi, the version I work on is my local version. Keeping the online version up-to-date and making sure it is not broken is a lot more work and stress. Just keeping it to myself and doing an update every few weeks / a month allows me to spend more time doing productive work on it.

Next change is going to be big which means it's going to take a long time. I think I'll be back in probably a month but I will have redone some of the macro and probably got it playing all 3 races.
Leviance
Profile Joined November 2009
Germany4079 Posts
September 17 2015 18:06 GMT
#26
so will you post here when it's a new version?
"Blizzard is never gonna nerf Terran because of those American and European fuck" - Korean Netizen
DSK
Profile Blog Joined February 2015
England1110 Posts
September 17 2015 19:14 GMT
#27
Keep up the good work, turtles, it's nice to see someone taking the time to do something with the AI of SC2
**@ YT: SC2POVs at https://www.youtube.com/c/SC2POVsTV | https://liquipedia.net/starcraft2/SC2POVs @**
turtles
Profile Blog Joined August 2011
Australia360 Posts
September 18 2015 07:23 GMT
#28
so will you post here when it's a new version?


That's the idea. putting the replay up on /r/castit to get a community member to cast the game was a great solution for me as it saved me a lot of time and headache and was a fun way for people to view the progress. So I'm definitely going to go that route from now on. Also I've got a well known SC2 personality lined up who said he would like to cast a Dorfl game in the future. So that will be fun :D

I'll post here periodically whenever there is an update so people can subscribe to this thread and know what's happening, but it will often be weeks/a month in between updates. That does not mean there is no progress happening behind the scenes though.


Keep up the good work, turtles, it's nice to see someone taking the time to do something with the AI of SC2


Thanks, I'm excited to be working on it
TheBalanceIssue
Profile Joined June 2015
Singapore41 Posts
November 07 2015 01:46 GMT
#29
Hi turtles,

Are you still working on it? I was wondering if Micro AI can be implemented into your AI.

Referring to this AI:

Leviance
Profile Joined November 2009
Germany4079 Posts
November 08 2015 11:56 GMT
#30
Is this still being worked on? Or are youwaiting for LotV to come out?
"Blizzard is never gonna nerf Terran because of those American and European fuck" - Korean Netizen
turtles
Profile Blog Joined August 2011
Australia360 Posts
November 09 2015 16:23 GMT
#31
Hey guys. Still working on it. I was just exploring a new way for the AI to make high level descisions. I managed to implement a genetic algorithm to find and make good descisions, not by following a script but by generating it's own ideas about what moves it should make.

Maybe the details would be boring to other people but I find it so fascinating I'm going to talk about it anyway! Genetic algorithms attempt to solve a complex problem by a process of imitating the natural process of evolution. They start out with different candidates and then evolve a solution by removing weak candidates and producing offspring which inherit the capabilities of their parents. Interestingly enough for a process based on evolution they often come to solutions which are strangely animal like. Here are some examples of virtual creatures created to solve problems:





The same approach can be used for an AI to "learn" how to play starcraft. This approach is not unique and is the same technique others have used before to create build order optimizers. For example the 7 roach rush? That was not a human build order, that was a build order designed by a computer using genetic algorithm techniques and later copied by humans.

But those people were using genetic algorithms outside of starcraft, AFAIK I'm the first person to try and use techniques like that within the game to guide an AI. The good news is that it WORKS! but the bad news is that it works very slowly The time it takes for the AI to come up with a solid game plan seems to be taking too long and I can't make it run faster without lagging the game out.

My computer is about 10 years old, so it's no spring chicken, I'm sure other people would have faster computers. But I need to find a way to optimize it and make it run a LOT faster if this is going to work. Unfortunately I do not think I will succeed at speeding it up enough. I will make a bit more of an attempt but I suspect that it will forever be too slow to be practical and I will have to abandon that approach (after showing it off a bit just so I can say I did it :D ).

Whether I get it to work and move forwards with that approach or abandon it and go back to my previous approaches I will be making progress once again soon.
turtles
Profile Blog Joined August 2011
Australia360 Posts
November 09 2015 16:34 GMT
#32
Oh and TheBalanceIssue,

Thanks for the suggestion. I have already talked with the creator of Micro AI, I messaged him over reddit to ask about the possibility of joining forces. Unfortunately though the creator does not have an interest in creating an AI that can play a whole game. He seemed like a nice enough guy but the two of us have very different goals in mind:

He is interested in creating a perfectionist AI. One which behaves 100% perfectly within very narrow situations (such as the marines + bunkers vs adept). This is flashy and interesting to watch but it would not be able to actually play starcraft.

Where as I am interested in creating an AI which needs to be good enough at EVERY situation so that it can play a full game.

Sort of specialist vs jack of all trades. Both of us think our goals are not compatible enough to compromise on where we want to go.
PurpleStreak
Profile Joined July 2015
2 Posts
Last Edited: 2015-11-09 19:40:35
November 09 2015 19:39 GMT
#33
Wouldn't it be possible to keep the current state of the AI between sessions using Banks, so it doesn't have to relearn everything from scratch every time? I don't know how complex you've made the structures describing it, and whether or not the storage provided by Banks will suffice to store them completely (as I've never worked with them), but even a partial save should speed up the process.
turtles
Profile Blog Joined August 2011
Australia360 Posts
Last Edited: 2015-11-10 03:45:18
November 10 2015 03:44 GMT
#34
Hi turtles,

Are you still working on it? I was wondering if Micro AI can be implemented into your AI.

Referring to this AI:


TheBalanceIssue!

I just realized that you ARE the creator of Micro AI? I talked to you ages ago and you weren't interested. lol.

I'm trying to find our email correspondances but I can't find them... maybe I was thinking about a different AI creator and got them mixed up with you? I'm very confused now :p

But yeah I would love to talk over the possibility of if we could help eachother out or contribute parts to eachothers projects. Even if we don't find a middle ground I'd be curious to know where you're going with what your doing.
TheBalanceIssue
Profile Joined June 2015
Singapore41 Posts
Last Edited: 2015-11-10 11:42:09
November 10 2015 11:27 GMT
#35
On November 10 2015 12:44 turtles wrote:
Show nested quote +
Hi turtles,

Are you still working on it? I was wondering if Micro AI can be implemented into your AI.

Referring to this AI:


TheBalanceIssue!

I just realized that you ARE the creator of Micro AI? I talked to you ages ago and you weren't interested. lol.

I'm trying to find our email correspondances but I can't find them... maybe I was thinking about a different AI creator and got them mixed up with you? I'm very confused now :p

But yeah I would love to talk over the possibility of if we could help eachother out or contribute parts to eachothers projects. Even if we don't find a middle ground I'd be curious to know where you're going with what your doing.


Hmm... I dont remember saying I wasn't interested lol. Will PM you in reddit.
pure.Wasted
Profile Blog Joined December 2008
Canada4701 Posts
November 12 2015 01:38 GMT
#36
Very cool stuff. I'll keep my eyes open for more videos from this AI. GL!
INna Maru-da-FanTa, Bbaby, TY Dream that I'm Flashing you
HeadBangaa
Profile Blog Joined July 2004
United States6512 Posts
November 12 2015 12:58 GMT
#37
Hi Turtles. I'm glad to have found this thread; I've been using SALT for a while now, and recently started my own AI project. It has different goals than yours, so I'll probably continue to work alone.

I can't seem to find SALT mod on Battle.net anymore. I only see the "SALT lotv macro" version, but I need the HotS version. Did you unpublish it for some reason? It's a super useful tool.
People who fail to distinguish Socratic Method from malicious trolling are sadly stupid and not worth a response.
turtles
Profile Blog Joined August 2011
Australia360 Posts
November 12 2015 15:25 GMT
#38
Hi HeadBangaa,

With all the chaos from LOTV being released I was rushing to get a SALT verion out for LOTV. I just published the LOTV version last night and put it on all servers today. In my rush I was not considering the people who still use SALT for HOTS and did not consider that adding the new units would make it no longer available for you.

I appreciate everyone who uses SALT, so I appologise for overlooking some of you in my haste.

I've got tomorrow off work and plan on doing a bunch of starcraft stuff so I'm putting "HOTS compatibility" on the top of the list. Probably be done by tomorrow evening. (I'm feeling like Blizzard lately. I keep using the word "SOON" over and over.)

What kind of AI project are you making? It's a shame AI battles are impractical in SC2 but I love seeing what people come up with.
turtles
Profile Blog Joined August 2011
Australia360 Posts
November 12 2015 15:55 GMT
#39
On November 10 2015 04:39 PurpleStreak wrote:
Wouldn't it be possible to keep the current state of the AI between sessions using Banks, so it doesn't have to relearn everything from scratch every time? I don't know how complex you've made the structures describing it, and whether or not the storage provided by Banks will suffice to store them completely (as I've never worked with them), but even a partial save should speed up the process.


Hi PurpleStreak.

The plan the genetic algorithm tries to come up with a plan which is suitable to the current game state (and only bothers looking 10 minutes ahead). So at the begining the current plan might look like "10 supply depot, 12 rax, 14 refinery...." as the game progresses the current plan will look more like "50 thor, 55 starport, 60 banshee...".

I COULD keep a record of what it builds and save it in a bank and use it to seed the genetic algorithm next time around but then it becomes like a script. I may as well just feed it a list of predetermined build orders. It's more that it is slow to figure out how to adjust what it's doing to the game state, so I could feed it the plan from last game but if this time the opponent goes for mutas instead of roaches it will adapt only very slowly.

I'm sure there is a lot of ways I could make it better but I don't want to go increasing the complexity too much considering how slow it is already.

It's frustrating because I'm having trouble getting the function profiler working. The SC2 editor comes with the ability to tell you how much processing time each function is taking up but it keeps giving me nonsensical answers so I'm not sure if it's broken or I'm just stupid :/
HeadBangaa
Profile Blog Joined July 2004
United States6512 Posts
Last Edited: 2015-11-14 11:05:28
November 14 2015 10:48 GMT
#40
On November 13 2015 00:25 turtles wrote:
Hi HeadBangaa,

With all the chaos from LOTV being released I was rushing to get a SALT verion out for LOTV. I just published the LOTV version last night and put it on all servers today. In my rush I was not considering the people who still use SALT for HOTS and did not consider that adding the new units would make it no longer available for you.

I appreciate everyone who uses SALT, so I appologise for overlooking some of you in my haste.

I've got tomorrow off work and plan on doing a bunch of starcraft stuff so I'm putting "HOTS compatibility" on the top of the list. Probably be done by tomorrow evening. (I'm feeling like Blizzard lately. I keep using the word "SOON" over and over.)

What kind of AI project are you making? It's a shame AI battles are impractical in SC2 but I love seeing what people come up with.

Thank you so much for republishing the HotS version of SALT! It cuts my development cycle down dramatically. Would love to buy you a beer, PM me your paypal.

My project is just for fun; I'm creating a series of user-centric intelligent agents. They use the mouse and keyboard interface, throttled to human speed, and scrape the screen for visual information to make decisions. This is an external program, and does not read program memory or "cheat" in any way. It's basically a game-long, dynamically constructed macro. I'm in the process of building out the API which drives basic game activities, and have already programmed a user agent which just does a 2 rax reaper rush (as a test model). I'm using Autohotkey for the programming and the GDI+ Windows API for fast screen scraping and bitmap analysis.

The Broodwar AI scene was pretty well-developed. They ran myriad games on private servers and had tournaments. It's not just technically difficult, but illegal to run a private server for SC2. Blizz really has their platform locked down; the EULA is absolutely brutal too.
People who fail to distinguish Socratic Method from malicious trolling are sadly stupid and not worth a response.
Prev 1 2 3 Next All
Please log in or register to reply.
Live Events Refresh
OSC
16:00
OSC Elite Rising Star #17
Nicoract vs MixuLIVE!
Babymarine vs MindelVK
ForJumy vs TBD
Shameless vs Percival
SteadfastSC87
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
mouzHeroMarine 648
Lowko470
ProTech127
SteadfastSC 87
Codebar 25
MindelVK 23
StarCraft: Brood War
Britney 22396
Calm 2638
Shuttle 742
GuemChi 595
EffOrt 492
Larva 268
Rush 237
firebathero 168
BeSt 152
Snow 113
[ Show more ]
Dewaltoss 105
PianO 63
yabsab 34
Mong 23
Aegong 19
soO 17
Sacsri 17
Terrorterran 12
scan(afreeca) 9
HiyA 8
SilentControl 8
JulyZerg 5
NaDa 4
Dota 2
Gorgc7185
Dendi1026
420jenkins276
XcaliburYe205
Counter-Strike
fl0m3837
zeus365
chrisJcsgo45
Heroes of the Storm
Khaldor157
Other Games
Grubby3181
hiko888
ArmadaUGS122
Mew2King81
Livibee69
QueenE56
Trikslyr46
KnowMe11
Organizations
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 15 non-featured ]
StarCraft 2
• poizon28 19
• Reevou 7
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• C_a_k_e 2670
• WagamamaTV515
Other Games
• Shiphtur75
Upcoming Events
Replay Cast
6h 46m
Korean StarCraft League
1d 9h
CranKy Ducklings
1d 16h
WardiTV 2025
1d 18h
SC Evo League
1d 19h
BSL 21
2 days
Sziky vs OyAji
Gypsy vs eOnzErG
OSC
2 days
Solar vs Creator
ByuN vs Gerald
Percival vs Babymarine
Moja vs Krystianer
EnDerr vs ForJumy
sebesdes vs Nicoract
Sparkling Tuna Cup
2 days
WardiTV 2025
2 days
OSC
2 days
[ Show More ]
BSL 21
3 days
Bonyth vs StRyKeR
Tarson vs Dandy
Replay Cast
3 days
Wardi Open
3 days
StarCraft2.fi
3 days
Monday Night Weeklies
3 days
Replay Cast
4 days
WardiTV 2025
4 days
StarCraft2.fi
4 days
PiGosaur Monday
5 days
StarCraft2.fi
5 days
Tenacious Turtle Tussle
6 days
The PondCast
6 days
WardiTV 2025
6 days
StarCraft2.fi
6 days
Liquipedia Results

Completed

Proleague 2025-11-30
RSL Revival: Season 3
Light HT

Ongoing

C-Race Season 1
IPSL Winter 2025-26
KCM Race Survival 2025 Season 4
YSL S2
BSL Season 21
CSCL: Masked Kings S3
Slon Tour Season 2
Acropolis #4 - TS3
META Madness #9
SL Budapest Major 2025
ESL Impact League Season 8
BLAST Rivals Fall 2025
IEM Chengdu 2025
PGL Masters Bucharest 2025
Thunderpick World Champ.
CS Asia Championships 2025
ESL Pro League S22
StarSeries Fall 2025
FISSURE Playground #2

Upcoming

BSL 21 Non-Korean Championship
Acropolis #4
IPSL Spring 2026
Bellum Gens Elite Stara Zagora 2026
HSC XXVIII
RSL Offline Finals
WardiTV 2025
Kuram Kup
PGL Cluj-Napoca 2026
IEM Kraków 2026
BLAST Bounty Winter 2026
BLAST Bounty Winter Qual
eXTREMESLAND 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.