Autor Wątek: Jakie narzędzia wspomagające prototypowanie i testowanie mechaniki RTS?  (Przeczytany 1341 razy)

Offline siso

  • Użytkownik

# Maj 04, 2010, 00:18:58
Załóżmy, że chciałbym sobie stworzyć i przetestować prototyp mechaniki gry RTS. Nie chciałbym być zmuszonym do kodowania jakiegoś własnego silnika na samym początku, bo nie :). Nie chciałbym też musieć na siłę customizować jakiegoś. Dostępne sa różne silniki, ale mój pomysł niekoniecznie będzie się chciał naginać do rządzących nimi reguł. Taki, nazwijmy to, przypadek ogólny.

Przyjmijmy, że w idealnym (szczególnym) przypadku chciałbym łatwo i szybko zamodelować mechanikę gry w jakimś neutralnym narzędziu (może być toolset, byle spójny i wygodny w obsłudze), a następnie uruchomić symulację i obserwować co się dzieje. Modelowanie takie rozumiem jako ustawienie wszystkich niezbędnych zależności i późniejszy ich tuning. Szukane narzędzie powinno umożliwić mi w miarę nietrudno oskryptować prototyp. Chciałbym też mieć możliwość znajdowania lokalnych i globalnych ekstremów poszczególnych funkcji tegoż mojego mechanizmu, jak również znajdowanie samych ich kształtów czy przebiegów oraz zabawę parametrami rozgrywki w balansowanie całości. Innymi słowy - chcę mieć jak na dłoni pokazany wpływ zmiany danego parametru na wszystkie pozostałe, w przestrzeni o dowolnej liczbie wymiarów. Właśnie ze względu na znaczne rozmiary przestrzeni są to zazwyczaj funkcje wielu zmiennych, dlatego narzędzie powinno posiadać przyjazny człowiekowi mechanizm ich wizualizacji.

Hmmm, powyższe jakoś niebezpiecznie zalatuje mi Matlabem, ale nie jestem coś za bardzo przekonany co do wygody takiego rozwiązania...

Tak uzyskany prototyp, wstępnie określony i przetestowany pod względem spójności oraz wstępnie zbalansowany, zostanie następnie przełożony na implementację. Chciałbym móc utrzymać swój abstrakcyjny model w zgodności z implementacją jak najmniejszym kosztem. Zmiany wprowadzone w implementacji powinny dać się łatwo "reversować" do modelu, by można było badać ich wpływ na całość mechaniki bez konieczności debugowania implementacji.

Mówiąc krótko - projektując i testując mechanikę chciałbym operować tylko abstrakcyjnymi pojęciami z dziedziny zastosowania.

Nie mam bladego pojęcia czy takie coś istnieje. Google nie dały mi żadnej konkretnej odpowiedzi. Dlatego zwracam się z tym zapytaniem do tych, którzy być może już się z tego typu narzędziami zetknęli i dokonali wyboru najodpowiedniejszego zestawu. Chyba, ze takowy nie istnieje. ;)

A co, od czego jest nowy dział? ;)

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Liosan

  • Redaktor

# Maj 04, 2010, 00:52:06
Nie mam pojęcia czy istnieje takie coś, ale pojawia się pytanie... co z AI? RTSy z reguły wymagają podejmowania decyzji, a ich trafność znacząco wpływa na trafność symulacji. W przypadku gier turowych jestem w stanie zaimplementować "universal AI" (algorytm niezależny od faktycznych zasad rozgrywki, oparty o pełną symulację mechaniki z użyciem Monte Carlo), ale w grach turowych takie AI miałoby jeszcze koszt obliczeniowy w granicach rozsądku... w RTSie już nie bardzo.

Liosan

Offline MadBonsai

  • Użytkownik
    • Ifrit

# Maj 04, 2010, 02:13:12
Idealnie byłoby mniej więcej tak, jak poniżej?

Cele:
- dostępny wygodny silnik skryptowy
- debugger sprawnie wyrzucający całość śmiecia i najprzyjemniej, gdybyś mógł ustalić, jakiego rodzaju śmieć wypluwa i jak to formatuje
- może dostępne podstawowe klasy abstrakcyjne, wzorce
- sprawnie działający pathfinding i możliwość przystosowania go

Nie-cele:
- wykodzenie własnego modelu całości gry
- zrobienie własnej szaty graficznej na poziomie dokładniejszym niż ogólny prototyp

Takie narzędzie będące głównie narzędziem do prototypowania chyba nie istnieję. Próbowałeś narzędzi modderskich czy bardziej zaawansowanych (a nieco podobnych w idei) jak UDK?

Offline siso

  • Użytkownik

# Maj 04, 2010, 02:44:06
@Liosan
Dobre pytanie.

