"UI is important because it affects the feelings, the emotions and the mood of your users. If the UI is wrong and the user feels like they cannot control your software, they literally would not be happy and they will blame it on the software. If the UI is smart and things work the way the user expected them to work, they will be cheerful as they manage to accomplish small goals.
To make people happy you have to let them feel like they are in control of their environment. To do this, you need to correctly interpret their actions. The interface needs to behave in the way they are expecting it to behave.
Thus, the cardinal axiom of all user interface design:
A user interface is well-designed when the program behaves exactly how the user thought it would."
These guidelines have been designed so that anyone can read about, understand the philosophy and the thought processes that Programmers and Workflow Designers need to follow in order to create a better and more consistent user experience throughout our suite of tools.
The target audience is mostly Tools Programmers, as they use these guidelines as a basis to review the tools that are being developed. We recommend reading these guidelines before you start working on a new tool as it will help you during your design process, but also to use it as a checklist while iterations take place - this will ensure your tool fits in with the overall design philosophy.
These guidelines will be expanded upon as we see fit and as new trends emerge.
We want a user experience that is …
These design pillars should stay present in your mind at every step of the way, from design to the implementation of your tools. Every decision and every aspect of the tools we make should reflect our user experience philosophy.
To comply with CRYENGINE standards our tools need to fulfill these guidelines as well as Windows UX Guidelines (links to follow) which cover a lot more than this document can. Our main development platform is Windows, so it is important that the User Experience is optimized for it, even though other platforms matter as well.
Here is a concise list of guidelines for a tool to fit in with our philosophy and direction for the UX. We will use these to define our own standards, and it is therefore important that every Programmer knows about these requirements.
Ideally, involve the Sandbox Design Group as early as possible in the development of your tool. They will help you with design and implementation and help you to make the right choices from the very beginning!
Selection and deselection behavior must be implemented according to standard behaviors which are common to most OS, platforms and software. However, due to our more complex selection models we have designed a more global approach.
For list-based selection. In general when using Qt's selection behaviors use "ExtendedSelection" mode.
For drag-selections (also called rectangle selection, marquee selection)
We wanted to list the most common mistakes and anti-patterns that have been observed in CRYENGINE in order to make everyone aware of it and hopefully correct their bad habits. This list will be expanded as we discover new common anti-patterns in our codebase.
There are many ways that we can improve the user experience of our tools and there are many methods at our disposal that are beyond the scope of these guidelines. Do not hesitate to fall back on proven methods of designing a better user experience when you feel the need.
These tools and methods include:
If you are looking for more detailed information on how a UI component should look, or to read more on UX design and guidelines that are used to build state of the art desktop applications, then please refer to the following links:
Windows UX guidelines in particular apply to the Sandbox, as Windows is the main platform of development for CRYENGINE.