Annotation of wikisrc/projects/project/ui-plugins-for-games.mdwn, revision 1.1
1.1 ! dholland 1: [[!template id=project
! 2:
! 3: title="User interface plugins for games"
! 4:
! 5: contact="""
! 6: [tech-x11](mailto:tech-x11@NetBSD.org),
! 7: [tech-toolchain](mailto:tech-toolchain@NetBSD.org),
! 8: """
! 9:
! 10: category="desktop"
! 11: difficulty="medium"
! 12:
! 13: description="""
! 14: Some of the games in base would be much more playable with even a
! 15: simple graphic interface.
! 16: The card games (e.g. canfield, cribbage) are particularly pointed
! 17: examples; but quite a few others, e.g. atc, gomoku, hunt, and sail if
! 18: anyone ever fixes its backend, would benefit as well.
! 19:
! 20: There are two parts to this project: the first and basically mostly
! 21: easy part is to pick a game and write an alternate user interface for
! 22: it, using SDL or gtk2 or tk or whatever seems appropriate.
! 23:
! 24: The hard part is to arrange the system-level infrastructure so that
! 25: the new user interface appears as a plugin for the game that can be
! 26: installed from pkgsrc but that gets found and run if appropriate when
! 27: the game is invoked from /usr/games.
! 28: The infrastructure should be sufficiently general that lots of
! 29: programs in base can have plugins.
! 30:
! 31: Some things this entails:
! 32:
! 33: * possibly setting up a support library in the base system for program
! 34: plugins, if it appears warranted;
! 35:
! 36: * setting up infrastructure in the build system for programs with
! 37: plugins, if needed;
! 38:
! 39: * preferably also setting up infrastructure in the build system for
! 40: building plugins;
! 41:
! 42: * choosing a place to put the header files needed to build external
! 43: plugins;
! 44:
! 45: * choosing a place to put plugin libraries, too, as there isn't a
! 46: common model out there yet;
! 47:
! 48: * establishing a canonical way for programs in base to find things in
! 49: pkgsrc, which is not technically difficult but will require a lot of
! 50: wrangling to reach a community consensus;
! 51:
! 52: * setting up any pkgsrc infrastructure needed to build plugin packages
! 53: for base (this should take little or no work).
! 54:
! 55: It is possible that plugins warrant a toplevel directory under each
! 56: prefix rather than being stuffed in lib/ directories; e.g.
! 57: /usr/plugins, /usr/pkg/plugins, /usr/local/plugins, so the
! 58: pkgsrc-installed plugins for e.g. rogue would go by default in
! 59: /usr/pkg/plugins/rogue.
! 60:
! 61: Note that while this project is disguised as a frivolous project on
! 62: games, the infrastructure created will certainly be wanted in the
! 63: medium to long term for other more meaty things.
! 64: Doing it on games first is a way to get it done without depending on
! 65: or conflicting with much of anything else.
! 66: """
! 67: ]]
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb