El creador de Solus Linux, Ikey Doherty, entra en el negocio de los desarrolladores de juegos con un nuevo motor de juegos de código abierto

Ikey Doherty, el creador y antiguo desarrollador principal de Solo, está de vuelta con un nuevo proyecto. Su nueva empresa, Serpiente Lispy, Ltd, utiliza tecnología de código abierto para crear juegos, con un enfoque en el soporte de Linux.

Le hice algunas preguntas a Ikey sobre su nuevo proyecto. Aquí están sus respuestas.

Es FOSS: ¿Qué te hizo decidirte a dedicarte al desarrollo de juegos?

Ikey: Honestamente, tendría que decir respeto por los juegos más antiguos. La creatividad que surgió de tanta limitación es francamente asombrosa. Si piensas en lo limitadas que eran la NES o la C64, (o de hecho mi CPC de Amstrad) – sin embargo, cuánta alegría experimentó la gente desde esas plataformas. Es un zumbido que no puedo evitar. A pesar de que estamos muy lejos de ese mundo, todavía busco modelar esa excelencia técnica y creatividad lo mejor que pueda. Soy un fanático de las buenas historias.

Es FOSS: ya existen varios motores de juegos de código abierto. ¿Por qué decidiste hacer el tuyo propio? ¿Cuál es la característica asesina de Serpent?

Ikey: Hay un buen número de códigos abiertos y cerrados, cada uno con un gran conjunto de características. Sin embargo, soy un desarrollador bastante de la vieja escuela y no hay nada que deteste más que un IDE o un entorno sin código de ‘arrastrar y soltar’. Simplemente quería crear juegos independientes con el menor alboroto posible y usando un marco en el que no tuviera que comprometerme. Una vez que llegue a ‘debe funcionar bien en Linux y ser de código abierto’, no tendrá muchas opciones.

Recopilé un conjunto de proyectos que usaría como base para los primeros juegos de Lispy Snake, pero necesitaba algo de un marco para unirlos a todos, como una base de código reutilizable en todos los juegos y actualizaciones.

Yo no diría que las características fabulosas están presentes todavía, solo un conjunto de decisiones sensatas. Serpent está escrito en D, por lo que tiene un alto rendimiento con una barrera de entrada más baja que, digamos, C o C ++. Me permite desarrollar un marco que se adapte a mis ideales de desarrollo y preste atención a los requisitos de la industria, como un sistema de componentes de entidad de múltiples subprocesos de rendimiento o el sistema de procesamiento por lotes de sprites.

Cuando unes todas las funciones y decisiones, obtienes una base de código portátil, que gracias a su elección de bibliotecas como SDL y bgfx, eventualmente se ejecutará en todas las plataformas principales con un mínimo esfuerzo de nuestra parte. Eso básicamente significa que obtendremos OpenGL, DirectX, Vulkan y Metal “gratis”.

Ser capaz de apuntar a las últimas API y crear juegos independientes fácilmente, con características estándar de la industria que surgen constantemente, desde un marco que no se impone en su flujo de trabajo… esa es una combinación bastante buena.

Es FOSS: ¿Por qué nombró a su empresa LispySnake? ¿Tenías una serpiente como mascota con problemas del habla cuando eras niño?

Ikey: ¿Honestamente? Perro travieso fue tomada. Me encanta Bandicoot. Además, originalmente estábamos asumiendo un trabajo de contratación de Python y el nombre me pareció divertido. Es un nombre bastante absurdo como muchos de mis proyectos anteriores (como Dave. O Dave2).

Es FOSS: después de ser un desarrollador de sistemas operativos durante muchos años, ¿cómo se siente trabajar en algo más pequeño? ¿Diría que su tiempo como desarrollador de sistemas operativos le da una ventaja como desarrollador de juegos?

Ikey: OS dev necesita una vista de muy alto nivel constantemente, con la capacidad de cambiar de contexto de macro a micro y viceversa. Muchas, muchas piezas móviles en un gran ecosistema.

Serpent está mucho más orientado a las tareas, aunque existen similitudes en el flujo de trabajo en términos de definir macro sistemas e intercalar micro características para construir un todo cohesivo. Obviamente, mi experiencia en desarrollo de sistemas operativos es de gran ayuda aquí.

Donde brilla especialmente es lidiar con las ‘agallas’. Creo que muchos desarrolladores independientes (perdóname por ser tan radical) generalmente están felices de simplemente construir a partir de un kit existente y abrazarlo o solucionar los problemas. Hay algunas verdaderas joyas como Factorio que van más allá y tengo que sujetarme a ellas.

