Autor Wątek: RoboGame  (Przeczytany 4029 razy)

Offline pozy

  • Użytkownik

  • +1
# Lipiec 17, 2012, 00:09:16
Wstęp:
W pewnym sensie jest to bijatyka dla dwóch graczy. Gra jest dwuwymiarowa, odbywa się przez sieć w czasie rzeczywistym. Bić się będą maszyny/roboty samodzielnie skonstruowane przez graczy. Możemy zbudować czołg, mecha, czy cokolwiek innego.
Grę robię jednoosobowo. Pracę nad nią zacząłem w czerwcu, więc całkiem niedawno.

Rozgrywka:
Na początku gry budujemy robota do walki. Używamy do tego przede wszystkim czegoś w rodzaju prętów, które podtrzymują konstrukcję. Do konstrukcji możemy przyczepić koła, siłowniki hydrauliczne, generatory prądu potrzebne do poruszania nimi oraz różnego rodzaju broń.
Następnie rozpoczyna się rozgrywka, w której zadaniem gracza jest zniszczyć robota przeciwnika i samemu przetrwać.

Technologia:
Platforma docelowa: Windows (teoretycznie po paru przeróbkach powinno się dać przeportować na Linuksa)
Język: C++, być może będzie też Lua
Grafika: M2D (biblioteka autorska)
Fizyka: Box2d (początkowo sam robiłem fizykę, ale jednak zadanie mnie przerosło;) )
Dźwięk: nie wiem, później pomyślę

Stan prac:
Na razie jest coś w rodzaju sandboxa, w którym budujemy robota i sprawdzamy, jak się porusza. Zaimplementowane koła, siłowniki hydrauliczne i jeden rodzaj broni. Jest też dość uproszczone sterowanie. Grafiki praktycznie brak, dźwięku tym bardziej.

Screeny:
Strzelający pojazd z regulowanym kątek wystrzału...

...właśnie dostał kilkoma pociskami i trochę się zepsuł;)


Potencjalne problemy:
-Na pewno multiplayer. Nigdy nic z siecią nie robiłem oprócz prostego przesyłania komunikatów przez sockety. Na szczęście to tylko gra dla dwóch osób, bez żadnego centralnego serwera, więc może dam radę;).
-Intuicyjne sterowanie. Jak sterować czymś, co ma x kół,y broni, z siłowników? A jak zrobić, żeby to było proste? Mam kilka pomysłów, ale zobaczymy jak to wyjdzie.
-Grywalność, chyba najważniejsze. Czy ktoś w ogóle będzie chciał w coś takiego grać? Gra wymaga pewnego wkładu, żeby ją zrozumieć i opanować. Musimy najpierw zbudować robota i opanować sterowanie nim. Nie jest to casual, gdzie mamy wszystko podane na tacy i od razu możemy czerpać przyjemność z rozgrywki.

Offline Mr. Spam

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

Offline matthewpl

  • Użytkownik
    • TheGamers - nowy wymiar gier

# Lipiec 17, 2012, 14:41:16
To może być świetne!

Offline zxc

  • Użytkownik

# Lipiec 17, 2012, 15:01:49
Super pomysł. Robiłem kiedyś prototypy czegoś podobnego.

U mnie sterowanie było przez wychylanie myszy w osi poziomej i pionowej - wychylenie ramion było definiowane przez pozycję myszy na osi X lub Y, w zależoności od ramienia.

W innym prototypie miałem wydłużanie ramion w zależności od odległości ich od kursora myszy. Przy okrągłych maszynach z łapkami wychodzącymi promieniście była bardzo fajna zabawa.

Przyjrzyj się grze materiałom na temat gry Incredipede - to samo, tylko z pokonywaniem przeszkód a nie walką. I grze Fantastic Contraption.

Czekam na rezultaty :).

Offline pozy

  • Użytkownik

# Lipiec 19, 2012, 21:17:57
Przez ostatnie kilka dni rozgryzałem temat multiplayera. Wcześniej wydawało mi się, że zrobienie gry przez sieć może być dość trudne. Jak się okazało, jest to jeszcze trudniejsze niż myślałem:). Doszedłem do następujących wniosków:
-Serwer będzie osobnym programem na jakimś komputerze. Może być na jednym z graczy.
-Na serwerze będzie liczona cała fizyka.
-Klienty wysyłają na serwer polecenia (np. wystrzel pocisk) i odbierają aktualny stan wszystkich elementów, które następnie wyświetlają.
-Sama gra oparta będzie na protokole UDP.
-Wysyłanie na serwer specyfikacji robota, którym chcemy grać będzie już oparte na TCP.

