Feature & Improvement Suggestions

Started by PCook, August 10, 2012, 02:54:02 PM

Previous topic - Next topic

PCook

Hi Folks;

This is a list of feature suggestions that I recently accumulated during about 6 full work days using the free edition of Terragen 2.4.

During this time I explored most of TG2's capabilities (except functions). I'll be honest, I am not nor likely to become an expert landscape visualist anytime soon and many aspects of TG2 have me stymied which is a state I expect to remain in for some time to come. But, I am very familiar with software design (I am a software developer by profession) and have used many software applications in my time. So, much of the following suggestions are rooted in what I believe to be good software design and ways that I believe would optimize my own efficiency working with TG2. Hopefully PlanetSide will consider each suggestion below (and any supporting/dissenting comments from others) and be able to implement some of the suggestions in subsequent versions.

I've numbered the suggestions to facilitate references if anyone wants to weigh in on the discussion of specific points, or simply quote the item.

-Pat

1. User option to keep render window(s) on top of other windows. Not modal, just on top of other windows. I'm not referring to the "preview" window here.

2. At time of project close, save all view settings with the project, including worksurface layout. There's no excuse to cause a user to lose his/her worksurface layout.

3. No confirm dialog window when stopping rendering of Quick render. Confirm only Full render stop. Quick render does not have the importance or commitment of a Full render.

4. Don't close render window on New project. Just clear the render window.

5. Don't close the render window on "Revert to Saved". Just clear the render window.

6. Open separate render windows for Full and Quick. As is, only one render window can be open (as far as I can tell). I'm not referring to the "preview" window here.  No need to render two at the same time, but don't close/clear Quick render window while Full render because user may want to refer to the Quick Render for whatever reason. Rule of thumb is to never take control of a user interface like this – let user has as many windows open as they want.

7. On help button, don't open the wiki in a new browser window/tab each time. People don't normally need to keep multiple help pages open – they usually just need help on what they are working on at the moment.

8. With Quick render, provide a previous and current render split view so user can see the image before and after setting changes and new Quick render. Could also be multiple render windows that toggle. This is an important request that will improve workflow where user can visually compare the before and after results of setting changes.

9. Bubble help on ALL user interface controls. No excuse for any to be missing.

10. A "close current project" on the File menu. As is, forced to exit the app to close a project.

11. Ability to enable/disable selected node(s) from the node treeview list (upper left).

12. Ability to disable all nodes with one selected node enabled (to "spotlight" a node) from the node list (upper left). Only the nodes of that section (Objects, Terrain, Shaders, etc) would be affected by this "spotlight" feature. This feature would give users the ability to isolate only the node of interest and its role in the entire project. Adobe Photoshop does this in the layers list window.

13. On all windows, show the unit of measure (UOM) for all settings. This is critical to usefulness. Do not assume people know UOM. I can't fathom why UOM would be rarely shown on the user interface of TG2.

14. On applicable settings windows, label the X, Y and Z coordinate entryfields. Don't assume user knows (or should know).

15. When focus is brought to an entryfield, highlight all existing values in that entryfield which allows user to immediately type a new value. As is, user has to be position to the beginning of entryfield string (or swipe all values) to overwrite, which are user movements that are not needed.

16. If #15 above is not adopted, then on focus to an entryfield, place the cursor at the far LEFT when the entryfield is numeric, and to the far RIGHT (as is the case now) when entryfield is alphanumeric.

17. Indicate connected nodes in the setting windows. Just list names of most immediate input/output nodes of the node of the current settings window. Just there as FYI to the user.

18. Be able to enable/disable a node in the network list via right mouse click popup (context) menu.

19. Do not reference TG classic in the wiki documents. Or, have a separate wiki version with TG classic references set my user preferences in the application. Many TG2 users have no need to know what was once done in TG classic.

20. Far too many TBC's in wiki documents. Eliminate all TBC's before writing any new wiki material.

