Escape from Mars - finally completed!

Hi there!

After few long weeks I finished project boost after expanding it with my own ideas.
Here is link to project repo, inside readme file you can find some media from the game and direct link to download (43mb google drive zip file - .exe inside).

All feedback is more than welcome :slight_smile:

GitHub repo:
GitHub

Direct link to download:
.zip file

1 Like

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.

THAT WAS A LONG ONE! Really!!!

Hello once again Yee!
I’m glad that you took the time to write such a comprehensive answer, thank you.

I want to say that I’m still at beginning of my coding journey, this project took me four months to finish during which I made a lot of mistakes and also learned a lot. Still I will threat this project as a learning journey not as product which I want to publish.

  • UI - resolution, aspect ratio, canvas positioning is still not familiar to me. I will focus on it as soon as possible
  • Difficulty level - thanks for pointing me that I found really difficult to managing with level obstacles.
  • Fuel - I thought that will be really interesting but while moving forward in project system went useless…
  • Refuel platform - hm… It works as intended, first auto landing sequence then refuel sequence
  • Hidden Tutorial - it was last of my features, created it after my brother was testing game. I was not sure if and how I want to implement it to game.
  • Gravity Switcher - one of my main game testers is my girlfriend and she found very difficult to use rotating and thrust together properly so I made simple switch which helped her to get comfortable with flying mechanincs
  • Obstacles - ok I understand, next time I will focus on proper obstacle placing.

Thank you for your time :point_up:
About my code:
Im aware that my code quality is poor. I’m trying to do my best but my coding skills are still on low level. I’m trying to use all tools achieved on this course.
I also fill like my code is messy, it get much worst whenever I add something new to project and had to connect each part of game loop with new feature. There was a lot of situations where I didn’t know how to even start building new system. I Hope that moving through course I will Learn how to do that. There is also 2D and RPG course on my list. You are first person who gave me advice about my code.
My conclusions - I will focus on singleton before starting Argon assault. I will try to avoid unnecessary magic numbers and static variables. :slightly_smiling_face:

That statics / singleton came out bad, sorry for that.

What I’m trying to say is that if you are working alone and feel comfortable with that particular pattern then use it, it’s ok, just keep in mind that if you work with someone else it might be hard and some people take waaaaay too seriously this “don’t use statics thing” I once got yelled during a game jam because I used one. People can get a little too intense with certain things.

Don’t abandon your project, try to refactor your code after you get a little more experience, you’ll learn a lot if you do that. The RPG course talks about a lot of the things I mentioned, so it might be a good idea to finish that and then refactor your other games. Another way of learning is to show your code to someone else, they might point out things you didn’t first saw, Ben gives that same tip in one of the project boost lectures.

It’s amazing that this project took you 4 months to create! That’s an amazing will to learn! Keep up the great work!

I understand everything and you don’t have to apologize for showing me “the right way” :blush:
I need to learn about all things you mentioned and I will do my best to get better. I wan’t to change mu current job so it is necessary to write better code which will be easier to maintain for group of people not just by me.

Privacy & Terms