Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - Khaine

Strony: 1 2 [3] 4 5 6 7 ... 14
31
Sztuczna inteligencja / Odp: AI które się uczy.
« dnia: Grudzień 16, 2009, 19:13:45 »
Cytuj
Jak ktoś chce, to nie potrzebuje takiego punktu, znajdzie "papiery".
tylko, ze ten przyklad jest z 'papierow'. A po drugie, po co od nowa odkrywac kolo? Jak kto lubi, jeden woli wzorowac sie na czyims kodzie a potem zrozumiec o co chodzi, drugi woli przeczytac 'papiery' i potem implementowac.
Ja na studiach mialem ta druga wersje. Model matematyczny i zadanie implementacji na przyszly tydzien.

32
Design / Odp: Cechy grywalnej gry
« dnia: Grudzień 16, 2009, 19:09:44 »
Cytuj
Chyba mylisz pojęcia "playability" z "replayability". Gra nie musi być rozbudowana, żeby była grywalna (tyle że wtedy jest grywalna krócej i/lub mniej razy). Smiley
Zasadniczo masz racje. Ale, gdy gra jest uboga, gra sie mniej fajnie, a w ogolnym rozrachunku szkoda czasu grac dalej. Dla przykladu: Assasin's Creed. Niby na pierwsy rzut oka fajna, ale tylko do pewnego momentu, bo dalej jest dokladnie to samo. Wiele jest takich gier. Oczywiscie AC jest gra z naciskiem na akcje i to jest swietnie zrobione. W samej walce jest wiele fajnych trikow. Nie mniej jednak wszyscy wiemy, ze gra jest tym lepsza im dluzej trwa jej cykl zycia. Liczy sie 'replaybility'.

Cytuj
Dokładnie, można wrzucić do gry tysiąc różnych pomysłów/rodzajów przedmiotów/klas postaci, ale 99% z nich nie będzie grywalnych. Śmieszy mnie trochę, gdy developerzy chwalą się liczbą broni w swoim FPSie, moim zdaniem jest to próba zamaskowania braku pomysłowości na dobrą giwerę, poprzez danie graczowi wyboru spośród ogromnej liczby 'bezbarwnych' narzędzi.
Developerzy zawsze chwala sie tym czego to oni nie zrobili w grze. Kady developer mowi, ze jego gra jest wszystkomajaca - marketing. Skomentuje to krotko: jesli ktos zrobi 99% klas/pomyslow/itd niegrywalnych to jego bol. Zadaniem designerow jest wrzucic tone pomyslow i wszystkie maja byc grywalne. Nie kazdy to umie, nie kazdy to zrobi.

33
Sztuczna inteligencja / Odp: AI które się uczy.
« dnia: Grudzień 16, 2009, 18:57:06 »
Cytuj
W jakiejś polskiej książce o siechach neuronowych (bodajże przegląd konkretnych przypadków zastosowania i efektów - w różnych dziedzinach) był całkiem niezły przykład zastosowania wielowarstwowej sieci neuronowej z propagacją wsteczną.

Autor stworzył prościutką "gierkę" polegającą na trafianiu czołgiem w cel (pozycja czołgu i celu losowana, sterowaniem było - o ile pamiętam - kąt lufy i siła strzału - takie uproszczone scorched earth). Dane uczące zbierał też metodą losową Tongue Losowanie kąta lufy i siły strzału i symulacja (przy wyłączonym renderowaniu grafiki), czy trafi w cel. Jak trafi - siup do wora z danymi uczącymi (razem z pozycjami czołgu i celu). Jak nie - do kosza, nowe losowanie, i tak w kółko. Podobno noc na średnim komputerze wystarczyła żeby zebrać dane uczące do nauczenia sieci z 90% celnością. Wada - jak zmienisz lekko zachowanie środowiska (np. wzór na trajektorię pocisku, dodasz wiatr, etc.), to sieć może stać się inwalidą Wink
Tez napisalem taka 'gre', z tym, ze moja siec uczyla sie znacznie szybciej. Po kilku rundach siec strzelala bezblednie. Wszystko zalezy od wspolczynnika uczenia. A jesli chodzi o zmienne zachowanie srodowiska to naturalnym jest, ze siec zglupieje, gdyz beda nowe-inne dane wejsciowe. Wtedy bedzie musiala sie uczyc od nowa. Tylko, ze moze byc cieko napisac siec, ktora ma rozne dane wejsciowe. Jesli juz to rone sieci.

