Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno C# AI - Jak?

Zdravím všechny,
trochu jsem přemýšlel nad teoretickýma otázkama ohledně nezastavitelného blížení se 5. generace počítačů. ( Pár slov z Wikipedie po odstavci 4.Generace PC "Další generace zatím nejsou známy, protože není jisté, jakým směrem se bude vývoj ubírat. Mohly by to být stroje s umělou inteligencí, kvantové počítače nebo něco úplně jiného.". Velmi mě zaujala myšlenka "strojů s umělou inteligencí", a tak jsem se začal zaobírat celkem obsáhlejším (a také mnohem známějším) tématem: AI ve hrách. Jako středně pokročilého amatéra v programování (na kontě kousky jako Batch,což byly totálně absolutní základy, pak jsem nakousnul Javu ale pak už nic, kompletně zvládnuté Pawno a z tří čtvrtin hotové C#) mě hlavně velice zaujalo jak někdo (ksakru) dokáže naprogramovat nějaké AI jako bylo např. v CS 1.6 nebo v jakékoliv jiné hře, ve které se vyskytovalo AI. Absolutně první, co mě napadlo, bylo samozdřejmě fungování věcí jako random proměnných, ifů a else-věcí (už netuším jak to mám nazvat, snad víte co myslím ;), ale to zdřejmě nepokryje věci jako teoretické vyhledávání nepřátel, chození po mapě atd. (a to už vůbec nemluvím o konkrétním příkladu z CS 1.6 - boti střílí z optiky sniperkou. WTF?)

Mám teda dotaz, jestli s tímto tvořením AI v C# má tady někdo skušenosti - a taky postupy, jak něco takového vytvořit. Budu rád za každou rozumnou odpověď.
Díky,SteveXtreme. (Sakra už zas musím na wécko! :D)

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Zkus se podívat do zdrojáku hry a najdi si jak jsou naprogramovaná AI. Taky by mě to zajímalo jak je…
Drexx 04.10.2013 20:31
Drexx
if(nizka_zed) skrcit(); // :D
MM.. 04.10.2013 20:32
MM..
To byl příklad OMG! :D Jinak jsem myslel mnohem větší detaily :D
Drexx 04.10.2013 20:34
Drexx
Jop,skusím nahlédnout do zdrojáku cska, doufám že jsou v *.c :D :D Jinak dobrej příklad (:D), ale kd…
SteveXtreme 04.10.2013 20:39
SteveXtreme
Ono zvycajne engine hry poskytoval mnozstvo vselijakych "spinacov" alebo "trapov" (pasce) typu ze ke…
MM.. 04.10.2013 20:47
MM..
Ja vim, ja vim, nevim, jak bych to presne popsal. Je tam proste mikrak a uvnitr je obvod ktery analy…
SteveXtreme 04.10.2013 20:56
SteveXtreme
Samozrejme ze suradnice nie su jeden bod ale oblast :) Ono tam v tom engine moze byt pripravenych ta…
MM.. 04.10.2013 21:13
MM..
Já jsem se na nic neptal, já jsem jen konstatoval, že něco takového vytvářím. Jinak, zatím mi to nef…
SteveXtreme 04.10.2013 21:17
SteveXtreme
Jaj, tak to potom dobre :) Nic no ak sa ti to podari naprogramovat samemu bez opisovania tak klobuk… nový
MM.. 04.10.2013 21:20
MM..
Jeste nez pudu (asi) spat , mam jeste jeden dotaz. J.A.R.V.I.S z Iron Mana byl přece taky AI ne? Neš… nový
SteveXtreme 04.10.2013 21:23
SteveXtreme
J.A.R.V.I.S z Iron Mana nepoznam :) Chces programovat rozpoznavanie reci a nevies co je fourierova t… nový
MM.. 04.10.2013 21:30
MM..
Jo ty myslýš fourirovu transformaci.... aha promin, nepochopil jsem te :) Jarvis byl prece ten pocit… nový
SteveXtreme 04.10.2013 21:34
SteveXtreme
Ja moc nepozeram scifi :) Alebo to existuje realne? Inac su dnes uz celkom "inteligentne" roboty ale… nový
MM.. 04.10.2013 21:38
MM..
Ja bych se na to vykaslal a vratil se k memu spalenemu projektu, jenze kdyz to neudelam ted a perman… nový
SteveXtreme 04.10.2013 21:43
SteveXtreme
Jako že by reagoval na nějakou větu "svojí" větou? nový
Metride 04.10.2013 21:45
Metride
Jak to myslís? nový
SteveXtreme 04.10.2013 21:46
SteveXtreme
Jak jsi to myslel ty? Bavíme se o tom hlase, se kterym mluvil Stark v obleku? nový
Metride 04.10.2013 21:50
Metride
Jo, ten jarvis... Jo to by šlo, ale chtělo by to anglický Win7 protože v českém Voice Reconginazatio… nový
SteveXtreme 05.10.2013 10:47
SteveXtreme
Já jsem v programování teprve v úplnejch začátcích, ale vím že to jde. Ve škole si takhle 2 studenti… nový
Metride 05.10.2013 10:57
Metride
Jestli chceš můžu ti s tím programováním pomoct. Na co se specializuješ? (Java,C#,C++,Batch...) Když… poslední
SteveXtreme 05.10.2013 11:03
SteveXtreme
{ - Psani logiky v c#[c++]by zabralo hodne casu, tusim ze se pouzivaji makery kde se zada jen AI log… nový
CoCoChanel 05.10.2013 09:40
CoCoChanel
Tak teda - v noci jsem se přehraboval v source codech (omg stovky tisic radku :D) CSka a je to přesn… nový
SteveXtreme 05.10.2013 10:59
SteveXtreme

Zkus se podívat do zdrojáku hry a najdi si jak jsou naprogramovaná AI.
Taky by mě to zajímalo jak je vše do detailů naprogramované, třeba že AI se skrčí u nízké zdi aby ho nikdo nesestřelil. :)

Jop,skusím nahlédnout do zdrojáku cska, doufám že jsou v *.c :D :D Jinak dobrej příklad (:D), ale kdybys tam napsal něco takového a něčím bys to neznegoval (třeba if (30_sekund_ubehlo) do (pohni_se_dal_ty_kretene) ) tak by jakmile by narazil na prvni zed tam zustal skrceny az do endgame :D Jinak jo pochopil jsem to :D

Ono zvycajne engine hry poskytoval mnozstvo vselijakych "spinacov" alebo "trapov" (pasce) typu ze ked sa dostane paduch tam a tam (suradnice) tak to a to sa ma stat alebo prepnut nejaky status, a to definoval potom ten kto vymslal prislusny level (ze kde jaka pasca na ktorych suradniciach a co sa malo stat apod). =Ono to neni moc UI ale vypada to aspon trochu logicky.

S tym spinacom som to nepochopil. Rozpoznavanie hlasu je defakto fuzzy porovnavanie nejakej furierovej analyzy alebo co :) (rozhodovanie je na zaklade fuzzy % ak to presiahne napr. 90% tak je to to slovo apod). To tiez neni moc inteligencia, proste akusticky stroj.

