Oryginalna strona colobot.cba.pl umarła, gdy cba.pl przestało oferować darmowy hosting. To jest statyczny mirror, pobrany w 2018. ~krzys_h
 
Polski Portal COLOBOTa
COLOBOT Polish Portal

Multiplayer - MULTIPLAYER

COLOBOT - 05-07-2008, 11:52
Temat postu: MULTIPLAYER
Uwaga, uwaga! Wymyśliłem, w jaki sposób może być rozwiązana kwestia multiplayera.
Niestety już na samym początku wiem, że zawsze będą z tym kłopoty i będą pojawiać się błędy w grze, ale po zastosowaniu pewnych ograniczeń stworzenie trybu multiplayer w COLOBOCie jest realne.

Będzie to wymagać stworzenia programu - klienta. Mam nadzieję, że ktoś się tego podejmie, bo ja jeszcze nie znam C++ ani Javy.

A program będzie działał w sposób następujący:
1. Program musi znać IP komputera przeciwnika. W tym celu pojawia się okienko, gdzie można wpisać IP kolegi, z którym będziemy grać (można też zrobić, aby program sam wyszukiwał przeciwników, ale to wymaga więcej pracy i serwera).
2. Po odpaleniu programu uruchamiany jest drugi program, który określony jest w pliku konfiguracyjnym (colobot.exe). Gdy ten drugi program zostanie zakończony, wtedy "klient" również się wyłącza.
3. Program będzie monitorował dwa pliki zapisane w folderze, który też jest podany w konfiguracji. Nazwy powiedzmy: up.txt i down.txt.
4. Cyklicznie, co jak najkrótszy czas program wysyła plik up.txt do przeciwnika i odbiera od niego plik down.txt. Plik down.txt zostaje nadpisany informacją "przybyłą" z sieci.

Mniej więcej tak to by wyglądało. Reszta to kwestia programowania w samym COLOBOCie. Na obrzeżach mapy umieszcza się inżyniera, który monitoruje wszystkie nasze ruchy (ułożenie robotów itp.) i zapisuje do up.txt oraz wydaje rozkazy robotom przeciwnika, które ma zapisane w down.txt.

Najłatwiej by się grało gdyby obaj gracze korzystali z tego samego dysku (np. sieciowego), wtedy dodatkowy program byłby niepotrzebny, ale niestety nie ma tak lekko ;) .

mrowek - 05-07-2008, 13:49
Temat postu: RE: MULTIPLAYER
nic nie zrozumiałem ale multiplayer to dobry pomysł
Ball - 06-07-2008, 16:09
Temat postu: RE: MULTIPLAYER
A czytałeś całe? Pierwsze 2 punkty to coś jak w trojanach :D
mrowek - 06-07-2008, 16:27
Temat postu: RE: MULTIPLAYER
a co myślisz o muliplayerze? hę? a propo czytałem całe:D

ps. zrób se podpis!!!

// Po co tyle wykrzykników? Po co pogrubienie czegoś takiego? -adiblol

Ball - 07-07-2008, 15:38
Temat postu: RE: MULTIPLAYER
Również uważam, że to dobry pomysł, tylko ciekawi mnie czy wejdzie w życie.

PS. Po co mi podpis? Podpis to tylko głupie pierdoły pod postem :/
// Popieram -adiblol

mrowek - 07-07-2008, 17:28
Temat postu: RE: MULTIPLAYER
tak jest!

aha i jeszcze jedno : przepraszam.
i spytam się kuzyna na temat tego multiplayera.bo mój kuzyn zna się na tym najlepiej:D(tak myślę).

mrowek - 08-07-2008, 12:12
Temat postu: RE: MULTIPLAYER
skończmy już z naszymi konfliktami ok?