Cytuj
Podobno noc na średnim komputerze wystarczyła żeby zebrać dane uczące do nauczenia sieci z 90% celnością. Wada - jak zmienisz lekko zachowanie środowiska (np. wzór na trajektorię pocisku, dodasz wiatr, etc.), to sieć może stać się inwalidą Wink
Racja, ale ten przykład jest nietrafione... szybciej jest napisać algorytm. Smiley
A od kiedy siec neuronowa to nie jest algorytm?
Poza tym jest to dobry przyklad, a w zasadzie punkt zaczepienia, dla kogos kto chce sie zapoznac z sieciami neuronowymi w grach.

34
C++ / Odp: Wsparcie procesorów dla MMX, SSE itp.
« dnia: Grudzień 16, 2009, 18:31:15 »
Postanowilem odkopac ten temat, gdyz postanowilem ostatnio zaimplementowac troche matematyki z uzyciem SSE i okazalo sie, ze mam kilka pytan:

1. W czym jest lepsze uzycie funkcji _mm_store_ss od r.m128_f32[0] (gdzie r jest typu __m128)?

2. Mamy mniej wiecej taki (pseudo)kod:
#define ALIGN(_bytes) __declspec(align(_bytes))
ALIGN(16) class Vector3
{
    public:

        union
{
    ALIGN(16) struct
    {
        f32 x;
        f32 y;
        f32 z;
        f32 w;
    };

   ALIGN(16) __m128 xyzw;
};

typedef ALIGN(16) Vector3 Vec3;

__forceinline Vec3 MulRef(const Vec3& _vecLeft, const Vec3& _vecRight)
{
return Vec3(_vecLeft.x * _vecRight.x, _vecLeft.y * _vecRight.y, _vecLeft.z * _vecRight.z);
}

__forceinline Vec3 MulSSE2(const Vec3& _vecLeft, const Vec3& _vecRight)
{
        //Vec3(const __m128& m) : xyzw(m) {}
return _mm_mul_ps(_vecLeft.xyzw, _vecRight.xyzw);
}

const unsigned int ulCount = 10000;

Vec3 v1[ulCount];
Vec3 v2[ulCount];
Vec3 vR[3][ulCount];

{
CSimpleProfiler Prof("ref");
for(u32 i = 0; i < ulCount; ++i)
{
vR[[0][i] = MulRef(v1[i], v2[i]);
}

}

{
CSimpleProfiler Prof("sse2");
for(u32 i = 0; i < ulCount; ++i)
{
vR[1][i] = MulSSE2(v1[i], v2[i]);
}
}

{
CSimpleProfiler Prof("sse2a");
for(u32 i = 0; i < ulCount; ++i)
{
vR[2][i] = _mm_mul_ps(v1[i].xyzw, v2[i].xyzw);
}
}


Oto czasy wykonania (milisekundy) w wersji debug (intel i5 2.66, podobne czasy na intel i7 920 2.66):
ref :    0.0028
sse2 :  0.0029
sse2a : 0.0020

dla funkcji dot:
ref: :    0.0026
sse2: :  0.0031
sse2a: : 0.0024

dla funkcji length:
ref: :    0.0035
sse2: :  0.0033
sse2a: : 0.0025

dla funkcji sqrt (pierwiastek z kazdej skladowej wektora), wersja ref liczy 3 pierwiastki
ref: :    0.0051
sse2: :  0.0028
sse2a: : 0.0020

dot w sse2 sciagnalem od Esidara.

W wersji release jest jeszcze gorzej jesli chodzi o wydajnosc sse. Oto srednie czasy dla mnozenia wektorow (milisekundy):
ref :    0.0000838
sse2 :  0.000161
sse2a : 0.0000907

oraz dot:
ref: :   0.0000838
sse2: : 0.000122
sse2a : 0.0000930
sse4 :  0.0000922
sse4a : 0.0000907

Gdybym napisal taki kod jak Reg, to wyszlo by duzo na kozysc sse, natomiast ja uzywam wskaznikow na funkcje, w zaleznosci od supportowanego sse, wiec opakowanie musi byc. Czy moglby mi ktos powiedziec czy tak powinno byc, czy moze skopalem kod?

Okazuje sie, ze wersja sse2 jest nieco wolniejsza od wersji 'normalnej', rzadko bywa szybsza. Natomiast, co mnie troche dziwi, zdecydowanie najszybsza jest wersja sse2a, czyli bezposrednie wywolanie funkcji sse. Czy opakowanie uniemozliwialo kompilatorowi optymalizacje? A moze samo wywolanie funkcji jest na tyle kosztowne? W niektorych przypadkach zdarza sie, ze wersja 'sse2' jest naprawde duzo wolniejsza niz 'sse2a', wiec mysle, ze to nie moze byc spowodowane narzutem dodatkowej funkcji. Czy moglby mi ktos jasno wylozyc o co chodzi?

W praktyce tylko pierwiastkowanie (wektora) daje rade byc szybsze. Pierwiastkowanie dla pojedynczej liczby (opakowane) rzadko bywa szybsze. Czasami dot w sse4 byl duzo szybszy - ~0.00004ms w release, ale w wiekszosci przypadkow wypadal gorzej niz wersja 'ref'.

35
Design / Odp: Cechy grywalnej gry
« dnia: Grudzień 16, 2009, 15:29:56 »
Cytuj
Fajne rozwiązanie odnośnie braku saveów jest w Call of Duty 4: Modern Warfare. Oprócz zwykłego grania z zapisywaniem w checkpointach jest tam tryb "Arcade Mode", w którym zapinamy w grę od początku do końca mając do dyspozycji na starcie kilka żyć, które tracimy przy śmierci i uzyskujemy po zabiciu iluś tam wrogów. Dodatkowo musimy się wyrobić w jednym levelu w kilka minut.
Fajne rozwiazanie jest w Diablo2 w trybie hardcore ;)

Moim zdaniem na grywalnosc wplywa ilosc 'stuffu' jaki ma gra. W odniesieniu do cRPG rozumiem przez to ilosc ekwipunku, umiejetnosci, profesji, ras, lokacji, npc, itd. Czym wiecej tym lepiej. Przez to gra jest roznorodna, chce sie zagrac kilka razy, ot, zeby zobaczyc jak to sie gra inna profesja lub rasa. Dobrym przykladem tego jest WoW, Baldur's Gate czy Dragon Age: Origins. Ostatnio w cRPG jest jakies jedno wieksze miasto, do tego pare wiosek i to wszystko. Gry sa ogolnie ubogie. Gothic 3 bylby o wiele ciekawszy gdyby mial w ofercie wiecej ekwipunku. Udalo mi sie gdzies w 30% gry zdobyc 2 nalepsze mieczyki i z nimi do konca gry biegalem. Nuda.

Cytuj
Cytuj
[5] Wolność w wyborze i planowaniu ścieżki przejścia całej gry (nieliniowość).
Alternatywą jest spójna i wciągająca fabuła, wtedy liniowość absolutnie nie przeszkadza. Co najwyżej przy powtórnej grze.
Dokladnie. Przykladem moga tu byc wszystkie gry na silniku Infinity.

36
Cytuj
Myślałem żeby zastosować pospolite rozmycie Gaussiana
chyba Gaussa :P

a light mapy sie nie nadadza?

37
Sztuczna inteligencja / Odp: AI które się uczy.
« dnia: Grudzień 10, 2009, 00:05:21 »
Cytuj
A o SONNach nie słyszałem, obadam Smiley (self-organizing czy self-optimizing? czy to to samo?)
SONN - self optimizing neural networks ;) Te sieci buduja automatycznie swoja topologie - taka ciekawostka i zarazem potezny ficzer.

