Kanapowy tryb kooperacji — podział na dwa ekrany

0

Projektuję sobie API dla okna do swojej gry. Założenie jest takie, że prócz standardowego trybu kampanii single player, gra ma dodatkowo wspierać ”kanapowy” tryb kooperacji dla dwóch osób — jest on coraz chętniej brany pod uwagę przez deweloperów zamiast tryb multiplayer online. Sam też jestem nim zainteresowany ze względu na specyfikę samej produkcji, do której będzie świetnie pasował — kampania dla jednego gracza lub dwóch.

Tryb ten zwykle implementuje się jako split screen lub — jeśli mechanika gry na to pozwala — w formie ujęcia obu graczy na jednym ekranie, z dostosowaniem zakresu ruchów oraz dopasowaniem kamery do pozycji graczy. Jest jeszcze trzecia opcja, która przychodzi do głowy, czyli podział nie ekranu na pół, a gry na dwa ekrany (dwa okna).

Od lat popularne są stanowiska wielomonitorowe z podziałem pulpitu na kilka ekranów, do tego każdy ma przecież telewizor, który również może być używany jest jako dodatkowy ekran. Można więc zrobić tak, że na jednym ekranie (np. laptopa) gra jeden gracz, a na drugim ekranie (monitorze lub telewizorze) gra drugi. Mając dwa okna i dwa różne rzuty, problem ograniczania zakresu ruchów graczy oraz wyrównywania kamery względem ich pozycji nie istnieje — każdy widzi swój fragment mapy i swój HUD.

Taka forma kooperacji daje niesamowite możliwości — nie zmusza obu graczy do współpracy ”jednoekranowej”, chodzenia wszędzie razem, rozwiązywania razem zagadek itd. Dzięki temu, że gracze nie będą przykuci do siebie, jeden będzie mógł wykonywać jedno zadanie, a inny eksplorować zupełnie inną część mapy. Oczywiście w dalszym ciągu powinne być zadania, które trzeba będzie wykonać we dwoje, jednak nie jako wszędobylski przymus, a jako urozmaicenie.

Pogłówkowałem nieco na temat tego, jak coś takiego zaimplementować. Silnik w założeniu będzie miał wszystkie dane w RAM-ie (całą mapę), więc będzie mógł mógł bez problemu wykonywać logikę dla dwóch osobnych lokalizacji na mapie (interakcje ze środowiskiem, fizykę otoczenia, spawny przeciwników itd.). Aby widzieć dwa miejsca, wystarczy umieścić dwie kamery i przykuć je do dwóch postaci. Renderer zamiast tworzyć jedną klatkę, wyrenderuje dwie, na osobnych buforach, a na koniec wyrenderuje je w dwóch oknach. Obsługa wielu kamer jednocześnie i tak mi się przyda na potrzeby edytora zawartości, bo chcę mieć widok obiektu/mapy z czterech perspektyw.

Oczywiście nie wszystko da się tak fajnie zuniwersalizować — taki tryb kooperacji wymusi napisanie dodatkowego kodu, jednak przy odpowiednim zaprojektowaniu logiki, nie powinno go wyjść dużo. Większość pewnie dotyczyć będzie interfejsu (np. zasobnika z przedmiotami, obsługi menu itp.). Przy czym taką logikę można wykorzystać do typowego split screena, więc jedyne co trzeba będzie dodatkowo zrobić to oprogramować obsługę dwóch okien, oprócz tylko jednego. Summa summarum, lokalny koop będzie możliwy jako jednoekranowy, split screen oraz dwuekranowy (do wyboru do koloru).

Co o tym myślicie? Znacie gry, w których lokalny tryb kooperacji opiera się na obsłudze wielu ekranów? Ciekaw jestem waszej opinii na ten temat i tego, czy jako gracze bylibyście nim zainteresowani.

2

