Skip to content

Make user-interfaces accross multiple stack to compare them (HTML / XAML / QML / Engine-Based)

License

Notifications You must be signed in to change notification settings

guillaume-haerinck/which-gui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Which UI ?

Re-making famous user-interfaces (UI) accross multiple technologies to test and compare them.

Projects

Name Screenshot Made with
Papers, please Papers please UnrealHTMLUnity
Godot XAML QML
Metroid Prime Metroid Prime React
Dead Space Dead space Vue

Technologies

HTML

The HTML is the open markup language which powers the web. It comes right from 1993 and is used extensively since then. Built with the separation of concerns in mind, it has to be used with 2 other languages : CSS to style the page, and Javascript to handle the logic.

As the complexity of usages grows, frameworks like Angular, React or Vue became essential. Basically, they split the website into smaller reusable components, and they bring some of the logic into the HTML (event triggers and conditions).

The html folders contains project built vanilla Javascript (no framework), but it also contains projects made with Vue () or React (). If it is the case, the icon used will not be HTML, but the logo of the framework.

While HTML has been designed to make websites, in recent years we have seen the adoption of frameworks like Electron to deploy it as a desktop app, or Coherent to embed it in games and major game engines (for exemple EA makes most of their UI through EAWebKit, which is similar to Coherent).

For more details, check the html folder.


XAML

The XAML language has been created by Microsoft in 2008 to support their .NET WPF Environment. Similar to HTML, it is much more verbose as the style and most of the logic is embedded inside the XAML file. More complex logic is handled in a C# file, the code-behind.

It is recommended to use Microsoft Blend, a WYSIWYG editor to create anything in XAML. While this technology has been made to create Desktop app for Windows, it is possible to embed XAML interfaces in games and all of the major game engines using the 3rd party proprietary library Noesis GUI.

A newer, less-powerfull version of the language has been made to support the UWP environment, but we are not using it through these projects has the restrictions are quite strong, and it has not been made to be embedded in real-time application.

For more details, check the xaml folder.


QML

QT is a C++ UI library which has been made public in 1995. In 2009, QT Group released the QML language which allows to create user-interfaces in a declarative language similar to JSON, and less verbose than HTML.

QT Creator is the tool of choice to use the library, it provides a code editor and a WYSIWYG editor similar to Microsoft Blend but less powerfull. For more complex usage, you have to pay for QT Design studio, the proprietary alternative.

While QT is used widely to create desktop application, it is very rare to see it in games as it has not been built for real-time applications.

For more details, check the qml folder.


The stacks presented below are Game Engines, as the technology they use is specific to their software, the folders are nammed with the engine name instead of the langage. (ex: Unity for Unity3D engine instead of UXML)

Unity

Released in 2005, the Unity Engine became very popular amongst independent game developers. It has been downloadable for free since 2009, and offers built-in support for many features as Game UI. In 2019, they started a new API for UI called UIElements which is a mix between XAML and HTML stack, and provides better performance and scalability than the previous API.

The idea is to have a UXML file for layout similar to the HTML language. Then a USS file for styles, which is a subset of the CSS language, and finally, a C# file to handle logic, similar to the code-behind file of the XAML stack.

At the time of this writing, UIElements is restricted to extending the editor, but in-game support is announced for future releases of Unity.

For more details, check the unity folder.


Godot

Godot is an MIT-Licensed game engine released in 2014. It has gained more traction in 2018 with the release of Godot 3. Lightweight and easy to use, it offers built-in support for UI and animation, both in script and in a WYSIWYG editor.

Everything in this engine is built around the concept of Nodes, and the UI is no exception.

For more details, check the godot folder.


Unreal

Unreal Engine has been around since 1995, and used by many AAA games since. In 2015, it has been made free to download for anyone, as a way to counter-attack Unity in the independent game market.

With the version 4 of their engine, Epic Games created the UMG UI Designer tools to create user-interface and animate them in the engine. This powerful tool offer a WYSIWYG editor to place the elements, and a node-based scripting system called Blueprint to handle the logic of the UI.

For more details, check the unreal folder.

About

Make user-interfaces accross multiple stack to compare them (HTML / XAML / QML / Engine-Based)

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published