• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 13:05
CEST 19:05
KST 02:05
  • 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
[ASL22] Ro4 Preview: Mirror Mirror4[ASL22] Ro8 Preview: Within Reach5[ASL22] Ro8 Preview: In A Tizzy11[ASL22] Ro16 Preview: Holy Diver5[ASL22] Ro16 Preview: Rough Waters10
Community News
Weekly Cups Results (Sep 28-Oct 4)0SC4ALL: II SC2 Complete Invited Player Lineup10StarCraft II 5.0.17 PTR Patch Notes (Sept 30, 2026)75Weekly Cups (Sept 21-27): herO and ByuN double2Weekly Cups (Sep 13-20): herO scores triple3
StarCraft 2
General
StarCraft II 5.0.17 PTR Patch Notes (Sept 30, 2026) How do you feel about the mass reverts in the 5.0.17 PTR? Weekly Cups Results (Sep 28-Oct 4) SC4ALL: II SC2 Complete Invited Player Lineup Back to SC2 after 14 years - Protoss CTRL groups?
Tourneys
Stellar Fest TWO the Moon (Dec 16-20) Sparkling Tuna Cup - Weekly Open Tournament 2026 GSTL Grand Finals Sea Duckling Open (Global, Bronze-Diamond) SC2 INu's Battles#21 [ 3-Days tournament ]
Strategy
[H] ZvP Mid-Late Game: Stalkers Collossi HT
Custom Maps
[M] (2) Sweltering Sands [M] (2) Frigid Storage
External Content
Mutation # 546 Catch the Train The PondCast: SC2 News & Results Mutation # 545 And Drops and Rifts Mutation # 544 Double Trouble
Brood War
General
Sagi.gg Launcher Released 20-year-old Valorant player starting StarCraft BGH Auto Balance -> http://bghmmr.eu/ Fantasy returning? BSL Season 23
Tourneys
[ASL22] Semifinal B [ASL22] Semifinal A [Megathread] Daily Proleagues [ASL22] Ro8 Day 4
Strategy
Cliff Jump Revisited (1 in a 1000 strategy) Replay Review Process - What do you do? Simple Questions, Simple Answers
Other Games
General Games
General RTS Discussion Thread Nintendo Switch Thread Warcraft III: The Frozen Throne Stormgate/Frost Giant Megathread Total Annihilation Zero
Dota 2
Dota 2 Champions League Season 3 Begins April 25! Official 'what is Dota anymore' discussion
League of Legends
[TL LoL EUW IHs] Teemo shall perish
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Community Thread
Community
General
Russo-Ukrainian War Thread US Politics Mega-thread Canadian Politics Mega-thread Dating: How's your luck? Artificial Intelligence Thread
Fan Clubs
Serral Fan Club
Media & Entertainment
Movie Discussion! [Manga] One Piece Diablo Animated Series on Netflix
Sports
Football (Soccer) Thread MLB/Baseball 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
Recent Gifted Posts
Blogs
[ASL22] Ro4 Day1 Ticket Giv…
bITt.mAN
Escaping Into Video Games: G…
TrAiDoS
38 yo Retired SWE loo…
PurE)Rabbit-SF
Can Bots Beat Pros?? Starcr…
namkraft
[meme] I finally understa…
LUCKY_NOOB
Regacy Esports:Our Goa…
regacyesports
Customize Sidebar...

Website Feedback

Closed Threads



Active: 9664 users

Patrick Wyatt: The StarCraft path-finding hack

Forum Index > BW General
Post a Reply
1 2 3 4 Next All
Heyoka
Profile Blog Joined March 2008
Katowice25012 Posts
Last Edited: 2013-02-20 19:08:44
February 20 2013 19:02 GMT
#1
Patrick Wyatt was a programmer of Brood War who has shared a few awesome stories about the development of the game here and here. He’s back with a third installment, this time regarding an issue we’re all extremely close to: the pathfinding AI. It gives some amusing insight into the strange behavior of ramps and why workers have no collision size, among other things.

It’s a great read as always. Go read the whole thing here.

Code of Honor

The StarCraft path-finding hack


February 20, 2013 By Patrick Wyatt

Game-unit path-finding is something that most players never notice until it doesn’t work quite right, and then that minor issue becomes a rage-inducing, end-of-the-world problem. During the development of StarCraft there were times when path-finding just didn’t work at all.

