FREE counter and Web statistics from sitetracker.com
collision detection
content | discontent
send me yours
December 14, 2002
Orc A.I.

How do you shoot a film like Lord of the Rings -- which regularly has scenes of 10,000-Orc armies clashing with an equally massive sprawl of elves, humans and dwarves? Well, you could try to create computer-generated Orcs one by one, and figure out ways to animate them. But as it turns out, that makes the armies seem curiously stiff and scripted.

The solution? Use A.I. A New Zealand programmer for the movie created Massive, a program that gives each Orc a bit of artificial intelligence -- and turns them loose. Each individual Orc tries to kill opponents and stay away from bad situations, much like the A.I. opponents in games like Quake or Half-Life. The result is a scene that has the same level of realistic chaos you'd get if you had 10,000 actual human extras acting it out:

Like real people, agents' body types, clothing and the weather influence their capabilities. Agents aren't robots, though. Each makes subtle responses to its surroundings with fuzzy logic rather than yes-no, on-off decisions. And every agent has thousands of brain nodes, such as their combat node, which has rules for their level of aggression.

When an animator places agents into a simulation, they're released to do what they will. It's not crowd control but anarchy. That's because each agent makes decisions from its point of view. Still, when properly genetically engineered, the right character will always win the fight.

"It's possible to rig fights, but it hasn't been done," [Stephen] Regelous [creator of Massive] said. "In the first test fight we had 1,000 silver guys and 1,000 golden guys. We set off the simulation, and in the distance you could see several guys running for the hills."

It's a neat examplar of what I call the new "military/entertainment complex." It used to be that the military innovated -- and perfected -- the technology that was later used by entertainment (the way, for example, ballistics algorithms and computer circuity developed for warfare were later used for video games). That's frequently reversed now. As Wired noted several issues ago, the best A.I. work now is in video games and movies; they innovate, and the government follows. It's a side-effect of cheapening computer power and the infinite-monkeys rule: If you have a million geeks working on kewl stuff for fun, they're quite often going to develop toys faster and better than even NASA.

Posted by Clive Thompson at December 14, 2002 07:13 PM

Trackback Pings

TrackBack URL for this entry: http://www.collisiondetection.net/mt3/mt-tb.cgi/152

Listed below are links to weblogs that reference Orc A.I.:

ยป Those Great Battle Scenes in LOTR from Barry Talks!
...were created here . [Read More]

Tracked on December 29, 2003 6:32 PM

Comments

I'm not quite how accurate to say that the "best AI work now is in video games and movies".

I think that, like in graphics, the best looking technology is often in industry, but it isn't necessarily what will give us intelligent machines or computers, just things that appear plausibly realistic.

Mike Kulas, one of the original authors of Descent, told me that when he was in CS grad school studying AI, one of his professors told him that nothing interesting in AI will happen in the professor's lifetime. Obviously, the difference is that for commercial purposes, new just means "new to me" whereas in academia, new really means new, where nobody has done it before.

Posted by: Andrew Wu at December 16, 2002 2:14 PM

It's true that the word "best" as applied to A.I. is pretty subjective. After all, there's no single goal of A.I. Some people are working on ontologies and mapping out common-sense knowledge, like Doug Lenat with Cyc. Others are developing content-analysis tools like the Latent Semantic Analysis guys. Some are still slugging away at the original Turing proposition, like the chatbot guys. It's hard to say that one is "better" than the others, true, since each is pursuing quite different goals.

Posted by: Clive at December 16, 2002 2:44 PM

I think that, like in graphics, the best looking technology is often in industry, but it isn't necessarily what will give us intelligent machines or computers, just things that appear plausibly realistic.

Posted by: logo at January 8, 2004 8:37 AM

I think that, like in graphics, the best looking technology is often in industry, but it isn't necessarily what will give us intelligent machines or computers, just things that appear plausibly realistic.

Posted by: sonneries at January 8, 2004 8:47 AM

Nice site. thx.

Posted by: Online Casino at January 16, 2004 11:53 AM

This code should compile and run just fine, and you should see no changes in how the program works. So why did we do all of that?

Posted by: Gentile at January 20, 2004 11:23 AM

