Autor Wątek: MMOnsters Inc. - pomysł na grę symulacyjną  (Przeczytany 9961 razy)

Offline Cris_eM

  • Użytkownik

# Lipiec 18, 2007, 19:40:49
Przyznam ze od pary lat cos podonego chodzi mi po glowie tyle ze myslalem o czyms bardziej RTSowym jednak ale na zasadzie MasivRTS , gdzie cala akcja dziala by sie na planecie , a stworki podzielone byly by na rodziny(nie gatunki).

zastanawialem sie czy sterowalo by sie zwierzatkami czy moze lepiej robocikami(latwiej zrobic fizyke jezdna niz kroczaca ;) )
zeby zamienic pewne typowe elemety RTS na inne np, zamiast budowac koszary i lekka piechote lub fabryki i ciezki sprzet , w wyniku ewolucji ktora by kontrolowal gracz powstawaly by jednostki by jednnostki bardziej opancerzone , albo z lepsza bronia, ale np zanikaly by u nich inne cechy jak zdolnosc zdobywania pokarmu , albo reperacji. Tak moglo by to ewoluowac do latajacycyh i plywajacych rowniez. kluczem moglo by nie byc wytworzenie okreslonej uniwersalnej rasy ale wiele roznych osobnikow mogacych roznie wspolpracowac ze soba (dlatego rodzina a nie gatunek)

zastanawiam sie wlasnie nad tym jak zrealizowac symulacje kilku tysiecy osobnikow realtime - bo to juz zaczyna byc dosc obciazajace zagadnienie.
Wiem ze to zalatuje SPORE ale ja myslalem o czyms bardziej zgodnym z fizyka, pozatym nie wiem czy w spore mozna wspolgrac ze soba osobniki o roznych charakterystykach ale tej samej rodziny (cos w stylu roznie wyspecjalizowanych jednostek)

Skoro tyle osob ma podobne pomysly moze warto jakos zjednoczyc sily ( choc wspierajac rozwiazaniami ;) ) i zrobic jakos alternetywe Spore ;-) i innych RTS ow ktore badz co badz maja bardzo podobny schemat.


Offline Mr. Spam

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

Offline Kos

  • Użytkownik
    • kos.gd

# Wrzesień 03, 2007, 19:57:24
Niezły pomysł, rzekłbym że dla większości ludzi przystępniejszy i ciekawszy od Core War i podobnych. Reg, trafiłeś tutaj w moją sferę zainteresowań, bo jako taka sztuczna inteligencja to coś w czym nie jestem jeszcze zbyt obeznany, niemniej co mnie bardzo interesuje.
Co do samego pomysłu:

Brakuje mi tu jednego dość ciekawego aspektu - ewolucji! Rozwinę nieco:
1. Wspomnieliście o statystykach... Jeśli miałbym taką grę pisać, to widziałbym to w ten sposób, że gracz (projektant? stwórca?) ustala nie konkretne wartości dla szczepu, który ma na przysłowiowej komecie przybyć, lecz raczej coś na kształt wag - same statystyki byłyby losowane dla każdego stwora. Dalej dochodzi rozmnażanie - tutaj losowość, każda statystyka nowego organizmu gdzieś pomiędzy wartościami rodziców, pomniejszona/powiększona o jakiś tam procent (wedle inwencji autora). I tyle, dalej mamy darwinizm - siłą rzeczy stworki z odpowiedniejszymi statystykami łatwiej przeżywają i powoli wypierają starsze i słabsze podgatunki. To po pierwsze.
2. Inny rodzaj mutacji - tym razem nie cyferkowa, a kodowa - jakaś sporadyczna, losowa zmiana w mechanizmie naszego nowonarodzonego osobnika. Albo jakaś cyferka się zmieni, albo linijka kodu się zgubi, albo jakaś dojdzie, albo może kilka? Jeśli to ma być kod asmopodobny, to takie rozwiązanie generalnie ma sens.

Efekt? Wrzucamy jakiś szczep, i jeżeli zaprojektujemy go dobrze, to ten sobie ewoluuje, wpasowuje się coraz lepiej w środowisko, etc.

Trzeba jeszcze przemyśleć dwie bardzo ważne kwestie - po pierwsze interakcja pomiędzy graczami, po półtore zakres wpływu gracza na swój szczep (czyt. co, jak często i w jakim zakresie może robić poza patrzeniem na swoje robaczki po zrzuceniu pierwszej porcji), a po drugie jak dokładnie będzie wyglądał i działał świat. Zwracam uwagę na ostatni punkt, w tego typu grze to bardzo ważne, żeby ten był zmienny, możliwie różnorodny, i pełen rozmaitych zależności, by stworzenia miały się do czego przystosowywać.

Offline Humman

  • Użytkownik