38
Sztuczna inteligencja / Odp: AI które się uczy.
« dnia: Grudzień 09, 2009, 22:12:03 »
Cytuj
Witam

Postanowiłem zrobić program o którym z dawien dawna marzyłem. Program który zaczyna jako tabula rasa, z czasem zaś przerasta swego nauczyciela.  Wink

Pierwsze pytanie jest o literaturę, o samym AI(działanie sieci, uczenie, zbiory rozmyte, algorytmy) jestem myślę dobrze poinformowany, niestety o konkretnych zastosowaniach nie wiem za wiele. Czy mógł by ktoś polecić konkretną pozycję, która jemu samemu pomogła. Oczywiście mam parę na oku, czyli to co akurat jest w bibliotece, jednak czytanie na chybił trafił jest może nie bezproduktywne ale na pewno mało efektywne.

Teraz o problemie. Wymyśliłem prostą grę, pozbawioną elementów poruszania się, organizacji przestrzennej jednostek etc tak aby uprościć zadanie AI.
Rozpoczynamy z określoną pulą możliwych ruchów, powiedzmy A- buduj food B-hoduj X C-sprzedaj , celem niech będzie uzbieranie jakieś kwoty. Oczywiście więcej fooda kosztują Xy wydajniejsze.

Pytanie jak nauczyć i jak zaprojektować system który znajdzie optymalną drogę między kosztem a przyszłym przychodem. No i oczywiście który będzie analizować poczynania przeciwnika.

Myślę na początek nad prostym systemem wagowym i tablicą ruchów. IF przeciwnik ma się cienko THEN warto poczekać skoro dysponuję jednostką wydajniejszą ale brak mi jeszcze fooda, itd.

