[G1] Gothic Online 19723 95

O temacie

Autor RoMek

Zaczęty 22.04.2015 roku

Wyświetleń 19723

Odpowiedzi 95

V0ID

V0ID

Użytkownicy
Analdestroyer
posty12
Propsy24
ProfesjaProgramista
  • Użytkownicy
  • Analdestroyer
Ciekawe czy serwer Edycja Rozszerzona korzysta z plików mojego moda. Hmm. Wyraźnie się na to nie zgodziłem. Jak ktoś ma GO na komputerze to niech sprawdzi xD
Licencje modów w Gothicu są bardziej copyleft, niż copyright. Ale kultura nakazuje chociaż wyraźnie podkreślić autorstwo plików ;)

inż. Avallach

inż. Avallach

Administrator
posty7641
Propsy5135
Nagrody
ProfesjaProgramista
  • Administrator
Czemu npc z singla nie są zsynchronizwane?
Żeby to miało sens, musiały by być sterowane po stronie serwera. Jak to sobie wyobrażasz inaczej - jakaś chmurowa sztuczna inteligencja rozproszona między komputery graczy? W sumie pomysł jest ciekawy, ale raczej na pracę magisterską xD

Fabio

Fabio

White&Red
posty3062
Propsy1777
ProfesjaScenarzysta
  • White&Red
Ciekawe czy serwer Edycja Rozszerzona korzysta z plików mojego moda. Hmm. Wyraźnie się na to nie zgodziłem. Jak ktoś ma GO na komputerze to niech sprawdzi xD

@mrdragothic ?

gothic1210
  • Gość
Nie, jakiś Reed Vega
 

V0ID

V0ID

Użytkownicy
Analdestroyer
posty12
Propsy24
ProfesjaProgramista
  • Użytkownicy
  • Analdestroyer
Żeby to miało sens, musiały by być obsługiwane po stronie serwera. Jak to sobie wyobrażasz inaczej - jakaś chmurowa sztuczna inteligencja rozproszona między komputery graczy? W sumie pomysł jest ciekawy, ale raczej na pracę magisterską xD

Wyliczanie pozycji po animacji w GMP botów było zrobione w taki sposób. Fajnie się bawiłem na RP, przerzucając potwory w centrum miasta  :lol2:
Ale nie no, boty dodam jak ktoś w końcu zacznie grać, to jest już jakaś opcja żeby razem ubijać potwory.

inż. Avallach

inż. Avallach

Administrator
posty7641
Propsy5135
Nagrody
ProfesjaProgramista
  • Administrator

inż. Avallach
Administrator

[G1] Gothic Online
#85 2015-05-31, 15:07(Ostatnia zmiana: 2015-05-31, 15:25)
Cytuj
Cytuj
Żeby to miało sens, musiały by być obsługiwane po stronie serwera. Jak to sobie wyobrażasz inaczej - jakaś chmurowa sztuczna inteligencja rozproszona między komputery graczy?
Wyliczanie pozycji po animacji w GMP botów było zrobione w taki sposób. Fajnie się bawiłem na RP, przerzucając potwory w centrum miasta :lol2:
No niestety, tworzenie multiplayera z autorytatywnymi klientami a nie serwerem jest trochę jak robienie bardziej rozbudowanego Twitch Plays Pokemon :D
Ja miałem na myśli coś bardziej w stylu hive minda - serwer analizuje co mówią różni klienci i korzystając z jakiegoś algorytmu (choćby i głosowania) podejmuje decyzję co faktycznie zrobi npc i co zostanie zsynchronizowane z resztą xD //edit: właściwie to JEST Twitch Plays Pokemon xD - tylko założyłbym że większość graczy jest uczciwa i będą przegłosowywać cheaterów

Oczywiście pomysł jest absurdalny i logika sterująca NPC (i w dużej części graczami) musi po prostu być na serwerze jeśli chce się uniknąć co gorszych (ale nie wszystkich) cheatów.

