Suggested Improvements to the HubTool/Scenarios for better Story Telling

#1
Hello Konstantinos here!

I'm would like to propose some improvements to the current HubTool for Scenarios, that gives story-tellers better narrative options, as I believe it has great potential. Right now the way it works is that you select a region and then prompt a certain action when another trigger action happens. What I would like to do is firstly improving the visual part of the HubTool and make it easier to use for the creator, and secondly add more options to it.

Visual Part [Structure, Aesthetics]
  • Structure: The truth is that the HubTool offers many options already BUT using them to their full extend takes some practice and research. I plan to add clarity and some instructions on how to use it IN the HubTool, preferably in the form of tooltips and some text when you open it. Also when you have many Logic triggers it can get a bit confusing, so I think we can restructure the Logic tab. In addition, when creating new regions you have to right-click Region and then select Add Region, which I think is a bit reduntant as there are no other options anyway. So we could add a button which just says Add Region. No need to make it complex. There are many more changes like this that could really help the HubTool reach it's fool potential.
  • Aesthetics: This is a bit self-explanatory but what I mean is that there seems to be too much empty space on some parts of the HubTool or on the other hand some parts of it take too much space. I dont think I can explain it in much detail but I will be posting some hand-drawn sketches that visualise what I mean. Also some minor colour and font changes on the text that appears to improve clarity.
Additional Options
  • NPC Interactions: I believe that the Player-NPCs interactions could really use some love as they could potentially improve the strory-telling potential immensely. I'm planning to add more options on the way someone can control an NPC and then intergrate them in the HubTool. That way the Story-Teller will also be able to control NPCs with events (e.g. talking to them) and actions (e.g. them going somewhere, start fighting an animal, start burning coal etc).
  • Audio Change: A new action, when completing a quest for example, could be to play a victory audio file. We can add that too to the HubTool.
  • Creating a Structure: For example to build a temple when a certain action is completed. The structure will already be saved somewhere and then added to the game
  • Spawing entities
Many of the things I'm proposing already exist in some way or another, but the goal here is to take them all together and merge them into the HubTool in a pretty way :D!!

I'm looking forward to your thoughts!!
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
#2
Great write-up, thanks! Looking forward to some sketches and an eventually PR or two :)

Maybe there could be an optional dependency on the Dialogs module that would offer extra options to customize NPCs if enabled. There has been some recent movement on how optional dependencies should work, so maybe this would be a good example.

Pinging @Cata, @Florian, and @Nihal Singh since this might be relevant to their interests
 
#3
Visual Update (Sketch)

After some thought and some drawing I finalized on this sketch for the visual part of the HubTool update. There is not any additional functionality to the HubTool yet, I just restructured it a little and added some Buttons that you can just left click them to do some actions (e.g. delete a region, add an event etc). Previously there were 3 tabs that you could swap, but now there is only one tab that shows everything. I believe the Overview tab was completely reduntant as the only thing you could do there was change the name of the Scenario (this option was moved to the top right of the HubTool). If you agree with the proposed changes, I'm planning to work on the code right away.

[Note: I'm really sorry for my writting and my drawing skills:rolleyes:]
[Note2: I have added the current HubTool for reference]


HubToolAestheticUpdate.jpg


Original.jpg
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
#4
Looks quite promising, would be happy to see it in a PR sometime :)

Still poking at @Cata some to see if we can get him back to provide some more feedback and such
 
#6
Hello again!

Here is a snapshot of the work I did today. Tommorow I will add all the add/delete buttons and probably change the component sizes for the migLayout a little bit.
Update1.jpg
 
#7
Hello! I have encountered a slight problem, whilst trying to add the delete buttons for the RegionTree and the LogicTree. Editing these trees requires to get into the scr files and specifically Scenario/src/main/java/org/terasology/scenario/internal/ui.
Every file there says something about permissions and licences. Am I allowed to edit them freely? If not I can do a PR on the work I have already done on the hubtool!
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
#8
The license headers may look kinda scary and formal but they actually explicitly say you're allowed to edit and do just about anything with all the files, just as long as you keep attribution in place. Which just means you can't claim you did everything personally where others have been involved :)

The whole project is open source so yep you absolutely can edit all the things!

And nice snapshot :)
 
#9
Hey!

I made some further changes to the HubTool interface and I think it's a good time to make a PR.
The changes are the following:
  • Removing the Logic and Region Buttons on top because if they were pressed they would remain pressed and this seems kinda buggy
  • Adding Labels instead on top of the two migLayouts
  • Resizing the migLayouts so that the Logic tab has enough space (Regions dont need to have too big names on the other hand)
Additionally, I'm currently working on the delete buttons I proposed earlier in the discussion but I'm experiencing some buggs, so they can wait in the meantime. I will probably add them in the next PR along with some other changes, in a couple of days.

Thats all for now :)

Update2.jpg
 
#10
Hello again!!

Just an update. I made some final tweaks on the Structure Update of the HubTool to make the LogicBox less cluttered.

Now that I finished with the visuals, I am planning to add a new Event to the HubTool and specifically OnBlockItemPlaced. This could potentially be beneficial for the story-teller if he would like to use it. I believe it is missing right now from the HubTool and it wont be too difficult to add. Do you think it is a good addition? Should I move forward with it?

Thanks in advance!



Oh and here a screenshot of the final commit.


Update3.png
 

Florian

Active Member
Contributor
Architecture
#11
Woudnl't it make sense to let regions be it's own tab so that when new stuff gets added nothing new need to be invented? e.g. what if someone adds for example a tab with characters?
 
#12
You may be right on this one but the way is see it, the Logic tab should be visible at all times as it is the main part of the hubtool. What we could do instead, if a tab of characters were added, is to make the right tab, which now only contains the Regions, a tab with two button one for Regions and one for Characters. That way one could alternate between the these two tabs whilst still being able to see the Logic tab. Do you think that could solve your concern?