Ja vim, ja vim, nevim, jak bych to presne popsal. Je tam proste mikrak a uvnitr je obvod ktery analyzuje a porovnava 2 stavy (hlasove prikazy) - vypnuto a zapnuto. Kdyz reknu "zapnuto", rozsviti se 5 led zarovicek v rade zajistene autopojistkou. Kdyz reknu "vypnuto", udela to presny opak. Jinak s tema suradnicema to neni moc dobra teorie, to by se ten ci onen clovek musel dostavit presne na urcite misto na mape aby se s AIckem neco delo. Mam spis na mysli ze to maji rozdelene na sektory z vrchu dolu na A-E a z leva do prava 1-5, a pak je
if (ten ci onen clovek se dostavi napr. do sektoru C1)
then (jdi do sektoru C1 a zacni po nem stritel)
else (jdi do sektoru random)
a pak smycka, ze pokud tam nikdo nebude, posun se do dalsiho randomovaneho sektoru a kdyz tam nekdo bude tak zacni sit atd atd atd...

Já jsem se na nic neptal, já jsem jen konstatoval, že něco takového vytvářím. Jinak, zatím mi to nefunguje proto, že jsem tím obvodem omylem pustil "dvěstě dvacet" a uvařili jse mi všechny spoje, jen ty žárovky díky té pojistce nsehořely. Sakra, musím si to příště pojistit a dát autopojistku i na začátek. Hezky to zajiskřilo. Jak jednou řekla Marge ze Simpsnových: "Nádhera! Hoří záclony!" :D :D

Jaj, tak to potom dobre :) Nic no ak sa ti to podari naprogramovat samemu bez opisovania tak klobuk dolu, neni to uplne trivialne (raz davno som robil nejake furierove analyzy a teda studoval som to aspon tyzden kym som naprogramoval nieco (polovicu som kdesi opisal, nie som predsa pan fourier :)

Ja bych se na to vykaslal a vratil se k memu spalenemu projektu, jenze kdyz to neudelam ted a permanentne na to nezapomenu, porad se k tomu vracim, a nikdy neprestanu, dokud dokonale neudelam to co chci nebo me to neprestane bavit primo pri vytvoru. Uz se taky znam. Projekt Mark II (alias raketa II generace, znacka Kutil s.r.o.)uz mam rozpracovany 3 tydny a furt nic.

Já jsem v programování teprve v úplnejch začátcích, ale vím že to jde. Ve škole si takhle 2 studenti (teď už dospělí) udělali robota, na kterýho můžeš mluvit česky a on ti odpoví. Např počítání přikladů, potdraví a takový ty chujovinky.

{
- Psani logiky v c#[c++]by zabralo hodne casu, tusim ze se pouzivaji makery kde se zada jen AI logika nez to cele psat rucne.
- S ELSE si nemyslim ze by to byl nejlepsi napad(to uz mozna radci Switch),,,,pujde spis o pohyb a mysto+ logika, if free ( x,y,move xxx); nebo neco obdobneho,,vytvorit "stats" deklarovat "pro" a "proti"
Nejsem na PC, ale zkus toto http://translate.googleusercontent.com/translate_c ?depth=1&hl=fr&prev=/search%3Fq%3Dc%252B%252B%2Bai %2Blibrary%26biw%3D1024%26bih%3D641&rurl=translate .google.fr&sl=en&u=http://www.lifeai.com/download. html&usg=ALkJrhjbAzV5ESMYR2tYREsdYFFZtXNbcg i kdyz je to v C++ logika programovani je ta sama, jako v C, nebo C#, ci Kobal
}

Tak teda - v noci jsem se přehraboval v source codech (omg stovky tisic radku :D) CSka a je to přesně jak jsem si myslel. Jen taková malá ukazka z principů, ale tak, aby to pochopil každý: (Jinak ukázka se týká oficiální úpravy AI pro mapu De_Dust)

if (sektor 8F čistý)
change Pohyb to nahodny
if Nepritel true
set Strelba true

Atd... Jo je to přesně jak jsem čekal. Jednoducha If-ová a else-ová logika. Člověk se potom nemůže divit, že v některých hrách je AI tak tupá. Každopádně díky, kdybych náhodou udělal někjaký special pokrok v logice, napíšu. Zatím označuju za vyřešené.

Zpět do poradny Odpovědět na původní otázku Nahoru