As the development of StarCraft dragged on it seemed like it would never be done: the game was always two months from launch but never seemed to get any closer to the mythical ship date. “Fortunately” — and I use that term advisedly — Blizzard had previous experience shipping games late.

While we always had launch-date “goals” (though “wishes” might be a better term) we tried not to announce publicly until there was a good chance that the game would be ready at that point. Blizzard’s “when it’s done” policy for game launch was as much an admission that no one had any idea when we would finish as it was a commitment to releasing quality products.

In any event, towards the end of the project we had a set of problems that prevented launching. Like any game in the latter stages of the development process there were defects galore that needed to be found and repaired and the bug count still numbered in the thousands.

Many of those bugs were trivial, and needed only a little attention to fix. Too bad they weren’t all like that.

Others, like a multiplayer synchronization bug, would pop up and require dedicated attention from several members of the programming team — sometimes weeks of effort for a single problem. Other game developers have reported similar experiences with their sync bugs: Ages of Empires and Supreme Commander.

Some bugs were related to the development process itself. The Protoss Carrier regularly lagged behind other units because it had its own way of doing … everything. At some point in time the code for the Carrier was branched from the main game code and had diverged beyond any hope of re-integration. Consequently any time a feature was added for other units, it had to be re-implemented for the Carrier. And any time a bug was fixed for other units, a similar bug would later be found in the Carrier code too, only more devious and difficult to fix.

But the biggest thing holding back StarCraft was unit path-finding.

It wasn’t that the path-finding was totally broken; in most cases it worked quite well. But there were enough edge-cases that the game was un-shippable.

Game units would get stuck and stop on the battlefield. Often they would go through elaborate efforts to find paths, inching forward or looping around but not making progress, and sometimes getting wedged and unable to move further. Entire task forces would get bogged down in what looked like the afternoon commute.

The problem was frustrating for players, but also made the AI weak and consequently made it impossible to balance the missions, wasting design time.

Though I was never a top-tier RTS player, before the game launched I was good at the game because I discovered that Goliaths were overpowered to make up for their poor path-finding abilities. Because they were larger than other ground units they needed wider spaces for path-finding, and so by carefully shepherding Goliaths around obstacles I was able to bring their firepower to bear in crucial situations to overcome “macro” players who would otherwise tear me to shreds. Sadly my skills only lasted a short while until the Goliaths were rebalanced. sigh

Early path-finding was rough — while there were well-chosen algorithms driving unit movement they were handicapped by some poor development decisions made during the course of the project.

***


Read the rest at Patrick's site
@RealHeyoka | ESL / DreamHack StarCraft Lead
Sayle
Profile Joined October 2010
United Kingdom3685 Posts
February 20 2013 19:06 GMT
#2
Oh man I thought this would be a thread about a new hack to give BW units good path-finding. Was hoping for Pucca vs the world in yet another thread.

This is much less entertaining :/
amazingxkcd
Profile Blog Joined September 2010
GRAND OLD AMERICA16375 Posts
February 20 2013 19:07 GMT
#3
so basically, everything is higher res of warcraft engine for pathing?
The world is burning and you rather be on this terrible website discussing video games and your shallow feelings
andiCR
Profile Blog Joined March 2008
Costa Rica2273 Posts
February 20 2013 19:11 GMT
#4
Thanks. This blog is beyond awesome, and any programmer, specially a games programmer, will enjoy this series inmensely. I can only imagine what the Carrier code was like, and this bugs are directly correlated with the old inheritance model being adapted to games. If this game was made in components, they would've had wayyyy less code copypaste syndrome, and a much more dynamic model to approach bugs.
Nightmare1795 wrote: I played a guy in bronze who said he was Japanese. That was the only game I ever dropped a nuke, which was purely coincidental.
okum
Profile Blog Joined February 2009
France5779 Posts
February 20 2013 19:17 GMT
#5
To handle all the tricky edge-cases, the pathing code exploded into a gigantic state-machine which encoded all sorts of specialized “get me out of here” hacks.

This explains everything.
Flash fan before it was cool | Coiner of "jangbang"
PassiveAce
Profile Blog Joined February 2011
United States18076 Posts
February 20 2013 19:18 GMT
#6
Sadly my skills only lasted a short while until the Goliaths were rebalanced. sigh