siewka181

siewka181

Użytkownicy
PomiotBeliara
posty406
Propsy68
ProfesjaNierób
  • Użytkownicy
  • PomiotBeliara
Zrobić to na zasadzie questów jeżeli gracz jest w pierwszym rozdziale to ma takie i takie opcje coś jak jest w takiej terze,aionie itp zadania są poukładane lv i przypisywane do npc wszystko opiera się na warunkach..

Jeżeli gracz jest w pierwszym rodziale w wtedy dla takiego gostka przełącznik A się włącza i ma daną częśc skryptu aktywna własnie w którą są wpisane rzeczy z 1 rozdziału po czym zmienna sprawdza go w którym momencie jest to coś na zasadzie
if player story == 1
 when zmienna A on
 blabla bvla
 
JAK NAZYWA SIĘ CHOROBA NA KTÓRĄ CIERPIĄ WYZNAWCY ADANOSA ?
WADA NOSA :d
Motyw do Google Chrome by ja: https://www.mychrometheme.com/t/94h6ywsfrpdltksaofn965n3e
http://z0r.de/L/z0r-de_4014.swf

V0ID

V0ID

Użytkownicy
Analdestroyer
posty12
Propsy24
ProfesjaProgramista
  • Użytkownicy
  • Analdestroyer
Do GO od jakiegoś czasu można pisać moduły w C++, są ładowane do pamięci czyli narzędzia typu G2EXT działają, dzięki funkcji sendPacket można przesyłać pakiety na serwer. Praktycznie możliwości są nieograniczone.

Sawik

Sawik

Quest Pack Team
Rebel
posty4797
Propsy3188
ProfesjaNierób
  • Quest Pack Team
  • Rebel
Licencje modów w Gothicu są bardziej copyleft, niż copyright. Ale kultura nakazuje chociaż wyraźnie podkreślić autorstwo plików ;)
Modów tak, ich zawartości - nie. Modele i tekstury, bo zgaduję że o to się rozchodzi, należą do Konrada. 

Odnośnie problemów z synchronizowaniem - spróbuj synchronizować osoby wyłącznie z tego samego rozdziału. Chociaż obawiam się że postaci które na potrzeby lub jako rezultat zadań zmieniają pozycję będą musiałby być po stronie clienta, alternatywnie można przerobić te zadania lub zaprojektować gamemoda z pamięcią o tym żeby do takich sytuacji nie dopuścić.

Jest jeszcze jeden sposób - dołączanie do gry hosta. Wszelkie decyzje zmieniające położenie postaci etc. są czytane od hosta, działałoby to na zasadzie pomocy przy przechodzeniu zadań czy np. trudniejsza walka np. z czarnym trollem.
 
Życzę wam seksu analnego po stronie biernej.
Dropbox +500 mb na start
LowPoly
Wykonanie modelu niskopoligonowego to sztuka kompromisu. Nie jest to jedynie uproszczenie modelu wysokopoligonowego, ale głęboka modyfikacja oraz podejmowanie decyzji często zmieniających wygląd pierwotny obiektu, tak by przy najmniejszej ilości trójkątów uzyskać jak najwierniej odwzorowany kształt oryginału. Nie można też zapomnieć o tym iż musi nadal wyglądać przekonywająco i tak balansować by uzyskać efekt optymalny.

Podstawowym założeniem jest, że model nie powinien mieć zbędnych, niewidocznych dla gracza detali włączonych w geometrie. Większość obiektów jakie znajdują się w grze powinna prezentować się najlepiej z odległości około 3-5 metrów. Wszelkie detale, które zanikają, wydają się płaskie lub zlewają się z bryłą modelu należy uznać za zbędne i pozostawić je na normal mapie.

