adro.codes

The Cycle - Devlog 07

We all knew this was coming sooner or later

Concept for the new version of The Cycle

You're probably wondering, what is this, what happened to the Unity build. How did you manage to completely change direction is less than a week. That is very easy to answer. I can't make up my mind on anything.

Now, what is this photo about. Well, this is the new look of The Cycle. I still kept Skull Mountain, the unamed MVP of this entire game so far.

I decided to make the switch to more of a 2D interactive text adventure. What does that mean? Well, although you won't be able to move, there will be opportunities for the player to interact with puzzles, various UI elements, like the journal I have mentioned. However, the game will go back to its origins with the story and choices playing out in text.

The art, as always, was not done by me, everything other than the text box at the bottom comes from the Kenny Assets - Cartograhpy Pack. I am obviously using it in a bit of a different way, which I think is the best way to go when using some of these assets.

Am I still using Unity? The answer to that is no, I am hoping to switch to Godot, I have used that is the past to make 2 game jam games. I feel a bit more comfortable there so I am keen to switch back.

Component development in Godot

Godot has this concept of Scenes, which are small pieces of your game that you can compose together to make level and the game. Since I come from a web development background (not that this site shows that), I am taking the approach to think of these "Scenes" as components, similar to a React component. Meaning, they are reusable, small and provides a decent API to interact with the component if needed. Hopefully in this way, I will be able to easily compose levels once the first one is done.

For example, I have a component called ChangeToMap, which is that small compass in the top corner. Its main purpose is to change the main level scene back to the Map. It is small and the small bit of code I wrote for it is self contained and doesn't have any external dependencies whatsoever.

I also know that is component will need to be controlled by a parent at some stage to disable it from being clicked. So I will need to add a disabled state as well as a easy API to disabled/enable this component.

var disabled = false

func disable_action():
  disabled = true

func enable_action():
  disabled = false

If needed, I can expand this further and allow this component to trigger an event when one of these actions are triggered. That might be overkill but thinking in this component mindset allows you to create components that are easily extendable and not have to worry about breaking other parts of the game.

At this stage, I feel like I am already so much further than I was in Unity. I currently have the player following a specific path, which I will use to trigger events as the player moves through the level. I have my dialogue UI setup. Tomorrow I will spend time working on the API to interactive with the dialogue system.

Overall, it was a bit of a big change, not only engine wise but also in the general direction of the game. However, I must say, I am definitely more excited and motivated with the new approach. Being able to move quickly and get this game out is one of my biggest goal with this game.

Here is a image of what I managed to do today, and note, this was with playing Hades and watching youtube. I pretty much achieved the screenshot above!

Devlog progress

And no, the player won't be a square... they'll be a circle