
ROHAN PATEL
Engine System Proposal
User Interface Tools
Motivation
Ever since I started developing apps and websites in my undergrad, I always tended to be put an extra focus towards UI naturally as a designer perspective. Further, developing games the interest remained the same because I believe UI is one of the most important factors not just in games but in any other application in general. While creating this system, I want to take that UI designer perspective of mine and start thinking about providing simple easy tools to create UI features for the game developers.
Before I talk about features..
I did some research to Figure out core UI features that I would want to create.
-
Looked at Unity and Unreal Engine's UI Tools.
-
Found some other examples of UI systems
I am still continuing this research to figure out how to make the interface more user-friendly.
The features I am planning to create
After the research followings are the features I think will be most useful at this point. I might add other features if I find out them later.
A widget: It will be the main class/component that can be added to a camera. It can have the following features as children/components.
-
Panel (A basic rectangle colored area.)
-
Healthbar or related other bars.
-
Button
-
Text (at the bare minimum if I have time)
-
Menu (Made using buttons and panel)
-
I didn't want to overscore the features and then end up leaving the project buggy and undocumented, so Included those features that I think I will be able to achieve at this point.
About using the system
At this point, I am not sure about the exact functions and classes I will be creating. I don't want to rush and submit something else without figuring out the proper structure.
Therefore I am writing down the usage briefly.
-
Users will be creating Lua files to specify most of the UI items that they want to create.
-
They will use addtoWidget() function to add items inside widget.
-
There will be a function for them to create a widget and add/attach it to the camera.
-
Can switch between and add multiple widgets.
I might change the structure later if I need to else I think this is basic startup interfaces that I could think of.
The challenges that I am looking forward to..
-
Come up with a proper structure for widgets and items.
-
Find the best way to implement the features(especially health bars and button)
-
Figure out how to detect a mouse position for windows to add button click events.
-
Button click and hold events.
My plans
I am taking this project as a good learning experience and I want to create something that is easy to use first rather than focusing on creating something amazing. This is my way of doing things when I am not confident enough and while doing something for the first time.
-
One step at a time.
-
Focus on creating a simple easy system first, rather than going for something amazing.
-
Keep researching for references.
-
Feedbacks and discussion with fellow students.