a z multiplayerem to jest problem ponieważ muszę pokazać kuzynowi tą grę a on przyjeżdża do mnie dopiero w sierpniu :(

adiblol - 01-08-2008, 18:45
Temat postu: RE: MULTIPLAYER
Jest problem: INŻYNIER CZY W OGÓLE COKOLWIEK PROGRAMOWALNE NIE MA MOŻLIWOŚCI TWORZENIA ROBOTÓW I BUDYNKÓW !!! Można tworzyć jedynie itemki i obcych.
Chyba żeby przerobić produce ... ale to wymaga grzebania w exe'ku lub dostępu do kodów źródłowych.

Idea bdb! Tylko jeśli np. byłaby walka między jednym a drugim graczem to wtedy liczą się milisekundy i takie zapisywanie powodowałoby albo zacinanie gry (jeśli duża częstotliwość zapisywania) albo lagi (jeśli mniejsza).

Ponadto aby zminimalizować transfer należałoby zastosować kompresję lub obróbkę danych z plików in.txt i out.txt ...

DemoLisH - 22-11-2008, 13:09
Temat postu: RE: MULTIPLAYER
wszystko dobrze tylko po co te pliki nie lepiej przyslac informacje o polozeniu pojazdu, a druga osoba to odbierze i klient wklepie informacje za pomoca WriteProcessMemory do pamieci procesu 2 osoby
COLOBOT - 22-11-2008, 15:16
Temat postu: RE: MULTIPLAYER
Po to, żeby właśnie dzięki nim druga osoba mogła to odebrać. Nie zrozumiałeś dokładnie jak miałoby to działać. Programy byłyby uruchamiane bezbośrednio w C-Bot, a w tym wypadku bez plików się nie obejdzie.

Poza tym temat jest już stary i, jak widać, omawia dawne technologie.

DeiDara - 30-01-2009, 17:32
Temat postu: RE: MULTIPLAYER
są jakieś postępy z MULTIPLAYERem???
lukas_j - 04-02-2009, 15:19
Temat postu: RE: MULTIPLAYER
ech, ale nie koniecznie walka, ni koniecznie to musa byc przeciwnicy, powinno byc tez do sojuszu opcja, ze graja w sojusze przeciw obcym, a dzialalo by to podobnie jak multiplayer do gta sa, wlaczalo by sie i ladowalo by mapke i polozenie obiektow z jakiegos pliku... ;] i przydalby sie jeszcze chat jakis tam, zeby gadac, ale z tym to juz chyba problemu nie bedzie ;] ale jest jeden, jak sie polaczyc, potrzebny bylby jendak serwer... bo jak oboje sa w roznych sieciah i maja wewn. ip?? to sie nie da grac wtedy... ;/i to jest glowne ograniczenie! Co prawda na skype da sie to ominac, bo to inna technologia, ale to chyba za trudne ;( ale co to komu szkodzi postawic serwer?? :P
DOJO - 27-02-2009, 21:49

Czat? Mógłby być podobny do tego jaką jest message("Hej ziom!"); Pewnie by to odebrał..
Tyle też, że przydał by się filtr takich wiadomości. Na przykład wiadomość o wyprodukowanym tytanu gracza 1 chyba nie powinna być pokazywana graczowi 2?

PS: Mogłaby też być opcja wyścigów z przeszkodami tak jak w Ceebot albo, kto zniszczy więcej dynamitów. (Ale kto ci to magicznie zrobi... Ja się dopiero uczę prawdziwego C++.. :-x )

0judge0 - 07-06-2010, 10:36

Witam jako że lubię Colobota, a ten pomysł mnie zaintrygował to w ramach treningu javy zrobiłem sobie taki program.

No więc tak, po rozpakowaniu rara w głównym katalogu gry, mamy w folderze files program klijentserver. Uruchamiamy go (jest napisany w javie więc wymaga wirtualnej maszyny javy) no i wiadomo jeden gracz tworzy server a drugi się do niego dołącza (musi znać jego ip). Po udanym połączeniu obydwaj włączają grę i jeden z nich wybiera server map a drógi klijent map.

Jest kilka problemów, głównie chodzi o programy napisane w colobocie, nie znam się aż tak dobrze na tym języku więc jak na razie można tylko poruszać się po mapie i nic więcej, ale mam nadzieję że userzy tego forum rozwiną ten projekt.

Program był testowany na sieciach LAN więc jeśli nie będzie się chciał połączyć przez internet należy użyć programu Hamachi do tworzenia sieci.

Jeszcze mała podpowiedź dla tych co będą ulepszać multiplayer. Najlepiej testować programy tak że:
-mamy dwie kopie gry na dysku
-i w jednej i w drugiej kopii uruchamiamy program a ip pozostawiamy 127.0.0.1
-dzięki temu mamy połączenie między dwiema kopiami programów

Linki:
Maszyna javy
Multiplayer

Bartek c++ - 07-06-2010, 11:16

Wow! Dobry jesteś!
adiblol - 07-06-2010, 13:30

Rozwiną projekt jeśli dasz mu wolną licencję, najlepiej GNU GPL v3, w ostateczności BSD.

Dopóki nie ma źródła to nic nie da się zrobić. Podziwiam, ale nadal jest to realizacja przestarzałego pomysłu: lepiej polegać na ReadProcessMemory i WriteProcessMemory.

Bartek c++ - 07-06-2010, 13:46

Średnio znam się na javie ale mógł bym ulepszyć tego moda o: programowanie botów, wrogów i inne.
Bartek c++ - 07-06-2010, 14:50

0judge0 napisał/a:
Witam jako że lubię Colobota, a ten pomysł mnie zaintrygował to w ramach treningu javy zrobiłem sobie taki program.

No więc tak, po rozpakowaniu rara w głównym katalogu gry, mamy w folderze files program klijentserver. Uruchamiamy go (jest napisany w javie więc wymaga wirtualnej maszyny javy) no i wiadomo jeden gracz tworzy server a drugi się do niego dołącza (musi znać jego ip). Po udanym połączeniu obydwaj włączają grę i jeden z nich wybiera server map a drógi klijent map.

Jest kilka problemów, głównie chodzi o programy napisane w colobocie, nie znam się aż tak dobrze na tym języku więc jak na razie można tylko poruszać się po mapie i nic więcej, ale mam nadzieję że userzy tego forum rozwiną ten projekt.

Program był testowany na sieciach LAN więc jeśli nie będzie się chciał połączyć przez internet należy użyć programu Hamachi do tworzenia sieci.

Jeszcze mała podpowiedź dla tych co będą ulepszać multiplayer. Najlepiej testować programy tak że:
-mamy dwie kopie gry na dysku
-i w jednej i w drugiej kopii uruchamiamy program a ip pozostawiamy 127.0.0.1
-dzięki temu mamy połączenie między dwiema kopiami programów

Linki:
Maszyna javy
Multiplayer

Ten mod działa! W internecie!Tylko brak połączenia w neostradzie...

0judge0 - 08-06-2010, 09:18

Mówiąc o rozwinięciu projektu miałem nie miałem na myśli ulepszenia programu javowego, a colobotowe programy robotów, bo na razie potrafią tylko jeździć i nic więcej.

Co do ReadProcessMemory to jeśli potrafił byś to zrobić to mogę udostępnić źródło.

Bartek c++ napisał/a:

Ten mod działa! W internecie!Tylko brak połączenia w neostradzie...


Brak połączenia? A próbowałeś hamachi jak radziłem?

adiblol - 08-06-2010, 10:26

Nie potrafiłbym bo nie mam windy.
COLOBOT - 08-06-2010, 17:11

Ja bym mógł coś pokombinować, ale głównie z interfejsem.
Poza tym dwie uwagi:
-Komputer podłączający się to klient, nie ma tam "j"
-Wygodniej by było zarówno nam, jak i tobie, abyś się zarejestrował. Dzięki temu będziemy mogli komunikować się nie tylko przez ten wątek, ale również przez opcję prywatne wiadomości oraz e-mail (który nie jest nikomu udostępniany, masz również możliwość zrezygnowania z otrzymywana maili).

Zwłaszcza, że niedługo zostanie wprowadzona restrykcja dostępu dla niezarejestrowanych (z uwagi na narastający spam) oraz specjalne działy dostępne jedynie dla zarejestrowanych użytkowników.

Emxx52 - 08-08-2010, 16:20

Ja nie mogę wejść w ten link multiplayer. :-/ Znaczy mogę ale jest napisane, że plik został usunięty.
Simbax - 09-08-2010, 11:41

Cytat:
This file has been deleted. Please contact the uploader and ask them to upload the file again. sendspace is not able to help you in this matter.


Chyba usunął :( Mógłby to ktoś wstawić jeszcze raz? Może udałoby mi się w końcu kolegę namówić do zagrania w Colobot-a, jeśli to oczywiście działa ;p

Emxx52 - 11-08-2010, 15:19

Wysłałem do niego PW. Może odpisze.
0judge0 - 13-08-2010, 22:04

Prosze bardzo Link

Jak by jeszcze coś to wolałbym przez gg 6803173 bo Firefox i anty wir nie chcą mnie wpuszczać na to forum :)

krzys_h - 12-12-2010, 15:42

Mógłby ktoś zrobić reupload tego programu :?:
DemoLisH - 01-01-2011, 17:00

Działanie multiplayera:


SERWER

- w nim będą ustawiane wszelkie opcje
- serwer jest własnością tego kto go założył czyli wszelkie ważne informacje na temat postępowania innych graczy będą wysyłane do niego
- klient gracza będzie powiadamiał serwer co aktualnie robi(strzela, jedzie itp.) a serwer będzie to rozsyłał do innych graczy(tak będzie nie tylko możliwość 1v1, w grze będzie mogło uczestniczyć paru graczy)
- na bieżąco będzie kontrolował czy ktoś nie używa oszustw w grze
- będzie dbał o płynność gry

KLIENT

- będzie wysyłał do serwera informacje dot. położenia jego obiektów
- serwer będzie wysyłał do niego informacje dotyczące postępków innych graczy(które, będą wprowadzane w pamięć jego procesu)
- będzie wysyłał informację do serwera czy gracz jest nadal w grze

BUDOWA MAPY

Jak wiecie główne pliki mapy to sceneXXX.txt, do każdej mapy będzie musiał być dodany plik MPXXX.txt
Przykład: Jeśli plik twojej mapy to scene002 to ten plik powinien się nazywać MP002.txt
Przykład2: Jeśli plik twojej mapy to scene783 to ten plik powinien się nazywać MP783.txt
Będą w nim przechowywane informacje na temat mapy typu:
-Max ilość graczy na mapie
-Które boty należą do którego gracza
itp.

Berserker - 02-01-2011, 02:06

A co jesli ktos zechce sie podlaczyc juz w trakcie gry? I czy bedzie mozna rozroznic za pomoca komendy radar() poszczegolne druzyny? No i co z pisaniem programow w trakcie gry?
DemoLisH - 02-01-2011, 11:23

w trybie deatchmatch każdy gracz będzie miał po 1 bocie(boty vs boty), a coorporate po kilka(i będzie to walka z owadami)
No i w tym momencie problem z radar się rozwiązuje sam, w trybie deatchmatch nie musisz się martwić, że wykryje twojego bota, bo każdy ma tylko po 1, w coorporate masz kilka, lecz jest to walka z owadami, czyli radarujesz owady

adiblol - 02-01-2011, 12:07

Aby roboty były nieradarowalne można im ustawić proxyActivate=1, proxyDistance=0, selectable=0 (oczywiście przez grzebanie w pamięci, nie w pliku misji ;) ).
DemoLisH - 02-01-2011, 12:10

