Czy są jakieś frameworki, które pozwalają mi pisać gry w C # w systemie Linux? [Zamknięte]

10

Szukam czegoś w rodzaju alternatywy dla XNA - nie obchodzi mnie, czy jest to silnik 2D czy 3D. Nie dlatego, że nie lubię Windowsa lub jestem przeciwnikiem Microsoft; to dlatego, że lubię uruchamiać Linuksa, kod w Linuksie całkowicie (oczywiście dla C # używam Mono, oczywiście) i pod żadnym pozorem nie mam żadnego sprzętu do obsługi programowania w XNA, po prostu dlatego, że moja karta wideo ma 6 lat. Nie mam też dysku CD z systemem Windows 7 / Vista dla DirectX 10.

Tak więc w tworzeniu gier utknąłem w epoce kamienia łupanego. Jednak bardzo lubię C # i nie chciałbym z tego powodu rezygnować z niego jako języka.

Czy jest coś, co mogę zrobić?

rozkosz
źródło
13
Nienawidzę, kiedy odpowiedź jest tak szybko wybierana. Nie pozostawia czasu na opublikowanie głębszych lub bardziej szczegółowych odpowiedzi.
AttackingHobo
6
@AttackingHobo Jeśli masz do zaoferowania głębszą i bardziej szczegółową odpowiedź, na wszelki wypadek.
Jonathan Connell,
1
@Jonathan Problem polega na tym, że pierwsza odpowiedź nie jest zazwyczaj najlepsza. W rzeczywistości często może być najmniej zbadane lub najmniej przemyślane. Istnieje powód, dla którego mamy srebrną plakietkę, aby odpowiedzieć najpierw i mieć rację - jest to osiągnięcie lub nagroda za odpowiedź na martwe pytanie.
doppelgreener
@Jonathan Connell Od tygodnia badam coś podobnego. Znalazłem kilku różnych kandydatów, ale chcę ich użyć i przekonać się, którzy z nich są naprawdę opłacalni. Samo wpisanie pytania w google i ślepe opublikowanie niektórych linków jako odpowiedzi nie jest zbyt pomocne.
AttackingHobo
Hej @AttackingHobo, byłoby miło z twojej strony, aby opublikować swoich kandydatów, ponieważ od 5 lat szukam czegoś podobnego z pasywnego zainteresowania. Od tego czasu pamiętam tylko opakowanie Irrlichta i zarządzanie nim Ogre działało poprawnie i nie lubię ich: Irrlicht był wadliwy, ale prawdopodobnie można go naprawić, a dla zarządzanego Ogra lepiej wybrać NeoAxis. Może miałeś szczęście znaleźć coś dobrego, za czym tęskniłem, w końcu jestem tylko jednym facetem, więc wspaniale byłoby się nim podzielić :)
EnoughTea

Odpowiedzi:

9

Obawiam się, że nie ma czegoś takiego jak kompletna alternatywa dla XNA w świecie platform międzyplatformowych opartych na C #. Monoxna od dawna nie żyje, a bardzo niewiele innych narzędzi wieloplatformowych używa C # jako języka wyboru.

Jednak ten niedługo port XNA na iOS i Androida wygląda bardzo obiecująco: ExEn . Nie wiem jednak o wymaganiach.

Ponieważ użyłeś słowa „silnik”, możesz chcieć czegoś bardziej złożonego. Pamiętam tylko jeden tani pełnoprawny silnik C #, który może działać w systemie Linux i ma dość wybaczające wymagania sprzętowe: NeoAxis .

Jeśli jednak Twoim głównym celem są gry 2D, możesz sprawdzić tę małą, wieloplatformową bibliotekę gier: AgateLib . Dwa lata temu przyjemnie było go używać, ale było trochę wadliwe, może teraz jest lepiej.

W każdym razie, jeśli coś innego zawiedzie, zawsze możesz używać OpenGL z SDL przez OpenTK lub SDL.Net .

Dosyć
źródło
3
Tylko uwaga - ExEn jest prowadzony przez naszego własnego Andrew Russela !
BlueRaja - Danny Pflughoeft
1
-1. Podczas gdy ExEn wydaje się przydatny i interesujący, nie jest on kompatybilną z Linuksem alternatywą dla XNA. Wydaje się, że „silnik 2D lub 3D” odnosi się do silnika graficznego.
AttackingHobo
MonoGame rozwijało się przez kilka lat i ostatnio postępy wyglądają ładnie, ale pamiętając moje doświadczenia z nią tej wiosny, wierzę bardziej w ExEn. Jeśli będzie miał dobrą architekturę, bardzo możliwe będzie zastąpienie MonoMac przez OpenTk.
EnoughTea,
W przypadku 2D nawet GTK # może być opcją do rozważenia.
George Edison,
20

Po co szukać alternatywy, kiedy można skorzystać z portu?

„MonoGame to darmowa implementacja OpenGL w XNA 4.0 Framework. Jest oparta na doskonałej gamie kompilatorów Mono i jest kompatybilna z MonoTouch (iOS), Mono dla Androida (Android), MonoMac (Mac OS X), Mono dla Windows i teraz Linux!

Naszym celem jest umożliwienie programistom XNA w systemach Windows i Windows Phone 7 portowania swoich gier na iOS / Android / Mac OS X / Windows / Linux i odwrotnie, przy minimalnym wysiłku ”.

http://monogame.codeplex.com

https://github.com/mono/MonoGame

Legowisko
źródło
2

2 biblioteki dobre do renderowania oprogramowania:

  1. SDL (C / C ++) lub SDL.NET, ponieważ są one zbudowane dla sprzętu OLD i mogą opcjonalnie używać OpenGL, jeśli chcesz później zaktualizować swój sprzęt. SDL jest całkowicie wieloplatformowy dla systemów stacjonarnych.
  2. Allegro to kolejna old-schoolowa biblioteka przeznaczona do indywidualnego przesuwania pikseli bez potrzeby specjalnego sprzętu graficznego.

Dotykam Allegro mocniej z punktu widzenia pchania pikseli, ale nie sądzę, że widzi on ten sam poziom aktywności, co SDL, i chociaż SDL jest aktualizowany przez autora, myślę, że tak nie jest w przypadku Allegro.

Inżynier
źródło
-1: W tym roku ukazała się wersja 5 Allegro, która ma regularne aktualizacje. Więc ... Nie mam pojęcia o czym mówisz. Ponadto, dlaczego nie ma wzmianki o SFML?
Nicol Bolas,
Nawiasem mówiąc, moje doświadczenie dotyczyło Allegro 4. „Ponadto, dlaczego nie ma wzmianki o SFML?” - Czy mam obowiązek wspomnieć o każdej bibliotece, w tym o tych, w których nie mam zainteresowania / doświadczenia? Dlaczego Den ani Vigil również nie wspomnieli o SFML? Może dlatego, że nie chcieli? Nie musisz dalej uzasadniać -1.
Inżynier,
1

Możesz sprawdzić ANX:

ANX.Framework to framework, który jest zgodny ze źródłami z Microsoft XNA Framework 4.0. Zgodność źródła oznacza, że ​​można „przetłumaczyć” projekt gry XNA na projekt gry ANX, po prostu zastępując wszystkie przestrzenie nazw z Microsoft.XNA.Framework na ANX.Framework. Zaletą ANX jest po prostu to, że możesz zamienić RenderSystem, InputSystem i AudioSystem. Zamieniając te systemy, nie jesteś już ograniczony do uruchamiania gry przy użyciu DirectX9, którego używa XNA. ANX jest domyślnie wyposażony w RenderSystem DirectX10. Obecnie opracowywane są DirectX 11, DirectX 11.1 i OpenGL 3 RenderSystem. Umożliwi to uruchamianie gier w systemie Linux i innych platformach obsługiwanych przez OpenGL itp., Po prostu poprzez zamianę przestrzeni nazw.

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

Nadal jest intensywnie rozwijany, ale większość podstawowych funkcji XNA jest zaimplementowana.

floAr
źródło