La pregunta es simple. En el juego, que es de carreras, puedes jugar, comprar vehiculos, ganar partidas dinero experiencia subir de nivel desbloquear vehiculos y funciones etc. Pero en medio de la carrera, todo es por turnos. Corres tu y luego corren los demás. Y luego quedas en una posicion y segun tu posicion ganas un dinero u otro.
Pero como puedo hacer para que el juego no sea por turnos? Que tu puedas actuar o no, acelerar o no, y aun asi el resto de los corredores sigan jugando independientemente de si pulsas o no las teclas?
No necesito que me hagais el codigo, solo que me digais cual deberia ser la mecanica y yo la implemento.
No mola un juego de carreras por turnos xD
entre Desarrolladores
Recibe ayuda de expertos
Registrate y pregunta
Es gratis y fácil
Recibe respuestas
Respuestas, votos y comentarios
Vota y selecciona respuestas
Recibe puntos, vota y da la solución
Pregunta
Haciendo un juego simple para practicar. Java. NetBeans
- preguntó
- Software
- 2082 Vistas
- 1 Respuestas
- solucionada
1 Respuesta
Hola @Demrottens,
para hacer un jugo multijugador hay varias estrategias y "motores de juego" que lo resuelven, pero en este caso, siendo un ejercicio práctica para aprender, será más útil mojarse y meter mano ;-)
En rigor, si querés que un software haga varias cosas a la vez, tenés que usar algún tipo de programación multihilo o multiproceso. En la práctica, los threads o los forks sirven para lo mismo, pero cuestiones del sistema operativo destino hacen que sea más eficiente crear un hilo o una tarea.
En Java, el enfoque es multithread, pero la implementación de la Máquina Virtual lo puede implementar como thread o fork según la plataforma.
De todas formas, si tu juego tiene interfaz de texto, podrías también usar una muy vieja aproximación, más simple, que es la que se usaba en los primeros juegos, como el Pong, en que todo era un único proceso: el juego corre en un bucle que va mirando si un jugador envió un comando (acelerar, frenar, doblar, etc) y con esos parámetros hace avanzar al auto solo un poco, para luego ver lo que hace el segundo jugador, y el tercero, etc.
De esta manera todos van avanzando un poco por turnos muy cortos, y en caso de que al momento del turno no haya cambios, se ejecuta la movida con los valores que tenía en el ciclo anterior.
Esto funciona de veras bien, y la limitación que tiene también la tiene el hacerlo multithread: el teclado no podrá enviar 2 teclas a la vez, con lo que la concurrencia pasa a estar limitada por el hardware de entrada, que es muchísimo más lento que la CPU.
Saludos cordiales!
Por favor, accede o regístrate para añadir un comentario.
Por favor, accede o regístrate para responder a esta pregunta.
En el blog
-
- 689706
- 1
- Jul 5, 2015
Sin Respuesta
-
- 88
- 0
- Oct 18
-
- 167
- 0
- Jul 9
-
- 541
- 1
- Mar 19
-
- 416
- 2
- Feb 26
-
- 4790
- 0
- Nov 7, 2023
-
- 481
- 0
- Sep 19, 2023
-
- 465
- 0
- Ago 21, 2023
-
- 637
- 0
- May 14, 2023
- ver todas
Preguntas relacionadas
- Creando juego de carreras basado en texto para practicar java
- Uso de Netbeans con proyectos web grandes con XML
- Netbeans me corre el proyecto pero no me lo muestra (solo es en el proyecto que hice otros proyectos me los ejecuta).
- ¿Cual es el problema con los arrays y el switch en java?
- Evento key released en java. ¿Como?
Actividad Reciente
alyvrs preguntó Oct 19
Ayuda , necesito mostrar datos creados solo por el…ManHol preguntó Jul 9
pasar un archivo de excel a csv en pythonArtEze respondió Abr 24
Alguien sabe, no me ignorenArtEze seleccionó una respuesta Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze preguntó Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió Abr 24
No me deja instalar OracleArtEze respondió Abr 24
Formulario que guarde los datos de un jsonArtEze comentó Abr 24
Script /boot/ scrapingSantiago2610 comentó Mar 23
Acualizar ChoiceField en django
Ultimas Preguntas
Preguntas relacionadas
- Creando juego de carreras basado en texto para practicar java
- Uso de Netbeans con proyectos web grandes con XML
- Netbeans me corre el proyecto pero no me lo muestra (solo es en el proyecto que hice otros proyectos me los ejecuta).
- ¿Cual es el problema con los arrays y el switch en java?
- Evento key released en java. ¿Como?
Usuarios Top
- Leonardo-Tadei
- 227320 Puntos
- Peter
- 150480 Puntos
- white
- 75880 Puntos
- carlossevi
- 63580 Puntos
- magarzon
- 30650 Puntos
- pregunton
- 20400 Puntos