Lokalna gra na kilka monitorów? Nie dziękuję

  • trudność do ustawienia. Nie każdy ma podłączonego pcta do telewizora. W Moim przypadku jakbym miał takie coś robić to zajęło by mi to więcej ustawiania niż tego warte. Osoba z którą bym grał byłaby w tym samym pokoju ale nie była by na tej samej kanapie.
  • komfort z gry. Nawet jeżeli będzie ustawione i osoby będą siedziały razem to jedna osoba musila by mieć laptopa na kolanach albo dostawiać jakieś stołki by laptop (monitor) postawić obok telewizora.
  • nie daje to przewagi nad grą po sieci. Możesz zrobić tak jak zrobiło it takes two. Jedyna wada takiego rozwiązania jest że osoby potrzebują dwa urządzenia w pomieszczeniu żeby odpalić grę.
  • nie mogę zagrać w coopie bo nie mam kilku monitorów. Mam jeden duży widescreen (który bez problemów by pomieścił dwa okna gry)

Nigdy nie wiedziałem gry która ma co opa na wiele monitorow.

Zależy od gry jak zrobić split screen. Moim zdaniem gry warte zobaczenia jak można fajnie zrobić split screen

  • divinity original sin 2
  • Cuphead
  • it takes two
0
fasadin napisał(a):
  • trudność do ustawienia. Nie każdy ma podłączonego pcta do telewizora. W Moim przypadku jakbym miał takie coś robić to zajęło by mi to więcej ustawiania niż tego warte. Osoba z którą bym grał byłaby w tym samym pokoju ale nie była by na tej samej kanapie.

Wait, nie pisałem, że dwuekranowy koop byłby obowiązkiem, a jedynie rozszerzeniem split screena dla tych, którzy już mają komputer z dwoma ekranami lub korzystają z telewizora jako dodatkowego monitora. Pamiętaj — dodatek, nie obowiązek. W dodatku dodatek, który nie wymaga wiele czasu do jego zaklepania.

  • komfort z gry. Nawet jeżeli będzie ustawione i osoby będą siedziały razem to jedna osoba musila by mieć laptopa na kolanach albo dostawiać jakieś stołki by laptop (monitor) postawić obok telewizora.

Kiedy właśnie po to gra byłaby podzielona na dwa niezależne ekrany, aby nie trzeba było siedzieć koło siebie i patrzeć na ten sam ekran. A że wszystko działo by się w ramach jednego procesu/komputera, nie byłoby problemu z komunikacją werbalną pomiędzy graczami. Jeden może siedzieć na kanapie i patrzeć na telewizor, a drugi np. przy biurki i patrzeć w laptopa.

Dla tych, którzy nie mają możliwości grania na dwóch ekranach, bo mają telewizor w innym pomieszczeniu lub nie mają komputera z dwoma monitorami, byłby przewidziany normalny split screen lub tryb jednoekranowy. Dzięki temu dla każdego znajdzie się rozwiązanie — albo powszechne, albo dwuekranowe.

  • nie daje to przewagi nad grą po sieci. Możesz zrobić tak jak zrobiło it takes two. Jedyna wada takiego rozwiązania jest że osoby potrzebują dwa urządzenia w pomieszczeniu żeby odpalić grę.

Każdy tryb gry wieloosobowej ma swoje plusy i minusy. Mamy kanapowy tryb kooperacji jednoekranowej oraz split screen, mamy kooperację w LAN, mamy też kooperację online (za pośrednictwem serwerów). No i oczywiście typowy, wieloosobowy multiplayer po sieci.

Nie chcę sobie narzucać za wiele na początek, dlatego tryb w pełni sieciowy odrzucam — zarówno LAN i WAN. Nie czuję abym dał radę sprawnie taki system zaprogramować, dlatego kanapowa kooperacja będzie jedyną formą gry wieloosobowej (przynajmniej na początek).

  • nie mogę zagrać w coopie bo nie mam kilku monitorów. Mam jeden duży widescreen (który bez problemów by pomieścił dwa okna gry)

Możesz, tylko nie przeczytałeś uważnie tego co napisałem i niepotrzebnie się bulwersujesz. ;)

Nigdy nie wiedziałem gry która ma co opa na wiele monitorow.