a w pliku misji coś takiego jest?
krzys_h - 02-01-2011, 12:23

Tak, coś takiego jest w pliku misji. Oznacza to, że komunikat "Znaleziono użyteczny przedmiot" pojawia się po zbliżeniu się do bota na odległość 0m, co jest niemożliwe, bo musiały by być dokładnie na tej samej pozycji X Y Z. A boty przez siebie nie przenikną, poza tym tak dokładne ustawienie botów jest możliwe tylko przy tworzeniu misji albo grzebaniu w pamięci ;)

EDIT: Zapomniałem o selectable=0. Oznacza to, że bota nie da się zaznaczyć.

PS. Ale się rozpisałem...

Apus - 02-01-2011, 12:34

krzys_h napisał/a:
Tak, coś takiego jest w pliku misji. Oznacza to, że komunikat "Znaleziono użyteczny przedmiot" pojawia się po zbliżeniu się do bota na odległość 0m, co jest niemożliwe, bo musiały by być dokładnie na tej samej pozycji X Y Z, a boty przez siebie nie przenikną, poza tym tak dokładne ustawienie botów jest możliwe tylko przy tworzeniu misji i grzebaniu w pamięci ;)

PS. Ale się rozpisałem...


Nie jestem pewien, ale robot może przelecieć wysoko nad obiektem z proxyactivate=1 i go znaleźć. Chyba działa też trik z ogniwem.
Ctrl break noclip.

