Gameplay interface enhancements

Got an idea for OpenTTD? Post it here!

Moderator: OpenTTD Developers

Hattyfatner
Engineer
Engineer
Posts: 35
Joined: 18 Jun 2016 20:45

Gameplay interface enhancements

Post by Hattyfatner »

I posted this in the wrong forum earlier and paid dearly for it so here it is again, now in the correct forum!

These are not additional gameplay elements or alterations but simply alterations to the controls which I feel would make the game a bit nicer to play.

1) Right click cancels the current tool.
I realise it is already used for tooltips and scrolling but if the click is made not on an object and without and mouse movement this could be the default action.

2) Windows open in the center of the screen then cascade.
About 50% of my time in this game is spent arranging windows and if it would be possible I think this feature would really save A LOT of time organising windows.

3) A button for organising windows.
This would align all related vehicles and the vehicle information sub-windows in a tidy manner around the screen in numerical order if possible, organising vehicle types, station windows etc next to each other.

4) Information windows snaps to main window and doesn't move when changed to timetable.
I realise this is probably not an easy one to code.

5) A button to toggle passenger numbers/cargo/ratings on and off over stations.
So useful.

6) A way to edit all station waiting times or increment days up or down across all station waiting times or increment all travel times up or down by 1.
Again, about 25% of my times is spent doing this.

I realise these may be very technically difficult to achieve but for me they would free up time to concentrate on playing the game and just cut the number of clicks down by miles.

I realise this is open source and if you want something doing you can always do it yourself but if someone else thinks they're good suggestions then maybe someone would do it some day...
Transportman
Tycoon
Tycoon
Posts: 2781
Joined: 22 Feb 2011 18:34

Re: Gameplay interface enhancements

Post by Transportman »

1: Doesn't Esc cancel the current action? That would seem more logical to me than using the right mouse button.
2: Why the center and not the top left corner?
3: How should that be organized? Windows can be different sizes, there can be more windows open than that can be fitted on the screen, so I'm not really sure this is the way to go. And different people can have different preferences as to how the windows should be organized.
4: Information windows, main window? Are you talking about the window of a vehicle the windows you can open from that window?
5: A toggle would be nice to display waiting cargo and rating (basically like the townnames that show the number of inhabitants). Maybe industries could then also display their production per month, although that might lead to an inconsistency with the townnames showing the population, industries showing monthly production and stations showing waiting cargo.
6: I would do that a bit more flexible than just +/-1, and allow a value to be entered, so that it would also work when the timetable is not yet filled, or when larger changes are needed because of a change in vehicles.
Coder of the Dutch Trackset | Development support for the Dutch Trainset | Coder of the 2cc TrainsInNML
3298
Traffic Manager
Traffic Manager
Posts: 143
Joined: 02 Apr 2011 12:55

Re: Gameplay interface enhancements

Post by 3298 »

For the record, I exchanged a few PMs with Hattyfatner after the previous thread was closed. Even though that thread contained some aggressive words, I think we can get along nicely. For those who read that thread, I want to bring a misunderstanding to your attention. It's about the word "simple" as used by Hattyfatner - everyone (including myself) interpreted it as "easy to code", but it was apparently meant as "short, easy to explain and understand". So let's start fresh.

