Desarrollando juegos para una consola basada en Arduino usando Unity
Hola geek times!Hoy les contaré una historia no muy interesante sobre cómo creé una consola de juegos simple basada en Arduino e hice un juego simple para ella en mi motor de juegos favorito: Unity.Juegos
Durante casi cuatro años, he estado desarrollando juegos en el popular motor de juegos Unity (anteriormente Unity3D). Durante este tiempo, logré crear varios juegos pequeños para dispositivos móviles, así como un voluminoso proyecto multiusuario.Esta área es muy interesante para mí y me da mucho gusto trabajar en ella.Dispositivos
Pero a veces hay un deseo de probar algo nuevo, y uno de estos días decidí probar arduino.Me resultó muy interesante cómo crear mis propios dispositivos y cómo programarlos. ¿Por qué arduino? En Internet, e incluso en el mismo centro y geek, hay muchas publicaciones sobre por qué vale la pena tomar arduino. Pero noto que para mí el factor decisivo para elegir arduino es la facilidad de uso.¿Cómo combinar esto?
Una vez en Internet, me encontré con un registro sobre cómo uno de los usuarios ensambló su consola de juegos basada en arduino, la equipó con una pequeña pantalla LCD de 84x48 píxeles y escribió un par de juegos simples: pong y arkanoid.Este desarrollo fue muy interesante para mí, y decidí crear mi versión de la consola de juegos basada en el microcontrolador atmega328.Consola en sí
En primer lugar, diseñé e hice una placa de circuito impreso LUT-ohm para una consola portátil. Esto fue un error: al principio era necesario probar el programa en una placa de depuración, por ejemplo, arduino uno, ya que no preveía la capacidad de cargar programas de manera rápida y conveniente al controlador. Y también cometí un error en el circuito en sí, podría arreglarse con cables, pero sigue siendo una pena.Después de darme cuenta de que estaba equivocado, conecté los botones a través del tablero a Arduino Uno, y conecté la pantalla directamente.Esto es lo que sucedió:

Ahora para los juegos
Para crear juegos, decidí usar el motor de juego Unity. No escribí un compilador de Mono C # en un programa para arduino, pero decidí escribir un conjunto de scripts con los que puedes construir juegos fácilmente.Dividí todos los scripts en 3 grupos: acciones, condiciones y combinadores.Creo que no es necesario explicar el propósito de las acciones y condiciones, pero para lo que necesito un combinador lo explicaré. El combinador verifica que se cumpla la condición y luego realiza la acción.A partir de los scripts, o más bien de su presencia y combinaciones, el algoritmo crea un programa para arduino.
¿Y qué tipo de juego?
Decidí comenzar con algo simple. ¿Y cuál es el juego simple que conoces? Así es, pong. Pero decidí no hacer pong, sino pong para uno: hay una raqueta, una pelota y una pared, en lugar de la segunda raqueta.Lo ensamblé de un constructor escrito, lo compilé y lo subí al controlador. ¡Trabajos!Ahora pongamos todo en orden
Cuando comenzó el juego, y jugué lo suficiente, decidí que valía la pena rehacer el tablero, dándole un aspecto hermoso, usando componentes smd y eliminando todas las cosas innecesarias. Rehice el circuito e hice una tabla.Eso fue lo que paso

Código fuente
El código fuente es muy simple.Qué hace Unity: en el editor, el usuario recopila el juego de los objetos de la interfaz de usuario, cuelga scripts de acción, condiciones y combinadores en ellos.Lo que hace el compilador (secuencia de comandos parser.cs): ejecuta todos los objetos, mira sus secuencias de comandos y agrega fragmentos de código al texto del archivo build.ino que son responsables de ejecutar los análogos de estas secuencias de comandos en el microcontrolador.Enlace a las fuentes: drive.google.com/open?id=0B5INc3_98cSJMEMxZmlWUTh1Ukk Lacompilación se realiza al comienzo del juego. y se guarda en la carpeta Assets / build / text / builded.ino.Este boceto también debe cargarse en el controlador.En custodia
Quiero decir que fue muy interesante.Tuve la oportunidad de combinar 2 de cualquiera de mis actividades: desarrollo de juegos y creación de dispositivos.Espero que esto también te haya interesado, y ahora también harás tu propio dispositivo genial =)Source: https://habr.com/ru/post/es382327/
All Articles