Sam też nie widziałem, ale to nie oznacza, że taki tryb nie ma racji bytu. Nie widzę też problemu, aby być pierwszym, który taki tryb zaprezentuje. Szczególnie, że nie jako przymus, a jedynie jako opcjonalny dodatek dla zainteresowanych. Opcjonalny, bo normalny split screen też będzie, więc dlaczego nie skorzystać z okazji i nie podzielić gry na dwa ekrany?

Tym bardziej, że laptopy mają relatywnie małe ekrany, a jeśli się jeszcze podzieli na pół, to wygoda z gry będzie niska. Lepiej patrzeć na dwa dokumenty wyświetlone na dwóch ekranach (z rozmiarem dopasowanym do ich powierzchni), niż mieć dwie małe strony na jednym ekranie — nie trzeba się przysuwać, aby dobrze widzieć. W mojej opnii oczywiście.

Szkoda, że na razie nie mam jakiejś demówki do zabawy — łatwiej byłoby zrozumieć sens tego o czym pisałem.

1

Wydaje mi się, że rozwiązanie (dodatek) na wiele ekranów jest bardzo ale to bardzo niszowym rozwiązaniem, który można spokójnie rozwiązać za pomocą sieci tak jak robi to it takes two.

Rozumiem, że jest to dodatkowa praca.

Nie przekonuje mnie granie na dwóch ekranach za pomocą jednego kompa. Nie widzę powodu by nie używać LAN czy po prostu tradycyjnego splitscreenu

Jak by to wyglądało z inputem? Co jeżeli oboje gracze będą używać klawiatury i myszki? Nie każdy ma pada.

Jeżeli uważasz że nie wymagałoby od Ciebie dużo pracy zaimplementowanie dwóch ekranów na jednym kompie. Go fo it. Możesz dodać metryki by zobaczyć czy i jak często jest używany.
Sam wolałbym przesunąć energię na coś innego co też fajnie by mieć i nie wymaga tak dużo do zaimplementowania

Demo by pomogło zobrazować czy 2 ekrany miały by sens ;)

0
fasadin napisał(a):

Wydaje mi się, że rozwiązanie (dodatek) na wiele ekranów jest bardzo ale to bardzo niszowym rozwiązaniem, który można spokójnie rozwiązać za pomocą sieci tak jak robi to it takes two.

Tak, ale sieć odrzucam, ze względu na brak doświadczenia w tej materii.

Nie przekonuje mnie granie na dwóch ekranach za pomocą jednego kompa. Nie widzę powodu by nie używać LAN czy po prostu tradycyjnego splitscreenu

Ja też nie widze powodu, aby nie używać tradycyjnego split screena, dlatego wcale nie chcę z niego rezygnować. Ale jednocześnie jestem zdania, że użytkownik dowolnego oprogramowania (w tym gier) powinien mieć możliwość skonfigurowania go tak, aby spełniał jego wymagania. Nawet jeśli jeden gracz z takiego trybu skorzysta, to będzie to o jeden więcej w gronie zadowolonych odbiorców. A wiele pracy nie będzie wymagane.

Jak by to wyglądało z inputem? Co jeżeli oboje gracze będą używać klawiatury i myszki?

Dwóch graczy ma korzystać z jednej klawiatury? W ten sposób grało się 20 lat temu. :D

Sterowanie będzie opierało się na wielu funkcjach — większość przycisków i osi oferowanych przez typowe, współczesne kontrolery. Lewa gałka lub D-Pad do ruchu, cztery podstawowe przyciski z funkcjami takimi jak atak czy skok, zmiana kamery to dwa triggery lub pawa gałka, zasobnik oraz menu to Start i Select i kilka innych. Nie wyobrażam sobie zmapowania tych funkcji na jednej klawiaturze dla dwóch graczy — sam bufor klawiatury nie pomieści tylu inputów.

Drugi gracz tak czy siak musiałby grać używając kontrolera, a że od lat standardem są kontrolery bezprzewodowe, to i ten drugi spokojnie mógłby siedzieć w innym pomieszczeniu. Zasięg Bluetootha powinien wystarczyć do tego, choć wydzieranie się do siebie może nie być komfortowe.