# Wrzesień 08, 2007, 02:08:48
Pomysł ciekawy, orginalny i o sporym potencjale, tylko paru rzeczy nie rozumiem.
Jak i po co miały by się osobniki gatunku stworzonego przez gracza komunikować między sobą? 
Raczej nie bedą one posiadać pamięci tego co je wcześniej spodkało jako że ich postępowanie wynikało by ze sztywnego kodu. Co innego rozmnarzanie, każdy osobnik po przekroczeniu wieku przed-reprodukcyjnego dążył by do kopulacji. Posiadał by on DNA czyli zestaw swych cech a potomstwo w danej dla gatunku liczbie dziedziczyło by z dwojga rodziców.

Albo można zrobić tak że przy tworzeniu nowego gatunku gracz dysponował by stałą pulą pkt, które wydawał by na ulepszenie wielkości, szybkości, wytrzymałości, wieku rozpoczecia rozmnażania, liczby potomków nierozdana pula stanowiła by o liczbie szt które były by umieszczone na początku w środowisku. Potem pisał by kod odpowiedzialny za zachowanie, w tym stadność lub samotność stworka i wybierał jak on wygląda. Środowiskiem w którym toczy się to wirtualne życie byłby serwer o ustalonych z góry warunkach środowiska (ilość pożywienia, temperatura, typ terenu: ocean, pustynia, dzungla ). O wyniku zarejestrowanego w danym środowisku gracza decydowała by liczba szt jego gatunku pomnożona przez watrość punktową 1 osobnika. Nawet dało by się to chyba zrobić w formie gry w przeglądarce bo wiele roboty gracz by nie miał. Tytuł IMO "Ewolucja".

Offline Moriturius

  • Użytkownik

# Wrzesień 08, 2007, 09:25:55
No jesli rozpatrywac tutaj gre od strony ewolucyjnej tylko to tak, ale zastanawia mnie tytul. Po pierwsze MMO a po drugie RTS. Nic zaden z dotychczasowych postow nie poruszyl tematyki RTS, ani zasad rywalizacji MMO. Humman otarł się o ten drugi tylko rzucając hasłem "gra przez przeglądarkę". Ale w grze MMO chodzi o interakcję pomiędzy graczami a nie o to żeby każdy żył sobie i mógł porównywać statystyki tylko.

A co do pomysłu to jest całkiem fajny - tez chetnie zagralbym w takie cos :-)

Offline Areal

  • Użytkownik

# Wrzesień 08, 2007, 09:56:20
Pomysł bardzo ciekawy, ale mam obawy co do możliwości spójnego zaprojektowania takiego systemu.
1. Jeśli używany byłby minimalistyczny język programowania do kontroli zachowania to wszystkie stworki danego gatunku zachowywałyby się podobnie i tylko w wyniku ewolucji (rozmnażania) zmieniałyby się statystyki. Jakby tego nie zrobić to dużych różnic w zachowaniu się nie zaobserwuje...
2. Zrezygnowałbym z niskopoziomowego języka na rzecz bardziej złożonego interfejsu (coś w stylu "drag and drop" - budowanie grafu) z możliwością zmiany struktury tego grafu (programu) podczas życia stworka (stworek sam się zmienia zgodnie z wbudowanym w stworka algorytmem ewolucji). Nie pytajcie jak to zrobić, bo nie wiem :) Dałoby to pole do popisu dla stworków, które dobrze wyewoluują (fajne słowo :) ) i faktycznie zdobędą przewagę nad konkurencją.
3. Zaplanowanie dobrego systemu ewolucji jest tu najtrudniejszym zadaniem.
4. Cała radocha wynikałby wtedy z obserwowania jak to nasz podopieczny robi się (miejmy nadzieję) mądrzejszy.
« Ostatnia zmiana: Wrzesień 08, 2007, 09:59:51 wysłana przez Areal »

Offline doomtrader

  • Użytkownik

# Wrzesień 08, 2007, 13:09:53
Wszystko kojarzy mi się ze "Spore"

Jednak gdyby skupić się na dodawaniu inteligencji to mogłoby być interesująco.
Trzeba by jednak wprowadzić jakieś zależności do pojemności mózgu i zapobiegać totalnej dominacji gatunków które wcześniej wejdą do gry.

Offline Humman

  • Użytkownik

# Wrzesień 08, 2007, 17:49:12
Ale w grze MMO chodzi o interakcję pomiędzy graczami a nie o to żeby każdy żył sobie i mógł porównywać statystyki tylko.

Gracze rywalizowani by tylko nie bezpośrednio ale przez walkę o dominację gatunków które stworzyli. Np taki gatunek mogłby wybrać strategię krótkiego życia, małych wymiarów a przez to mniejszych wymagań, wszystkożerności i intensywnego mnożenia jak szczury. Albo wielkie rozmiary, życie stadne, niska inteligencja i roślinożerność - bawół, lub samotnego życia, drapieżności i wysokiej sprawności - tygrys. Stwory żywiły by się roślinami w limitowanej ilości i miejscu wystepowania lub innymi stworkami o ile były by tak sprawne by je upolować. Jeśli stwór nie zdechł by z głodu do osiągnięci wieku dojrzałości i znalazł innego przeciwnej płuci populacja powiększyła by się, jeśli gatunek istniał by dość długo możliwe było by jego ulepszenie.
Nowe gatunki nie stały by od razu na przegranej pozycji bo na  przykład w Australii wprowadzenie królika spowadowało jego triumf w konfrontacji z miejscową fauną.

