Buenas!
Empiezo el post indicando que no soy desarrollador de videojuegos, pero tenía que hacer unas pruebas con Socket.IO (una librería javascript para conexión vía Sockets y eventos) y haciendo pruebas se me ocurrió que la mejor manera de profundizar en la librería podría ser un juego.
Debido a esto, estoy desarrollando un juego tipo UNO íntegramente en tecnologías web (html, css, javascript) y mi idea es que, una vez lo acabe, reutilizar parte del motor que he montado para que, cambiando reglas e imágenes, pueda montar otros tipos de juego de cartas ( tipo brisca, burro, mentiroso, etc... vamos juegos de hoy de siempre xDD )
Hilo
Mi idea con este post es obligarme a terminarlo, tener un sitio donde ir poniendo como evoluciona, apuntar y corregir las cosas que encuentre (o que encontreis si os da por jugar alguna partida xD ) y si alguien se anima y da algo de feedback, pues lo corregiré o implementaré (seguramente lo primero, que sobretodo habrán bugs xD)
Tecnologías
Como he comentado, está realizado con tecnologías web, utilizando NodeJS y SocketIO en el servidor y Nuxt/Vue en el cliente.
Diseño
Como tengo 0 idea de diseño, en lo referente al apartado visual la verdad que no le he dedicado apenas tiempo y prácticamente todo es "placeholder" hasta las cartas, aunque estas se han diseñado en figma para no utilizar las cartas originales de UNO, ya que tienen copyright.
Tengo unas amigas que acaban de terminar de estudiar cosas de diseño y si tienen algo de tiempo, le darán una vuelta a todo en general y a nada en particular.
Estado actual
Pues actualmente, creo que si no se hacen cosas raras se pueden hacer partidas completas, aunque faltan unos cuantos indicadores durante la partida como el aviso del UNO o a quien le toca el turno por ejemplo, pero quedan hacer muchas pruebas, sobre todo en distintos dispositivos.
Bugs / Mejoras / Pendiente
Por aqui dejaré la lista de cosas que voy pensando y están pendientes, así como los bugs que voy encontrando y tacharlos cuando los haya solucionado.
- FRONT: Antes de la partida
- Crear una lista de las partidas "publicas" para poder entrar en partidas existentes
- Poner las URLs de mencion de las imágenes de los avatares
Precarga de las imágenes de las cartas para el usuario antes de entrar a la partida- Poder echar a alguien de una partida que has creado
- FRONT: En partida
Indicar visualmente el turno de la persona a la que le toca tirar (si es tu propio turno, tienes el botón de "pasar turno")Reproducir un sonido cuando sea tu turno- Agregar notificaciones visuales de eventos ( +2 , +4 , saltar turno, cambiar sentido, pasar turno )
A veces, al empezar la partida, se queda el "loading" (si se hace F5 se sigue jugando normal)- Pensar otro planteamiento para el botón de UNO (es un poco dificil tirar la última carta y darle al btn de UNO antes que el resto de jugadores)
- Ventana de "ayuda" para indicar algo básico del juego, reglas activadas, etc..
Poner un botón para volver a la home desde la partida
- FRONT: Otros
- Limpiar codigo anterior (se ha cambiado parte del codigo al pasar de un máx de 4 personas a 8 personas)
- SERVER:
- Estructurar el código para poder reutilizar partes del motor para otras mecánicas
- Implementar un sistema de serialización por si se reinicia el server, recargar las partidas activas y asociar las nuevas conexiones a las mismas
Pantallazos
Página
Os dejo por aqui la página: https://pichesi.com
Pues ale, vaya turra os he dado xDD