About Me Projects (dev)Blog
Devlog, simpliCity

This Week's Devlog: Well that was dumb. (33nd Week of 2023)

Wednesday, 16 August 2023
Written by altaf-creator

Opening

Hello, friends! Welcome back to the 5th.. or 6th.. (later editor note: it's 5th) weekly devlog! I want to apologize for not posting weekly devlogs for the past few weeks. In this devlog, I would like to tell you about my new projects and a stupid accident that I have did / occured.

New Projects

Usually after I published a new update for my games, I often take a break for a few days or weeks. I also sometimes like to start a new side-project. And in this week, I have started some side-projects. Some of them are;

  1. This website update.
  2. A new game. I have some different ideas for my new game, so I am currently deciding which game should I make for this new project.

Now you may wonder, why did I create a new game? Well it was because...

The (dumb?) Accident

Long story short, I have accidentally teleported simpliCity project folder to a higher dimension that no human could ever even begin to comperhend, aka deleted all the project files.
The long story is...

The Beginning

It was a normal day. I was thinking of backing up simpliCity using GitHub. Because currently, simpliCity project folder doesn't have any more copies apart from my drive. A month before, I have made a (local) Git repository in my drive. So uploading the simpliCity repo to GitHub should be simple, right?

The Problem

First, I made a new repo in GitHub, connect the git repo to the GitHub repo using git remote, rename the master branch to main, and push it to GitHub using git push-

fatal: The push operation includes a file which exceeds GitHub's file size restriction of 100MB

..Alright then. Turns out I included the temporary, automatically-generated Unity project files and folder. To fix this, I added the .gitignore template for Unity to tell Git to simply ignore the files and folder, and upload it again-

fatal: The push operation includes a file which exceeds GitHub's file size restriction of 100MB

Still the same error. Turns out that I have to remove the history of the ignored file, alias I have to make git forget about all of the temp files. And this is where I messed up.

After executing the command to do that, I accidentally removed the entire Git commit history. "That's fine," I thought. So I executed another command to finish an operation, and I noticed something weird in the files.

The Assets folder, aka the most important folder in the project, is gone. I have no idea what I did there, but the project was gone. I was panicking, spammed Ctrl + Z in VSCode and Windows Explorer, checked the recycle bin, and tried to undo the previous git operation, and tried to fetch the last commit.
I forgot that the entire git commit history is gone. Git cannot help me. The project is also not yet uploaded to GitHub, so the only current copy of the project is on my disk, and it's gone.

I was confused, didn't know what just happened. So I tried downloading various data recovery tool, because I know when a file is deleted, it's not entirely erased from the disk, just flagged as empty and other programs can overwrite it. And it works! ..for just a few files. The Assets folder was already overwritten with another data. I have tried many, many programs, and nothing works.
Which means the Assets folder, is permanently deleted. I was sad, confused, and shocked (nah not really, but kinda sad). I really did permanently delete almost a year worth of work, and the worst part, I didn't know how and also can avoid it by being more careful.

The Light at The End of The Tunnel?

I did mention that I did not have any more copies for the current simpliCity project file (which is beta0.2.1), turns out that I actually have one old copy of beta0.1 (modified) project file. I also have the latest beta0.2 build, and all of the assets.

So, what does that mean? Well it can mean that I can recover my project, but it needs more work. How you may ask?

  1. First, I will decompile my game to get all the new scripts from the latest build using ILSpy.
  2. Download the old copy, and open it in Unity.
  3. Update all the scripts to the new one.
  4. Update all of the old objects to the new one to adapt to the new scripts.
  5. Update all of the old assets to the new assets in my OneDrive.
  6. Finish it up and polish it. And it's done! It will not be an exact copy, but all of the new features should still be recovered. And probably will be improved.

But this needs time. For now, I have decided to stop simpliCity development, and start a new projects. Why? My gamedev journey is still long, and I cannot stick to the same projects for months or years. I decided that this is the time for me to move on, and learn new things.

What does it mean for simpliCity?

This means that simpliCity development will be on hold for quite some time until I recovered the project. This also means that I will make a new game! Yay! Finally!

What can we learn

What can we learn from my mistake?

  1. Back up all of your projects and files. Do NOT have only 1 copy of your project. Have it on a second drive, and also online services like Google Drive and OneDrive. Do this so if something happens to the original, you still have a copy of it.
  2. Back up regularly. If you have a back-up but it's old, that is still the same (but better) than having no back-ups at all. Back up your project every week or at least month.
  3. Be careful in things that you don't know. Especially file management and Git. Git is hard. And annoying.
  4. It's time to learn new things and move on. It is ok to make a big project and spend years on it, but you should also try and making many side-projects and improve over time.

Closing

We have reached the end of this devlog. becase I feel I want to say sorry to everyone for dissapointing you because of this mistake. I also want to say please learn from this mistake. Better be safe than sorry! Also thank you, thank you everyone for staying with me in this journey.

And that's it for this week. Thank you so much everyone for reading.
This is Altaf.
Stay safe, and see you next week on The Altaf (dev)Blog!