21. Whole sections are missing in the wiki. Fills the holes.

22. Change the color of a node (highlight it) in the network view when user clicks on that node.

23. A "reset node to factory default" button, with confirmation, on each/most node settings windows. This will be critical in situations where a user experiments with node settings, but decides to abandon the node alterations. Using UNDO will likely result in undoing too far back – past the node itself. Discarding the node takes it out of the node network which may impact other nodes. Allow a reset to factory to reset or "clean up" a node to the same state as when first created in the node network (but without disconnecting it in the network).

24. Don't allow the typing on data types an entryfield can't accept/process. For instance, don't allow the typing of characters into numeric entryfields. Allowing this is not only confusing to users, but requires that the code handles bad entries.

25. Provide a "fine tune" adjustment of the setting sliders. Adobe Photoshop does this very nicely.

26. A "node restore point" function on each node settings windows. A "node restore point" would allow the user to experiment with a set of settings of a node and quickly revert back to a "restore point" that was set by the user at some point in his/her workflow for that node. Persist the node restore points with the project. Allow the user to clear a node restore point, with confirmation. Allow the user to overwrite an existing node restore point, with confirmation.

27. Ability to name incremental saves by appending string that user provides at time of the incremental save, not just 01, 02, etc.

28. At least one user definable "custom" render profile where user can set own render settings without losing Full and Quick render settings. Useful for an "ultra fast test render" per user's workflow, or whatever. Persist this custom render setting with the project.

29. Ability to save/export just the camera position so that user is not forced to do an incremental save for each scene camera view. Allows users to produce multiple/many images from the same project without doing an incremental save each time. Same result could be achieved using multiple cameras in one project, but the "camera position export" feature would still be useful.

30. Free version: DO NOT CHANGE RENDER SETTINGS when they exceed the free version limits. Advise the user and stop the render, but do not ever change anything programmatically.

31. Don't overwrite an existing file on incremental save.

32. Incremental save does not handle dates/numbers in filename properly. For instance file name of "MyTGTest-08102012" incrementally saves as "MyTGTest-08102013". In all cases, incremental save MUST append to the file name, not alter the existing file name. In this example, much better to have incrementally saved as "MyTGTest-08102012_01".

33. Highlight the node currently in view in the Network window, don't just center the node from the settings window "Centre node in network" function. Might also want to zoom in the network window when this function selected.

34. Trap errors!!! When TG2 crashes, I see no evidence of a error log or option to send error dump data back to PlanetSide. Usually when an app crashes, it's because an error occurred that was not "handled" within the application and, as such, the developers will never know why the crash occurred, let alone that a crash did occur. PlanetSide developers MUST make provisions to capture fault information if it is obtain maximum stability. If fault information can't be captured, then the application must capture the state of the application at the time of the crash for review and analysis. Nothing will cause software to be abandoned faster than instability and unreliability. While a hobbyist might survive a crash a day, serious VFX production houses are likely to throw a fit when they lose valuable work via a crash. Another strategy that should be adapted is to do a fast project save on a crash – a good way to save customer goodwill. Unhandled errors (crashes) must not be tolerated or must be made as non-destructive as possible.

35. If the free version is intended as a "buy me" trial only, then ignore this suggestion. If, on the other hand, PlanetSide actually wants people to get good results in a noncommercial (hobbyist) manner, then this suggestion will go a long way to creating loyal users, and is more likely to lead to license purchases IMO. In the free version, increase the maximum allowed resolution to 1800x1200. At that resolution, a user would be able to obtain a 6x4 inch print at 300DPI (300DPI is magazine quality and well within even inexpensive home ink jet printers). At the current limit of 800x600, a 6x4 inch print can only print at 133 DPI (dots per inch) which doesn't do much to show TG2's capabilities from a print, let alone a user's abilities. I am personally reluctant to show anyone my TG2 work printed to 6x4. Of course, 800x600 is not an issue if a user will only ever show TG2 images on a display device at 72 PPI (pixels per inch). But I would assume that many will want to print their TG2 work for personal archival or for showing family/friends when a computer is not present. In short, a 6x4 inch print with the current free version limits is poor testament to TG2, as well as authors. In fact, just forbidding commercial use and no render station keys is plenty to limit the free version, so I don't see the logic is very low resolution limits (such as 800x600) except to cause enough pain to drive people to buy a license key, which is not an effective sales strategy for the hobbyist. But like I said, if the free version is trial only, then keep the limits and change your website's "Buy Terragen 2" page to read "trial" rather than "non-commercial".