Nie każdy ma pada.

Tak samo jak nie każdy ma konsolę, nie każdy ma komputer przystosowany do gier z wyższej półki i nie każdy ma wspólnika do koopa. To nie jest żaden argument — kontroler można kupić za grosze np. na allegro, a jak ktoś chce coś lepszego w tej samej strefie cenowej, to może kupić z aliexpress. Biedniejszy zawsze ma pod górkę i wiele rzeczy nie jest dla niego dostępnych — taki jest świat, nic z tym nie da się zrobić.

Jeżeli uważasz że nie wymagałoby od Ciebie dużo pracy zaimplementowanie dwóch ekranów na jednym kompie. Go fo it. Możesz dodać metryki by zobaczyć czy i jak często jest używany.

Z tego co do tej pory przemyślałem, nie będzie wiele pracy. Sam silnik i tak musi być przystosowany do obsługi dwóch osobnych kamer oraz logi związanej z obsługą dwóch niezależnych postaci, więc jedyne co zostanie to dodanie obsługi drugiego okna oraz renderowania dwóch osobnych klatek, zamiast jednej z widokiem z dwóch kamer. To czy HUD i interfejs ma być renderowany na jednym ekranie czy dwóch to kilka linijek kodu. Menu gry to dodatkowe linijki, bo fajnie by było gdyby wejście do menu np. z powodu chęci przemapowania przycisków nie przerywało gry na drugim ekranie.

Ogólnie to narzut pracy powinien być niewielki, o ile kod dobrze się zaprojektuje. Choć nawet nędzna implementacja nie powinna wymusić poświęcenia mnóstwa godzin.

Sam wolałbym przesunąć energię na coś innego co też fajnie by mieć i nie wymaga tak dużo do zaimplementowania

Jeśli masz jakieś pomysły, biorąc pod uwagę moje założenia co do tej gry, to chętnie się zapoznam. Trudno jest samemu o wszystkim pomyśleć, a wiemy przecież, że feedback jest cholernie potrzebny deweloperom, więc i ja jego potrzebuję — dlatego też zakładam wątki w tej kategorii i (jak obiecywałem) niejeden jeszcze założę. :]

Demo by pomogło zobrazować czy 2 ekrany miały by sens ;)

Jak już będę miał działający system wielookienkowy to na pewno go dam do przetestowania. Nie tylko do zabawy na dwóch ekranach, ale też do przetestowania zachowania jednego, głównego okna — do testów trybu okienkowego, pełnoekranowego oraz trybu wideo. Wiąże się z tym wiele funkcji, jak zachowanie okna, minimalizacja i przywracanie, zachowywanie bądź nie proporcji okna oraz pikseli, dowolność skalowania, zapamiętywanie pozycji i rozmiaru, wsparcie wszystkich dostępnych rozdzielczości trybu wideo, widoczność i typ kursora i wiele wiele innych rzeczy, o które należy zadbać, aby uniknąć frustracji gracza i go nie ograniczać. Niby prosta obsługa okna, a głowa boli od mnogości przypadków do oprogramowania. Ale jak już wspominałem, nie interesuje mnie byle co — jak już robić, to tylko porządnie.

Mam w planach dodanie modułu do telemetrii — statystyki korzystania z trybów kooperacji są dobrym pomysłem. Taka wiedza przyda się nie tylko mi — powinna być cenna dla wszystkich game deweloperów, jeśli coś takiego nie jest powszechne (a wygląda na to, że nie jest).

1

Dwóch graczy ma korzystać z jednej klawiatury? W ten sposób grało się 20 lat temu.

chodzilo mi ze beda dwie klawaitury, jeden na lapku druga bezprzewodowa do telewizora. sam mialem taki setup

Jeśli masz jakieś pomysły, biorąc pod uwagę moje założenia co do tej gry, to chętnie się zapoznam (...)
jestem zdania, że użytkownik dowolnego oprogramowania (w tym gier) powinien mieć możliwość skonfigurowania go tak, aby spełniał jego wymagania

