Existe alguma estrutura que me permita escrever jogos em c # no Linux? [fechadas]

10

Estou procurando algo como uma alternativa ao XNA - não me importo se é um mecanismo 2D ou 3D. Não é porque eu não gosto do Windows ou sou anti-Microsoft; é porque eu gosto de rodar o Linux, código completamente no Linux (para C # eu uso o Mono, obviamente), e de maneira alguma tenho nenhum hardware para realmente suportar a programação no XNA, simplesmente porque minha placa de vídeo tem 6 anos. Também não tenho um CD do Windows 7 / Vista para DirectX 10.

Assim, para o desenvolvimento de jogos, estou meio que preso na idade da pedra. No entanto, eu gosto muito de c # e odiaria ter que descartá-lo como idioma devido a isso.

Há algo que eu possa fazer?

felicidade
fonte
13
Eu odeio quando uma resposta é escolhida tão rápido. Não deixa tempo para que respostas mais profundas ou mais detalhadas sejam postadas.
AttackingHobo
6
@AttackingHobo Se você tem uma resposta mais profunda e detalhada para propor, vá em frente.
Jonathan Connell
1
@ Jonathan O problema é que a primeira resposta não é regularmente a melhor. De fato, muitas vezes pode ser o menos pesquisado ou menos pensado. Há uma razão pela qual temos um crachá de prata para responder primeiro e estar certo - é uma conquista ou uma recompensa por responder a uma pergunta morta.
doppelgreener
@ Jonathan Connell Estou pesquisando algo semelhante há mais de uma semana. Encontrei alguns candidatos diferentes, mas quero realmente usá-los e ver quais são realmente viáveis. Digitar a pergunta no google e postar cegamente alguns dos links como resposta não é muito útil.
AttackingHobo
Ei @AttackingHobo, seria legal da sua parte postar seus candidatos, já que estou procurando por algo parecido por interesse passivo há 5 anos. Durante todo esse tempo, só consigo me lembrar do invólucro Irrlicht e do gerenciador Ogre funcionando corretamente, e não gosto deles: o Irrlicht era de buggy, mas presumivelmente corrigível, e para o Ogre gerenciado, seria melhor escolher o NeoAxis. Talvez você teve a sorte de encontrar algo bom que eu perdi, eu sou apenas um cara depois de tudo, por isso seria ótimo para compartilhá-lo :)
EnoughTea

Respostas:

9

Receio que não exista uma alternativa completa ao XNA no mundo das estruturas de plataforma cruzada baseadas em C #. A Monoxna está morta há muito tempo e muito poucas outras ferramentas de plataforma cruzada usam C # como idioma de sua escolha.

No entanto, essa futura porta do XNA no iOS e Android parece muito promissora: ExEn . Porém, não conheço os requisitos.

Como você usou a palavra "mecanismo", pode querer algo mais complexo. Lembro-me apenas de um mecanismo C # completo e barato que pode ser executado no Linux e tem requisitos de hardware bastante tolerantes: o NeoAxis .

No entanto, se seu objetivo principal são jogos 2D, você pode conferir esta pequena biblioteca de jogos multiplataforma: AgateLib . Dois anos atrás, era bom usar um pouco de buggy, talvez agora as coisas estejam melhores.

De qualquer forma, se algo mais falhar, você sempre pode usar o OpenGL com SDL via OpenTK ou SDL.Net .

EnoughTea
fonte
3
Apenas uma observação - o ExEn é mantido pelo nosso próprio Andrew Russel !
BlueRaja - Danny Pflughoeft
1
-1. Embora o ExEn pareça útil e interessante, não é uma alternativa compatível ao Linux para o XNA. "Mecanismo 2D ou 3D" parece se referir ao mecanismo gráfico.
AttackingHobo
O MonoGame está em desenvolvimento há vários anos e o progresso parece bom ultimamente, mas lembrando da minha experiência com ele nesta primavera, tenho mais fé no ExEn. Se tiver uma boa arquitetura, será muito possível substituir o MonoMac pelo OpenTk.
EnoughTea
Para 2D, até o GTK # pode ser uma opção a considerar.
George Edison
20

Por que procurar uma alternativa quando você pode usar uma porta?

"O MonoGame é uma implementação OpenGL gratuita do XNA 4.0 Framework. Ele é desenvolvido com base na excelente variedade de compiladores Mono e é compatível com MonoTouch (iOS), Mono para Android (Android), MonoMac (Mac OS X), Mono para Windows e agora Linux!

Nosso objetivo é permitir que os desenvolvedores de XNA no Windows e Windows Phone 7 portem seus jogos para iOS / Android / Mac OS X / Windows / Linux e vice-versa, com o mínimo de problemas ".

http://monogame.codeplex.com

https://github.com/mono/MonoGame

Den
fonte
2

2 bibliotecas adequadas para renderização de software:

  1. SDL (C / C ++) ou SDL.NET, pois são criados para hardware OLD e, opcionalmente, podem usar o OpenGL, se você desejar atualizar seu hardware posteriormente. Totalmente multiplataforma da SDL para sistemas de desktop.
  2. Allegro é outra biblioteca da velha escola, boa para inserir pixels individualmente, sem a necessidade de hardware gráfico especial.

Sou o Allegro mais poderoso do ponto de vista de empurrar pixels, mas não acho que ele veja o mesmo nível de atividade que o SDL, e embora o SDL seja mantido atualizado por seu autor, acho que esse é muito menos o caso do Allegro.

Engenheiro
fonte
-1: a versão 5 do Allegro foi lançada este ano e possui atualizações regulares. Então ... eu não tenho ideia do que você está falando. Além disso, por que não mencionar SFML?
Nicol Bolas
Minha experiência foi com Allegro 4, a propósito. "Além disso, por que nenhuma menção à SFML?" - Tenho alguma obrigação de mencionar todas as bibliotecas existentes, incluindo aquelas nas quais não tenho interesse / experiência? Por que Den ou Vigil também não mencionaram SFML? Talvez porque não quisessem? Você não precisa justificar mais o seu -1.
Engenheiro
1

Você pode conferir o ANX:

O ANX.Framework é uma estrutura compatível com a origem do XNA framework 4.0 da Microsoft. Compatibilidade de origem significa que você pode "converter" um projeto de jogo XNA para ser um projeto de jogo ANX simplesmente substituindo todos os namespaces de Microsoft.XNA.Framework para ANX.Framework. A vantagem do ANX é simplesmente que você pode trocar o RenderSystem, o InputSystem e o AudioSystem. Ao trocar esses sistemas, você não fica mais limitado a executar seu jogo usando o DirectX9, que o XNA está usando. O ANX vem com um DirectX10 RenderSystem como padrão. Um DirectX 11, DirectX 11.1 e um OpenGL 3 RenderSystem estão atualmente em desenvolvimento. Isso tornará possível rodar seus jogos no Linux e em outras plataformas suportadas pelo OpenGL etc. simplesmente trocando os namespaces.

~ Site Codeplex: http://anxframework.codeplex.com/

Ainda está em desenvolvimento pesado, mas a maioria dos recursos básicos do XNA está implementada.

floAr
fonte