Fishwars: GUI

Well, the thing should be windowed. It’s not going to be compelling enough or interactive enough to justify full-screen. The most common mode of operation should resemble the QBasic program: no frills, just fish and explosions, no menu bar or status bar or anything like that. The title bar can probably stay; it serves important functions like moving and closing the window which would have to be implemented in other ways if the title bar were absent. Maybe I’ll implement those alternate methods anyway and then make hiding the title bar optional.

With no menu bar or anything, there must be a right-click-anywhere context menu, and it must be slick. The most prominent feature of the context menu will be a minimap type of thing. The thing is, for evolution to work properly there needs to be a lot of fish, and that means the field of play has to be very large, larger than a modest window can display. Since the window can only show a portion of the action there needs to be a variety of ways to pan that viewport. A readily accessible minimap is essential. Left-clicking and dragging in the main window, also useful. Throw in arrow keys and that should about cover it. There should also be an automatic panning function which intelligently pans the view to include interesting action.

The window will be resizable but with special restrictions. Since the window contents will be drawn with extra large zoomed-in pixels, window resizing needs to be limited to a coarse granularity to avoid partial pixel rows and columns at the edges. There’s also a potential issue with very large windows: it’s possible the window could be wider or taller than the fish tank. Optimally the window would just refuse to be oversized, but if that’s not possible the next best thing would be to automatically increase the zoom level enough to fill it.

This entry was posted in Uncategorized and tagged . Bookmark the permalink.