Existe-t-il des frameworks qui me permettent d'écrire des jeux en C # sur Linux? [fermé]

10

Je cherche quelque chose comme une alternative à XNA - peu m'importe si c'est un moteur 2D ou 3D. Ce n'est pas parce que je n'aime pas Windows ou que je suis anti-Microsoft; c'est parce que j'aime faire tourner Linux, coder complètement sous Linux (pour C # j'utilise Mono, évidemment), et que je n'ai aucun matériel pour supporter la programmation dans XNA, tout simplement parce que ma carte vidéo a 6 ans. Je n'ai pas non plus de CD Windows 7 / Vista pour DirectX 10.

Ainsi, pour le développement de jeux, je suis un peu coincé dans l'âge de pierre. Pourtant, j'aime beaucoup C # et je détesterais devoir le laisser tomber en tant que langage à cause de cela.

Y a-t'il quelque chose que je puisse faire?

blissfreak
la source
13
Je déteste quand une réponse est choisie si vite. Cela ne laisse pas le temps de publier des réponses plus approfondies ou plus détaillées.
AttackingHobo
6
@AttackingHobo Si vous avez une réponse plus approfondie et plus détaillée à proposer, allez-y certainement.
Jonathan Connell
1
@Jonathan Le problème est que la première réponse n'est pas régulièrement la meilleure. En fait, il peut souvent être le moins recherché ou le moins pensé. Il y a une raison pour laquelle nous avons un badge en argent pour répondre en premier et avoir raison - c'est un exploit ou une récompense pour avoir répondu à une question morte.
doppelgreener
@Jonathan Connell Je fais des recherches sur quelque chose de similaire depuis plus d'une semaine déjà. J'ai trouvé quelques candidats différents, mais je veux vraiment les utiliser et voir ceux qui sont réellement viables. Il suffit de taper la question dans google et de publier aveuglément certains des liens comme réponse n'est pas très utile.
AttackingHobo
Hé @AttackingHobo, ce serait sympa de votre part de poster vos candidats, car je cherche quelque chose de similaire par intérêt passif depuis environ 5 ans. Depuis tout ce temps, je ne me souviens que du wrapper Irrlicht et du wrapper Ogre géré fonctionnant correctement, et je ne les aime pas: Irrlicht était bogué mais vraisemblablement réparable, et pour Ogre géré, il serait préférable de choisir NeoAxis. Peut-être que vous avez eu la chance de trouver quelque chose de bien qui m'a manqué, je ne suis qu'un gars après tout, donc ce serait génial de le partager :)
EnoughTea

Réponses:

9

Je crains qu'il n'existe pas d'alternative complète à XNA dans le monde des frameworks multiplateformes basés sur C #. Monoxna est mort depuis longtemps, et très peu d'autres outils multiplateformes utilisent C # comme langage de leur choix.

Cependant, ce futur port de XNA sur iOS et Android semble très prometteur: ExEn . Je ne connais pas les exigences cependant.

Puisque vous avez utilisé le mot "moteur", vous voudrez peut-être quelque chose de plus complexe. Je me souviens d'un seul moteur C # à part entière bon marché qui peut fonctionner sous Linux et a des exigences matérielles assez tolérantes: NeoAxis .

Cependant, si votre cible principale est les jeux 2D, vous pouvez consulter cette petite bibliothèque de jeux multiplateforme: AgateLib . Il y a deux ans, c'était agréable à utiliser mais quelque peu buggé, peut-être que maintenant les choses vont mieux.

Quoi qu'il en soit, en cas d'échec, vous pouvez toujours utiliser OpenGL avec SDL via OpenTK ou SDL.Net .

EnoughTea
la source
3
Juste une note - ExEn est maintenu par notre propre Andrew Russel !
BlueRaja - Danny Pflughoeft
1
-1. Bien que ExEn semble utile et intéressant, ce n'est pas une alternative compatible Linux à XNA. "Moteur 2D ou 3D" semble faire référence au moteur graphique.
AttackingHobo
MonoGame était en développement depuis plusieurs années et les progrès semblent agréables ces derniers temps, mais en me souvenant de mon expérience avec ce printemps, j'ai plus confiance en ExEn. S'il aura un peu de bonne architecture, il sera très possible de remplacer MonoMac par OpenTk.
EnoughTea
Pour la 2D, même GTK # peut être une option à considérer.
George Edison
20

Pourquoi chercher une alternative lorsque vous pouvez utiliser un port?

"MonoGame est une implémentation OpenGL gratuite du framework XNA 4.0. Il est construit sur l'excellente gamme de compilateurs Mono et est compatible avec MonoTouch (iOS), Mono pour Android (Android), MonoMac (Mac OS X), Mono pour Windows et maintenant Linux!

Notre objectif est de permettre aux développeurs XNA sur Windows et Windows Phone 7 de porter leurs jeux sur iOS / Android / Mac OS X / Windows / Linux et vice versa, avec un minimum de tracas. "

http://monogame.codeplex.com

https://github.com/mono/MonoGame

Tanière
la source
2

2 bibliothèques adaptées au rendu logiciel:

  1. SDL (C / C ++) ou SDL.NET, car ils sont conçus pour le VIEUX matériel et peuvent éventuellement utiliser OpenGL, si vous souhaitez mettre à niveau votre matériel ultérieurement. SDL totalement multiplateforme pour les systèmes de bureau.
  2. Allegro est une autre bibliothèque de la vieille école idéale pour pousser les pixels individuellement sans avoir besoin de matériel graphique spécial.

Je trouve Allegro plus puissant d'un point de vue poussant les pixels, mais je ne pense pas qu'il voit le même niveau d'activité que SDL, et bien que SDL soit tenu à jour par son auteur, je pense que c'est beaucoup moins le cas avec Allegro.

Ingénieur
la source
-1: La version 5 d'Allegro est sortie cette année et elle est régulièrement mise à jour. Alors ... je ne sais pas de quoi tu parles. Aussi, pourquoi aucune mention de SFML?
Nicol Bolas
Soit dit en passant, j'ai vécu avec Allegro 4. "Aussi, pourquoi aucune mention de SFML?" - Suis-je dans l'obligation de mentionner toutes les bibliothèques, y compris celles auxquelles je n'ai aucun intérêt / expérience? Pourquoi Den ou Vigil n'ont-ils pas mentionné SFML non plus? Peut-être parce qu'ils ne le voulaient pas? Vous n'avez pas besoin d'essayer de justifier davantage votre -1.
Ingénieur
1

Vous voudrez peut-être consulter ANX:

ANX.Framework est un framework compatible à la source avec le framework XNA 4.0 de Microsoft. La compatibilité avec les sources signifie que vous pouvez "traduire" un projet de jeu XNA en projet de jeu ANX en remplaçant simplement tous les espaces de noms de Microsoft.XNA.Framework par ANX.Framework. L'avantage d'ANX est simplement que vous pouvez échanger le RenderSystem, le InputSystem et l'AudioSystem. En échangeant ces systèmes, vous n'êtes plus limité à exécuter votre jeu en utilisant DirectX9 que XNA utilise. ANX est livré par défaut avec un système de rendu DirectX10. Un DirectX 11, DirectX 11.1 et un OpenGL 3 RenderSystem est actuellement en développement. Cela permettra d'exécuter vos jeux sur Linux et d'autres plates-formes prises en charge par OpenGL, etc. en échangeant simplement les espaces de noms.

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

Il est toujours en cours de développement mais la plupart des fonctionnalités de base de XNA sont implémentées.

floAr
la source