Offline k_b

  • Użytkownik
    • Blog

# Wrzesień 08, 2007, 18:32:05
jeśli gatunek istniał by dość długo możliwe było by jego ulepszenie

Ja bym proponował tutaj takie rozwiązanie: przy każdym nowym pokoleniu ilość możliwych linijek kodu by się zwiększała o 1-2 (losowo, albo poprzez czynnik "jakości życia" przeciętnego stworka). Przykładowo, na początku gry gracz miałby możliwość napisania jedynie dwóch linijek kodu, później z każdym pokoleniem ta ilość by się zwiększała. Linijki byłyby o tyle ważne, że zamiast średnika (z C++) by było przejście do nowej linijki.

Offline Kos

  • Użytkownik
    • kos.gd

# Wrzesień 09, 2007, 22:35:35
Ja bym proponował tutaj takie rozwiązanie: przy każdym nowym pokoleniu ilość możliwych linijek kodu by się zwiększała o 1-2 (losowo, albo poprzez czynnik "jakości życia" przeciętnego stworka). Przykładowo, na początku gry gracz miałby możliwość napisania jedynie dwóch linijek kodu, później z każdym pokoleniem ta ilość by się zwiększała. Linijki byłyby o tyle ważne, że zamiast średnika (z C++) by było przejście do nowej linijki.
Czyli sugerujesz bezpośrednią ingerencję w gatunek już nie w fazie projektu, ale po umieszczeniu go w świecie... Hand of God? :) Żarty żartami, ale w przypadku takiej gry to jedna z ważniejszych rzeczy do przemyślenia - czy projektujemy gatunek, rzucamy go i patrzymy jak się rozwija i dostosowuje, czy też przejmujemy pałeczkę i pracujemy nad gatunkiem cały czas? Oczywiście w pierwszym wariancie nie wykluczam wprowadzenia możliwości kontroli gatunku, bo inaczej gracz by się zanudził - jednak nie w sposób tak radykalny jak ręczna edycja kodu kolejnych pokoleń tak, jakby się dodawało nowy gatunek.

Offline k_b

  • Użytkownik
    • Blog

# Wrzesień 10, 2007, 16:31:30
Czyli sugerujesz bezpośrednią ingerencję w gatunek już nie w fazie projektu, ale po umieszczeniu go w świecie...
Raczej coś po środku - na początku zaprojektowanie podstaw gatunku (płetwy - nogi, itp.) oraz podstawowy, kilkulinijkowy kod.

Offline zephyr

  • Użytkownik

# Wrzesień 11, 2007, 00:50:47
Brzmi ciekawie.

Język niskopoziomowy bym wyrzucił, jest sens robić grę dla programistów, którzy są na tyle dobrzy, że zakodują porządne AI w asmie na ograniczonych zasobach?

Idealne IMO byłoby opracowanie "AI z puzzli". Opracować jakiś system AI przedstawiony w jak najprostszej graficznej formie + możliwość edycji zależną od stopnia zaawansowania gracza.
Dla początkujących wybór jednego z kilku wariantów + edycja statystyk.
Dla bardziej zaawansowanych więcej statystyk.
Dla ekspertów pisanie własnego kodu.
Najlepiej, żeby dało się łączyć gotowe skrypty z własnymi. Tak żeby przejścia były w miarę płynne.
Np użyłem gotowego stworka, to teraz pogrzebię sobie w kodzie odpowiedzialnym za xyz
(nie znam się na programowaniu AI, nie wiem czy coś takiego est wykonalne)

Dodatkowo oprócz serwera tryb piaskownica - do testowania "w laboratorium" na własnym PC, można by używać różnych środowisk dla organizmów i różnych gatunków wczytywanych z plików. (pokaż tego swojego megażółwia, zobaczymy jak poradzi sobie w puszczy pełnej moich zwinnomałp)

Ewolucji bym w ogóle nie stosował, nie widzę sensu robić losowych zmian. Przypominam, że organizmy na ziemi zmieniały się w ciągu milionów lat... marna szanse że takie zmiany w kodzie doprowadziłyby do czegoś sensownego, jeśli tempo w grze nie byłoby gigantyczne.
Dodawanie kilku linii kodu też IMO mija się z celem, nie można za bardzo niczego sensownego wprowadzić i w praktyce dodawałoby się puste entery, dopóki nie uzbiera się jakaś sensowna ilość.
Bardziej naturalna jest ewolucja na zasadzie ludzie się uczą i piszą coraz lepsze AI.

A co do przepakowanych stworów, najważniejsze byłoby stworzenie sprawnej mechaniaki. Duży zwinny zwierz "dużo by palił" i nie znalazłby wystarczająco pożywienia / dobiłyby go jakieś bakterie na, które nie byłby odporny / nie zdążyłby się przystosować do zmian klimatu itd. itp.