AstroSword
AstroSword is the second game I have fully published, this time for android. This game consists of the player fighting through waves of enemies and progressing through the game by acquiring stronger weapons. You move around a spherical world and can buy weapons.
Progression
After my first game release, I had a really cool idea in my head of a sword fighting game where you take down mobs and progress by upgrading your sword. I also wanted to try something different so I challenged myself by instead of having the game be on a flat world, it would be on a sphere. That was a mistake.
In the first stages of my game, I found good spherical world tutorials by Sebastian Lague (highly recommend you check him out) and was able to get my player walking on a planet. However, I ran into some issues regarding the camera and having the player face different directions. I spent a lot of time struggling to get my character controls to work properly but in the end it paid off. I then moved into player combat which I spent a lot of time polishing. I then moved into modeling and animating enemies in my game and programming their attacks.
I then added a shop system, the last three swords having special abilities (fire attacks, ice attacks, and meteor attacks). After some polishing, I finally released my game on google play store, which you can find here. Please download and review :)
Takeaways
Developing AstroSword has taught me about both of the pros and cons using Unity. While Unity is very user-friendly and simple to learn, there are many things about the game engine I wish was more clear or just straight up better. For example, Unity's Mecanim (animation system) is very hard to use if you have many animations connected to each other. Fourtunately, I figured out about playing animations through code, which is much simpler and easily applicable to any project.
Besides the bad, I learned a lot more about Vector physics and a little bit about quaternions (rotations in 3D space). I developed more experience rigging and animating in Blender, and learned how to create shaders using Unity's Shader Graph. I found out how to make the game viable for mobile and learned about scriptable objects (data containers but more convinent).