Oh, another game dev, that's so nice!
I feel like I have practical advice I can give, from the perspective of a professional game programmer but also from the perspective of someone that worked on a personal project for 7 years that had regular users. I really understand the hyper focus, I'm like that as well and I've driven myself dangerously close to burn out in the past.
Making a videogame from scratch as a solo developer requires an enormous will power, patience and resilience. If you're doing work on all those different areas yourself, then it's extra hard to know what to prioritise.
The following advice doesn't take into account any
debuffs from being depressed or anything else, it's assuming you're healthy enough to do all these things. See it like the ideal scenario.
Step 1:
If you're not familiar with production in videogames, I'd recommend getting familiar with that a bit as that's the driving force to getting things done. There are several methodologies, at work we usually go for a mix of Agile and Waterfall. I'm not going to teach production as that's not my field, I only know enough to do my job but in essence, this is a crash course of what you should know:
1) Every piece of work should be divided into small executable tasks (e.g. implement the main menu (programming), design the main menu (UX), etc)
2) Every task should have a time estimate (e.g. 4h, 72h, etc. Time estimation is hard, you can only get better by applying estimates and then seeing how far off you were)
3) While you work, you should set a timer so that you know how long you've been working on the task at hand. There are tools for this like
EverHour
4) Tasks are part of a milestone, a deliverable (e.g. milestone 1 is getting a working prototype of the 1st puzzle in the game)
5) Every task has a category according to MOSCOW (Must, Should, Could, Would be nice). Putting a category in your tasks will help you figure out what is essential and what is just
feature creep (e.g. "Implementing the 1st puzzle" is a Must, "Adding audio feedback when the player moves pieces in the 1st puzzle" is a Should)
Having a rough understanding of how to manage your project production-wise will better help you establish how to move forward.
Make use of good tools to manage this!
Asana is a good one to check out,
Jira as well, but I'm not sure whether it's available for individuals. EverHour has integration with Asana so you can start/stop time tracking from there. If there are too many limitations on the free plan, there are other alternatives to these softwares and also open source ones at
Open Source Alternative To...
Step 2:
Adhere to a reasonable schedule. This will the backbone for avoiding burn out and making sure you make the most out of the time you are working. My schedules in the past were usually 9am to 6pm, 1 hour lunch from Monday to Friday, this was because I had finished uni and didn't yet have a job. You'll know best which schedule works for you, the amount of hours doesn't matter, what does matter is that the schedule is reasonable so that it allows for enough sleep, time for relaxation, eating, etc.
When you work extra hours due to hyper focus, make sure to compensate those hours on the next day. So if you work 2 extra hours today, then you should "leave work" 2 hours earlier or start 2 hours later. You can also spread these hours through more than 1 day. Just be strict with compensating the extra time.
Step 3:
Figure out which tasks from which discipline should be done first.
In general, Design needs to come first as the programmer needs to know what to implement. If the game relies on UI heavily, then a UX design may be needed but a programmer should be able to still implement this using dummy UI just to showcase the feature working first and then change the UI once the UX design is complete. So usually the order should be the following:
Design -> Programming -> UX
Step 4:
Do the tasks in the order you created, tracking time against them. If a task is done much earlier than the time estimate, no worries, just keep going to the next task. If one task was severely under estimated, don't change the original estimate, just keep tracking time against it and add comments on the task to register what issues you're encountering and how the progress is going. This is useful for keeping you focused, reminding you of what you tried so far and not discouraging you if something takes too long. Accurate time estimation is hard for everyone but it's very useful to give you an idea of how long a milestone will take to be achieved. It also gives you a ballpark deadline which is good.
----
This is all my general advice. I hope it wasn't too overwhelming...you don't need to follow all of this if you don't want an almost professional game dev work regime, you are more than welcome to take a more relaxed approach since this is your personal project, you can do whatever you want! Just thought it could be worth sharing in case you're looking for a lot more structure. So if you imagine a line where on the left is super relaxed and on the right is super organised, this approach is pretty much all on the right. So from this, you can tweak it to your own needs.
If you ever want some specific advice on anything game dev related, productivity, etc, feel free to send me a DM. I'm always open to talk about this with another creator.
I wish you all the best for your game and congratulations on all you have achieved so far! Those are great achievements, especially for someone working alone, it is super impressive. Also being on this website and achieving that much...truly incredible. I'm super proud of you!