En términos de construir un nuevo kit, podemos pensar, correctamente, en la coherencia de la caché, el rendimiento en paralelo, la fragmentación de la memoria, el cambio de contexto y demás.

Los consumidores de Serpent (cuando se publique en una forma más estable) sabrán que el marco ha sido diseñado para aprovechar las características de Linux, no solo para escupir compilaciones para él.

Es FOSS: recientemente portaste tu Serpiente motor de juego de C a la Lengua D. ¿Por qué hiciste este movimiento? ¿Qué características tiene D sobre C?

Ikey: Sí, honestamente, fue un movimiento interesante. Originalmente estábamos trabajando en un proyecto llamado lispysnake2d que iba a ser un envoltorio trivial de SDL para darnos una biblioteca de microjuegos. Esto simplemente usó las API de SDL_Renderer para blit de sprites 2D e inicialmente parecía suficiente. Desafortunadamente, a medida que avanzaba el desarrollo, quedó claro que necesitábamos una canalización 3D para 2D, por lo que podíamos utilizar sombreadores y efectos especiales. En ese momento, SDL_Renderer ya no es bueno para ti y debes optar por Vulkan u OpenGL. Comenzamos a abstraer las tuberías y vimos cómo se producía la locura.

Después de dar un paso atrás, analicé todas las deficiencias en el enfoque y me cansé de los problemas de portabilidad que definitivamente surgirían. No estoy hablando en términos de bibliotecas, estoy hablando de tratar con varias rutas de archivo, codificaciones, API de Win32, DirectX vs OpenGL vs Vulkan … etc. Luego, agregue el tiempo estándar, las deficiencias de la cadena C y la cantidad de reinvención necesaria para evitar la vinculación a bibliotecas de estilo de biblioteca estándar infladas “multiplataforma”. Era una mala foto.

Habiendo hecho mucho Vamos desarrollo, comencé a investigar alternativas a C que fueran conscientes de la concurrencia, sanas en cadenas y empaquetadas con una poderosa biblioteca estándar multiplataforma. Esta es la parte en la que todos te dirán automáticamente que uses Rust.

Desafortunadamente, soy demasiado estúpido para usar Óxido porque la sintaxis literalmente ofende a mis ojos. No lo entiendo y nunca lo haré. Rust es un idioma fantástico y, a medida que avanzan los esfuerzos académicos, tiene mucho éxito. Desafortunadamente, soy demasiado práctico y busco consuelo en los lenguajes de estilo C, habiendo vivido en ese mundo demasiado tiempo. Entonces, D era el mejor candidato para marcar todas las casillas, mientras tenía interoperabilidad de C y C ++.

Nos tomó un tiempo restaurar la paridad de funciones, pero ahora tenemos un marco compatible con la concurrencia que se prueba con OpenGL y Vulkan, admite el procesamiento por lotes de sprites y tiene buenas API. Además, gran parte de la reinvención se ha ido ya que estamos aprovechando todas las funciones de SDL, bgfx y la biblioteca estándar DLang. Gana, gana.

El primer juego de LispySnake

Es FOSS: ¿Cómo planeas distribuir tus juegos?

Ikey: En cuanto a la demostración, inicialmente solo nos centraremos en Linux, y parece que usaremos Flatpak para eso. A medida que pasa el tiempo, cuando hayamos introducido compatibilidad y pruebas para macOS + Windows, es probable que busquemos en Steam Store. A pesar de la naturaleza de código cerrado, Valve ha sido mucho más amigable y ha apoyado a Linux a lo largo de los años, mientras que Epic Games tiene una larga historia de ser altamente anti-Linux. Así que eso es un no ir.

Es FOSS: ¿Cómo puede la gente apoyar y contribuir al desarrollo del motor de juego Serpent?

Ikey: Tenemos algunos métodos diferentes, por lo que vale. Lo mas facil es comprar una licencia de por vida – que son $ 20. Esto le otorga acceso de por vida a todos nuestros juegos 2D y ayuda a financiar el desarrollo de nuestros títulos de juegos y Serpent.

Alternativamente, puede patrocinarme directamente en GitHub para trabajar en Serpent y aguas arriba donde sea necesario. Un poco de amor FOSS.

Soporte con licencia de por vida

Patrocine el desarrollo en GitHub

Me gustaría agradecer a Ikey por tomarse el tiempo para responder mis preguntas sobre su último proyecto.

¿Alguno de ustedes ha creado un juego con herramientas de código abierto? Si es así, ¿qué herramientas y cómo fue la experiencia? Por favor háznoslo saber en los comentarios más abajo.

Si este artículo le pareció interesante, tómese un minuto para compartirlo en las redes sociales, Hacker News o Reddit.