jo

Hi Pat,

Thanks for that very detailed feedback. There's some good suggestions there. I'm going to comment on some of your points, although not all of them. I respect the effort that you've made to compile this list and in some cases I'll explain why things are that way, but I won't come back and haggle over them. It's important to keep in mind that things which you find convenient may not be convenient for others. It's not really possible to please everyone.

3. The Quick render node is not any different from other render nodes so does not have special behaviour. It is just set up with lower quality settings for convenience. 

7. I don't think we can control this. In any case, I wouldn't want it to always open in the same page. I do like to have multiple pages open at the same time.

10. Just choose New from the File menu. TG2 doesn't run without a project open.

11. This is something we've looked at in the past but had some implementation issues, but will probably be revisited in the future.

13. It's a conscious decision to leave this off. Distances etc. are always metres. Angles are always degrees. Normally unusual units which matter are noted in param names.

14. It's a conscious decision to leave this off. Vector params are always XYZ for 3 vectors or XY for 2 vectors. Exceptions are usually noted.

A quick note for 15 and 16 - generally speaking TG2 uses OS provided user interface elements and they take on their standard behaviour. We try not to mess with that.

15. If you tab to an entry field then all the text is selected. It isn't if you click on it (can't check on Windows right now, could be different?) but in that case I want the cursor to go where the mouse clicks.

16. See the note above.

17. Can you explain that one a bit more?

20. and 21. The documentation is being added to all the time. Sometimes it's more rapidly than other times but we are steadily moving it forward. It's a massive job but we're making progress. There has been plenty of discussion of this already.

22. Selected nodes are highlighted. I'm not sure why you don't see it.

23. It's been suggested before and we may add this in the future.

24. I'm with you on that one :-), but the approach we decided to take was to allow entry of any characters.

26. That's an interesting suggestion.

28. You can set up your own default projects. You could use this to add a custom render node. More information here:

http://www.planetside.co.uk/wiki/index.php?title=Preferences_-_Startup_Panel

29. I would like to add a snapshot system for cameras which captures that kind of information, it just hasn't been high enough up the priority list. One thing you can do is create Null or Landmark objects and use the "Snap to" ability to move the camera there, but that only works for position and not orientation etc.

30. If we didn't change the settings then there would need to be some way for the user to know what all the limits were and set them themselves, otherwise they could be frustrated. I don't think changing the settings is an unreasonable approach. What's the problem with it? I suppose we could prompt to change the settings, but I'd be interested to hear what the issue is with the current approach.

31. and 32. Will need to look into these.

34. Error reporting in the fashion you say would be good but difficult to implement. Well, OS X generates crash logs which are very useful already so that's not a problem.

Regarding saving projects on crashing, if TG2 has crashed it won't be possible to save the project. When TG2 crashes it's all over. I will just point out that there are potentially fatal errors which can be handled gracefully and then there are errors which cannot be handled while running. I'd like to think we're doing pretty well with the ones we can handle while running.

35. The Free version is not a "buy me" trial but we are clear that it is limited. We like people to be able to use the software and we try to make the limits reasonable. By the same token we need to have the limits. 1800 x 1200 would be certainly be too large.

Regards,

Jo

PCook