Poza samym wymyślaniem tego wszystkiego zrobiłem już serializację danych robota do strumienia, który będzie wysyłany na serwer.

Offline mihu

  • Użytkownik
    • mihu

# Lipiec 19, 2012, 23:28:54
Pomysł również mi się podoba. Sam myślałem ostatnio nad gierkami, w których steruje się czymś samodzielnie skonstruowanym (taki motyw dobrze zrobiony potrafi zwielokrotnić radochę), na przykład w walce - statki kosmiczne budowane z wiele elementów i ulepszeń (to akurat też ktoś na warsztacie robi podobnego), albo stwory tworzone a la Spore (no ale to już hardkor).

IMHO bardzo ważne jest, aby indywidualna konstrukcja robota faktycznie wpływała na grę - nawet jeśli budowanie jest fajne, to jeżeli każdym robotem gra się tak samo, to potencjał zostanie niewykorzystany.

Offline Blink

  • Użytkownik

# Lipiec 20, 2012, 15:13:15
Świetny pomysł i liczę, że uda się go zrealizować z dotychczasowymi założeniami.

Czy będzie można zapisywać swoje maszyny/roboty w oddzielnych plikach, czy będzie to zrealizowane inaczej?
I jeśli tak, to czy serwer będzie mógł przechowywać te pliki, czy będą one do niego ładowane poprzez klient gry po każdym jego uruchomieniu?

Offline pozy

  • Użytkownik

# Lipiec 20, 2012, 15:45:51
@zxc: Dzięki za tytuły. Przyjrzę się w wolnym czasie.

mihu: Jest pełna dowolność budowania. Możesz zrobić nawet chodzący tłuczek do mięsa i nim grać, jeśli chcesz;).

Blink: Będzie możliwość zapisywania i wczytywania własnych konstrukcji. Właściwie to już prawie jest. Przed walką, gracze będą uploadować na serwer pliki z zapisanymi robotami, którymi chcą grać.

Offline pozy

  • Użytkownik

# Lipiec 25, 2012, 01:28:55
Krótki raport:

Cały czas męczę się nad multiplayerem.

Zrobiłem serializowanie aktualnego stanu gry na i odtwarzanie go w postaci wyrenderowanego obrazu. Wszystko zrealizowane tak, żeby działało przez UDP, czyli wysyłamy dane małymi pakietami, a jak nawet część zaginie to i tak nic poważnego się nie stanie. Co prawda samo przesyłanie przez sieć jeszcze nie działa, ale to już pikuś. Wykorzystam do tego celu bibliotekę asio z boosta.

Z nieco ponad 1500 linijek kodu zrobiło się przez to prawie 3000, a dla gracza i tak wszystko wygląda tak jak wcześniej... Trochę to demotywujące:).

Następny etap to przesyłanie komend sterujących robotem od klienta na serwer. Może do końca tygodnia będzie już działać.

Offline pozy

  • Użytkownik

# Sierpień 06, 2012, 00:58:07
Muszę na jakiś czas przerwać pracę nad grą. Przez prawie cały sierpień mnie nie ma w domu. Teraz tylko na 1 dzień wpadłem. We wrześniu powinno wszystko przyspieszyć.

Offline pozy

  • Użytkownik

# Październik 11, 2012, 22:10:05
Jakby ktoś był ciekawy, to projekt żyje i cały czas coś w nim piszę.

Zakopałem się ostro w programowaniu multiplayera. Było ciężko, sporo się nauczyłem i ostatecznie w miarę to działa:).

Niestety gra nie bardzo nadaje się na razie do publikacji, więc nie weźmie udziału w WSoC. Mimo to postaram się ją dokończyć i jak tylko będę mógł, to udostępnię:).

Offline Enignum

  • Użytkownik

# Październik 11, 2012, 23:35:02
Jak to powiedział matthew: to może być świetne !
Naprawdę świetne :)

Później dodać lekką oprawę graficzną, ten multik i mamy niezłego zjadacza czasu bo ludzie lubią rywalizować na swoje konstrukcje :)