This is another function provided for dealing with the heap. After you've created some space in the Heap, it's yours until you let go of it. When your program is done using it, you have to explicitly tell the computer that you don't need it anymore or the computer will save it for your future use (or until your program quits, when it knows you won't be needing the memory anymore). The call to simply tells the computer that you had this space, but you're done and the memory can be freed for use by something else later on.

Posted by: Annanias at January 20, 2004 11:24 AM

For this program, it was a bit of overkill. It's a lot of overkill, actually. There's usually no need to store integers in the Heap, unless you're making a whole lot of them. But even in this simpler form, it gives us a little bit more flexibility than we had before, in that we can create and destroy variables as we need, without having to worry about the Stack. It also demonstrates a new variable type, the pointer, which you will use extensively throughout your programming. And it is a pattern that is ubiquitous in Cocoa, so it is a pattern you will need to understand, even though Cocoa makes it much more transparent than it is here.

Posted by: Agnes at January 20, 2004 11:24 AM

Earlier I mentioned that variables can live in two different places. We're going to examine these two places one at a time, and we're going to start on the more familiar ground, which is called the Stack. Understanding the stack helps us understand the way programs run, and also helps us understand scope a little better.

Posted by: Digory at January 20, 2004 11:24 AM

Seth Roby graduated in May of 2003 with a double major in English and Computer Science, the Macintosh part of a three-person Macintosh, Linux, and Windows graduating triumvirate.

Posted by: Vincent at January 20, 2004 11:25 AM

For this program, it was a bit of overkill. It's a lot of overkill, actually. There's usually no need to store integers in the Heap, unless you're making a whole lot of them. But even in this simpler form, it gives us a little bit more flexibility than we had before, in that we can create and destroy variables as we need, without having to worry about the Stack. It also demonstrates a new variable type, the pointer, which you will use extensively throughout your programming. And it is a pattern that is ubiquitous in Cocoa, so it is a pattern you will need to understand, even though Cocoa makes it much more transparent than it is here.

Posted by: Gabriel at January 20, 2004 11:25 AM

This is another function provided for dealing with the heap. After you've created some space in the Heap, it's yours until you let go of it. When your program is done using it, you have to explicitly tell the computer that you don't need it anymore or the computer will save it for your future use (or until your program quits, when it knows you won't be needing the memory anymore). The call to simply tells the computer that you had this space, but you're done and the memory can be freed for use by something else later on.

Posted by: Reginald at January 20, 2004 11:25 AM

When compared to the Stack, the Heap is a simple thing to understand. All the memory that's left over is "in the Heap" (excepting some special cases and some reserve). There is little structure, but in return for this freedom of movement you must create and destroy any boundaries you need. And it is always possible that the heap might simply not have enough space for you.

Posted by: Vincent at January 20, 2004 11:25 AM

This code should compile and run just fine, and you should see no changes in how the program works. So why did we do all of that?

Posted by: Thomas at January 20, 2004 11:26 AM

Let's take a moment to reexamine that. What we've done here is create two variables. The first variable is in the Heap, and we're storing data in it. That's the obvious one. But the second variable is a pointer to the first one, and it exists on the Stack. This variable is the one that's really called favoriteNumber, and it's the one we're working with. It is important to remember that there are now two parts to our simple variable, one of which exists in each world. This kind of division is common is C, but omnipresent in Cocoa. When you start making objects, Cocoa makes them all in the Heap because the Stack isn't big enough to hold them. In Cocoa, you deal with objects through pointers everywhere and are actually forbidden from dealing with them directly.

