El título es un poco engaño, ya que llevo un tiempo con el desarrollo, pero vamos a hacer como que empezamos ahora para poder explicar algunas cosas.

La primera responde a la pregunta de «por qué un juego de navegador», «por qué no usar Unity» y derivados de «dónde están los gráficos». A la hora de pensar el juego ya tenía una idea preconcebida de qué quería que fuese y en esa idea no cabían los gráficos. Me explico: mi primera intención fue hacerlo en Unity, ya que nunca había trabajado con ello y quería aprender, pero al empezar me di cuenta que no era necesario. El personaje se desplaza en un mapa con simples punteros, las pantallas son estáticas, no es un plataformas o un RPG al uso donde hace falta mover al personaje con controles sino que todo se hace a golpe de ratón. Y para cada cosa su herramienta: el día que me aventure a crear un juego en 2d de plataformas usaré Unity, pero para hacer este juego no es la herramienta más apropiada.

La segunda viene de mi inspiración para hacer el juego. Aunque voy tomando distintas ideas de distintos sitios mi inspiración principal es DopeWars.

Para quien no lo conozca: en esencia eres un traficante, vas por los distintos barrios de Nueva York comprando droja al menor precio posible y vendiéndola al mayor precio. Tienes un presupuesto, dinero que debes a mafiosos, y te enfrentas a la policía de forma aleatoria. Muy simple pero engancha. Y la primera versión de Fullset busca algo parecido: tomar el concepto de comprar y vender, viajar a distintos lugares, tener un presupuesto y al terminar la partida tener una puntuación. Claro que con diferencias, como que en Fullset debes conseguir todos los juegos como objetivo, que hay muchas tiendas donde viajar para comprar… creo que se entiende.

Y la tercera: este juego lo hago principalmente para divertirme yo mismo, tanto jugando con él como desarrollándolo. Tampoco quiero dar cátedra, simplemente me siento cómodo compartiendo el proceso para aclarar mi mente y por si a alguien le sirve como inspiración o le es útil mi código.

Con todo esto dicho vamos a la parte técnica.

POR DONDE EMPIEZO

Y así reza el título del post. Para empezar hay que elegir armas: creo la aplicacion en .NET 8 basándome en Clean Architecture. El principal motivo es que es una arquitectura que he tocado poco y quiero profundizar en ella, y me siento bastante cómodo. También porque confío en trabajar mucho con eventos.

Para el frontend usaré Blazor. Llevo ya unos cuantos años con proyectos que usan Razor y me parece el salto más natural. En cualquier caso no sería difícil cambiar a Angular o React, pero hay que elegir un punto de partida y éste será el mío.

Usaré una base de datos MySQL. Esto por inercia también, y de igual modo se puede cambiar de forma rápida a PostgreSQL o SQL Server.

Para hacer pruebas y el posterior despliegue me monté un servidor con un Xeon y Proxmox: ahí tengo Docker, un servidor de Redis para cuando haya que usarlo, MinIO para las imágenes, etc.

En el próximo post empiezo a poner el proyecto al día sobre por dónde vamos, qué hay implementado y por donde voy a seguir. Stay tunned!