do danego splitscreena dodac mozliwosci dla colorblind (czyli jedna polowa jest dla osob ktore niedowidza gdzie druga renderuje sie normalnie). Ogolnie szedlbym w strone mozliwosci ktore pomagaja ludziom grac, Tutaj jest ciekawa lista https://gameaccessibilityguidelines.com/full-list/

Tez calkiem fajna opcja jest support dla padow ktore sa adaptacyjne. Dla ps5 dziala to niesamowicie

0
fasadin napisał(a):

chodzilo mi ze beda dwie klawaitury, jeden na lapku druga bezprzewodowa do telewizora. sam mialem taki setup

Z takim setupem jeszcze nie miałem do czynienia — będę musiał poczytać jak to ugryźć, jeśli chodzi o obsługę dwóch klawiatur oraz tego jak to zrobić w SDL. Teoretycznie jest taka możliwość, bo zdarzenia klawiatury w SDL-u dostarczają ID urządzenia, które powinno być różne w przypadku dwóch klawiatur.

do danego splitscreena dodac mozliwosci dla colorblind (czyli jedna polowa jest dla osob ktore niedowidza gdzie druga renderuje sie normalnie). Ogolnie szedlbym w strone mozliwosci ktore pomagaja ludziom grac, Tutaj jest ciekawa lista https://gameaccessibilityguidelines.com/full-list/

Tak, biorę pod uwagę najróżniejsze ludzkie ograniczenia oraz sposoby na to jak pomóc takim osobom grać. Tu nie tylko chodzi o wady wzroku, ale też o ograniczenia związane z motoryką. Wielu rzeczy dowiedziałem się z kanału Game Maker's Toolkit (seria Designing for Disability), ale dzięki za link — to też kopalnia wartościowej wiedzy.

Tez calkiem fajna opcja jest support dla padow ktore sa adaptacyjne. Dla ps5 dziala to niesamowicie

Zapoznam się z tym tematem — na razie nie wiem co to znaczy ”adaptacyjne pady”. Ale pomysły na to co warto jest zrobić, raczej wolałbym omawiać w osobnym wątku, a ten przeznaczyć tylko do dyskusji na temat dwuekranowego koopa. ;)

Edit: już wiem co to kontroler adaptacyjny. Z jednej strony, możliwość podziału funkcji na wiele osobnych urządzeń (typu pad, joystick, pedał itp.) rozwiązuje problem ograniczeń użytkownika, jednak z drugiej strony, panel gniazd z tyłu jest rozwiązaniem problemu, który tworzą sami deweloperzy gier. Bo jak się w grze nie implementuje bindowania przycisków, to i nawet adaptacyjny kontroler nie pomoże. Smutne to.

Z punktu widzenia gry, kontroler adaptacyjny to zwyczajny kontroler, więc jego obsługa jest taka sama jak innych. Dodając opcję mapowania przycisków, zapewniamy każdemu standardowemu użytkownikowi możliwość dopasowania sterowania do własnych preferencji. Gra zapewni możliwość konfiguracji, a kontroler adaptacyjny pozwoli rozdzielić tę konfigurację na wiele urządzeń, dopasowanych do ograniczeń użytkownika. I wszyscy będą zadowoleni, w dodatku relatywnie niskim nakładem pracy ze strony dewelopera.

0

Jest jeszcze jeden plus z podziału gry na dwa okna — możliwość jednoczesnego wyświetlenia efektów pracy silnika gry (czyli w uproszczeniu widoku świata) w jednym oknie oraz dodatkowych informacji w drugim. Ten drugi ekran może służyć do dowolnego celu, np. do stałego pokazywania zasobnika z przedmiotami, dzięki czemu nie trzeba będzie go ciągle włączać i wyłączać. Można też wyświetlać mapę, postęp fabuły, ostatnią listę dialogową i temu podobne rzeczy. Normalny użytkownik na pewno doceni stale widoczną zawartość zasobnika, natomiast inne informacje ułatwią grę graczom np. z problemami z pamięcią lub ze wzrokiem.

Jak widzicie, drugie okno może służyć do wielu celów, nie tylko na potrzeby dwuosobowej kooperacji lokalnej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1