Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Juego Server-Cliente (https://www.clubdelphi.com/foros/showthread.php?t=89998)

RaulSaez 16-03-2016 16:03:26

Juego Server-Cliente
 
;)Amigos, tengo DELPHI 2009 y tengo el siguiente problema y no tengo ni la menor idea:
Me gustaría hacer un jueguito sencillo… lo más sencillo posible, pero que conecte dos maquinas en una red local… a ver pondré un ejemplo para que así podáis ayudarme… digamos que sea un juego de cartas tal que el juego procede a turnos, juega un Player y luego juega el otro player…. No es muy bueno pero de aquí puedo sacar algo:
-Como establecer la conexión... (una maquina debe hacer el SERVER, y el otro el CLIENTE)?¿?
-Como hago para que de mi aplicación saber que ha pasado en el turno del otro player, para actualizar el estado del juego….
Disculpen que todo sea tan abierto el problema es que no es como hacer ninguna de estas cosas aun cuando si he hecho barios jueguillos.
Si alguien conoce donde descargar algún ejemplo lo agradezco también!!!

fredo 16-03-2016 16:52:04

para algo tan basico lo haria con sockets, si fuera rad studio ams actual app thetering....

RaulSaez 16-03-2016 17:19:41

Gracias amigo... puede que tenga a mi alcance el Delphi XE2, tratare entonces de buscar ejemplos de Sokets... que por supuesto no tengo ni idea...jajaja bueno quisas una idea:p

Ñuño Martínez 16-03-2016 17:23:45

Si realmente te interesan los juegos, y siendo novato como pareces, te recomiendo que te unas al foro de Pascal Game Developers.

Respecto a tu pregunta concreta, no hay una solución única, y ciertamente son preguntas muy vagas difíciles de responder. Y por cómo lo preguntas coligo que nunca has hecho un programa de conexión por red. Si es así, te recomendaría que empezaras por ahí, haciendo un programa sencillo que, por ejemplo, dándole una URL conecte con el servidor, haga la petición y obtenga el archivo.

La solución cliente/servidor suele ser relativamente simple, en la que una máquina lleva el "peso" y escucha las peticiones del otro programa mientras que la esta se "limita" a informar al servidor y actualizar su estado según las respuestas del servidor. De cualquier forma, deberás definir un protocolo de comunicación* antes de escribir la primera línea de código. Incluso, te recomiendo que no empieces a definir dicho código hasta que no hayas implementado el juego en modo "sin red", bien jugando contra el ordenador, bien contra otro jugador en el mismo ordenador. De esta forma tendrás una idea más clara de dónde poner el código que manejará la red.
____________________________________

(*) Sí, deberás porque no existe ninguno, salvo que uses un motor que lo incluya, pero en ese caso ya sabrías cómo hacer la conexión. ;)

ElKurgan 17-03-2016 07:29:21

Tal ves estos enlaces te sirvan para empezar con el tema de sockets

Capitulo 10.1 - Teoría básica de comunicaciones Internet
Capítulo 10.2 - Programando Sockets en Delphi

Saludos

mamcx 17-03-2016 16:58:55

Este es uno de los tutoriales mas completos que hay que discuten este tema:

http://gafferongames.com/networking-...e-programmers/

Ahora bien, es MUCHO mas facil si haces el tema del juego "local" y lo desarrollas con un sistema de red "virtual". Si no tienes experiencia, te vas a enruedar mucho con esto.

La idea de hacer la red "virtual" es que modelas el codigo de forma tal que operas como si estuvieras en una red, pero todo es dentro del mismo programa. Asi vas a ir mucho mas rapido y la depuracion es mucho mas veloz.

Como se hace? Programas usando "paso de mensajes". En vez de llamar a funciones directamente, creas un puente que comunica a los integrantes. Ese puente luego se puede cambiar para que sea por red.

Te recomiendo que uses algo mucho mejor que sockets a pelo:

http://zguide.zeromq.org/page:all

Neftali [Germán.Estévez] 18-03-2016 13:25:28

Si no recuerdo mal, entre los ejemplos que trae Delphi, hay uno de un chat que trabaja con sockets.
Puedes abrirlo, probarlo y revisarlo.

La idea es la misma que la que tú necesitas.


La franja horaria es GMT +2. Ahora son las 04:28:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi