- I'm also proposing some generic engine improvements that will benefit all games that want to use these new or improved functionalities. Such as: better zoom, displaying and dragging waypoints, and so on. Games should be able to disable or customize those functionalities from the Lua side.
- I'm proposing to improve the default UI (including non-visual stuff such as default keybindings) so it works better with games that have TA-style gameplay. Thus benefitting most of the players, and improving Spring's image. Other games can do whatever changes they want, it won't affect them.
I know that most games with TA gameplay currently lack IP-free media, and I endorse the effort to correct the situation.
I've greyed out paragraphs refering to *A-style games, to draw more attention to the remaining engine-side changes.
---------------------------------------
I just came back to Spring after playing a lot of Forged Alliance, and I think we could learn some things from their UI. This will probably overlap a lot of other topics, but I'd rather write the whole thing while it's fresh in my head:
1. Zoom that works so well you don't need the minimap or scrolling.
This means at least:
- you're able to get to from orbital to ground level in one flick of the mouse wheel (forget tab, your other hand needs to be free to press shift to queue commands, or something else), and vice versa. This means the zoom speed differs depending on your zoom level.
- max zoom out takes into account the interface, so when you're zoomed out you can really see the whole map.
- CLEAR strategic icons that instantly show you the unit type and tech level, and avoid as much as possible overlapping other icons. Also, you can draw them at all times if you want, to help identify buildings when zoomed in and in a hurry.
- your mouse position is taken into account when zooming in and out:
2. Shift doesn't have a double-function: it shouldn't both be used to queue units and to accelerate the camera, that's irritating.Gota wrote: The difference between the TA and SupCom cameras is that in SupCom,when you zoom out the camera zooms out from your cursor until it meets one of the map borders,than,it will keep zooming out but only towards the other borders,slowly centering and eventually revealing the entire map form a top down view.
The point you were zooming out of always stays in your sight,you dont see much of the area outside the map and you can smoothly zoom out completely until you see the entire map from above.
ATM you only zoom to a certain height,you can't smoothly zoom out to see the entire map from every place on the map,in some cases you see a lot of the area outside the map and you need to press a special button,Tab,to zoom out completely.
(Same goes for alt and ctrl, they can be put to better use in gameplay that for the camera.)
3. Shift shows the queued orders of all units. Deleting orders (build, move or others) is easily done with ctrl-right-click. In Spring to cancel 5 different queued buildings from 5 different construction units you have a. to find those units b. to select the exact same building on the right page of the build menu, and click on the exact same spot.
4. Dragging waypoints and blueprints. There's a lua widget for this, but it's really bad. It conflicts with the use of the ctrl key to place a ring of buildings around another [built-in Spring function], and sometimes trying to place two blueprints next to each other (i.e. a solar next to a mex) moves the first one instead of placing the second. It should probably coded in c++ for performance and integration reasons. Most mods/games will want to use this.
5. Default selection skips buildings, transports, engineers and the commander. Again this is the most sensible default I've ever seen - great for reacting quickly to an attack with all available troops without sending your constructors to their death (and accidentally stopping constructions).
6. Range circles displayed by default, and that can be combined to show overall coverage. I think it should be a C++ coded functionality that can be disabled by the rare mods that don't want it.
7. Metal and Geo spots always visible when zoomed out [meaning there's always a glowing icon, and it's always very visible no matter the zoom level], and snapping to those for mex and geo plant placement. Hey, I know that for metal this depends a lot on the map, since Spring can have a complex metal map. But it would work for geos at least - and some algorithm to detect "metal spots" that most maps use nowadays could do the equivalent for mex placement.
8. Transport: select a bunch of air transports and units, give a transport order somewhere, and the transport will airlift all units to the destination. I can't really imagine a faster method of getting units somewhere.
9. Attack move: unless I forgot about it, Spring lacks the alt-right-click attack move FA has, which makes units move until they encounter a target, and makes engineers reclaim stuff on the way.
Edit: OK, it's currently the Fight move, assigned to F. Still think it should be moved to alt-right click, it's more intuitive for new players and easier to use in conjunction to shift and/or ctrl.
10. Is any of this the sole responsability of games/mods, not of the engine? Well then BA should receive major pressure to integrate the most essential of these features, since for better or for worse it's the world's window on Spring, for now. They should only include bug-free, compatible stuff, though... I tried a very clean install of the CA stable version showcased on the games page, and the widgets (even if nifty) were rather intrusive, and most of them crashed in the course of the game...
I should say here that Spring does have some nifty tricks of its own, area commands being the best one that I wished FA had implemented. (also insanely cool, being able to see people's cursors moving when spectating). In any case, I'm pretty sure that some Supcom/FA UI features were inspired by Spring, such as auto-shooting at radar dots, repeating queues, pausing factories, and so on. It's time to steal back!!!
Finally, and as a disclaimer: I know that if I spend 3 hours remapping my keys and testing various (crash-prone) Lua widgets I could improve my interface a lot, but for <insert your deity here>'s sake! We really need better defaults.