I found this very funny aha!

Thanks for sharing this!
Call me Marge Simpson cuz I love you homie
thezanursic
Profile Blog Joined July 2011
5504 Posts
February 20 2013 19:28 GMT
#7
Finally I enjoyed his last two so much!
http://i45.tinypic.com/9j2cdc.jpg Let it be so!
Patton3D
Profile Joined March 2011
United States65 Posts
February 20 2013 19:40 GMT
#8
This entire blog series is incredibly interesting to read.
You are never defeated until you admit it.
mierin
Profile Joined August 2010
United States4943 Posts
February 20 2013 19:50 GMT
#9
On February 21 2013 04:40 Patton3D wrote:
This entire blog series is incredibly interesting to read.


It really is! I wonder why just now these blogs are starting to come out...in any case, hope for many more!
JD, Stork, Calm, Hyuk Fighting!
sabas123
Profile Blog Joined December 2010
Netherlands3122 Posts
February 20 2013 19:53 GMT
#10
awsome read

thanks for sharing
The harder it becomes, the more you should focus on the basics.
Antisocialmunky
Profile Blog Joined March 2010
United States5913 Posts
February 20 2013 19:53 GMT
#11
So he's responsible for this:
[゚n゚] SSSSssssssSSsss ¯\_(ツ)_/¯
Marine/Raven Guide:http://www.teamliquid.net/forum/viewmessage.php?topic_id=163605
shaftofpleasure
Profile Blog Joined December 2011
Korea (North)1375 Posts
February 20 2013 19:55 GMT
#12
AWESOME! bw forever!
It's either the holes of my nose are getting smaller or my fingers are getting bigger. /// Always Rooting for the Underdog. Hyuk/Sin/Jaehoon/Juni/Hyvva/Hoejja/Canata //// Hiding in thread somewhere where BW is still in it's pure form here on TL.
Pimpmuckl
Profile Joined March 2011
Germany528 Posts
February 20 2013 20:02 GMT
#13
On February 21 2013 04:11 iPAndi wrote:
Thanks. This blog is beyond awesome, and any programmer, specially a games programmer, will enjoy this series inmensely. I can only imagine what the Carrier code was like, and this bugs are directly correlated with the old inheritance model being adapted to games. If this game was made in components, they would've had wayyyy less code copypaste syndrome, and a much more dynamic model to approach bugs.


Couldn't agree more, pure awesomesauce right there
twitter.com/pimpmuckl
Nerevar
Profile Joined January 2013
547 Posts
February 20 2013 20:03 GMT
#14
[image loading]Patrick Wyatt: 1

(P)BeSt: 0
Wohmfg
Profile Blog Joined January 2009
United Kingdom1292 Posts
February 20 2013 20:06 GMT
#15
I love how these little quirks in games add so much to the top level of play.

How a game can be so perfect without being engineered that way.
BW4Life!
dRaW
Profile Blog Joined January 2010
Canada5744 Posts
February 20 2013 20:19 GMT
#16
On February 21 2013 04:06 Sayle wrote:
Oh man I thought this would be a thread about a new hack to give BW units good path-finding. Was hoping for Pucca vs the world in yet another thread.

This is much less entertaining :/



I was just thinking this, so I went offline and punched in all the cheat codes and smashed 7 PCs in frustration.
I don't need luck, luck is for noobs, good luck to you though
Andre
Profile Blog Joined August 2009
Slovenia3523 Posts
February 20 2013 20:33 GMT
#17
On February 21 2013 05:06 Wohmfg wrote:
I love how these little quirks in games add so much to the top level of play.

How a game can be so perfect without being engineered that way.

There's a lot of cool stuff that wasn't intended to be as the developers imagined it.

Besides all the cool tricks there are in BW, Quake had bunnyhopping( i think it was first "introduced" in doom..not sure), GunZ has a bunch of animation-based tricks. Like Wall cancelling etc.

You must gather your party before venturing forth.
SpeaKEaSY
Profile Blog Joined December 2010
United States1070 Posts
February 20 2013 20:36 GMT
#18
On February 21 2013 04:53 Antisocialmunky wrote:
So he's responsible for this:
http://www.youtube.com/watch?v=d1bPv8JI6zY