Thanks Jo. I appreciate you considering each suggestion. I'm a little set aback by your statement that you won't come back to haggle over them because it seems a bit defensive. Also, my suggestions are not based on that which I think is convenient, rather what I feel would improve usability, workflow and stability. If you could get Terragen to create landscapes I envision in my mind, that would be convenient! At any rate, I offered the suggestions without any expectation of production implementation and am pleased that they were at least considered. I do hope the suggestions you didn't refer to were also worthy of consideration.

-Pat

3. The Quick render window should have different behavior because it is used during the design workflow, whereas the Full render is used to output the scene after the design.

7. Browser pages can most certainly be controlled. It's the Target HTML tag. At least give the user the option.

11. Important because it will save user steps to inspect how nodes affect the scene.

13 & 14. We are in fundamental disagreement on these points. User interfaces should always clearly label user interface controls, even if redundant, and even if a pattern exists. Control actions could also be stated with popup bubbles, which are almost completely missing on the settings entry controls of TG2.

15. & 16. UI control behaviors are not OS driven. They are controlled and defined by the development environment. In any case, the developer can override the "default" behavior, whatever is controlling it. The objective would be to optimize usability.

17. In the settings windows, provide the textual name of the input node(s) and the textual name of the output node. Just as a visual as to that node's parent/s and children (input/s and output). While the user can go to the node network itself to see and manage the connections, this is just a local visual of the immediate node connections.

20. & 21. Understood. Write document sections without leaving holes, such as TBC's. Don't publish a section until all content is in place. It should be a law at PlanetSide that no document section is published until it's complete.

22. Nodes don't highlight in the network when they are selected from the upper left treeview. They center, but don't highlight. They do when the user clicks on them in the network view, but that's wasn't my suggestion.

23. Excellent. As a new user myself, this is one of my pet peeves because I venture down setting combos that don't work and want to back out with minimum damage to the project. Since PlanetSide has decided the node's default settings, a user can trust that he'll return to the exact same settings state every time upon request.

24. Why allow the entry of illegal values for any reason? You have to code to handle that. Better to mask the control's input than clean up the entry in code.

26. If Microsoft can do it with Windows, PlanetSide can. It allows the user to experiment deeper with node settings,  comfortable that there is a fast track back to safety (safety as the user defines safety).

28. Not what I was suggesting. In addition to the Quick and Full render nodes, provide a third that can be user configured. User might call it "My Fast Test Render". I would set mine to 340x240 to do a very fast render until I find an approximate camera view I like. Then I would switch over to the Quick render for an 800x600 for more fine tuning of the camera view. And then punch the Full Render (and go to bed). I'm doing this now and it works well, just that I need to keep changing the settings of the Quick render.

29. Well, now you have at least two requests for this particular feature.

30. The "problem" with it is that the software programmatically alters a user's work environment. It's just a bad practice. Tell the user what's wrong and don't proceed with the function, but don't alter any settings like this. Advise the user via a dialogue box what they can and can't do, but grant the user the control to voluntarily conform to the requirement.

34. I have no symphony for PlanetSide on this. It's a fundamental requirement to trap errors and generate diagnostic data to determine the cause and correction, and on all OS's the software is targeted for. All errors can be trapped, fatal or otherwise. If they are not handled ("fatal"), the OS takes the application down to protect other running applications and services. Windows logs some of the stack data (stracktrace), but it doesn't look like PlanetSide is making any effort to retrieve that stacktrace. The idea is to handle the unhandled errors so that you can at least get some fault data from the crash, and get that data to PlanetSide for analysis (if the user permits transmission of that data package).

35. Then call the free version what it really is; a trial for commercial users, since the 800x600 limit seems to have been selected as an anti-commercial use strategy, at the disadvantage of hobbyist users. You have a "free" version, which is actually a crippled evaluation of the commercial version. Fine. But call it what it is, or relax its limits for non-commercial use.

jo

Hi Pat,

