The importance of using backups

This week, I’ve been working on improving the projectile and MenuState I’ve been working on before. My goal was to be finished with both the complete MenuState and the projectile by the end of this week. The reason why I wanted it done before this weekend is that our beta version of the game is coming up, and we want to finish things that are essential for our game. From former blog posts, both of these things are relatively finished by now, only requiring a bit of final touch to their code.

The MenuState was working as intended, with a few features still yet to be implemented. What still needs to be implemented for the MenuState is:

  • Collision for the buttons, so that you can click on them and get a different output depending on which button is pressed.
  • A button that handles the instruction on how to play our game. However, this one might be replaced by loading a how-to-play picture before loading PlayState once you’ve clicked play.
  • Highlighting animation when you hover over a button.
  • Some graphics still needs to be finished before being implemented

The projectile, which was almost finished, has been worked on for quite a while now. It has always been doing its best to make me confused to why it’s never working as intended, but I finally got the last bits of it to work before applying collision to it. But then, due to some issue regarding SourceTree, all my work with the projectile was suddenly lost today. What happened was that SourceTree prompted me to use an older version of the project than what I was using. I’m not entirely sure what really caused this, but I have a feeling it relates to different repositories using same names for the project, where when I was trying to pull the newest version of our game, the old repository with my test version got changed aswell. And even though I ignored the messages of replacing all files, I suddenly sat there with an older version of my project. Luckily, we had just started merging our code together so that the MenuState was in another project and therefore not lost. But all code about the Projectile was lost, making me have to rewrite it tomorrow from scratch. It shouldn’t take too long, but it’s a distraction from other things that needs working with before the beta version has to be finished.

So with this blogpost, I want to point out what I’ve been working with. But also to remind you what could possibly happen if you don’t have any backup for the files you’re currently working on. Sure it’s easier to rewrite it than to write it from scratch, but doing same thing you’ve already done before just because of some random issue, can be a bit annoying.

Luckily we had another repository with the newest version, so only some projectile code was lost during this issue. So at its current state, without the bullet, our game now looks like this. It’s not finished, but with our latest version without major bugs, the productivity will increase due to time being spent on coding instead of fixing errors while merging code manually between projects.