On to the individual suggestions.
1. As has been discussed already, the other right-click actions (tooltips, map scrolling) could make a coder's life difficult when implementing this one. It's doable, though, and I think it could be pretty useful. In the meantime, the Escape key should do, but I get that reaching out to that key may be inconvenient.
2. and 3. These look to me like they are best used together. It doesn't fit my style because I want control over my windows, so I don't see any real benefit for myself. As a coder, the prospect of having the game guess where the best position for a window would be leaves me somewhat uneasy simply because "best" is subjective here.
4. This is a new one here (though there has been the occasional complaint about its current behavior), and it's a good one because obscuring another window is undesirable, but the orders, timetable, and vehicle information windows always do it when opened. Changing the position where the window opens is not difficult, but you need to make sure it doesn't open off-screen (e.g. when the vehicle window is at the border of the screen) - otherwise it's stuck there. If you check the advanced settings, you'll find the somewhat related setting to open the landscaping toolbar together with other construction toolbars - but unfortunately moving any of the toolbars leaves the other one where it is, so they aren't really glued together. That would need to be implemented, and I'd guess it's not easy. To anyone trying to implement it: Not only moving, but also shading and resizing windows (dragging the bottom corner, restoring the original size with a button at the top, and toggling compact mode for the few windows with one, and a few others like reinitializing windows after a language change) are actions to monitor. Keeping the position of the orders and timetable windows when switching between them should be easy, though - the only thing to watch out for is that the previous window stays if it's pinned, so in that case keeping the position would obscure it again. Ideally gluing windows together should be available to all kinds of windows - but I'm not sure how a player could differentiate between gluing them together and just placing them next to each other.
5. I see you left out the Tab key this time - probably because I complained that it would conflict with another function of that key. ;) Leaving aside the specific key (it might even have no key by default; there are many unbound hotkey actions in a stock hotkeys.cfg), this is a decent suggestion. I would place it in the settings dropdown in the toolbar as well, next to the settings for signs, station names, and so on. I've messed with a piece of code relevant to that before, so I know the main place to edit for this is probably the function ViewportAddStationNames in viewport.cpp, the dropdown is in toolbar_gui.cpp, the hotkey could be defined either there as a toolbar hotkey or in main_gui.cpp as a global hotkey. It would be a toggle hotkey like the transparency stuff. The DisplayOptions enum in openttd.h looks like a reasonable place to store the state (that also requires editing the display_opt section of table/misc_settings.ini). At least one string would have to be added to all languages (most of that would be the translators' job, coders usually only touch lang/english.txt) which would be similar to the existing string for the station name, but also include additional lines for the other pieces of information you want. The station name would then be shown as the old string or the new bulky string depending on the state of the new display option.
6. There have been several similar requests earlier. Some wanted to clear all times or all speed limits (could be Ctrl-click on the appropriate clearing button), the others wanted to overwrite all travel times, all wait times, or all speed limits (could be Ctrl-click on the appropriate setting button). Your suggestion differs by adding/substracting a number to/from existing values instead of overwriting them, which covers other use cases. At first these seem to conflict, but the use case of the others can be covered with your suggested feature: If the time/speed is not set, adding/subtracting is pointless, so it has to be overwritten anyway - overwriting all set values could be done by clearing them all, then modifying them all - two clicks with Ctrl held down for both instead of one, but that's not too bad because the buttons are even next to each other. This patch would probably only touch timetable_gui.cpp (mostly functions TimetableWindow::OnClick and TimetableWindow::OnQueryTextFinished) and the language files (changing the tooltips to describe the new features). I seem to remember input windows having slight problems with negative numbers, though - at least it didn't allow me to type the negative sign when I tried it. That needs to be sorted out, of course.

I might have a go at some of these in the future, but that's not a promise. If any other coder wants to work on these, don't wait for me and go ahead.
PropH
Engineer
Engineer
Posts: 45
Joined: 10 Jun 2016 08:45
Location: Russia

Re: Gameplay interface enhancements

Post by PropH »

[+] Spoiler
1468929300194.jpg
1468929300194.jpg (35.05 KiB) Viewed 3311 times
[/i]Any ideas how should it look?
(I can't draw good, cuz I'm using tablet, and there's no straight lines and pipette. Btw it will look better in game)
Sorry for my "great" English
Hattyfatner
Engineer
Engineer
Posts: 35
Joined: 18 Jun 2016 20:45

Re: Gameplay interface enhancements

Post by Hattyfatner »

Thanks for the responses!

1) "I think it could be pretty useful" Ah I'm glad you agree 3298! I'm not a programmer but if you monitor if the mouse has moved and it hasn't, and the mouse isn't over an object, then right-clicking would cancel the tool would be an intuitive action to most people I feel.

2) Windows open up in random places and I think this is broken. It feels like an additional unwanted challenge hunting for windows when your trying to concentrate on the game.

They should open first in the middle I feel, so you know where it will be and muscle memory can grab it and put it somewhere better more quickly.

Alternatively, as the current behaviour is to open adjacent to the most recently opened window and this can lead to windows opening up all over the screen finding places to fit, a better way might to open a window starting in the first available place in the most top-left corner and work down and to the right (like you said Transportman). That way it will be more easy to keep track of windows.

3) In terms of ordering windows, yes everyone would have their own ideas but here are my suggestions: just order the windows from top left to botttom right and group similar windows together such as vehicles etc. I think most people would find that fine for a 1 button press. I mean this is not removing any functionality, only adding it - using it is optional. When space runs out they would have to overlap so you could start again by adding a new position in the top left, 10-15px down and right of the first window and start the process again. I think having too many windows open is something the player has to limit by neccesity as there is only ever so much screen to fit things on.

4) I meant just the vehicle information window sticking to the vehicle window. It would lose its snap if the host width was altered. So this should mean minimizing windows would keep the snap. The snap could be indicated by a momentary highlight around both windows (1px white).

If keeping the position of the info/orders window is easy that's great. I'm sure A LOT of people would like that 1. I see the pin button does force a new window to open. Could that maybe be fixed with code?

If the window is too far to the right it could open below and too far to the bottom and right, it would have to cascade and not snap.

5) You could have it as a setting but I think it would be easier to toggle it as the screen might get a bit cluttered with it on all the time and I find the menus bit fiddly...

I see you are talking in C++ programming terms to me. Sadly, I regret to inform you that I don't know C++ and would be no help in actually implementing these suggestions. I have been recommended C++ for dummy's but it would be a while before I would be much help here. (But I assume somebody will understand it...)

NB. I saw a video with someone actually using this feature. If I find it again I will post the grf...

6) I don't think changing the travel times to the same number would ever be useful as each journey inbetween stops has a different time value. I always add a few days of buffer to waiting and travel times so increments is really needed on travel times at least. Waiting times on the other hand I tend to keep the same.

To be honest, I consider a few of these suggestions fixes rather than improvements which is not to suggest anyone broke the game, just that the interface is not quite finished yet...
Last edited by Hattyfatner on 19 Jul 2016 13:47, edited 1 time in total.
Hattyfatner
Engineer
Engineer
Posts: 35
Joined: 18 Jun 2016 20:45

Re: Gameplay interface enhancements

Post by Hattyfatner »

Like it PropH but would put station name at the top.
3298
Traffic Manager
Traffic Manager
Posts: 143
Joined: 02 Apr 2011 12:55

Re: Gameplay interface enhancements

Post by 3298 »

Hattyfatner wrote:I see the pin button does force a new window to open. Could that maybe be fixed with code?
It could, but I'm using that. Like this:
1. Buy a vehicle, open order window, assign orders
2. Switch to timetable (while leaving the orders open), enable autofill, launch the vehicle, wait for it to finish its first round
3. Start adjusting times... whoops, that's a wrong order - quickly correct it in the order window (which I've put in the proximity of the timetable window)
4. Clone vehicle a few times, set start dates (from timetable), let the clone army invade my network
If I had to open the order window in step 3 or the timetable window in step 4 again, I would have to spend another click for that. With the current forced initial position that's extra annoying, of course, but even without that I can save clicks. In some cases the wrong order can actually be intentional; for example when I want to make sure the depot order doesn't delay the vehicle, I set the order flag to always visit the depot. As soon as the vehicle is done autofilling, this flag gets changed to only visit the depot when the vehicle needs maintenance.
When the orders / timetable window is pinned, opening the other one could just place it normally, removing the initial position override it has now, or it could be placed adjacent to the already existing one (instead of at the same position, which would be done when not pinned). That should work fine for players like me who want both windows at the same time.
Hattyfatner wrote:I see you are talking in C++ programming terms to me. Sadly, I regret to inform you that I don't know C++ and would be no help in actually implementing these suggestions. I have been recommended C++ for dummy's but it would be a while before I would be much help here. (But I assume somebody will understand it...)
Yes, that tech talk was meant for those who understand it and want to implement it. If I have that information already, keeping it to myself would be pretty stupid, wouldn't it?
Hattyfatner wrote:You could have it as a setting but I think it would be easier to toggle it as the screen might get a bit cluttered with it on all the time and I find the menus bit fiddly...
Nah, the setting would be in addition to your hotkey so those who don't use hotkeys have a chance to discover it. If the settings are too fiddly, just push the correct key on the keyboard. Besides, I'm talking about the menu entries in the dropdown that comes from the toolbar button with a gear on it - they have checkmarks next to them, so toggling it without a hotkey would be as simple as clicking on the gear, dragging down to the menu entry, then releasing the mouse button. Hiding it in the advanced settings window was not my intention, that would indeed be pointless.
Hattyfatner wrote:NB. I saw a video with someone actually using this feature. If I find it again I will post the grf...
A GRF can't do that, so it has to be a patch. I'm not aware of such a patch, though.
Hattyfatner wrote:I don't think changing the travel times to the same number would ever be useful as each journey inbetween stops has a different time value. I always add a few days of buffer to waiting and travel times so increments is really needed on travel times at least. Waiting times on the other hand I tend to keep the same.
I'm just retelling what I read, not my fault. ;) I do normalize my waiting times, though, so it wouldn't be totally useless.