Fakt, iż gracz będzie w stanie podejść bliżej do obiektu i zobaczyć go z mniejszej niż 3m odległości nie powinno stanowić większego problemu, gdyż większą rolę odgrywają wtedy tekstury oraz dodatkowy detal zależny od materiału obiektu. To właśnie kompromis między wydajnością, a szczegółowością otoczenia.

Detal, którego nie widać z 3-5 metrów nie powinnien istnieć w geometrii modelu.
Krawędzie znajdujące się blisko siebie, które zlewają się z większej odległości należy uprościć do wspólnej płaszczyzny

Fabio

Fabio

White&Red
posty3062
Propsy1777
ProfesjaScenarzysta
  • White&Red
Ogólnie ciekawe by było coś takiego jak w (inny typ gry, ale podaję jedynie przykład) Twierdza Krzyżowiec Multiplayer. Koleś A stawia serwer a koleś B na niego wchodzi. Koleś A jako, że postawił serwer jest na nim administratorem i tak dalej.  Przykładowo grają potyczkę między sobą i co jakiś czas koleś A zapisuje grę. Jeśli chcą wznowić ją później odpalają serwa i koleś A wczytuje zapis.

Nie dałoby zrobić coś na takiej zasadzie z rozgrywaniem kampanii?

V0ID

V0ID

Użytkownicy
Analdestroyer
posty12
Propsy24
ProfesjaProgramista
  • Użytkownicy
  • Analdestroyer
Teoretycznie by się dało.

Jurigag

Jurigag

Użytkownicy
posty876
Propsy282
ProfesjaSkrypter
  • Użytkownicy
Ogólnie ciekawe by było coś takiego jak w (inny typ gry, ale podaję jedynie przykład) Twierdza Krzyżowiec Multiplayer. Koleś A stawia serwer a koleś B na niego wchodzi. Koleś A jako, że postawił serwer jest na nim administratorem i tak dalej.  Przykładowo grają potyczkę między sobą i co jakiś czas koleś A zapisuje grę. Jeśli chcą wznowić ją później odpalają serwa i koleś A wczytuje zapis.

Nie dałoby zrobić coś na takiej zasadzie z rozgrywaniem kampanii?

dokładnie jak wyżej, więcej nie potrzebuję, jestem adminem, gramy "moją fabułą itp itd" cały świat ma taki wygląd i zmienne jakie ja mam, a inne osoby po prostu grają ze mną i mają wszystko tak samo, nic więcej nie potrzeba, po prostu zwykle najzwyklejszy coop jak np w borderlands, jedynie dać opcję zmieniania w czasie gry poziomu trudności(tj statystyk itp, możliwe w ogóle ?) i tyle
 
Skrypter/Tester - Szukasz testera/skryptera - Pisz !

Elgcahlxukuth

Elgcahlxukuth

Użytkownicy
posty43
Propsy3
Profesjabrak
  • Użytkownicy

Elgcahlxukuth

[G1] Gothic Online
#92 2015-10-22, 15:07(Ostatnia zmiana: 2015-10-22, 15:16)
W jaki sposob wyobrazacie sobie wykonywanie questow w trybie cooperative? Ja widze dwa podstawowe warianty:

1) Gracze sa nierozroznialni z punktu widzenia NPC i fabuly. Oznacza to ze jesli gracz A wykonujac questa spowoduje zmiane stanu jakiegos NPC, to gracz B wchodzac w interakcje z tym NPC zostanie potraktowany tak, jak by rowniez wykonal questa. Dany quest moze byc wykonany tylko jeden raz i tylko przez jednego z graczy. Raz otworzona i okradziona skrzynia pozostaje pusta dla wszystkich graczy. Czyli postep w fabule jest globalny dla wszystkich. Tutaj nalezy rozwazyc kwestie ewentualnego "restartu" fabuly w przypadki gdy zostanie wykonany ostateczny cel (jak zabicie ostatniego smoka w G2) lub gdy ilosc graczy wynosi 0 przez dluzej niz 10 minut. Warto tez powiadomic kazdego usera o stanie fabuly, np. updatujac dziennik wydarzen dla kazdego gracza gdy dowolny z nich wykona jakas akcje zwiazana z questem. Problem synchronizacji w przypadku questow dotyczy nie tylko NPC, ale tez itemkow. Co w przypadku gdy koles posiadajacy kluczowy przedmiot typu oko innosa zostanie odlaczony od gry? Nikt nie moze kontynuowac. Mozna przerzucic kluczowe itemy do plecakow losowych graczy? Mozna by pomyslec o jakims oznaczaniu graczy posiadajacych kluczowe itemy, lub wylistowaniu ich imion.

