Play 0.1 here
It has been a very busy few weeks and so my time has been limited. I unfortunately lost a distant family member, and then recently a closer colleague and friend my supervisor for 7 years Professor R. L. Johnston, I wish his family well during this terrible time of grief.
I also managed a short break in wales with the kids, as well as other various holiday activities. But all of this has left little time to actually do some game development. Which in all honestly is to be expected, 15 hours a week in my current situation is very optimistic and even then highly unlikely that every last minute of that time would be productive.
Firstly I set about making a list of task/features I thought was needed. This wasn’t an exhaustive list nor was it of great detail but enough to get started but more importantly help with productivity. I used a kanban board in a free to use as hobbyist web app called hacknplan its a nice Agile tool set developed specifically for game builders.
The list Consisted of things like:
- Get Prototype Art for game ( I used kenny.nl sets )
- Setup project
- Implement a Base Level
- Implement command ball
- Implement command paddle
- Implement keyboard Movement
- etc..

They weren’t explicit nor was the list complete, I’d would return to it cross off or adding more detail through out. I decided to set as my initial goal, my 0.1 Alpha I suppose of a basic implementation of breakout, from that I built the list.
The power this brought me was the ability to pickup and put down the project. I typically would just work from my head and either get lost, or distracted and when you reach the more banal aspects of the game such as gui work would be demotivating. Having the list really help keep you on track, just remember its not an immutable slab of commandments, it just a way to keep track and free some of your mental load.
At times however, I did get carried away I added a global EventBus to manage signals that connected deeply within a scene tree. But it was just overkill, a global list of signals would suffice and added benefit of auto completion of each signal from the editor.

I also tried to adhere to SRP principle by placing scripts for various game objects in different nodes of the object. This allowed me to do things like disable motion of the ball, by simply toggling the _physic_process of the node.

And also delegate aspect of the game scene to other nodes as such.

I would like to write more about using the Godot scene tree to aid in SRP to reduce the amount of game code in a single node.
Well, I move on to 0.2, which probably be adding more variation of blocks, and bonuses. Hopefully, I can write another post a bit sooner.