The Cycle - Devlog 04

Setting a goal really helped last time, so the goal for this devlog is to work on the basic UI to show story text. Kinda like a dialog system, but there won't really be dialog. I also what to have a look into adding in a interaction system.

But before any of that, I want to try a few random things just to get into the flow of things.

The random things

... I'll be honest this did not go well. Instead I spent some time working on the character movement, added in some gravity and moved to a playground scene to work on the interaction system.


I'll have a few different types of interactions in the game, the most basic on will be a simple "show some text" interactions, which is what I want to add in first. I am planning on using Scriptable Objects for the different interaction types, this will be able to store the text among other values depending on the interaction type. Setting up the basic interaction Scriptable Object will be step number 1, from there I will add some basic UI which will be used to show the text.

I started by creating a new Interaction script on the player. What this script is in charge of is collecting all the interactable objects in a specific range and displaying some text Press 'E' to interact with {X}. Where X is coming from that scriptable object that I created above. For this to all work together, I ended up creating a very basic UI Canvas and positioned the text at the bottom of the canvas. Finally I added a UIManager script to the canvas, which the Player Interaction script uses to show/hide the text mentioned above.

The next step will be to decent the player hitting the E key, which will show the scriptable objects lore text instead of the interaction text. This would be pretty easy + the methods I am adding to the UIManager can be used throughout the game to provide the player with various text based instructions or story information.

I will continue this in a few hours, I bought Hades for the PS5 and I am too addicted to keep coding, I am sure that is relatable.

After dying a few times in Hades, I came back and added in some basic dialog text. I first created the UI for where the text will sit. Next I tweaked the scriptable object to accept a List<string> instead of just a single string. This allows some of these interactables to have multiple lines of dialog instead of being limited to one.

In my interaction script, I check if the user presses E when they are in range of a interactable and start the dialog sequence by calling the StartDialog method on my UIManager. This allows the user to cycle through the dialog until all the items in the list has been shown.

For the rest of my time working on the game tonight, I am going to do some clean up and then have some fun with designing the first island. I'll try and make it nice and eerie.

If I remember, then I will add in some images into the devlog as well

In terms of tweaking the first island, finished off the general layout of the map which give me a pretty nice blank canvas to work off. I went into the Asset store and got a skybox pack, which I used a dark cloudy night skybox and baked in the lighting. This already helped to darken the island a bit, since the game will mainly be taking place at night. I add in some fog to see what that looks like. I definitely want to play around with it a bit more, maybe use the particle system instead to create some rolling fog instead of it being static.

That was pretty much it for this session/day of development. Process is slow but it is steady which I am happy about.