The U and I of UI
Dilem GameDev DK30 Winter 2020 2 1
Description
I am in the process of getting to grips with Unreal Engine and I want to get better at working with UI. My 30 day project to work on the small text based game prototype at least 1 hour a day every day. The idea behind the game prototype is to create a basic system that can be used to create story based adventures with player choosing dialogue options that change the story.
Recent Updates
Had to stop the project due to loosing my job half way into the project and the need to concentrate on other things.
Quick update. Week one has elapsed and while I made good progress, I have had trouble sticking to the 1 hour a day routine, even if there was a good reason for it…
I now have a very simple baseline for what I wanted to create: a program that can display NPC and player messages. However while I could now start improving the display and start making the actual “game”, I instead want to make sure the system is solid, so the game has a solid ground to stand on.
Since I already implemented some functionality from week 2, I will work on polishing up the features, to makes sure that it is a solid base. I will also work on fixing up the multiple bugs that have been detected in the very first playtest. What is more important, I try better to stick to my daily development schedule.
Also I will start putting the GIFs at the end of updates since sometimes it makes it hard to read the actual update. Here is an example of dialogue working //bugs have been omitted from the GIF :D
Made a small mistake when displaying items, which became apparent when I tried to display more than the list could fit:
To create the typing effect I am breaking down the text that needs to be displayed and adding them to the box one letter at a time. Unfortunately I made a mistake of not clearing the text the first time it is created.This meant that every time it shown to the player (including when it came into view), it would start adding letters again and again resulting in the bug seen above.
To fix this for now I am making sure to only do the animation based on if player has seen the text (tracked by a boolean):
This works, but I think it will need to change because I will want the list to auto-scroll down so player always sees the latest message.
Quick update, decided to experiment a bit and make text appear as if typed:
Have been making good progress so far, working at least 1 hour each day. I originally thought that I will need to extend functionality of UMG widgets to get the custom behaviour I want, but it turns out that Unreal has some templates I can use, which is not surprising considering the amount of templates this engine has :D
I am using list view to display my message, so far it works perfectly since it can display my message in a list just like a messaging app would.
I have managed to set some messages queuing up and displaying to the player.
Next up is working the scrolling. I need to see if it’s possible to make it auto scroll down if the player is at the bottom of the list, since that will be important for displaying latest messages.
Estimated Timeframe
Jan 28th - Feb 27th
Week 1 Goal
At least 1 hour a day work on creating a custom UE4 widget to represent dialogue window.
Basic widget functionality:
- Can be opened and closed.
- Displays text messages when prompted.
- Saves those messages to be opened when the widget is reopened.
Week 2 Goal
At least 1 hour a day work on adding functions for displaying NPC and Player text messages.
Basic functions:
- A function to display NPC message with a delay before the next action is triggered,
- A function to give player choice of replies.
- A function to display message chosen by the player and resume NPC message based on player choice.
Week 3 Goal
At least 1 hour a day work on polishing up and finishing the features done so far.
If the features are done, spend that time instead on creating some basic story to demo the functionality of the prototype.
Week 4 Goal
I am going on holidays this week, so the few days that I can, I want to spend at least 1 hour wrapping up the 30 project, reflecting on what I had done and planing what to do next.