Posted by: Tobias at January 20, 2004 11:26 AM


  • カリビアンコム caribbeancom

  • カリビアン caribbean

  • 米国性動画通信 2345 2345.tv 外人 海外 洋物 洋もの ポルノ 無修正ビデオ

  • オナニーコム 0721.com 0721

  • コスチュームシアター costumetheater

  • DXLIVE DX LIVE ライブチャット

  • DXライブ DX ライブ デラックスライブ ビデオチャット

  • EXSHOT EX SHOT動画チャット

  • EXショット EX ショット アダルトチャット

  • Girls On Air GirlsOnAir

  • ガールズオンエアー GOA

  • 一本道 一本堂 1本道

  • HGMO HGMO H:G:M:O

  • 東京真夜中DX TOKYONIGHTS

  • URAYA URAYAOnlineTV うらや オンライン TV

  • X-GALLERY XGALLERY Xギャラリー

  • 日本人のおしっこEX JapanesePeeEX Japanese Pee EX

  • 赤外線盗撮の世界 XRAY

  • Erox EroxJapan Z EroxJapanZ エロックス エロックスジャパンZ

  • URAMOVIE 裏ムービー

  • HYPER裏ビデオ通信 ハイパー裏ビデオ通信 PINKEYES.COM

  • 出会い PURE21

  • エロアニメ TV エロアニメTV EroanimeTV Eroanime TV

  • ネットコミック NETCOMIC

  • 週間ドラムカン 文庫ドラムカン

  • JapaBeauty JapaBeauty.tv ジャパビューティー

  • eroika eroika.com エロイカ

  • 抜天市場 抜き天 抜店 nukiten

  • 画像

  • 動画

  • アイコラ

  • 盗撮

  • 無料

  • 写真集

  • 無修正

  • 覗き のぞき ノゾキ

  • サンプル SAMPLE

  • 壁紙

  • レイプ

  • パンチラ ぱんちら

  • コスプレ

  • 裏ビデオ

  • アダルト あだると

  • ダウンロード DOWNLOAD

  • AV女優タレントアイドル

  • 巨乳

  • ブルマ ぶるま

  • セーラー服 制服 ブルセラ

  • マンコ まんこ

  • セックス SEX

  • エッチ えっち

  • 熟女 人妻

  • オナニー おなにー

  • 女子校生 女子高生

  • エロ えろ ero

  • ヌード ヘアヌード nude

  • 99 BB 9BB 99B 99bb 99bb.com GON 裏ビデオ 無修正 有料 会員制

  • フリーセックス フリーセックスジャパン FreeSexJapan Free Sex Japan

  • 東京キュートガールズ TokyoCuteGirls Tokyo Cute Girls

  • 覗き屋 のぞきや のぞき屋 Nozokiaya

  • 直撃ドットコム Chokugeki.com

  • 熟まん 熟マン Jyukuman

  • Jハードコア Jhardcore J hardcore

  • JPムービーズ JPmovies JP movies

  • プリティーピンク プリティーピンクジャパン PrettyPinkJapan Pretty Pink Japan

  • JPチックス JPChicks

  • ハードポーン ハードポーンジャパン HardPornJapan Hard Porn Japan

  • J-SMUT JSMUT Jスマット

  • ヌキヌキ学園 ぬきぬき学園

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • .

  • Posted by: julia at January 24, 2004 7:06 PM

    Posted by: mike at August 28, 2004 9:42 AM

    analvalley | backseatbangers | bangboat | bangbusbigcocksex | blackcockswhitesluts | herfirstasstomouth | herfirstbigcock | hugerealboobs | milfseeker | teensforcash | all-reality-pass | bare-foot-maniacs | big-tit-patrol | coeds-need-cash | i-spy-camel-toe | mr-chews-asian-beaver | please-bang-my-wife | reality-pass-plus | teeny-bopper-club | the-big-swallow | tinys-black-adventures | xxx-proposal | adultcams | allgangbang | allstarstuds | amateurpie | analvalley | backseatbangers | bang-boat | bangboat | bestmovies | bigcocksex | blackcockswhitesluts | cartoon69 | cheerchix | cyberfoldsweb | dopornstars | ebonyjoy | euroteensxxx | facialmag | fantasylatina | fetishhell | gangbangsquad | girlsgetcrazy | hardporn | herfirstanalsex | herfirstasstomouth | herfirstbigcock | herfirstlesbiansex | hirsutebeavers | hisfirstgaysex | hisfirsthugecock | hugerealboobs | indiachix | interracialjoy | iteens | justfacials | largegirlsxxx | lesboerotica | maturexrotica | milfseeker | musclemenxxx | mysextour | ohboys | pornoground | pornstudsearch | seeasians | sporterotica | successwithgirls | teensforcash | tittymax | trannyhouse | twinksforcash | ultravideos | voyeurgals | xxxsupersize | gangbus | girlsgetcrazy | milfseeker | rectalrooter | teens-for-cash | welivetogether | backroomfacials | backseatbanger | bang-boat | bangboat | bigcocksex | freshauditions | inthevip | milfseeker | teensforcash | xxxproposal | hotasiancherry | internationalbikini | karaamateurs | karasamateur | latinakiss | lesbianpink | majormelons | nastyblacksex | nastyboys | pregnantbabes | teensteam | wetlesbians | com | ebonyfantasy | exoticredheads | fantasytoons | firstlesbiankiss | fortbooty | foxybrunettes | girlsntoys | greatlookingass | justasianteens | justforladies | karasamateurs | adultmoviematrix | amateurmoviematrix | analmoviematrix | bigboobsgalore | cartoonsexonline | ebonyarousal | ebonymoviematrix | explicitlesbians | firsttimetwinks | gayblackhardcore | gayxxxarchive | hardcoremoviematrix | hardcoresexshack | homesexnetwork | hottestanalsex | interracialmoviematrix | interracialparadise | lesbianmoviematrix | maturebelle | maturemoviematrix | maturexxxarchive | milfsearch | milfsearcher | oralmoviematrix | petitegoddess | puregroupsex | ratemytranny | shemalesparadise | sinfulfacials | sluttytransexuals | teeneroticaclub | teenmoviematrix | theamateurlounge | xratedlatinos | xxxteentease | all-reality-pass | big-tit-patrol | coeds-need-cash | horny-spanish-flies | hornyspanishflies | i-spy-camel-toe | mr-chews-asian-beaver | please-bang-my-wife | reality-pass | teeny-bopper-club | tinys-black-adventures | all-reality-pass | allrealitypass | barefootmaniacs | big-tit-patrol | bigtitpatrol | horny-spanish-flies | hornyspanishflies | i-spy-camel-toe | ispycameltoe | mr-chews-asian-beaver | please-bang-my-wife | reality-pass-plus | teeny-bopper-club | tinys-black-adventures | tinysblackadventures | true-celebs | xxx-proposal | all-reality-pass | barefoot-maniacs | big-tit-patrol | horny-spanish-flies | i-spy-camel-toe | mr-chews-asian-beaver | please-bang-my-wife | reality-pass-plus | teeny-bopper-club | tinys-black-adventures | back-seat-bangers | bang-boat | bangboat | herfirstbigcock | milfseek | tittymax | trannyhouse | ultravideo | ultravideos | voyeurgals | backseatbangers | bangboat | bestmovies | cartoon69 | cheerchix | cyberfoldsweb | dopornstars | ebonyjoy | euroteensxxx | facialmag | fantasylatina | fetishhell | gangbangsquad | milfseeker | teensforcash | allamateurmovies | bangboat | bigcocksex | bignaturals | boysfirsttime | inthevip | mikeinbrazil | milf-riders | milfseeker | india-uncovered | interracial-sex-fest | kunt-fu | latina-time | latins-finest | lipstick-lesbo | man-hunter | mini-boobs | mission-upskirt | naughty-amateur | naughty-therapy | teens-for-cash | bangbus | backseatbangers | teensteam | cumfiesta | gangbus | milf-seeker | milfrider | milf | captainstabbin | backseatbangers | FreakCock | GangBangTryout | TrueCelebs | NudeCelebsRevue | CoedsNeedCash | BigTitPorn | GirlieZoo | OfficeGirlSex | CumshotParties | Threesomes | HotFarmGirls | GangBangModels | CampPorno | DoPornStars | USAEscorts |

    Posted by: campporno at December 21, 2004 10:47 AM

    fistbang | freshauditions | freshteens | girlforgirl | kinkymaturesluts | pimp4aday | shockingcocks | sugarmamas | trannytrouble | videoseekers | allrealitypass | barefootmaniacs | bigtitpatrol | coedsneedcash | hornyspanishflies | ispycameltoe | mrchewsasianbeaver | pleasebangmywife | realitypassplus | teenybopperclub | thebigswallow | tinysblackadventures | truecelebs | xxxproposal | absolutelymale | adultchatnetwork | asianheat | kara | karasamateurs | teenbody | teenfactory | upskirtschool | videoseekers | voyeurteens | nude-celebs-revue | office-girl-sex | old-babes-home | orgy-machine | orgy-movie-madness | soap-boys | street-strippers | sugar-mamas | sweet-cherrys | taboo-insertions | teen-body | teen-factory | upskirt-school | voyeur-teens | xxx-tryouts | strap-on-teens | teen-cumers | the-big-swallow | three-somes | tiny-tit-babes | tranny-a-gogo | true-celebs | gang-bang-tryout | gangbang-tryout | girlie-flashers | girlie-zoo | girls-are-nuts | hardcore-teen-flics | hentai-playground | suckmebitch | sugar-mamas | sugarmamas | tranny-trouble | video-seekers | wet-black-panties | x-rated-pornos | xxx-adult-stars | xxx-asians | xxx-gold | ebony-cheeks | ebonycheeks | fresh-auditions | freshauditions | indiauncovered | kinkymaturesluts | pimp-4-a-day | pimp4aday | suck-me-bitch | chicks-go-both-ways | fucked-for-free | gay-sugar-daddy | guys-in-the-city | horny-traveler | hot-bods-cool-rides | internet-hookups | milf-searcher | reality-pass | rub-and-tug | supermarket-whores | hidden-eyes | hot-asian-cherry | hot-little-package | international-bikini | just-asian-teens | just-for-ladies | latina-kiss | lesbian-pink | major-melons | my-kinky-wife | nasty-black-sex | nasty-boys | obey-me-slave | oral-addiction | ebony-cheeks | fist-bang | fresh-auditions | fresh-teens | kinky-mature-sluts | pimp-4-a-day | shocking-cocks | suck-me-bitch | super-bush | tranny-trouble | video-seekers | analvalley | backseatbangers | bang-boat | bangboat | bestmovies | bigcocksex | blackcockswhitesluts | cartoon69 | FootErotica | StraightGoesGay | RawXXX | GangBangLessons | SuperTwink | NaughtyTherapy | SquirtingChicks | MomsNeedCash | WaterBondage | HugeDicksLittleChicks | TwinksFromTheHood | XXXCasting | SoloGirls | NaughtyNati | TeenDirtBags | CumSwallowingLessons | Cocks | TittieFuckers | XXXTryouts | Her1stAnal | BangkokBangers | TrueCelebs | WickedWendy | AnalSexLessons | allamateurmovies | bignaturals | boysfirsttime | firsttimeauditions | inthevip | eurosexparties | megacockcravers | mikeinbrazil | nastyfetish | roundandbrown | topshelfpussy | trannysurprise | welivetogether | wivesinpantyhose | gay-hitchhiker | gay-super-cocks | gigant-gay-cock | girl-for-girl | girl-ranch | grande-girls | hardcore-toons | hot-nude-granny | india-uncovered | interracial-sex-fest | analvalley | bestmovies | kunt-fu | latina-time | latins-finest | man-hunter | mini-boobs | mission-upskirt | naughty-amateur | naughty-therapy | never-shot | barefootconfidential | barefootmaniacs | bigtitpatrol | hornyspanishflies | ispycameltoe | pinkcandyshavers | pumpthatass | texasdildomassacre | tinysblackadventures | vanillateensblackcream | oral-fantasies | perfect-orgy | pom-pom-porno | porn-wannabe | pregnant-bang | red-hair-sex | secret-fetishes | sexy-hardcore | shes-huge | slam-that-ass | slut-movies | soap-boys | street-strippers | sugar-mamas | sweet-cherrys | taboo-insertions | teen-body | teen-factory | upskirt-school | voyeur-teens | xxx-tryouts |

    Posted by: xxx-tryouts at January 9, 2005 6:09 PM

    Post a comment

    Thanks for signing in, . Now you can comment. (sign out)

    NOTE: If you posted a comment and you can't see it -- try refreshing your browser.


    Remember me?