Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Ultra App Kit: Let's Solve the Desktop UI Problem


Admin

4,228 views

The foundation of our new game development tools is here, with a close-to-the-metal framework for building desktop applications.

Close-to-the-Metal Framework for Desktop Applications

We're approaching the end of a loooooooooong cycle of research and development...several years, in fact, have been spent building the fastest game engine in the world. A great game engine needs a great user interface, and Ultra App Kit provides exactly what we need. This will provide the backbone of our new game editor, as well as a mechanism for user-created extensions. You can get your hands on this technology and start building your own desktop applications by backing our new crowdfunding campaign on Kickstarter. (You have the option to purchase through IndieGoGo or directly through our website at a later date.)

gui.png

Usage

Image1.pngexample2.thumb.png.c5743d2d34ed593721b5e23a950f8b86.png

Supported Widgets

  • Label
  • Button (push, checkbox, radio, and toggle styles)
  • ProgressBar
  • TextField
  • TextArea
  • ComboBox
  • ListBox
  • Slider (scrollbar, trackbar, and stepper styles)
  • Draggable multi-select TreeView
  • Create your own!

API Design

  • C++ shared pointers everywhere
  • Extensible widgets system
  • Extensive documentation with examples for each command
  • Can be made to interface with C# and Lua

UI Features

  • Resolution independent for any DPI (16K+)
  • Load SVG vector images
  • Filter and sort widget items by name
  • Set widget and item image
  • Change mouse cursor
  • Custom color schemes stored in JSON files

Other Features

  • File I/O
  • File system watcher
  • Memory allocation and management
  • Image loading, saving, processing
  • Package system for loading files from compressed / encrypted archives
  • Plugin system
  • Thread management
  • String manipulation (split, match, conversion, etc.)
  • Message boxes and file / folder requester

Stretch Goals

  • $20,000: C# and Lua programming support
  • $50,000: Linux and Mac support
  • $80.000: Visual UI Designer

Other Ways You Can Help

Some people just can't contribute, but that doesn't mean you can't help. Get the word out and make some noise about this campaign!

Thank you for your support!

About Leadwerks 5

Leadwerks Game Engine 5 is in development, with an initial release scheduled for spring 2021, with Vulkan graphics and 64-bit floating point support, Join our community and help shape the final design of our most advanced technology yet.

  • Like 3

4 Comments


Recommended Comments

We made it, with time to spare! That means this software is going to become a reality by Christmas.

Three stretch goals remain:

  • Linux and Mac support
  • C# and Lua support
  • Visual interface designer

Based on your comments, the Mac / Linux goal is the most popular, but a survey will be taken at the end of the campaign to verify this.

Next Steps

The sky is the limit, but we need to get this out to the right audience. I'm counting on your to spread the word across the internet and reach interested parties. Fortunately, a successful Kickstarter campaign carries some validity. When a crowdfunding campaign first launches, it is spam. Once it is successful, it is a news story. So I think you will find the audience is more receptive when you post about the successful campaign now.

Link to comment

Man I would really like to see Mac and Linux support. So few options for true cross platform that isn't super expensive and doesn't suck.

Link to comment

This is looking great. I've always been bothered by the available options for a lightweight GUI. I also think that cross platform support for a GUI framework is quite a big deal and can only second the opinion that this is the most important bonus goal.

From the material you have posted, there is one thing I am quite curious about: In your code example you are placing the button and panel using fixed coordinates and sizes. Moreover, the widget is only created once and does not run through a loop, where the user would constantly recalculate the coordinates. When looking at the video, however, the widgets resize, when you resize the window. Did you implement a resizing-handler for the GUI shown in the video or are you planning to have a sort of automatic layouting system (i.e. defining anchors and having horizontal/vertical/grid layouts, which automatically manage the sizes of their contents) (clearly such a layouting system internally needs to use such a resize-event-handler but the question is, whether the logic behind that is tucked away some place within the API or whether a user needs to implement the handler themself). Maybe you could extend the example code by the GUI which is shown in the video and if there is such a system leave some words about how you plan it to work.

Link to comment

There is a Widget::SetAlignment method that can be used to lock an edge to its distance from the parent edge, like in BlitzMax.

Link to comment
Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Facebook Twitter Youtube Github Steam
×
×
  • Create New...