These threads are valuable feedback, we like to see them and we do consider them but it's easy to end up getting into arguments about these things. There are reasons, good and bad, that many things are the way they are. I wanted to respond so you knew we appreciate the feedback and have looked at it, but also to let you know that we don't intend to get into a lengthy discussion about it. There are a few things I did want to expand on though:

7. I suppose we could do this on the server side by adding something to the URL sent from the app. I'll talk with the others about it. The only thing is that we wouldn't want to open the node content in a window that already had some other page the user was looking at, that would be very annoying.

15. and 16. This is not true. The user controls are defined by the OS because we use standard controls provided by the OS libraries in most cases, for example Win32 on Windows and Cocoa on OS X. There are also user interface guidelines which we try to follow. In many cases implementing custom behaviour can be difficult with basically reimplementing the control. Believe me, I know.

We have always aimed to have standard behaviours for user controls in Terragen, both Classic and TG2. That way you can use it without having to figure out what our particular take on some user interface element is. 3D apps are terrible for this IMO. I've used a lot over the years and it's always annoyed me how each one does things a bit differently, and that is different to every other sort of application I use which generally work the same way. This is particularly bad when the custom behaviour is triggered by what would be a standard behaviour. To give you an idea of what I mean, imagine overriding the standard Copy shortcut with some other behaviour. Windows has always been inconsistent compared to the Mac but we still try to keep things pretty much in line with standard behaviours.

There is some room for enhanced behaviour and I've been thinking of some things along those lines recently. It will still be done with the above principles in mind though.

28. I realise this wasn't exactly what you were suggesting, but the fact is that you can do very nearly this same thing by using a custom default project. If you want to do this, do it that way. Add a new render node called "My Fast Test Render" to a new project and configure it how you want. Save the project and make it your default. Now every time you start a new project you'll have your custom render node there ready to use.

Regards,

Jo

Andrew March

Pat, I think another thing to bear in mind is the extraordinary value for money that TG2 offers compared to the other solutions, coupled with the relatively small team of people working on Terragen compared to say E-on's Vue series.

I am sure any defensiveness is purely unintentional but were Terragen my creation I would obviously want to defend it from attack.

Terragen 2 was a massive improvement over Terragen classic and I am sure that any future developments will be equally impressive.

If you don't think that Terragen is able to give you what you want for such a small amount of money I would respectfully susgest that you head over to the E-on store and pick up a copy of Vue XStream, I am sure you will find the price tag of $1500 refreshingly expensive and I am sure you will find E-on's closed minded approach equally enjoyable.

TheBadger

Quote...Save the project and make it your default. Now every time you start a new project you'll have your custom render node there ready to use.

^^I did not hear this before. THis is very useful to me.   

It has been eaten.

cyphyr

FYI the setting up of a personal default project is done through the preferences panel:
Edit>Preferences...>Startup>Project Creation>Load from file>Choose File>OK
Richard
www.richardfraservfx.com
https://www.facebook.com/RichardFraserVFX/
/|\

Ryzen 9 5950X OC@4Ghz, 64Gb (TG4 benchmark 4:13)

PCook

Jo;

Thanks for explaining your position on discussing suggestions. I come from a different school, where discussions of software features is an interesting exchange of ideas and possibilities that may be hotly debated, but never considered an argument (I am a software developer by profession). But, a suggestion can be debated to the point of the discussion beginning to repeat itself, which is not helpful to anyone.

As for 15 and 16, your new explanation did help me realize that if TG2 is targeted for both for Windows and the MAC OS, then it would be best to accept the default behavior of the respective OS, even if not ideal.  But hopefully, this suggestion does encourage PlanetSide to look more closely at control behavior from a workflow standpoint and make improvements within the constraints of the OS. I did mention several control behavior suggestions that the OS would not dictate, which I hope will be considered, for instance a fine tune control of the sliders.

As for 28. I will try that, now that I understand what you are suggesting.

Again, thank you for reassuring me that my suggestions were welcomed.
-Pat

PCook