By the way, I actually found a patch for the older suggestions similar to yours. The bug tracker has a few feature requests for parts of it, but I think digging them up serves no purpose.
User avatar
adf88
Chief Executive
Chief Executive
Posts: 644
Joined: 14 Jan 2008 15:51
Location: PL

Re: Gameplay interface enhancements

Post by adf88 »

Hattyfatner wrote:5) A button to toggle passenger numbers/cargo/ratings on and off over stations.
So useful.
How about using tooltips for the purpose? There is already industry tooltips patch. I also wrote a patch for stations and towns. It'll publish it soon.
:] don't worry, be happy and checkout my patches
lcd_47
Engineer
Engineer
Posts: 78
Joined: 27 Sep 2006 18:04

Re: Gameplay interface enhancements

Post by lcd_47 »

My take on your suggestions:

1) I've been using right cllick to scroll map since the days of Transport Tycoon Deluxe. Please don't shove your UI preferences down my throat, thank you very much.

4) Possibly useful, but it would take more space.

5) The Citymania and BTPro patches do that with (optional) tooltips. Very useful feature.

6) I wrote a patch for something similar a while ago. You can probably find it around if you're prepared to compile OpenTTD yourself.
3298
Traffic Manager
Traffic Manager
Posts: 143
Joined: 02 Apr 2011 12:55

Re: Gameplay interface enhancements

Post by 3298 »

lcd_47 wrote:1) I've been using right cllick to scroll map since the days of Transport Tycoon Deluxe. Please don't shove your UI preferences down my throat, thank you very much.
We concluded that the current building tool would not be deselected when scrolling is detected, so that's unlikely to interfere.
lcd_47 wrote:6) I wrote a patch for something similar a while ago. You can probably find it around if you're prepared to compile OpenTTD yourself.
Found it already, it's the one I linked at the end of my previous post. :P
Hattyfatner
Engineer
Engineer
Posts: 35
Joined: 18 Jun 2016 20:45

Re: Gameplay interface enhancements

Post by Hattyfatner »

Well I consider all these changes fixes really for things that have been left undone so I have this very bossy tone about me, I realise that. I like how point 1) is 'STOP MESSING WITH MY INTERFACE!' Then point 2 is 'This one is ok', I see your point Lcd, they do use A LOT of space but I tend to find myself moving them to the side anyway so I can see the vehicle.

I will check out the Citymania and BTPro patches just as soon as I've figured out how to patch it.

I consider these subtle alterations to the interface that would make big efficiencies and fix a few things that I think might have been kind of overlooked a bit or grown over time as the game has changed. Manually typing in numbers for every route is essential I think for every player that plays the game seriously and would save loads of time to have a thing to click times up or down.

You could argue, 3298, that you are exploiting a bug, but I don't think most people would think to do that.

So really I see these suggestions as changes to facilitate the actual playing of the game itself as it already exists.

I would like to see it on a final release under 'interface'.

How do I go about pushing this in the face of a lead dev?

How often does a final release get released?
Hattyfatner
Engineer
Engineer
Posts: 35
Joined: 18 Jun 2016 20:45

Re: Gameplay interface enhancements

Post by Hattyfatner »

