Hola Giktayms, me gustaría hablar sobre mi primer proyecto en C #. Como estoy interesado en los juegos de computadora, quería hacer algo desde esta área. Tomé una idea de una serie de juegos de
Borderlands , a saber, un sistema de generación de armas. Lo tengo, por supuesto, muy simplificado.
Creo que es mejor comenzar desde el principio. Ya intenté trabajar en C ++, sin embargo, algo no funcionó. Comenzó a interesarse por el lenguaje c # en el verano, inicialmente las
videoconferencias de Microsoft realmente ayudaron. Después del curso quería hacer algo interesante. Entonces empecé a trabajar.
Lo que quería desde el principio:
- Trabajar con archivos .txt y .bmp
- Guardar archivos y eliminarlos del directorio especificado
- Para que todo funcione + para un proceso de desarrollo agradable
El sistema de generación de armas en sí es un poco un rompecabezas. En el juego
Borderlands se crea un arma de fuego, y las partes allí son apropiadas (Butt, Handguard, Barrel, etc.). Se ensamblan en una sola pieza, y el equipo terminado recibe las características correspondientes a las piezas. También tiene un fabricante, nombre y nivel. También hay una lista separada de las armas "legendarias" ya creadas con características especiales y una baja probabilidad de caerse. Hice este sistema en c #. Solo quería hacer cuchillos. Para empezar, decidí generar espadas de dos partes: cuchilla + empuñadura.
Lo que implementó:
- Leemos archivos txt con listas de partes y características correspondientes.
- Seleccione aleatoriamente cada parte (cuchilla + mango).
- Conectamos sus imágenes, tomamos la media aritmética de sus características, aplicamos modificaciones del fabricante, agregamos sus nombres (adjetivo + sustantivo).
- Algunos métodos auxiliares: "vender armas", "encontrar un cofre" y "matar a un enemigo" (los dos últimos difieren solo en su oportunidad de obtener armas legendarias).
Los archivos de texto eran el elemento más simple del programa, tenían líneas de características: nombre, velocidad de batalla, daño, probabilidad de daño crítico, precio, fabricante, nivel y número de imagen para las características de esta línea.
Aquí hay una vista de archivo de texto para espadas legendarias:
UltraLord 5 100 20 1000 humano 11 31.
TitanKiller 6 90 23 1000 orco 11 32.
SoulEater 4 120 21 1000 daemon 11 33.
Con fotos fue mucho más difícil. Tuve que editar las imágenes encontradas en Internet. Hizo fotos de píxeles 200x600. Para que todo encajara, coloqué las piezas exactamente en el centro. Más tarde, surgió otro problema; el esquema de color y el detalle de los elementos diferían. Este problema se puede resolver en la etapa inicial de creación de imágenes: dibuje en un color, luego pinte el arma ya creada.
Todas las opciones posibles para espadas convencionales:

Tres espadas legendarias:

Ventajas de este sistema:
- El número de armas terminadas está creciendo geométricamente con la adición de otra parte. Por ejemplo, tengo 2 partes de 5 piezas, un total de 25 espadas diferentes. Si agrega más detalles con 5 instancias diferentes, el número de opciones será igual a 125.
- Agregar emoción al juego es el deseo de obtener armas de las mejores partes.
Contras:
- Todas las partes deben ser adecuadas entre sí.
- Más difícil de implementar.
Publiqué todo en
GitHub , hice comentarios en mi programa. El proceso de desarrollo, dibujo, estudio fue fascinante para mí. Negocios combinados con placer. Quizás agregue más tipos de armas: arcos, hachas ... También pienso en transferir este proyecto a Windows Forms con la adición de interactividad para poder elegir qué partes ensamblar. Si tiene preguntas o comentarios, escriba, intentaré responder. Estaré especialmente feliz con nuevas ideas.
PS Enlaces a imágenes usadas