I've been studing music theory using the Complete Musician by Steven G. Laitz. It's a bit difficult for me to get into so I'm also supplementing it with Youtubers Nahre Sol and Rick Beato. I've also started practicing on my keyboard after a two year break. This time I'm focusing on drills and trying to get a solid understanding of scales, chords etc rather than just jumping into learning songs.
Programming is what I'm best at but to take things to the next level I'm going back to mathematics and trying to make sure I have a firm grasp of things I learnt at school. I've also taken an interest in the difference between machine learning's artificial neurons and actual neurons. This has led me to studying multivariate dynamics and bifurcation theory. It's all much harder than what I did at school but I've already been able to apply some of what I've learnt. I had a go at using a bio-inspired robotics locomotion algorithm which simulates the Central Pattern Generator (CPG) of mammals, which times footfalls. The approach didn't produce satisfactory animations so I'm afraid I'm just going to have to learn to animate by hand, but it was cool to see how it could work well for a robot which just has to move and doesn't need to look good.
Art & Graphics
Finally the ever elusive ability to draw has been on my mind as well. I discovered drawing with pens and I've found it much more fun than drawing with a pencil. I've been looking at the works of Sergio Toppi and trying to learn from his style. On the computer I've been learning Blender, Substance Designer and Substance Painter as well as shader programming to try and improve the 3D graphics in my game.
The game was originally a top down RPG but some ideas about how to implement the AI didn't pan out so the game has evolved into a FPS. It's something I have to pay attention to in the future, it's best to make sure the game is fun early on and then working on the game from there. In the past I've always had an idea for a game and after months of work it finally turns out to be fun or a waste of time. So I decided to play it safe an make an FPS because they're simple to make fun, and since I'm using UFPS in Unity I haven't had to do annoying work to create the framework code.
The first thing I added to the game was gravity manipulation, in fact the first idea I had was 'Super Mario Galaxy but a FPS'. The gravity is fun to play around with but since the game is first person it can get confusing when the camera is flung around. So I've done some work on camera stabilization which has hopefully fixed that for now, but I suspect it's something I'll return to.
The latest thing I've added to the game is 'advanced' AI pathing. Since the levels are made up of flat areas (passable by navmesh) and round globes (clear of obstacles, just move on a vector), I've had to develop a new navigator instead of Unity's own navmesh agent. The 'FreeNav Agent' I've made can handle both of these terrains and can also transition between them either using a grapple hook mechanic or jumping.
It's not perfect yet, but it does bring a smile to my face to see the AI jumping around and flying through the air to pursue the player. I hope once I bring in some of the AI work I had from the RPG iteration of the game that the AI will really become impressive.