Statki przez sieć

0

Witam,
mam taki problem, czy nie pomoglby mi ktos z siecia w Delphi? Zaczalem pisac program, mam rozmieszczenie statkow na tablicy, ale ugrzazlem w miejscu gdyz nie wiem w jaki sposob zabrac sie za siec, uzywam Delphi 7, czytalem ze musze doinstalowac komponenty do tej wersji Delphi, ale to mi w niczym nie pomoze, bo nie wiem za ktory koniec kija złapać, bylbym wdzieczny gdyby mi to ktos wytlumaczyl, albo nakierowal w jakim kierunku isc.

[email protected]

z gory dziekuje

Pozdrawiam,
arkusp

0

Po pierwsze to że używasz Delphi 7 to nie za dużo mówi bo są różne wersje: Personal, Profesional, Enterprise itd..
W zależności jaką masz wersję możesz mieć albo nie komponenty do obłsugi sieci.

Żeby programy mogły się komunikować jeden z nich musi pracować jako serwer a drugi jako klient. Serwer nasłuchuje i czeka na połączenie od klienta. Takżę albo robisz dwie wersje programu(jedną klienta drugą serwera), co jest uproszczeniem w sposobie komunikacji, albo integrujesz wszystko w jednym programie i dajesz użytkownikowi możliwość wyboru czy chce stworzyć nową grę czy też dołączyć się do już istniejącej.
W Delphi 7 Enterprise (nie wiem jak ma się sprawa w innych wesjach Delphi 7) jest całkiem pokaźna kolekcja komponentów z rodziny Indy i ich możesz użyć do obsłużenia procesu komunikacji w grze. Oba muszą mieć przypisane odpowiednie porty:
Serwer - port nasłuchu
Klient - port z którym bedzie się łączył z serwerem

Dodatkowo klient musi mieć ustawioną odpowiednią nazwe (lub IP) serwera z którym się łączy.

Później musisz stworzyć sobie jakiś system komend czy czegoś takiego co bedziez wysyłał i odbierał w programie.

0
nul napisał(a)

W Delphi 7 Enterprise (nie wiem jak ma się sprawa w innych wesjach Delphi 7) jest całkiem pokaźna kolekcja komponentów z rodziny Indy i ich możesz użyć do obsłużenia procesu komunikacji w grze.

Z armatą na muchę...

0

a ja parę lat temu napisałem całkiem całkiem Statki w Pascalu (AI/bez, różne rozmiary planszy, konfiguracja kolorów i innych pierdół, generowanie ustawień staków, zabawa z grafiką...). jak ktoś chce dopisać partie kodu odpowiedzialną za granie po sieci to bardzo chętnie podzielę się prawami autorskimi :) (PM).
albo może ktoś ma zrozumiałe biblioteki do tego ? chociaż nawet z tym nie wiem czy by mi się chciało wracać do tej gry :/.
(to całkiem OT ale mi się przypomniało...)

0

Jeśli da się to skompilować pod FPC, to myślę, że dorobienie obsługi sieci to byłaby czysta formalność. Wszystko zależy jeszcze od tego, jak kod wygląda.

0

Jeśli kod dobrze wygląda to napisanie części sieciowej to będzie formalność.
Wszystko zależy od kodu, jak będzie kiepski to trzebaby od nowa pisać:)

0
Adam.Pilorz napisał(a)

Jeśli da się to skompilować pod FPC, to myślę, że dorobienie obsługi sieci to byłaby czysta formalność. Wszystko zależy jeszcze od tego, jak kod wygląda.

dlaczego ? chodzi o biblioteki wbudowane w FPC (tzn mam tam poszperać) ? (pisałem w BP7)

[EDIT]
a jak powinien ten kod wyglądać ? mam jedno konkretne miejsce gdzie komputer generuje (losuje lub szuka) pole (x,y) w pętli. teraz tylko potrzebuję zamiast tego nasłuchiwać z sieci na te 2 zmienne. tylko problem w tym że nigdy z siecią nie miałem do czynienia w kontekście programowania...na razie zainstalowałem FPC...

0

Robiłem, ale na socketach... działało na localu... w sieci różnie...:|

0
cr0n napisał(a)

Robiłem, ale na socketach... działało na localu... w sieci różnie...:|

Bo serwer powinien miec zew IP, jesli oba sa za NATem, to pozostaje tylko lokal, ew postawienie serwera gdzie indziej..

Zawsze mozna wykorzystac gotowe serwery, ja w mojej grze w pilkarzyki zeby grac po sieci skorzystalem z IRCa :)

0

czyli powiedzmy tcp/ip serwer i klient :|..blee..ni chce mi sie :D
Ale rade chyba dam :| :]

0

Jeśli pisałeś tylko w Pascalu, to ja się nie dziwię, że nie miałeś do czynienia z siecią :). Jeśli chodzi o FPC, to używasz sobie do tego Synapse i powinno śmigać.

0

no właśnie synapse już sobie znalazłem (inet zniknął), ale dalej nie wiem jak mam się za to zabrać. może jakieś namiary na tutorial takiej przyziemnej obsługi sieci ? domyślam się tylko że będę korzystał z protokołu TCP/IP a i tego nie jestem pewny. oczywiście dokumentacje mam w tej chwili przed sobą, ale to nic nie zmienia. qrcze.

0

No tutaj to już wszystko zależy od podejścia. Można to rozwiązać na wiele sposobów. Przykład (taki trochę w stylu Linuxowym): Piszesz dwie aplikacje: serwera i klienta (podobnie jak na Socketach) i wysyłasz serwerowi informacje o tym, gdzie strzelasz, a on odpowiada Ci, czy trafiłeś, oraz przekazuje drugiemu graczowi gdzie strzelałeś i daje mu "inicjatywę". Oczywiście aplikacja serwera może być odpalona na tym samym komputerze, co klient (w skrajnych przypadkach - obydwa klienty - zdarzało mi się graćw sieciowe gry turowe na jednym komputerze ;) ).

Drugim rozwiązaniem może być wykorzystanie jakiegoś dostępnego zewnętrznego serwera (tak jak ktoś proponował IRC), tylko najprościej by było, jakby to był jakiś serwer chodzący na protokole obsługiwanym przez Synapse. Wtedy ustalasz sobie jakiś system "komend", które wysyłasz bezpośrednio do drugiego klienta (bezpośrednio - to znaczy za pośrednictwem, ale bez interpretacji, serwera zewnętrznego).

Trzecie rozwiązanie - tak jak w większości gier sieciowych - jeden z klientów staje się serwerem ("zakładanie gry"), zaś drugi jest klientem ("podłączanie się do gry"). Reszta jak w rozwiązaniu 1.

0

ja z napisania tego kodu rezygnuję na 99%. czy tak jak napisałem wcześniej - jestem skłonny odstąpić komuś źródła żeby on to zrobił ? nie wiem.
ale szkoda żeby to światła dziennego w ogóle nie ujrzało, więc :
http://www.mytempdir.com/1138953
instalka, exec.
pozdro ;)

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