2012-02-16 16 views
7

Rozważam stworzenie RPG opartego na terminalach, jakie są akceptowane i zalecane metody pisania tego na platformie? Nie jestem pewien jakiego języka będę używać, ale potrzebuję czegoś z funkcjonalnością, aby przesunąć kursor i zmienić kolor pierwszego planu. Zainspirowany grami takimi jak NetHack, ten rodzaj sterowania byłby idealny, i Chcę móc go napisać, więc mogę go wypuścić dla systemów Windows i Unix. Użyłem ncurses dla C++ i zastanawiałem się, czy jest coś podobnego do tego do użytku z projektami na różnych platformach.Terminal oparty na RPG

Biorąc pod uwagę: C++ Java C C#

Odpowiedz

2

Jeśli planujesz robić grafikę terminalu, możesz napisać własne funkcje owijania dla kodów ucieczki terminalu VT-100, które mogą, między innymi, zmieniać kolor pierwszego planu i tła i przesuwać kursor. Wszystko, co musisz zrobić, to wpisać odpowiednie kody ucieczki.

http://www.termsys.demon.co.uk/vtansi.htm

Również Java jest prawdopodobnie najprostszym sposobem, aby być cross-platform, choć oczywiście nie wymagają th0e ludzie prowadzący grę mieć zainstalowane środowisko wykonawcze Java. C i C++ mogą być również wieloplatformowe, jeśli starannie napiszesz swój kod, szczególnie jeśli nie masz zbyt wielu zewnętrznych zależności (które nie powinny być konieczne w przypadku gry tekstowej).

3

Nie sądzę, że istnieje niezależna od platformy alternatywa dla ncurses. Najlepiej byłoby użyć ncurses w systemach uniksowych i pdcurses dla Windows. Ponieważ interfejsy API są w dużej mierze takie same, mamy nadzieję, że nie skończy się to zbytnim powieleniem kodu - tylko kilka z #ifdef s tu i tam.

+0

Czy wersja pdcurses X11 nie pozwoli na użycie tej samej biblioteki na obu platformach? – Jason

+0

@Jason Nie, jeśli chcesz, aby był oparty na terminalu (który OP robi zgodnie z tytułem). Wersja X11 będzie działać we własnym oknie, a nie na terminalu. – sepp2k

+0

Sam terminal jest zwykle aplikacją X11 ... Nie próbuję być celowo nieprzyjemny, ale nie sądzę, że będzie znaczna różnica w "wyglądzie" aplikacji, chyba że chce uruchomić grę w faktycznym trybie terminalowym tylko w systemie Linux/Unix. – Jason