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