EDYCJA (2): Ponieważ są dwie odpowiedzi i nie zaakceptowałem żadnej z nich, pomyślałem, że zmotywuję to, co rozważę tutaj: albo coś silnie sugerującego, że takie podejście byłoby niemożliwe / wcale nie przydatne lub , alternatywnie, odniesienie do badań (dziedziny) lub przykładów co najmniej nieco ogólnego takiego systemu poza tekstowymi grami przygodowymi / interaktywną fikcją.
Chociaż nie będę udawał, że przeprowadziłem głębsze dochodzenie, zauważyłem, że wszystkie silniki / frameworki, na które patrzyłem, wydawały się być niczym gloryfikowany silnik graficzny w tym sensie, że mówią o kształtach / bytach lub trójwymiarowa przestrzeń euklidesowa z, być może, „pewną formą modelu współbieżności” „założoną”, pozwalającą na określenie jakiejś formy logiki dołączonej do tych „bytów”.
„Zasady” i narracja gry są następnie pisane w sposób ad-hoc (w odniesieniu do silnika) na tych prymitywach.
Oczywiście powyższy opis jest raczej uproszczony (weź bardziej wyspecjalizowane silniki, takie jak silnik nieskończoności, który zawiera jakąś formę systemu poszukiwań / narracji) i zdaję sobie sprawę, że ten model może działać całkiem dobrze (wiele osób go używało) .
Zastanawiam się jednak, jakie podjęto próby stworzenia silników / ram, które przyjmują takie pojęcia, jak (wysoki poziom) opis reguł / logiki lub narracji gry (lub przynajmniej nieprzestrzenny aspekt gry) jako główny podstawa?
EDYCJA (4): Nie oznacza to, że gra nie zawierałaby żadnych aspektów przestrzennych / graficznych, tylko że zamiast obiektów przestrzennych, z którymi kojarzysz logikę, masz pojęcie fabuły (lub rozgrywki lub „zasad gry planszowej” ), który następnie opisuje interfejs graficzny do / realizacji.
Szczególnie zainteresowałbym się wszelkimi deklaratywnymi podejściami, które próbują uchwycić pewnego rodzaju (pół-) formalną semantykę jakiejś dość dużej klasy gier, w sposób przydatny do faktycznej implementacji (w przeciwieństwie do, na przykład, ramy wyłącznie dla analiza jakościowa gier / narracji).
Widziałem kilka badań nad modelowaniem / analizą narracji za pomocą modelu opartego na sieci Petriego i kilka interesujących podejść do langiug do pisania interaktywnej fikcji .
EDYCJA (1): Pomyślałem, że dodam zabawkowy przykład do zilustrowania.
Powiedzmy, że byliśmy zainteresowani tworzeniem przygód w stylu wskaż i kliknij (pomyśl o grach SCUMM). Można je przeanalizować jako oparte na pojęciu mniej więcej liniowym i dyskretnym przejścia od sytuacji początkowej do końca.
Koncentrując się na pojęciu dyskretnego postępu i dopuszczając pewną nieliniowość, można wybrać teorię (ograniczonego) DAG jako podstawową teorię. Określenie gry tego typu w jej (w stosunku do tej teorii) najbardziej abstrakcyjnej formie odpowiada zatem dodaniu dodatkowych aksjomatów do tej teorii (albo tak, że teoria określa konkretny wykres, albo po prostu wystarcza do uchwycenia tego, co uważa się za konieczne do uchwycenia tych "wątek").
Przekształcenie tego w rzeczywistą grę staje się teraz problemem projektowania interfejsu HCI / interfejsu polegającego na osadzeniu tej teorii w czymś grywalnym (tj. Zbudowaniu modelu teorii / znalezieniu homo (iso?) Morfizmu grafów ze zbioru stanów interfejsu użytkownika z przejściami do DAG „określającego grę”).
W powyższym hipotetycznym scenariuszu widzę co najmniej trzy rzeczy, które powinny być możliwe do uchwycenia w bibliotekach. Po pierwsze, potrzebne są narzędzia do przekształcania / wnioskowania na temat DAG lub ogólnie wykresów. Po drugie, biblioteka interfejsu użytkownika jest wystarczająco sprytna, aby pomóc w sprawdzeniu, czy nasza reprezentacja naszego wykresu jako grywalnej gry faktycznie modeluje wykres (a więc na przykład, przynajmniej częściowo / nieformalnie, udowodnienie, że gra nie ma stanów zablokowanych z powodu warunku ograniczenia) . Wreszcie można podać zbiór bibliotek wyższego poziomu do określania wykresu; takich jak biblioteka do wyrażania znaków i ich interakcji oraz generowania (części) wykresów w kategoriach takich.
Po co utrzymywać „środkową” teorię DAG, a nie tylko implementację niskiego poziomu z kilkoma bibliotekami pomocy na wierzchu? Odpowiedź to wszystkie typowe powody formalnej semantyki. Biorąc pod uwagę, że zdecydowaliśmy się na formalne podstawy, możemy zweryfikować pewne właściwości gry, umożliwiając uzasadnienie takich rzeczy, jak optymalizacje w bibliotece interfejsu niskiego poziomu (o ile model DAG możemy robić, co chcemy), bez konieczności martw się o nieporównywalność z opisem wysokiego poziomu (znaków / dialogu itp.), ponieważ opisy te same muszą opisywać takie struktury.
W żaden sposób nie sugeruję, że powyższe podejście działałoby konkretnie i nie chodzi o to, że DAG musi być tym, co faktycznie jest przechowywane w pamięci (raczej tworzy coś podobnego do formalizmu obliczeniowego, takiego jak rachunek lambda), ale mam nadzieję, że ilustruje to podejście, które mnie interesuje.
Krótko mówiąc, wydaje mi się, że alternatywnym tytułem mogłoby być: Jak Dijkstra pisałby gry komputerowe?
źródło
Odpowiedzi:
Krótka uwaga na temat narracji i zasad gry: w interaktywnej fikcji można argumentować, że gra polega na przejściu przez wykres rozgałęzionej narracji, ale ostatecznie narracja żyje poza mechaniką gry - można zastąpić wszystkie słowa czymś nieczytelnym i jednak kroki, aby ukończyć grę (lub stracić ją podczas gry) byłyby dokładnie takie same. To z kolei oznacza, że narracja nie ma znaczenia dla rozgrywki, z wyjątkiem sytuacji, w której deweloper zdecyduje się zmienić jedną z nich w celu dopasowania do drugiej. W grach narracja jest w zasadzie fasadą nad mechaniką, która może sprawić, że mechanika będzie bardziej atrakcyjna dla gracza, który lubi tę narrację, ale to wszystko. Niektóre gry (choć niektóre nie nazywają ich grami), w których narracja jest podstawową formą rozrywki, a mechanika gry jest w większości pobieżna,Droga Esther , ale twórcy nie potrzebują formalnej metody opowiadania historii bardziej niż pisarze fikcji, więc nie będę dalej rozważał narracji. Ogólnie rzecz biorąc, każda gra, która wygląda jak „grywalna narracja”, jest drzewem lub wykresem wydarzeń w grze, które mogą istnieć i mogą być dyskutowane w sposób znaczący bez narracji.
Tak, większość „silników gier” to oczywiście „silniki gier wideo”, a ich głównym obowiązkiem z czasem było ułatwienie strony inżynierii oprogramowania gry wideo, a nie strony gry. Zapewne ma to sens, ponieważ to inżynieria oprogramowania jest najnowszym i najdroższym, a zatem najbardziej ryzykownym aspektem. Dla porównania, projektowanie gier w sensie abstrakcyjnym było wykonywane ręcznie przez tysiące lat bez pomocy narzędzi, co może w pewnym stopniu wyjaśniać, dlaczego tak się dzieje.
O ile wiem, było kilka poważnych prób, z których żadna nie zakończyła się sukcesem.
Opowiadacz jest jeden. „W przeciwieństwie do tradycyjnej fikcji interaktywnej, Storyworld bardziej koncentruje się na modelowaniu działań i reakcji aktorów oraz ich emocji i skłonności niż na geografii świata gry lub zwykłych obiektach, które ją zaludniają”. Wynika z poprzedniego wysiłku zwanego Erasmatron, który tak naprawdę nie odniósł sukcesu, a Storytron nie wygląda tak, jakby odniósł sukces. Dobry artykuł na ten temat jest następujący: Chasing the Dragon
Na mniej ambitnym poziomie jest wielu ludzi, którzy wymyślili proste sposoby reprezentowania prostych gier. Jeden z wielu artykułów to: Multigame - język wysokiego poziomu do opisywania gier planszowych (link jest za logowaniem, ale możesz go wyszukać), ale na końcu masz tylko czytelny zestaw możliwych stany, przejścia stanów i warunki zwycięstwa lub funkcje utrzymywania wyników - w porządku w przypadku dyskretnych gier planszowych, takich jak szachy lub gry karciane, takie jak poker, ale nie uogólniają się na gry z dużą ilością ciągłego stanu lub te z semantyką, które są bardziej takie jak symulacje (np. strzelanki) lub sportowe (np. gry wyścigowe). Takie gry nie mogą być odpowiednio reprezentowane przez proste drzewo stanów gry.
Jednym ze sposobów podejścia do zrozumienia tych bardziej złożonych systemów jest próba podzielenia każdej istniejącej mechaniki na jedną z kilku podstawowych form, a następnie wypracowanie sposobu połączenia podstawowych form w celu stworzenia bardziej złożonej rozgrywki, przy założeniu, że cała rozgrywka może składać się z tych podstawowych jednostek lub ich kombinacji. Dan Cook ma artykuł zatytułowany „ Jakie są mechanizmy gry ?” oraz kontynuacja „ Chemii projektowania gier„które próbują udokumentować to kompozycyjne podejście do projektowania gier. Teoretycznie może być możliwe zbudowanie systemu deklaratywnego oprócz tego, ale w praktyce mechanika stanowi jedynie niewielką część gry, a więc prawdopodobnie wynik byłby ograniczony w ramach prezentacji, które nie byłyby wystarczająco elastyczne, aby przyciągnąć uwagę większości graczy.
Inne próby sformalizowania koncepcji projektowania gier są często nazywane „gramatyką gry” - jeden taki artykuł nazywa się „ Atomami gier wieloosobowych ”, ale odnosi się do różnych wcześniejszych prac.
Problem polega na tym, że komputer nie wnosi wiele do procesu. Projektanci takich gier często często sporządzają dokładnie ten wykres w postaci cyfrowej lub fizycznej, który pokazuje przepływ przez grę. Ciekawe jest, czy teoretycznie można ukończyć grę. Nawet kodowanie różnych zasad przejścia przez przygodę typu „wskaż i kliknij” jest banalne. Trudność polega na tym, aby podążać za interesującą narracją, umieszczając ją w fascynującym świecie, tworząc zasoby graficzne i dźwiękowe do prawidłowego przedstawienia gry i interfejsu oraz różnych zadań inżynierii oprogramowania, które to wszystko trzymają razem. Kierowany wykres znaczących stanów w grze jest zwykle stosunkowo trywialny; to wszystko wokół jest problemem. I dlatego nie ma dużego zainteresowania,
Obecnie osobiście pracuję z zespołem nad produktem o nazwie Storybricksktóry próbuje umożliwić zbudowanie interesującej rozgrywki poprzez określenie różnych zasad, które mogą określać stan początkowy osoby, jej potrzeby i tak dalej. Łatwo jest wziąć te zasady i sprawdzić, czy potrzeby danej osoby mogą zostać zaspokojone, a jeśli tak, to w jaki sposób, a zatem deklaratywnie stworzyć zadania, które należy wykonać w grze. Jednak samo to nie tworzy interesującej rozgrywki, ponieważ po wyodrębnieniu rzeczy do poziomu „X potrzebuje Y - przynieś je dla nich”, gracze zaczynają dostrzegać wzór i przestać się nim cieszyć. (Na przykład: ludzie szybko zmęczyli się automatycznie generowanymi zadaniami w Skyrim, ponieważ widzieli, że misja generowana proceduralnie nie ma żadnego znaczenia w porównaniu z zadaniami stworzonymi przez projektantów. ) Więc naszym zadaniem będzie wykorzystanie metod sztucznej inteligencji, aby uczynić te sytuacje bardziej interesującymi i nad tym wciąż pracujemy. (Storybricks jest wciąż na bardzo wczesnym etapie alfa). Ale nasze badania wskazują, że niewiele osób próbuje czegoś takiego i że jest to bardzo trudny problem.
Innym problemem związanym z deklaratywnym podejściem jest to, że nie jest on zbyt użyteczny. Naukowcom podoba się to, ponieważ jest łatwy do przetworzenia, na przykład w celu udowodnienia, że daną sytuację można rozwiązać lub że zbiór reguł logicznych jest spójny. Ale w prawdziwym świecie ani programiści gier komputerowych, ani użytkownicy końcowi nie są na ogół tak zadowoleni z deklaratywnej reprezentacji, która koncentruje się na wynikach, jak z imperatywną reprezentacją, która mówi im, jak postępować, aby wyniki się pojawiły. Wszystkie 10 najpopularniejszych języków programowania jest bezwzględnie konieczne , a instrukcje w świecie rzeczywistym są również generalnie niezbędne, niezależnie od tego, czy chodzi o to, jak upiec ciasto, czy jak zbudować meble. Ten brak entuzjazmu z dowolnego końca spektrum oznacza, że nie ma komercyjnej zachęty do tworzenia formalnych specyfikacji dla nowoczesnych gier, i prawdopodobnie nie zmieni się to w najbliższej przyszłości.
źródło
Zastanawiałem się przez chwilę, jak odpowiedzieć i nie jestem pewien, jak to ująć.
To dobre pytanie. Niestety odpowiedź sprowadza się do tego, że albo nie ma sensu programować czegokolwiek silnika gry w ten sposób, albo że tak już jest.
Wydaje się, że nacisk kładziony jest na grafikę, ponieważ musi istnieć sposób na określenie fizycznego istnienia obiektów. Jest to rodzaj miejsca, w którym rzeczy stają się egzystencjalne, ponieważ tak naprawdę mówimy o reprezentacji wymiaru, ale na razie zignorujmy to. Chodzi o to, że jest to coś, co naprawdę jest dość zaangażowane. Pozwalanie na reprezentację przestrzeni będzie czymś, co z natury zajmuje dużo programowania silnika gry. A jeśli projektanci chcą tworzyć ładne sceny, będą potrzebowali dużej kontroli nad rozmieszczeniem rzeczy. Więc zobaczysz wiele rzeczy na temat grafiki.
Więc to jest strona niskiego poziomu rzeczy. Ktoś musi głęboko przemyśleć wszystkie te małe problemy techniczne.
Jeśli chodzi o narrację i zasady gry? Jest to poza zakresem tego, co powinien zrobić silnik gry. W tej części wchodzi grupa programistów.
Co więcej, nie poświęcono wiele uwagi temu, jak reprezentować pomysły poprzez programowanie. Tak właśnie wygląda historia informatyki . I dlatego silniki gier często mają interfejsy do języków wysokiego poziomu. Łatwiej jest przez nie przedstawiać myśli.
Mając to na uwadze, czy można stworzyć język specjalnie dla gier z naciskiem na narrację? Powiedziałbym, że prawdopodobnie nie. Ponownie wszystko sprowadza się do reprezentacji. Język musi być w stanie opisywać szczegóły w taki sposób, aby komputer wiedział, co z nim zrobić. Jeśli celem jest stworzenie języka specyficznego dla tworzenia gier, wszelkie decyzje projektowe powinny koncentrować się wokół tego.
I znowu istnieje duży wybór języków. I rozwijało się więcej osób niż tylko tych z branży gier. Na ogół sensowne jest użycie jednego z nich.
Podsumowując, zadałeś interesujące, ale bardzo trudne pytanie. I nie jestem do końca pewien, co to jest lub czy rzeczywiście na to odpowiedziałem.
* edycja: Z perspektywy czasu zdaję sobie sprawę, że rozważałem tylko silniki do gier 3D, tak jakby były jedynymi, które istnieją. W niektórych grach w ogóle nie ma osoby działającej w przestrzeni fizycznej. Chociaż w takich przypadkach nie jestem pewien, czy silnik gry wiele by wniósł.
źródło
Na początku historii hobby (tj. W latach 80-tych) istniały komercyjne zestawy programistyczne do gier tekstowych i sprite. Te oparte na ikonkach były bardzo podobne do obecnych „silników graficznych”.
Drugi typ zawierał takie rzeczy jak parsery języka naturalnego. Ten typ wydaje się żyć w nowoczesnych „edytorach poziomów”. Większość z nich wydaje się zawierać obsługę skryptów Lua lub Python. Chciałbym również zauważyć, że nie widzę dużo aktywności w edytowaniu na poziomie open source, ale to dlatego, że te rzeczy są zwykle bardzo ściśle powiązane ze specyfiką danej gry. Myślę tu o czymś takim jak zestawy konstrukcyjne Starszych Zwojów.
Kinect może przywrócić analizator składni. Jako miłośnik starej przygodowej gry tekstowej jestem również podekscytowany kierunkiem Bethesdy. Z pewnością jest zastrzeżony, ale może jakiś młody geniusz ...
źródło