Solus Linux Creator Ikey Doherty entra no negócio de desenvolvimento de jogos com um novo mecanismo de jogo de código aberto

Conversamos com Ikey Doherty, criador do Solus Linux, sobre seu trabalho mais recente no motor de jogo 2D de código aberto Serpent e sua nova empresa de jogos Lispy Snake.

28 de fevereiro de 2020
Solus Linux Creator Ikey Doherty entra no negócio de desenvolvimento de jogos com um novo mecanismo de jogo de código aberto

Ikey Doherty, o criador e ex-desenvolvedor líder de Solus, está de volta com um novo projeto. Sua nova empresa, Lispy Snake, Ltd, usa tecnologia de código aberto para criar jogos, com foco no suporte ao Linux.

Fiz algumas perguntas a Ikey sobre seu novo projeto. Aqui estão suas respostas.

Entrevista da Serpente de Ikey Doherty

É FOSS: O que fez você decidir entrar no desenvolvimento de jogos?

Ikey: Honestamente, eu teria que dizer um respeito pelos jogos mais antigos. A criatividade que veio de tantas limitações é francamente incrível. Se você pensar em como eram limitados o NES ou C64 (ou mesmo meu Amstrad CPC) - ainda assim, quanta alegria as pessoas experimentaram com essas plataformas. É um zumbido que não posso evitar. Mesmo que estejamos muito longe desse mundo, ainda procuro modelar essa excelência técnica e criatividade da melhor maneira que posso. Eu adoro boas histórias.

É FOSS: já existem vários motores de jogo de código aberto. Por que você decidiu fazer o seu próprio? Qual é o recurso do assassino da Serpente?

Ikey: Há um bom número de códigos abertos e fechados, cada um com um grande conjunto de recursos. No entanto, eu sou um desenvolvedor muito antigo e não há nada que eu odeie mais do que um IDE ou ambiente sem código ‘arrastar e soltar’. Eu simplesmente queria criar jogos indie com o mínimo de barulho possível e usando uma estrutura onde eu não tivesse que me comprometer. Depois de chegar ao "deve funcionar bem no Linux e ser de código aberto", você terá poucas opções.

Eu colecionei um conjunto de projetos que usaria como base para os primeiros jogos do Lispy Snake, mas precisava de uma estrutura para amarrá-los todos juntos, como uma base de código reutilizável em todos os jogos e atualizações.

Eu não diria que recursos matadores ainda estão presentes - apenas um conjunto de decisões sensatas. A serpente é escrita em D, por isso é altamente performante com uma barreira de entrada mais baixa do que C ou C ++. Isso está me permitindo desenvolver uma estrutura que se adapte aos meus ideais de desenvolvimento e preste atenção aos requisitos da indústria, como um Sistema de Componente de Entidade multithreading de desempenho ou o sistema de batching sprite.

Quando você junta todos os recursos e decisões, obtém uma base de código portátil que, graças à sua escolha de bibliotecas como SDL e bgfx, será executada em todas as principais plataformas com o mínimo de esforço de nossa parte. Isso basicamente significa que estamos obtendo OpenGL, DirectX, Vulkan e Metal "de graça".

Ser capaz de direcionar as APIs mais recentes e criar jogos independentes facilmente, com recursos padrão da indústria emergindo constantemente, a partir de uma estrutura que não se impõe ao seu fluxo de trabalho ... essa é uma combinação muito boa.

Captura de tela do Lipsy Snake

É FOSS: Por que você nomeou sua empresa como LispySnake? Você teve uma cobra de estimação com problemas de fala quando era criança?

Ikey: Honestamente? Naughty Dog foi tirada. Tenho que amar um pouco de Bandicoot. Além disso, originalmente estávamos contratando Python e achei o nome engraçado. É praticamente um nome sem sentido como muitos dos meus projetos anteriores (como Dave. Ou Dave2.)

É FOSS: depois de ser um desenvolvedor de sistema operacional por muitos anos, como é trabalhar em algo menor? Você diria que o seu tempo como desenvolvedor de sistema operacional lhe dá uma vantagem como desenvolvedor de jogos?

Ikey: OS dev precisa de uma visualização de alto nível constantemente, com a capacidade de alternar o contexto de macro para micro e vice-versa. Muitas, muitas peças móveis em um grande ecossistema.

O Serpent é muito mais orientado para a tarefa - embora existam semelhanças no fluxo de trabalho em termos de definição de macrossistemas e intercalação de micro recursos para construir um todo coeso. Minha experiência em OS dev é obviamente uma grande ajuda aqui.

Onde brilha especialmente é lidar com a "coragem". Acho que muitos desenvolvedores independentes (perdoe-me por ser radical) geralmente ficam felizes em apenas construir a partir de um kit existente e adotá-lo ou contornar os problemas. Existem algumas joias verdadeiras lá fora, como Factorio, que vão além e eu tenho que segurar meu chapéu para elas.

