¿Hay marcos que me permitan escribir juegos en C # en Linux? [cerrado]

10

Estoy buscando algo como una alternativa a XNA: no me importa si es un motor 2D o 3D. No es porque no me guste Windows o sea anti-Microsoft; es porque me gusta ejecutar Linux, codificar en Linux por completo (para C #, uso Mono, obviamente), y de ninguna manera tengo hardware para admitir la programación en XNA, simplemente porque mi tarjeta de video tiene 6 años. Tampoco tengo un CD de Windows 7 / Vista para DirectX 10.

Por lo tanto, para el desarrollo del juego estoy atascado en la edad de piedra. Sin embargo, me gusta mucho C # y odiaría tener que dejarlo como lenguaje debido a esto.

¿Hay algo que pueda hacer?

blissfreak
fuente
13
Odio cuando se elige una respuesta tan rápido. No deja tiempo para que se publiquen respuestas más profundas o más detalladas.
AttackingHobo
66
@AttackingHobo Si tienes una respuesta más profunda y detallada para proponer, por supuesto, adelante.
Jonathan Connell
1
@ Jonathan El problema es que la primera respuesta no es regularmente la mejor. De hecho, a menudo puede ser el menos investigado o menos pensado. Hay una razón por la que tenemos una insignia de plata para responder primero y tener razón: es un logro o una recompensa por responder una pregunta muerta.
doppelgreener
@ Jonathan Connell He estado investigando algo similar durante más de una semana. He encontrado algunos candidatos diferentes, pero realmente quiero usarlos y ver cuáles son realmente viables. Simplemente escribir la pregunta en Google y publicar a ciegas algunos de los enlaces como respuesta no es muy útil.
AttackingHobo
Hola @AttackingHobo, sería amable de tu parte publicar tus candidatos, ya que he estado buscando algo similar por interés pasivo durante unos 5 años. De todo ese tiempo solo puedo recordar que el contenedor Irrlicht y el contenedor Ogre administrado funcionaron correctamente, y no me gustan: Irrlicht tenía errores pero presumiblemente se podía arreglar, y para Ogre administrado sería mejor elegir NeoAxis. Tal vez la suerte de encontrar algo bueno que he echado de menos, sólo soy un chico después de todo, por lo que sería muy bueno para compartirlo :)
EnoughTea

Respuestas:

9

Me temo que no existe una alternativa completa a XNA en el mundo de los marcos multiplataforma basados ​​en C #. Monoxna está muerto hace mucho tiempo, y muy pocas herramientas multiplataforma usan C # como su lenguaje de elección.

Sin embargo, este futuro puerto de XNA en iOS y Android parece muy prometedor: ExEn . Sin embargo, no sé acerca de los requisitos.

Como ha usado la palabra "motor", es posible que desee algo más complejo. Solo recuerdo un motor C # barato y completo que puede ejecutarse en Linux y tiene requisitos de hardware bastante indulgentes: NeoAxis .

Sin embargo, si su objetivo principal son los juegos en 2D, entonces puede consultar esta pequeña biblioteca de juegos multiplataforma: AgateLib . Hace dos años era agradable de usar, pero algo defectuoso, quizás ahora las cosas estén mejor.

De todos modos, si algo falla, siempre puede usar OpenGL con SDL a través de OpenTK o SDL.Net .

EnoughTea
fuente
3
Solo una nota: ¡ExEn es mantenido por nuestro propio Andrew Russel !
BlueRaja - Danny Pflughoeft
1
-1. Si bien ExEn parece útil e interesante, no es una alternativa compatible con Linux a XNA. "Motor 2D o 3D" parece referirse al motor gráfico.
AttackingHobo
MonoGame estuvo en desarrollo durante varios años y el progreso se ve bien últimamente, pero al recordar mi experiencia con él esta primavera, tengo más fe en ExEn. Si tendrá una buena arquitectura, será muy posible reemplazar MonoMac con OpenTk.
EnoughTea
Para 2D, incluso GTK # podría ser una opción a considerar.
George Edison
20

¿Por qué buscar una alternativa cuando puedes usar un puerto?

"MonoGame es una implementación gratuita de OpenGL del Marco XNA 4.0. Se basa en la excelente gama de compiladores Mono y es compatible con MonoTouch (iOS), Mono para Android (Android), MonoMac (Mac OS X), Mono para Windows y ahora Linux!

Nuestro objetivo es permitir que los desarrolladores de XNA en Windows y Windows Phone 7 transfieran sus juegos a iOS / Android / Mac OS X / Windows / Linux y viceversa, con una molestia mínima ".

http://monogame.codeplex.com

https://github.com/mono/MonoGame

Guarida
fuente
2

2 bibliotecas buenas para renderizar software:

  1. SDL (C / C ++) o SDL.NET, ya que están construidos para hardware ANTIGUO y, opcionalmente, pueden usar OpenGL, si desea actualizar su hardware más adelante. La plataforma multiplataforma de SDL para sistemas de escritorio.
  2. Allegro es otra biblioteca de la vieja escuela buena para empujar píxeles individualmente sin la necesidad de hardware gráfico especial.

Creo que Allegro es más poderoso desde el punto de vista de los píxeles, pero no creo que vea el mismo nivel de actividad que SDL, y aunque SDL se mantiene actualizado por su autor, creo que este es mucho menos el caso con Allegro.

Ingeniero
fuente
-1: Allegro versión 5 salió este año y tiene actualizaciones periódicas. Entonces ... no tengo idea de lo que estás hablando. Además, ¿por qué no se menciona SFML?
Nicol Bolas
Mi experiencia fue con Allegro 4, por cierto. "Además, ¿por qué no se menciona SFML?" - ¿Tengo alguna obligación de mencionar todas las bibliotecas, incluidas aquellas en las que no tengo ningún interés / experiencia? ¿Por qué Den o Vigil tampoco mencionaron SFML? ¿Quizás porque no querían? No tiene que intentar justificar su -1 más.
Ingeniero
1

Es posible que desee ver ANX:

El ANX.Framework es un marco que es compatible con la fuente con el marco XNA 4.0 de Microsoft. La compatibilidad de fuentes significa que puede "traducir" un proyecto de juego XNA para que sea un proyecto de juego ANX simplemente reemplazando todos los espacios de nombres de Microsoft.XNA.Framework a ANX.Framework. La ventaja de ANX es simplemente que puede intercambiar RenderSystem, InputSystem y AudioSystem. Al intercambiar estos sistemas, ya no estás limitado a ejecutar tu juego usando DirectX9 que XNA está usando. ANX viene con un DirectX10 RenderSystem por defecto. Un DirectX 11, DirectX 11.1 y un OpenGL 3 RenderSystem está actualmente en desarrollo. Esto permitirá ejecutar sus juegos en Linux y otras plataformas compatibles con OpenGL, etc. simplemente cambiando los espacios de nombres.

~ Sitio de Codeplex: http://anxframework.codeplex.com/

Todavía está en desarrollo pero la mayoría de las características básicas de XNA están implementadas.

piso
fuente