SamSuka
nerdcubed
nerdcubed

patreon


Learning From My Mistakes

Sorry for the late post this week. I may have not even noticed it was the weekend.

So, I really fucked up bits of the games I've already released. Really badly. Let's talk about some of them fuck ups.

Systems Nominal

Ah, my first little game. So innocent, so sweet, so shitily built.  Biggest issue here was my YouTube bad habits crossing over. I saved nothing. Most of the original files were gone. Old versions weren't kept. It was a mess.

See, when YouTubing I have to get a LOT of video footage through my PC ASAP. If I don't edit fast and delete the raw footage then my drives would fill up. I keep a backup of my much, much smaller rendered and finished videos. If I ever released it then I have a backup of it. That backup is over 3TB now.

So when it came to game dev, I just did the same thing. Files were used up and spat out when unneeded. That's a baaaaaaaad habit and one I didn't notice I had until I got around to making the next thing.

Pi Fight

Yeah. I fucked this game up in like every direction. First was realising what I'd got wrong with Systems Nominal mid way through making Pi Fight and basically starting the whole thing again to try and make version numbers and backups a habit. I fucked that up by instantly deleting everything I'd just been working on to start again without making a backup. That's like saying "I must stop punching myself in the face" and then punching yourself in the face.

Then, and this was the worst part, was the arrogance I displayed. I thought releasing a game was (again) like a YouTube video. Make an account, upload the game. Job done, I'm off for a bacon sandwich.

I cannot begin to explain how many billions of hours I spent trying to work out how to glue the right sticky-backed certificates to that fucking game. I swear I've actually locked myself out of updating that game forever. Putting a game on a site was literally the hardest part of making that entire game. We made it in under a week. It took 3 to get it on the store.

Now I'm paranoid as shit about fucking up the launch of a game that we actually charge money for. One that matters. We're going to have to go through Steam Greenlight and OH GOD that sounds like a fleet of nightmares.

So I've come up with an idea. Another small experimental game that we use as guinea pig. If it goes well then we've got a cool game that's like $1. If I fuck it up, then no super big loss.

And you know what... I came up with a pretty cool game for this. Maybe I should document building it in some way...

Remember to backup.

Jesus saves.

Etc.

- Dan

Comments

Yes, Dan, Version Control! You can even point Git to your local backup drive and avoid using external repositories, like GitHub. Install something like GitExtensions for Windows and you'll be up to speed in no time. However, Git might not be the best tool for versioning images/audio, etc. But it does wonders with code or any other text. And as far as your games are small, versioning audio and images will work fine for a while.

Qwx

For game dev, it's a worthwhile investment to have a pure backup drive while working. You can get a 5TB external for maybe $100-$125, and it will last a damn fine while. Every couple days, every new versions, write everything to the drive. Any working test builds? Drive. Any assets whatsoever? Drive. Any code? Drive. 3 tier folders: Game/Date/Type[Builds,AssetsUsed,AssetsUnused,UnityDataFiles,etc.] This is all overkill. It's meant to be overkill. You will likely not use most of it, but when you get to the point you can use it (WHEN. Not if.) you will thank the bloody stars that you have everything backed up and neatly ordered. It's all of a 10-minute process before bed if you keep things ordered on your computer.

BurningEmber

That guinea pig plan sounds like a good idea that could save you many horrors

Samppa Alatalo

Don't think Backup, think Version Control. Then have a backup policy for your version control database. Something like Git is great for going off on experimental branches - you can commit a sequence of changes as you explore an idea, then decide you don't like it and sync back to some earlier point. You can also have multiple branches going in parallel (handy for multiple people working on different aspects, as long as you're able to manage the integrations to bring them back together). Most IDEs have either native support for the different VCS engines, or are have plugins that are just as good. When you are ready to release a 0.1, 0.2, 0.3... build, there are ways to tag/mark your work depending on what VCS you're using. Have you ever noticed how some games have those "V0.2.6269" numbers? That "6269" refers to a specific change # that comes from your VCS. No more "V1", "V1-fixed", "V1.1-rollback", "V1.1-really-fixed-it-this-time", "V1.2-steam-I-think", "V1.1 Copy(2)" problems where you're never really sure which version is actually your release. And it isn't just source code that should go in to VCS - all your graphic/audio assets, text (you are using some localisation engine, right? Just Do It), build scripts, documentation. If it is a file related to your game, it should go in the VCS. Except maybe 3TB videos - there's other solutions optimised for those.

...how?

Chris Graden (DinoDoesStuff)

In regards to backups, use Github if you don't already! It's got version control, so you can revert back to old commits at will. I think you need a paid account for private repo's, but it's only $7 a month for a personal one and $9 per person in an organisation. Well worth looking into for your bigger projects!

Emily Hendry

Don't worry Dan, if it's shit and we hate it, Steam's refund policy to the rescue.

Tyler Blankenship

So im guessing this is the next completes series?

Regarding everyone else's comments about version control, you can use sites like GitHub (has a desktop client) or GitLab (which gives you free private repositories).

Software engineer here as well. I work on games, too. Very much what he said! Look into Gitlab if you don't want to host the git server yourself.

Raphael Thoulouze

I'm going to repeat what everyone is saying: use some kind of version control, it will make everything easier. i would recommend looking into perforce, but thats because we use it at school. Git is also a great option

DIGITALSHARK

Dude, use Git. It will make you life as a developer much easier. Especially if you ever have to develop with other people in a team.

Nicholas Robinson

I love the idea a tiny experimental game. Color me intrigued.

SVN or Git are your friends. Working without version control is suicide!

I'm down with a small game to test it go for it Dan.

Software engineer here: Use git - I prefer SourceTree with Git, it makes it a LOT easier to skip the Git command line. You could also use Team Foundation Server, but honestly Git/SourceTree is better for a "just save everything we've got and make it all work" approach when you have external assets. You can even use it for version control / backups for games you make in Unity, as it treats all file types the same. I wouldn't start any project without it.

Chris

The only way to truly succed in life is to learn from your mistakes. Which dan is evidently doing. And I will probably do too.

Tyler Rand

You haven't heard of this thing called sleep, have you? (says me...)

DaNooba

What's the benefit of Git?

Shen Doodles

Welp, looks like I just learned from your mistakes too. :'

Shen Doodles

But why?! Source code and resource files only take up megabytes of space! Also, I realize you said that you were moving away from the coding process, but learning some sort of version control system (Git, Mercurial) will make your life so much easier if you decide to continue.


More Creators