adiblol - 02-01-2011, 12:40

Właśnie po to dałem selectable=0 żeby trik z ogniwem nie działał. :>
krzys_h - 02-01-2011, 12:47

Dobra, tylko jak ustawisz robota na tej pozycji z dokładnością 0.01m :?:
Apus - 02-01-2011, 12:56

krzys_h napisał/a:
Dobra, tylko jak ustawisz robota na tej pozycji z dokładnością 0.01m :?:

Programem :mrgreen:
Kod:

object bot;
bot = radar(kategoria bota);
while (bot.position.z + 5 > this.position.z) {jet(0.5); wait(0.1);}
turn(direction(bot.position));
move(distance(position,bot.position);
while (bot.position.z == this.position.z) {jet(-0.5); wait(0.1);}

DemoLisH - 02-01-2011, 13:15

a możecie mi wypisać wszystkie parametry CreateObject jakie istnieją? i co oznaczają
krzys_h - 02-01-2011, 13:46

Masz bana na google :?:
Proszę bardzo: link

DemoLisH - 02-01-2011, 18:06

nie, wyjechałem i nie miałem czasu, a tak to jak wróciłem to już mam
adiblol - 02-01-2011, 18:11

DemoLisH: błagam, naucz się robienia własnych poziomów, taka wiedza jest konieczna... :roll:
Raptor - 02-01-2011, 22:10

I prostsza niż programowanie. Ja na przykład nadal średnio umiem CBot, a z levelami nie mam żadnych problemów (czasu na ich tworzenie również nie mam ;-) ).