Em termos de construção de um novo kit, pensamos, de maneira adequada, sobre coerência de cache, desempenho paralelo, fragmentação de memória, troca de contexto e outros.

Os consumidores do Serpent (quando lançado em uma forma mais estável) saberão que o framework foi projetado para aproveitar os recursos do Linux, não apenas cuspir compilações para ele.

Lipsy Snake

É FOSS: Recentemente, você transferiu seu mecanismo de jogo Serpent de C para a linguagem D. Por que você fez esse movimento? Quais recursos D tem sobre C?

Ikey: Sim, honestamente, foi uma jogada interessante. Estávamos originalmente trabalhando em um projeto chamado lispysnake2d, que seria um invólucro trivial em torno do SDL para nos fornecer uma biblioteca de micro-jogos. Isso simplesmente usava APIs SDL_Renderer para blit sprites 2D e inicialmente parecia suficiente. Infelizmente, à medida que o desenvolvimento avançava, ficou claro que precisávamos de um pipeline 3D para 2D, para que pudéssemos utilizar shaders e efeitos especiais. Nesse ponto, SDL_Renderer não é mais útil para você e você precisa usar Vulkan ou OpenGL. Começamos abstraindo os pipelines e vimos a loucura acontecer.

Depois de dar um passo para trás, analisei todas as deficiências na abordagem, e me cansei dos problemas de portabilidade que definitivamente surgiriam. Não estou falando em termos de bibliotecas, estou falando sobre como lidar com vários caminhos de arquivo, codificações, APIs Win32, DirectX vs OpenGL vs Vulkan ... etc. Em seguida, acerte o tempo padrão, as deficiências das strings C e a quantidade de reinventação necessária para evitar a vinculação a bibliotecas de estilo de biblioteca padrão “multiplataforma” inchadas. Era uma foto ruim.

Tendo feito muito desenvolvimento Go, comecei a pesquisar alternativas para C que fossem sensíveis à simultaneidade, string-sane e embaladas com uma poderosa biblioteca padrão multiplataforma. Esta é a parte em que todos dirão automaticamente para você usar o Rust.

Infelizmente, sou muito estúpido para usar Rust porque a sintaxe literalmente ofende meus olhos. Eu não entendo e nunca entenderei. A ferrugem é uma linguagem fantástica e, no que se refere aos empreendimentos acadêmicos, é um grande sucesso. Infelizmente, tenho uma mente muito prática e procuro conforto em linguagens de estilo C, tendo vivido nesse mundo por muito tempo. Portanto, D foi o melhor candidato para marcar todas as caixas, embora tenha interoperabilidade C e C ++.

Demorou um pouco para restaurar a paridade de recursos, mas agora temos uma estrutura compatível com a concorrência que é testada com OpenGL e Vulkan, suporta sprite batching e tem APIs legais. Além disso, grande parte da reinvenção acabou, pois estamos aproveitando todos os recursos do SDL, bgfx e da biblioteca padrão DLang. Vitória, vitória.

Último jogo do Peacekeeper

O primeiro jogo da LispySnake É FOSS: Como você planeja distribuir seus jogos?

Ikey: Em termos de demonstração, inicialmente nos concentraremos apenas no Linux, e parece que usaremos Flatpak para isso. Com o passar do tempo, quando apresentarmos o suporte e os testes para macOS + Windows, provavelmente iremos procurar a Steam Store. Apesar da natureza do código fechado, a Valve tem sido muito mais amigável e favorável ao Linux ao longo dos anos, enquanto empresas como a Epic Games têm uma longa história de serem altamente anti-Linux. Então, isso é impossível.

É FOSS: Como as pessoas podem apoiar e contribuir para o desenvolvimento do motor de jogo Serpent?

Ikey: temos alguns métodos diferentes, para valer a pena. O mais fácil é comprar uma licença vitalícia - que custa $ 20. Isso concede a você acesso vitalício a todos os nossos jogos 2D e ajuda a financiar o desenvolvimento de nossos títulos de jogos e Serpent.

Como alternativa, você pode patrocinar-me diretamente no GitHub para trabalhar no Serpent e no upstream quando necessário. Um pouco de amor FOSS.

Suporte com licença vitalícia Patrocine o desenvolvimento no GitHub Gostaria de agradecer a Ikey por responder às minhas perguntas sobre seu último projeto.

Algum de vocês criou um jogo com ferramentas de código aberto? Se sim, quais ferramentas e como foi a experiência? Por favor, deixe-nos saber nos comentários abaixo.

Se você achou este artigo interessante, reserve um minuto para compartilhá-lo nas redes sociais, Hacker News ou Reddit.

Aproveite e assista um de nossos vídeos