Proszę o jakieś wskazówki, proponowane techniki, algorytmy, może przykłady. Sam oczywiście także przeczesuję książki i google, ale myślę nie zawadzi zapytać.
Proponowal bym, jak juz wczesniej koledzy nadmienili, sieci neuronowe. Pewnie wystarczy n-warstwowa siec z propagacja wsteczna. Jesli bys chcial cos lepszego to zapoznaj sie z SONN'ami. Charakteryzuja sie m.in. tym, ze potrafia w 100% rozpoznac wzorzec i maja duzo wiekszy % 'nieomylnosci', no i, co ciekawe mozna taka siec zwinac do jednej warstwy -_- (glowy nie dam czy kazda, nie pamietam :P). Oczywiscie sieci neuronowe, a szczegolnie SONN'y do najszybszych rozwiazan AI nie naleza.

39
Szkółka / Odp: Zapis\Odczyt binarny
« dnia: Listopad 17, 2009, 18:54:19 »
Cytuj
Wiem! Dev-C++?
Czyli nie wiesz :P VisualStudio 9. Mi sie nie chce latac myszka po kazdej zmiennej i dopatrywac sie czym to ona nie jest. Wg. mnie znacznie szybciej tak sie czyta kod.
Po drugie czasem kod przegladam w notatniku, bo nie chce mi sie otwierac calego projektu, zeby zobaczyc pare linijek. Nie rozumiem, co tu jest takiego trudnego do zrozumienia ::)

40
Szkółka / Odp: Zapis\Odczyt binarny
« dnia: Listopad 17, 2009, 15:41:53 »
Cytuj
I w czym ci to pomaga?
W czytaniu kodu

41
Szkółka / Odp: Zapis\Odczyt binarny
« dnia: Listopad 16, 2009, 17:46:16 »
Cytuj
To nie jest do mojego formatu pliku tylko chce tym odczytywać dowolny plik binarny potem go wysłać przez internet i zapisać. Z tą refenecją i sprawdzaniem błędów masz racje ale to nie jest ostateczny kod.
To wg. mnie najlepiej bylo by stworzyc tablice bajtow o rozmiarze pliku i jednym fread zapisac go do tej tablicy.

42
Językoznawstwo / Odp: Nowy jezyk od Google - Go
« dnia: Listopad 11, 2009, 14:47:10 »
mam silne przeczucie, ze to jest jezyk programowania na ich rozproszona platforme :P

43
Silniki / Odp: UE3 darmowy
« dnia: Listopad 06, 2009, 22:52:14 »
Cytuj
Nie rozumiesz. Mając gotowy silnik nie piszesz rendera, edytora i innych pierdół. Tworzysz własną mechanikę (którą i tak stworzyłbyś skryptami na własnym silniku) i dodajesz assety. Gra oparta na UDK czy Unity nigdy nie będzie w 100% oparta o skrypty, bo silnik i edytora skryptami zbudowane nie są.
W praktyce niewiele sie to rozni od 'wyklikiwania' gry. Tak naprawde, to co dali w UDK to mozliwosc pisania modow (skryptow) na wirtualna maszyne. Zastanawiam sie, ile (komercyjnych) gier wyjdzie na tym i jakie to beda pozycje. Widzialem przykladowa strzelanke z UDK. Nie powiem, fajna. Nawet multiplayer zrobili. Chcialbym zobaczyc jakiegos cRPG zrobionego w tym edytorze.

Inna sprawa jest to, ze nie zawsze cala mechanike bysmy chcieli pisac w skryptach, tym bardziej ze te jezyki nie naleza do demonow predkosci (z UnrealScript na czele).

Moim zdaniem jest to fajne narzedzie dla moderow, ale gra AAA na tym nie wyjdzie :P

44
Silniki / Odp: UE3 darmowy
« dnia: Listopad 06, 2009, 18:33:42 »
Ja sobie nie wyobrazam pisania gier w 100% w jezyku skryptowym, wiec nie przemawia do mnie ani UDK ani Unity. Wg. mnie nie ma sie czym podniecac. Co innego gdyby dali biblioteki i pliki naglowkowe :P

45
Szkółka / Odp: krotki algorytm proszę o analize
« dnia: Sierpień 17, 2009, 12:46:38 »
Cytuj
Wbrew temu co napisał Khaine przy kompilacji z -O3 nie powinno być spadku wydajności
W sumie racja. Dobry kompilator w wersji release powinien to (sqrt(n)) zoptymalizowac do stalej.

Strony: 1 2 [3] 4 5 6 7 ... 14