Poza tym jak się zmobilizuję, to wstawię do odpowiedniego działu swój pierwszy, ukończony i bardzo oryginalny user level, ale to bedzie niespodzianka :-) .

DemoLisH - 02-01-2011, 22:16

W języku CBot umiem wszystko, a map nigdy nie tworzyłem, kiedyś jak byłem młodszy to pamiętam, że kilka razy czytałem jakiś poradnik, ale nie pociągało mnie tworzenie map.
Berserker - 02-01-2011, 22:44

Dla mnie Cbot jest duzo prostszy niz tworzenie map, nigdy nie wiedzialem jak to sie robi, zeby ladnie to wygladalo :)
Simbax - 21-06-2011, 21:10

Reupload multiplayera od 0judge0: http://dl.dropbox.com/u/1...ayerBeta0.1.rar

Przepraszam, zapomniałem tu napisać, a link w SB się dawno zgubił :>

dawid960 - 28-06-2011, 09:36

Chcę przetestować multiplayer z moją siostrą albo kolegą.

[ Dodano: 28-06-2011, 10:09 ]
Jestem połączony proszę wybrać serwer test .

[ Dodano: 28-06-2011, 10:11 ]
adres 127.0.0.1
//HAHAHA! 127.0.0.1 (inaczej localhost) zawsze się odwołuje do własnego komputera czyli np. jak ja próbowałbym się połączyć to łączyłby się z moim własnym komputerem. Któż by tego nie wiedział? Dawdek - krzys_h!
//Nie zauważyłem następnych postów :P - krzys_h

karpol600 - 29-06-2011, 22:32

dawid960 napisał/a:
Chcę przetestować multiplayer z moją siostrą albo kolegą.

[ Dodano: 28-06-2011, 10:09 ]
Jestem połączony proszę wybrać serwer test .

[ Dodano: 28-06-2011, 10:11 ]
adres 127.0.0.1