Oh yeah, I remember someone saying computers can't do minus as a command like its negative 1 twice or something stupid and weird like that.
User avatar
Sylf
President
President
Posts: 957
Joined: 23 Nov 2010 21:25
Location: ::1

Re: Gameplay interface enhancements

Post by Sylf »

Hattyfatner wrote:I will check out the Citymania and BTPro patches just as soon as I've figured out how to patch it.
If you're on Windows, it's just a matter of downloading the pre-patched version on their sites.
You only need to apply patch and compile your own copy only if you're not on Windows.
http://openttd.btpro.nl/forum/30-btpro- ... ient-1-6-1
https://citymania.org/downloads
Hattyfatner
Engineer
Engineer
Posts: 35
Joined: 18 Jun 2016 20:45

Re: Gameplay interface enhancements

Post by Hattyfatner »

In fact, now I think about it, isn't there already a patch which creates a button to auto-space the engines on a route without first autofilling them? Maybe I imagined tha. I think it could be done by calculating the estimated route without considering interruptions, breakdowns etc if that were possible then just spacing the start dates out by a division of the overall travel time by the amount of vehicles on the line, then some complicated stuff to space out the engines correctly between the respective stations and differing journey lengths (wait that has already been done and hidden as a ctrl-click on the 'start time' button).

So maybe a new thread needed for that one.

'Auto-space' engines! People would appreciate that one I think.
Hattyfatner
Engineer
Engineer
Posts: 35
Joined: 18 Jun 2016 20:45

Re: Gameplay interface enhancements

Post by Hattyfatner »

OK this is the last thing I post in a row I promise... Just realised, could the vehicle information windows be made to go thinner...?
lcd_47
Engineer
Engineer
Posts: 78
Joined: 27 Sep 2006 18:04

Re: Gameplay interface enhancements

Post by lcd_47 »

Hattyfatner wrote:I like how point 1) is 'STOP MESSING WITH MY INTERFACE!'
You misunderstand. I'm essentially nobody in this project, I'm not speaking about "my" interface. I'm just pointing out that, you know, other people might have different preferences than you.
Hattyfatner wrote:I will check out the Citymania and BTPro patches just as soon as I've figured out how to patch it.
They both offer precompiled binaries.
Hattyfatner wrote:How do I go about pushing this in the face of a lead dev?
You did. As far as I can tell, the lead dev was, err, not entirely convinced.
Hattyfatner
Engineer
Engineer
Posts: 35
Joined: 18 Jun 2016 20:45

Re: Gameplay interface enhancements

Post by Hattyfatner »

Not entirely convinced? That's just nuts. These are things that really should be there already. They're really important bug fixes as far as I'm concerned. Window management and timtabling are the most labourious tasks in the game and by making and auto-space, auto-window arrange would free up most of the time I spend doing just that.

Also, the timetable windows really should be shrinkable width-wise, this is definitely an oversight, and they should appear attached to the vehicle window in the same height and width.

I get that programming is hard but I just don't get why that's so hard.

I suppose Aspeth was right. If you want it doing, you really do have to do it yourself. Even if its a bug-fix.
Hattyfatner
Engineer
Engineer
Posts: 35
Joined: 18 Jun 2016 20:45

Re: Gameplay interface enhancements

Post by Hattyfatner »

I don't suppose he explained in any way what his or her reasoning was that such a decision can be made by some kind of ottd dev overlord that controls the flow of patches in the holy core of the final binary data files? The data must be secure, the patches must flow. Sorry been watching Dune...

Despite the fact that it hasn't even been written yet.
Hattyfatner
Engineer
Engineer
Posts: 35
Joined: 18 Jun 2016 20:45

Re: Gameplay interface enhancements

Post by Hattyfatner »

To be honest, I get it. Nobody gets paid so why do something you don't see the logic in. However, if poplar concencus asks for it, then someone does it, then why not put in the patch?
Hattyfatner
Engineer
Engineer
Posts: 35
Joined: 18 Jun 2016 20:45

Re: Gameplay interface enhancements

Post by Hattyfatner »

You did. As far as I can tell, the lead dev was, err, not entirely convinced.
I get the feeling your pulling my leg now.
Post Reply

Return to “OpenTTD Suggestions”

Who is online

Users browsing this forum: No registered users and 20 guests