Posted May 16, 2021 by Vu Kim Phong
As of the latest build, Exile's Adventure is almost playable although some features are still missing. Therefore, this week, I spend more time on UI development than just developing gameplay like before, specifically the dialogue system along with the quest system have been added ( also have a prototype of crafting system )
Since there are quite a few new features added this week, I will introduce them one by one.
Note 1 : All the stuffs have been added this week is difficult to explain in this section so I won't go into too much detail. If you are interested, leave a comment so I can explain in more detail there.
Note 2 : All the stuff this week were created by using spriresheet of ermizidis.stan from OpenGameArt.org. This is super wonderful UI sprite and you can find it here: https://opengameart.org/content/simple-rpg-gui
UI sprite sheet
First, let's talk about the dialogue system. The first thing I did was create a dialogue box. It was so easy since the spritesheet offers me many things that can combine to make a good ones so I don't spend a lot of time here and then I ending up with something like this.
Dialogue box
After finishing the dialogue box, I moved on to coding some scripts to make it work. Having said that, the dialogue system is really a complicated thing, especially when I have to create dialogues with multiple choices for respond. At first, I had the idea that I would create a dialogue tree, which is very common in many other RPG games and can solve the problem of dialogue very easily. However, as soon as I started working on it, I realized the difficulty was very high, and it was absolutely not something I could do (at least for now) so I switched to a simpler idea: using arrays to generate corresponding conversations. This solution is really good, and it works exactly as i expected. Its only drawback is that the size of the conversation cannot be too large, because that can lead to a lot of errors in the subsequent dialogue. However, this is not too much of a problem for Exile's Adventure, because the game also doesn't need too much dialogue between characters. Therefore, I end up with using this solution as the main dialogue system of my game. If you want to see how it works in the game then please go to the next section.
Quest system
After that, after that, I moved on the coding part again. Coding the quest system is much easier than the dialogue ones. For the best explanation, I've assigned each NPC a separate quest. They will automatically get information from the assigned quest to put the information into the quest box (everything needed like the key, the name of the quest, and the quest's information) so that when the user play close to it, a quest box will appear for the player to accept or deny. When the player makes his choice, the quest box will automatically disappear and it will be up to the player's choice to decide whether it will reappear or not. If the player chooses to agree, all quest information will be transferred from the quest box to the quest list and the quest box for that quest will not appear again to avoid duplication. If the player chooses to deny, the player can return to that NPC to receive that quest at any time later. I will provide a gif to show how it works in the next section.
There will not be too much to say here because their operation is already obvious and familiar to most people who have played the genre. Both the dialogue system and the quest system are NPC-based, i.e when you get close to a certain NPC, if that NPC has a quest or a conversation for you, the corresponding box will appear. and you won't be able to move until the talk is over or you've made a choice. I think that's all I need to say so I'll show you how it works in game with the gifs below. ( include a prototype crafting system )
Dialogue system
Quest system
Prototype crafting system
In the tutorial time of KIT109 of UTAS, i had received a feedback about the polish and UI through some testers, who are my classmates :
Andrew : " Crafting is good, bit confusing as to what you're crafting, but the distinction is alright, but maybe you want to overlay the UI with something else to show a workbench in the background like minecraft's system . The dialogue is good but always walking into the blacksmith to accidentally trigger his lines is a bit annoying, but I know he won't be in that spot. "
I agree with him that the visuals of the crafting system are still not really clear right now, you won't know which 2 items you are combining. However, the crafting system is still in development, so I will definitely improve that in the near future. Regarding the dialogue, what he said is true. It will be very annoying if player have to talk with the NPC each time they are near, so maybe I will add something like a button so only when the player press that, the dialog will appear.
Coming to improvement part of this week, one thing I immediately realized is now the quest system still doesn't have any rewards. I am thinking of creating a new room with random items in the floor so that when the player finds the key and returns the quest, they will be teleported to this room to get more new items for themselves. All of them will be completed by me as soon as possible, because the submission deadline for this project is coming very close (about 2 weeks away). There will be a devlog summarizing what I've improved at that time so stay tuned for it.