Miałem, kiedyś na tym forum konto. Regularnie lookam, bo interesuję się postępami nad projektem Colonization. Jednak, gdy zobaczyłem ten Twój adres, to musiałem założyć konto, by Cię uświadomić, że adres=127.0.0.1 w rzeczywistości jest adresem zwrotnym(technicznie), czyli tak jakby Twoim, co na niego wyślesz wraca do Ciebie, jak się z nim łączysz to z samym sobą, zatem kolega się przy jego pomocy z Tobą nie połączy co najwyżej z sobą.

Apus - 30-06-2011, 10:47

karpol600 napisał/a:
dawid960 napisał/a:
Chcę przetestować multiplayer z moją siostrą albo kolegą.

[ Dodano: 28-06-2011, 10:09 ]
Jestem połączony proszę wybrać serwer test .

[ Dodano: 28-06-2011, 10:11 ]
adres 127.0.0.1

Miałem, kiedyś na tym forum konto. Regularnie lookam, bo interesuję się postępami nad projektem Colonization. Jednak, gdy zobaczyłem ten Twój adres, to musiałem założyć konto, by Cię uświadomić, że adres=127.0.0.1 w rzeczywistości jest adresem zwrotnym(technicznie), czyli tak jakby Twoim, co na niego wyślesz wraca do Ciebie, jak się z nim łączysz to z samym sobą, zatem kolega się przy jego pomocy z Tobą nie połączy co najwyżej z sobą.


Sorry za offtop, ale: ignoruj dawid960 i jego multikonta, bo to dziecko neo, teraz pewnie chce sobie zagrać w multiplayer, a nie wie nawet jak to zrobić.

PoxiPol - 02-05-2012, 13:02

Refresh. Niedawno na shoucie widzielismy filmik, gdzie ktos przerobil colobota na funkcjonujacy multiplayer. Jesli nie jest to nikt z forum, albo stary uzytkownik forum, najlepiej by bylo jak najszybciej z ta osoba nawiazac kontakt.

/// Pozwolę sobie dorzucić ten filmik dla względów estetyki. - Raptor
http://www.youtube.com/wa...feature=related

Homer - 29-05-2012, 20:01

Witajcie ;-)

Otóż skontaktowałem się z dwoma twórcami multiplayerów "Quarana i Mr_KoKa"
Ich Autorzy przesłali mi kody źródłowe swoich MultiPlayerów.
zamierzam kontynuować ich prace i stworzyć długo oczekiwany przez graczy tryb MultiPlayer do naszego Colobota :-)

PS

Niedługo ruszy strona projektu na której będą zamieszczane wyniki mojej pracy ;-)

Mrocza - 29-05-2012, 22:22

Wielu próbowało... Niewielu podołało...

Próbuj. Nadziei bym sobie jednak nie robił.

Emxx52 - 29-05-2012, 22:33

Może zamiast tworzyć stronę to wstawilbyś to tutaj (jeżeli oczywiście nie jest to kolejny trolling). Robienie strony na ten projekt mym zdaniem bez sensu
Raptor - 30-05-2012, 00:06

Mamy kod źródłowy CoLoBoT'a i zaimplementowanie tego w grze byłoby bardziej na miejscu niż robienie tego jako "osobny projekt".
Emxx52 napisał/a:
(jeżeli oczywiście nie jest to kolejny trolling)

Emxx, więcej zaufania, każda pomocna dłoń jest tu mile widziana. Tym bardziej, że do tej pory prawie nic sami nie dokonaliśmy.

Oczywiście zapraszamy do nas i miło by było, gdyby Quarana i Mr_KoKa również dołączyli do naszego wspólnego projektu popularyzacji CoLoBoT'a.

Emxx52 - 30-05-2012, 17:11

Kurrr dwa razy post pisać. Wiecie ile na moim fonie to jest roboty? Bo nie mogę cytowac, ręcznie muszę wpisywać
Cytat:
prawie nic sami nie dokonaliśmy.

No tak... Ja bym powiedział, że trochę więcej niż 'prawie nic'. Jeszcze dokonamy...


Powered by phpBB modified by Przemo & WRIM © 2003 phpBB Group