W moim idealnym świecie dobrze byłoby definiować aspekty AI na zasadzie zależności wynikających z dynamicznych map wpływu. Dynamicznych, bo zmieniających się real-time w zależności od wybranych parametrów. Mam przeczucie (;)), że do celów "reagowania" na zaistniałe okoliczności takie mapy, update'owane odpowiednio często, mogłyby dać radę. Jest to trochę analogia do zachowania ciała poddanego działaniu sił, gdzie o ruchu decyduje ich wypadkowa. Tyle, że wypadkowa map wpływu nie będzie taka oczywista, bo poszczególne mapy mogą opisywać zupełnie różne aspekty świata gry. Dlatego najprawdopodobniej trzeba by wprowadzić ich priorytety, bo czasami jeśli więcej niż jeden typ sytuacji w jednym momencie może wpływać na docelowe zachowanie gracza, trzeba oszacować, który wpływ w danej chwili jest najważniejszy. Oczywiście, z uwzględnieniem bieżącej strategii. Czyli zaprząc do tego jakieś wnioskowanie - może regułowe? Problem chyba nadal jest za trudny by określić sensowne reguły.
Odnośnie wyznaczania strategii - tutaj widziałbym podejście podobne, ale w znacznie ograniczonej przestrzeni parametrów. Redukcja ilości parametrów do niezbędnego minimum zapewne wprowadzi między nimi jakieś nowe zależności...

Uczepiłem się tych map, bo sama ich idea zalatuje trochę logiką rozmytą. Chciałbym, żeby mechanizm wnioskowania dał się opisać zamkniętym zbiorem zasad i nie wymagał uczenia. Jeśli błądzę, pomóżcie znaleźć drogę :)

@Bonsai
Silnik skryptowy jak najbardziej. Niekoniecznie obiektowy, wydaje mi się, ale pewnie nie zaszkodzi ;) Narzędzie, o które pytam, powinno dać się w miarę bezboleśnie skryptować, na potrzeby wspomnianych wyżej map. Jeśli to będzie spełnione, wtedy jakieś proste decyzje podejmowane na prostych predykatach też powinny być możliwe :)
Pathfinding mile widziany, do tego jakiś prosty edytor terenu uwzględniający parametry mechaniki na potrzeby wpływów.
Potrzebuję modelu całości gry, więc zaliczyłbym to do celów.

Nie przyglądałem się jeszcze narzędziom modderskim, możesz polecić coś konkretnego? UDK też jeszcze nie badałem, może któryś z jego użytkowniĸów podpowie czy będzie pasować ;)


Offline MadBonsai

  • Użytkownik
    • Ifrit

# Maj 04, 2010, 03:54:18
No, UDK to w sumie taki mod kit premium ;)
UnrealScript jest jak najbardziej obiektowym, z czymś co Epic określa jako "dodatki typowo growe". Nie znam tego, wiem tylko, że jest wygodne do eksperymentowania.

Co do tych map wpływu. Nie wiem, czy dobrze łapię pomysł - zwłaszcza, że już prawie 3.
Czy w praktyce mogłoby wyglądać tak, że poruszanie się jednostek powoduje zmianę parametrów danych puntów na mapie, a jednostki przeciwnika zwyczajnie odczytują parametry pobliskiego obszaru bez korzystania z dodatkowych reguł oceny?
Ale tu już chyba robi się zupełnie inny temat, co? ;)

Offline siso

  • Użytkownik

# Maj 04, 2010, 04:32:35
No, UDK to w sumie taki mod kit premium ;)
UnrealScript jest jak najbardziej obiektowym, z czymś co Epic określa jako "dodatki typowo growe". Nie znam tego, wiem tylko, że jest wygodne do eksperymentowania.
Ok, może warto obadać UDK, ale co z pozostałymi reqs'ami? :)

Co do tych map wpływu. Nie wiem, czy dobrze łapię pomysł - zwłaszcza, że już prawie 3.
Czy w praktyce mogłoby wyglądać tak, że poruszanie się jednostek powoduje zmianę parametrów danych puntów na mapie, a jednostki przeciwnika zwyczajnie odczytują parametry pobliskiego obszaru bez korzystania z dodatkowych reguł oceny?
Ale tu już chyba robi się zupełnie inny temat, co? ;)
Coś w tym stylu, z dokładnością do stałej ;)
Zmianę parametrów mogą wywoływać dowolne zdefiniowane zdarzenia, niekoniecznie samo poruszanie się jednostek. Jednostki przeciwnika podejmują decyzje taktyczne na podstawie parametrów uwzględniając bieżący priorytet wpływów. Priorytet wynika z bieżącej strategii.
To na razie tylko luźne przemyślenia.
Wątek faktycznie zbacza z tematu, standardowo ;)