Wariant drugi:
2) NPC rozrozniaja graczy. Kazdy gracz rozpoczyna osobno swoja linie fabularna. (Poniekąd rozwarstwienie rzeczywistości, ale w ograniczonym stopniu.) NPC w zaleznosci od tego ktory gracz do niego podchodzi zachowa sie inaczej, bo kazdy gracz jest w innym punkcie fabuly. Skrzynia otworzona i okradnieta przez jednego gracza pozostaje nadal zamknieta dla kazdego, kto jeszcze jej nie otworzyl. Problemem w tym przypadku sa sytuacje gdzie dany NPC podczas questa zostaje zabity (np. smok). Mozliwe rozwiazanie: auto-respawn kazdego NPC. W takim wypadku jednak zrespawnowany NPC powinien "pamietac" ze dany gracz go zabil i nie wchodzic z nim wiecej w zadne interakcje (jest dla danego gracza przezroczysty). Gdy kilka osob bije NPC, tylko jedna osoba powinna byc uznana za zabojce i inni nie powinni miec dostepu do loot'u (esencja smoczego serca itp). Sa tez sytuacje gdy zabiera sie danego NPC ze soba np. na polowanie i wowczas jest on niedostepny w swoim pierwotnym miejscu przebywania. Moze tez byc tak, ze po wykonaniu questa NPC zmienia swoje miejsce pobytu (np. Bulko w 1 rozdziale siedzi na farmie, a w 4 rozdziale jest w dolinie smokow).
 

Bimbol

Bimbol

Użytkownicy
posty2
Propsy16
Profesjabrak
  • Użytkownicy
@up
Ad 1. To rozwiązanie wymaga edycji kampanii, więc znacznie lepiej to przepisać do skryptów, później będzie wygodniej tym zarządzać, bo takie sztywne grzebanie w silniku i robienie czegoś na siłe nie wchodzi w grę.
Ad 2. Obecnie można już tak grać, tylko, że potwory nie są zsynchronizowane. Jednak ten wariant będzie niedługo można poprawić. Wystarczy wyrzucić wszystkie potwory z skryptu kampanii, bądź będziemy musieli dodać funkcje na kasowanie poszczególnych NPC i w ich miejsce dodać zsynchronizowane boty o tych samych instancjach co w kampanii, dzięki temu będzie można razem walczyć z potworami i mimo wszystko zostanie to zaliczone w questach. Jednak jeśli ma być taki stan rzeczy, to oczywiście potwory muszą się respawnować. Tu pojawia się problem bo kampania stanie się wyraźnie łatwiejsza, dzięki możliwości szybkiego zdobywania doświadczenia. Można to rozwiązać narzucając własne przedziały expowe, ale wtedy prawdopodobnie zrobi się z tego MMO, gdzie głównie trzeba siekać potwory.
 

potezny2

potezny2

Użytkownicy
posty142
Propsy13
Profesjabrak
  • Użytkownicy
Są wogle jakieś osoby na serwerze?
 

Leiwark

Leiwark

Użytkownicy
Kapitan Itharu Team
posty234
Propsy37
ProfesjaAktor głosowy
  • Zbanowany
  • Kapitan Itharu Team
Wbijajcie wieczorem na g2o
 


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry