Poleć silnik gry z graficznym interfejsem 2D do gry strategicznej intensywnie korzystającej z interfejsu użytkownika [zamknięte]

11

Tak, jest to kolejne zalecenie dotyczące silnika gry; „twist” polega na tym, że robię grę strategiczną, a oprócz sprajtów, animacji i abstrakcji elementów sterujących wejściowych, musi on obsługiwać GUI dla dość złożonych elementów sterujących, takich jak paski przewijania, pola wyboru, przyciski i tym podobne.

Próbowałem XNA z różnymi bibliotekami GUI, ale problem polega na tym, że biblioteki te nie zostały „ukończone”. Zastanawiam się tylko, czy mogę zobaczyć inne silniki?

Extrakun
źródło

Odpowiedzi:

5

libRocket niedawno przeszedł na open source.

To nie jest silnik gry. Określają się jako oprogramowanie pośrednie. Ale biblioteka jest całkiem dobrze zrobiona, z naciskiem na usunięcie kodu szablonu z twojego GUI. Opiera się na XHTML i CSS, więc jeśli znasz się już na tworzeniu stron internetowych, może być to świetne dopasowanie.

Ale to nie jest silnik gry, który nadal musisz rozwiązać osobno. Możesz znaleźć wskazówki dotyczące tego pytania.
Zalecany silnik gry 2D do prototypowania

deft_code
źródło
Czy libRocket renderuje elementy GUI, czy po prostu podaje opis? Przepraszam, jeśli to głupie pytanie, ale lista funkcji tak naprawdę nie określa, czy faktycznie się renderuje.
Extrakun
1
Używa abstrakcyjnego zaplecza renderującego. Użytkownik ma możliwość zdefiniowania własnego. Jednak katalog próbek ma konkretny mechanizm renderujący dla Ogre3D, DirectX i OpenGL.
deft_code,
2

Nie znam żadnych darmowych silników gier, które byłyby dostarczane z biblioteką interfejsu użytkownika na poziomie Windows, ale CEGUI jest dojrzałym rozwiązaniem dla osób używających OGRE .

Inną opcją byłoby użycie GTK + lub natywnego widżetu platformy na Win32 / OS X i osadzenie kontekstu OpenGL w jednym z tych widżetów. Są to ogólnie „najlepsze” interfejsy użytkownika, jeśli szukasz długiej listy funkcji.

Jeśli twoją platformą docelową jest XNA, nie znajdziesz wiele przydatnych. Kluczowym punktem sprzedaży XNA jest zgodność między platformami, co oznacza, że ​​ciężkie sterowanie myszą nie jest priorytetem dla osób, które go używają.


źródło
Szczerze mówiąc, zastanawiałem się nad użyciem Qt 4.5, choć chciałbym dowiedzieć się, czy ktoś ma jakiekolwiek doświadczenie ze skórowaniem go tak, aby działał jak środowisko w grze, lub uruchamianiem go na przykład SDL.
Extrakun
CEGUI można także używać bezpośrednio w OpenGL i innych silnikach renderujących ...
Klaim,
2

XPF jest wciąż na wczesnym etapie rozwoju, ale rozwija się dość szybko. Opiera się luźno na WPF i Silverlight, ale został opracowany dla XNA.

Mike Strobel
źródło
2

Cóż, jeśli nie masz nic przeciwko odejściu od C # do C ++, możesz sprawdzić HGE . Jest trochę stary, ale jest bardzo łatwy w użyciu i rozszerzany. Jeśli chcesz trochę przeszukać fora, znajdziesz porty do DirectX 9 i może OpenGL (minęło trochę czasu). Domyślnie nie obsługuje rzeczy takich jak shadery. Obejmuje dźwięk i wejście, ale nie wykrywa fizyki ani nie wykrywa kolizji. Do tego zawsze jest Bullet lub Box2D. W przypadku gry turowej lub prostej gry w czasie rzeczywistym, która może nawet nie być konieczna.

Jeśli chodzi o GUI, jego wbudowanym GUI jest śmieci, ale możesz zintegrować z nim CEGUI. CEGUI można łatwo rozszerzyć na różne systemy renderowania, nawet jeśli tworzenie skórki może być kłopotliwe. Implementacja dla HGE to dwa pliki i są one dość krótkie.

Clanlib może być również czymś, na co chcesz spojrzeć. Nie korzystałem z niego osobiście, ale wydaje się, że jest dość potężny i zawiera całkiem prosty komponent GUI. Jest również aktywnie rozwijany, podczas gdy HGE nie był aktualizowany od kilku lat.

piekarnik
źródło
2

Co do XNA, czy wypróbowałeś FlatRedBall w połączeniu z Neoforce ?

Oskar Duveborn
źródło
Próbowałem FlatRedBall, ale nie słyszałem o Neoforce. Sprawdzę to! Podczas sprawdzania Neofroce: Niestety, podobnie jak wiele projektów GUI XNA, nie są one utrzymywane przez ich programistów. Jeśli tylko Microsoft uczyni GUI częścią rdzenia XNA.
Extrakun
Neoforce nie ma już programisty, ale każdy może go bezpłatnie odebrać; p
Oskar Duveborn,
2

Możesz spróbować Squid. To niezależny od silnika GUI SDK dla .net (napisane przeze mnie: P). Tutaj: http://www.ionstar.org/?page_id=4


źródło
Chciałbym, aby istniał sposób na zaznaczenie dwóch poprawnych odpowiedzi
Extrakun,
0

Jeśli nie masz nic przeciwko samodzielnym kontrolom i chcesz mieć wiele niestandardowych kontrolek i wyglądów , sprawdź Scaleform . Jest to jeden z wiodących interfejsów menu gier.

Możesz myśleć o tym jak o odtwarzaczu Flash w grze.

Wernight
źródło
-1

Możesz rozważyć metodę GUI trybu natychmiastowego, która jest dostępna w Unity 3D . Unity 3D to niesamowity silnik do gier, który świetnie radzi sobie między innymi w 3D, 2D i GUI.

Wernight
źródło
Jak wspomniałem w innym pytaniu dotyczącym interfejsu użytkownika, nigdy nie widziałem skalowania IMGUI do wielu okien, pól kombi i kontrolek listy kolumnowej. Uderzasz w ściany wydajności i ściany projektowe API dość szybko. Obecna biblioteka GUI Unity zdecydowanie nie skaluje się dobrze pod względem wydajności ani funkcji.
Warto zauważyć, że własny interfejs GUI Unity jest implementowany przy użyciu dostarczonego przez nich systemu IMGUI.
Jason Kozak,
@Jason: To półprawda. Edytor Unity ( unity3d.com/support/documentation/ScriptReference/... ) zapewnia znacznie więcej prymitywnych widżetów niż zwykły GUILayout. Zobaczysz również, że te widżety są znacznie słabsze w porównaniu do zwykłej biblioteki GUI. I szczerze mówiąc, jeśli gra ma interfejs, który wydaje się podobny do edytora Unity - jeśli chodzi o szybkość reakcji, zachowanie skupienia, zasady aktywacji itp., Nie odnosząc się do wyglądu - nienawidzę tego.
@Joe Sprawiedliwy punkt, jeśli tworzysz gry w Unity; moim zamiarem było jedynie wskazanie przykładu bardziej złożonego IMGUI w działaniu. Ponieważ Unity jest bezpłatny, można go łatwo pobrać i ocenić.
Jason Kozak,
GUI IMHO Unity3D musi być rozszerzone o niektóre biblioteki stron trzecich, jeśli chcesz programować OOP, na przykład GUIX. Jednak Unity3D ma irytujący błąd, w którym możesz klikać elementy interfejsu użytkownika na zderzaki dołączone do bytów. To reklamowano, aby to naprawić w następnej wersji. Jednak obecnie myślę o 2D, a robienie 2D w Unity3D wymaga przeskoku. W przeciwnym razie jest to dobry szybki silnik do materiałów 3D.
Extrakun