ahahahaha classic bisu face

I love this series, hope we can see more, it's been very insightful and nostalgic
Aim for perfection, settle for mediocrity - KawaiiRice 2014
ProMeTheus112
Profile Joined December 2009
France2027 Posts
February 20 2013 20:41 GMT
#19
:D this is awesome
<3 bw
BigFan
Profile Blog Joined December 2010
TLADT24920 Posts
Last Edited: 2013-02-20 20:44:44
February 20 2013 20:44 GMT
#20
These blogs are always amazing to read. Seems like they didn't rewrite path finding after changing the tileset, someone correct me if I'm wrong. On the bright side, we got a lot of cool tricks like drone drills and such so win win? That best vs. July game though, the look on Bisu's face was priceless XD
Former BW EiC"Watch Bakemonogatari or I will kill you." -Toad, April 18th, 2017
1 2 3 4 Next All
Please log in or register to reply.
Live Events Refresh
Next event in 6h 55m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
mouzHeroMarine 215
ProTech143
UpATreeSC 117
BRAT_OK 57
StarCraft: Brood War
Calm 3741
Bisu 1832
Soulkey 1171
EffOrt 732
Mini 541
Larva 342
Horang2 250
ZerO 241
actioN 166
ggaemo 159
[ Show more ]
Dewaltoss 153
hero 85
Mind 77
Sharp 76
Sea.KH 53
Shinee 51
sorry 51
Snow 43
Hyun 41
Barracks 37
Bale 34
Trap 29
Terrorterran 22
ToSsGirL 19
NaDa 18
Rock 13
scan(afreeca) 13
Sacsri 12
ajuk12(nOOB) 8
Noble 8
zelot 6
Dota 2
Gorgc5753
Dendi1419
420jenkins397
XaKoH 352
League of Legends
Reynor74
Counter-Strike
fl0m3784
x6flipin1307
pashabiceps694
Fnx 655
edward28
Heroes of the Storm
crisheroes406
Liquid`Hasu223
Other Games
Liquid`RaSZi1509
Grubby896
hiko831
FrodaN569
XBOCT238
Livibee191
TKL 123
C9.Mang0110
QueenE96
Mew2King40
ZerO(Twitch)24
RotterdaM16
Organizations
Other Games
WardiTV216
Dota 2
PGL Dota 2 - Main Stream25
[ Show 16 non-featured ]
StarCraft 2
• StrangeGG 71
• Reevou 3
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• Migwel
StarCraft: Brood War
• HerbMon 45
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• WagamamaTV696
League of Legends
• Nemesis4041
• TFBlade825
Other Games
• Shiphtur514
• imaqtpie7
Upcoming Events
PiGosaur Cup
6h 55m
Patches Events
22h 55m
The PondCast
1d 16h
INu's Battles
1d 17h
Percival vs TBD
Zoun vs herO
OSC
2 days
Replay Cast
2 days
OSC
3 days
BSL: Ladder Tournament
4 days
Sparkling Tuna Cup
4 days
Patches Events
4 days
[ Show More ]
BSL Open Qualifier
5 days
BSL Open Qualifier
5 days
WardiTV Weekly
6 days
Liquipedia Results

Completed

CSL 2026 AUTUMN (S22)
Blizzard Classic Cup 2026
Copium Cup

Ongoing

ASL Season 22
Super Anchor Qualifying S3
Acropolis #5
Acropolis #5 - GSB
ESL Pro League Season 24
Stake Ranked Episode 4
1win Private Club #1
Logitech G Play Connect 2026
SL StarSeries Fall 2026
FISSURE Playground #3
BLAST Open Fall 2026
Esports World Cup 2026
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual

Upcoming

Acropolis #5 - GSC
BSL Season 23
SC4ALL II: Brood War
BSL 23: Non-Korean Championship
HSC XXX
Stellar Fest 2: Lunar Cup
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
RSL Offline Finals
HCC Season 3
eXTREMESLAND 2026
PGL Major Singapore 2026
Stake Ranked Episode 6
BLAST Rivals Fall 2026
IEM Beijing 2026
Stake Ranked Episode 5
PGL Masters Bucharest 2026
1win Private Club #2
Thunderpick World Champ. '26
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.