Andrew:
In environments where people's intentions are questioned and are advised to go elsewhere if they don't like a thing, discussions are stifled about how to make a good product better. A lot of software users never speak up in public about how a product could be made better so as to not risk such verbal bullets.
-Pat

PCook

Jo;
Pertaining to suggestion #28; your suggestion to create a new render node and make it part of a default project works fine. Excellent! The only improvement to this might be to include a third render node as part of the factory TG2 startup that might be called "Custom". But the user doing it manually like you suggested is perfectly fine as long as users are aware of this capability.

For everyone's benefit:

1) Start a new blank project.
2) Add a new render node, name the node and set the settings.
3) Save that blank project with a name that indicates it's a default project, such as "MyDefaultProject.tgd".
4) Go to "Edit", "Preferences", "Startup" and select "Load From File", then choose the file just saved.
5) To test, close the project and restart TG (or do a "File", "New"). You should see the new render node in place.

To my surprise and delight, the TG developers made it so the default project file isn't overwritten should you attempt a Save after loading the default file. Nice! However, you might want to set the file property to Read Only (at the OS level) to be sure you don't one day overwrite your default project file (unless you are making changes to the default project's structure, in which case you would temporarily take off the Read Only attribute).

Amazing what we learn when we discuss!
-Pat

cyphyr

Also Pat know that the project you set up as your default loading scene can be as complex or simple as you want. My default at the moment has 4 render nodes ranging from very fast to final high res, two completely different lighting systems, a custom water shader (uses simple shape shaders as masks) and two cameras (one set to Orthographic looking straight down on my scene centre point with its own render node with micro exporter already set up).
Make the defauly what you need at the time :)
Richard
www.richardfraservfx.com
https://www.facebook.com/RichardFraserVFX/
/|\

Ryzen 9 5950X OC@4Ghz, 64Gb (TG4 benchmark 4:13)

Andrew March

Pat,

I am not saying that we should not offer a list of improvements, far from it. I am however saying that by comparison to it's competitors Terragen is outstanding value for money and the development team is tiny by comparison to E-on Software.

I am saying that perhaps you might have taken that into consideration and perhaps approached the subjects you have raised with thought for the team and the length of time it might take them to implement your shopping list. Perhaps it would have been more polite to approach the team privately with your ideas.

People can be fiercely protective of products like Terragen and often in the past small companies have been swallowed up by vast corporations simply to fill the requirements of users only to find those very users stop using thier software after they have been taken over. A case in point would be Mudbox, which had a huge cult following but as soon as it got bought out by Autodesk....pffftt!

I am sure you can appreciate the need to balance price and features and that you also realise you can't please everyone. As an example I'd love all the features of the Canon Eos7D but I only want to pay the price of an Eos 550D ;)

As I said in my first post, I have no doubt the next development of Terragen will be equally impressive as this one but in the meantime if you really want all the features you have asked for and more then the software does exist, it is just rediculously expensive, this was not meant as an invite for you to go away, rather me informing you of the alternatives to Terragen.

PCook

Andrew;
Jo didn't take my "shopping list" nearly as hard as you. Features suggestions are not requirements, nor do they form a contract, nor are they implications of existing quality deficiences. And they do not need to be private because Terragen is a commercial product that is offered to the general public. When people take the time to suggest improvements to a product, they do so on the premise that the time is worth spending to convey such suggestions. When no suggestions are forthcoming, that's when you can worry.
-Pat
P.S. I own a Canon 7D and have plenty of suggestions to improve that product too. But I bought it anyway.

rcallicotte

#13
Pat, having been a developer for a few years, I can tell you that end-users' wants never end and many times it's demanding.  So from a developer's standpoint, I would take your list and do what Jo did - take it under advisement and move forward.  After all, if it's my program I want it to touch as many prospective buyers as possible.  That makes your suggestions invaluable, but they are, after all, suggestions.


So this is Disney World.  Can we live here?

PCook

#14
Yes calico, "suggestions" - I never expected otherwise. I have more... ::)