Week 47-25 Picking up your game again and again


Consistency is hard work. And i have looked through my design book and noticed a very humbling thing: I started it in October 2020. The idea for apple spells is actually a lot older than that. But the point is: it’s now 5 years later and the game definetly isn’t nearly at a spot it was planned to be.

But getting distracted from your passion project isn’t bad. That’s actually quite normal, and I think this is important to note at this spot to any reader wanting to make their own larger game. It happens. Life is full of hard things and you should not feel bad for not burning yourself up for your passion project. The important thing is: PICK IT BACK UP.

Keeping the magic alive

My first Journal Page from Devtober 2020 I do love a physical journal to keep, and this design book of mine is magical in a way that it sparks that initial joy of creating when I look through it. It is slightly scrappy with bumped down corners and a few juice spots on the hand made cover, filled with cut out sketches from a Mc Donalds tablet cover and sticky notes, I adore that thing. It is a little treasure trove of ideas from 5 years ago that actually helped me out this week already. I very much recommend keeping a physical game design journal!

Where I left off

Last update on itch was me joining a jam to try and pick up Apple Spells (and I will keep doing that until I get somewhere) by actually starting a new. Now, I DONT recommend that, it’s quite a disruptive choice that sets you back quite a notch, but since this started out as a Unity project and I was stuck at the same system for months AND Unity did the unthinkable, I decided to start anew in Godot and I still believe that was the best choice. I managed to learn how to use Godot and get the basics running:

  • building a tileset room
  • main character “Biskit” learned to walk (and to run)
  • interacting with the items around us (and its giving us neat little feedback what we can talk to)
  • music
  • having text appear in its own little box

What the next steps are

My Unity project actually was a little further than that. It had a fully functioning Inventory, switching out items with the one you are holding and placing them into the world and all.

That is exactly my goal for this week; getting the Inventory running that can:

  • Pick up items in the world (with all their settings and removing them from the scene and rendering them in the inventory instead)
  • Placing them again
  • Having a hand inventory with one slot that is ~special~
  • Switching out items by scrolling with the hand

The dilemma of Buttons

For that I kind of need to already think about what buttons I want to use, because so far I can get some infos about every item I see by clicking on them and I want to keep that feature. It just leaves me down to one mouse button to a major action, and that is definetly gonna be using the item in my hand on the item before me. But that opens up a lot of questions:

  • [?] Is reading item info so important that it needs to occupy a mouse button?
  • [?] Should I be able to pick stuff up with ANOTHER button or should we just empty out our hands for that (that seems really annoying)?
  • [?] What button will drop an item?

Item interaction buttons brainstorming

Here comes the part where my magical journal already helped me out by connecting to my past self: RING MENUS. These will offer an overview over every interaction you can do with the object in front of you, without the need to use different buttons! You simply keep the “use” button held for a bit and it opens up (pretty sure I got this beautiful idea from playing Kynseed at the time). Here is my notes from February 2021: Ring Menu for item interaction I will still have to think about a bunch of the actions that should be done FAST tho. So picking up, dropping and using hand items will still need their own buttons.

What I did the past 2 weeks

And I actually started to sit down every day I was able to to just do A LITTLE. I have written down new ideas, fixed some bugs, cleaned some code and researched how others build inventories. Sometimes it wasn’t as much as adding maybe 3 lines of code - but that is still great! That means I took a step towards finishing. Because sometimes you just don’t have more brain power in you.

Global Event Bus

I cleaned up my mess of a main scene a little and put the UI in it’s own scene - which made the dialogue not work anymore. Following Youtube tutorials I added a global event bus, because you simply cannot access signals in other scenes and my UI reacts to a “Interaction Signal” that my InteractionManager on my player emits… So far it works dreamingly easy, I hope it doesn’t start to get hard to manage when the scope builds up (cough likeinunity cough).

Chopping up item behaviour into reusable bits

I sat back down with my thinking cap over the problem that had kept me stuck in Unity: Making my interactions as flexible as possible! I want to create items in the future by simply writing them in a XAML file and giving them different “powers”. Like making a “watering can” a container containing water, and a “planting pot” is both a container, containing earth, but also able to be watered. The “waterable” power will have to just check, which powers they can team up with (the water container) and then it can decide to interact! This way I could even write a multi tool doing all the things at once! Limitless powerrr!! Anyway, I made it quite simple this time (a looooot simpler than what I was doing in Unity) and just made an Interactable class (that only holds the sprite and a description) be a parent of several ItemComponents, which will all get their own little reactions to other components. That way I can just add them to my items in the future and will just work.

Basic Inventory (mainly UI)

Because I couldnt find my old inventory UI art I reused the dialogue container and scrapped together a quick little autocreating Inventory, that will just add as many slots as I tell it to and also maintains those. The Inventory itself is a plain class, meanwhile the UI is handled by an InventoryUI class deriving from a Node. It is supposed to update the looks whenever the Inventory object changes. It also has a list of all the InventorySlotUI that it created, who handle keeping the items and their infos snug and safe in their, while rendering its picture. In the following image I just hardcoded it to add any item I right click on that has yet another component: HoldableComponent! It will ignore every item without it. I still need to work on it automatically choosing the correct slot to fill.

Get Apple Spells

Leave a comment

Log in with itch.io to leave a comment.