Your game is really cool! Amazing job!
There are some issues tho:
- The UI doesn’t work if the player changes the resolution.
- The difficulty curve takes some huge leaps, specially at 10, I know it is the last level but is kinda frustrating.
- The fuel mechanic, I like that you took the time to implement that and make the game your own, but it doesn’t actually do anything, you can remove it and the game would feel the same, I think all the levels should be level 10 in size for the mechanic to have any real impact, that’s actually the only level I noticed the lack of fuel.
- The fuel platform takes waaaay too long to activate.
- The tutorial is kinda hidden, I didn’t know there was a tutorial until I saw the scenes.
- The tutorial text is way too hard to read, if the player accidentally touches something by mistake the text disappears, and if the players dies the text won’t reappear.
- What’s the gravity switcher for? I don’t remember seeing it anywhere in the game, just in the tutorial.
- There are some issues with the perspective, specially at level 5, the two moving obstacles are weirdly set, so it’s kinda hard to see if the ship will touch them or not, that’s why I kinda hate rotating obstacles in project boost, they feel unfair.
I think that’s it. I downloaded the whole project because I’m on a Mac and Macs… well, Macs… so anyway, I took the liberty to check your code, you are obviously not new to this, so if you want any code tips I’ll gladly take the time to do so. Just a quick “code review”: Your code is kinda messy and that game manager script is a little nightmarish, you use way too many statics which is often considered bad practice because they remove flexibility and create more dependencies which is a bad thing, specially if your code isn’t organized, you’ll end up with a huge spaghetti pretty quickly.
My quick suggestion would be:
- Look into namespaces.
- If you truly need a singleton consider using data holders instead, like scriptable objects.
- Look into naming conventions, one thing I hate about Game Managers is that the name is just way too generic, your script handles collectibles, UI, lives, load levels and more, it does way too many things. This isn’t an issue when your project is kinda small, but trust me, when things get a a little bit bigger everything will become a nightmare and you’ll end up with 500+ lines scripts or a Game Manager that holds a Loader Manager, Enemies Manager and so many managers that do so many things and everything is accessing everything and the moment you realize the spaghetti is so convoluted you’ll end up not wanting to work on your project anymore, this happened to me and to many new developers I’ve met.
- Find ways to avoid using statics. To be honest, I haven’t done a single project that truly required a static. I only used them if that particular code will be used globally, like a gravity or time system and even then you don’t truly need them.
- Look into magic numbers.
And that would be it with just a quick glimpse, if you want more detailed tips please let me know, I like refactoring for some weird nonsensical reason.