• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

[Discussion] Backups

Derxwna Kapsyla

Derxwna "The Badman" Kapsyla
437
Posts
12
Years
This discussion can go for anything really, but let's keep it within projects.

As any good developer would know, you should keep regular backups of your projects. Weekly is usually a good one, but some people make backups for every single change they make, just to be on the safe side.

Addressing the game development side, or even just the programmers here, I'd love to know: How all do you handle backing up your projects? Do you make a backup of it after every time you make a critical change, or do you backup after every single change? Do you keep it all contained within one folder, or do you have several folders spread across your computer for it? Also, what would you say is good backup practice.

Considering the dilemmas I've been through involving backups (or rather, lack of) in the past, I figure it'd be an interesting topic to discuss, since it's something that affects all people.
 

WriterRaven

I Illustrate Through Words
54
Posts
9
Years
In all honesty, I don't back up my projects all that much. I know it's not a good look to not have at least one backup, but at the same time I'm also super lazy. >_<

Even though I haven't done much work on my game in recent months, I should probably still back it up, right? Perhaps as a reminder that it still exists and I can go back to it any time I want. (I took a break from difficult code work and I guess I never came back to it, but I do want to finish it. =/)

I keep my project as a whole on an external hard drive, 'cause I don't have much space on my main hard drive, and now that I'm thinking about backing it up I'm going to make a zip file for it on my main. That file will probably be replaced after major changes are made; finishing a script or a day's worth of mapmaking, for example.
 

TBM_Christopher

Semi-pro Game Dev
448
Posts
14
Years
Source control! Every time I work on a project, I use Mercurial to commit a list of any changes to any files in the project. Then, if anything happens, I can revert to a "last known good" build.

I don't know how nicely mercurial plays with RMXP, but once you're used to committing and saving your changes, you can take the extra step and set up a remote repository so that everyone on your team can work on the most current version of the project, and it's simple enough that every time you work on the project, even for a couple minutes, you can create a backup fairly effortlessly.
 
Last edited:

Maruno

Lead Dev of Pokémon Essentials
5,285
Posts
16
Years
I'll talk about my work on developing Essentials.

I make backups every so often. I call each backup a snapshot (much like Minecraft's updates), to differentiate them from versions (which themselves are just snapshots that went public). Version 15.1 of Essentials was actually snapshot number 118, which means I make about 7 or 8 snapshots per version on average. I keep every released version of Essentials on my computer (in their rar forms), along with the most recent dozen(ish) snapshots (which are simply copy-pastes of the project folder, not zipped or rar'd). I delete older snapshot backups to save clutter, and as mentioned, all I keep of the older versions of Essentials are the rar files I upload for everyone to download. I keep all my backups in a folder on my computer, along with the current snapshot - I know a hard drive crash could ruin everything, but I'm not that cautious.

I don't make a new snapshot (i.e. copy the current snapshot and carry on development in the new one) at regular intervals. I make them after a sufficient amount of work has been done on the previous snapshot. If there's a big task being done (e.g. "update AI" or "update/add all item effects"), then I'll finish that task before making a new snapshot, thus keeping all of the changes caused by that task in a single snapshot. Of course, I almost inevitably make changes to that work later on, due to necessity or remembering/discovering something that needed to be done in relation to it, and that's fine; I don't mind that those amendments are in a later snapshot. Some tasks are bigger than others, and some snapshots aren't associated with particular major tasks. In all snapshots, in addition to the main thing(s) I was doing in it, I'll also make (typically) minor unrelated changes, such as a few bug fixes, as and when I come across them. I don't do too many different things in a single snapshot, though (and by that I mean major or significant tasks; I don't care how many bug fixes or small things I do in each one).

I have a txt file, in which I keep a record of the changes I make in each snapshot. It's in the same format as the change log on the Downloads page of the Essentials wiki, and there's a separate section for each snapshot. I try to record all the changes I make, although they're at the same level of detail as you can see in the wiki's change log (certainly not that descriptive for bigger tasks), and some minor changes like moving around a bit of code may not be recorded at all.

I find this approach works for me. I've never had to revert to a previous snapshot and start afresh, and I've only infrequently needed to refer to an earlier snapshot or version to check/compare code. I record as much information as I need to inform me about what I've done, and I suspect that may be less information than many other people need. What records you need to keep depend on what records you'd need to refer to later on.



I think I stayed mostly on topic there. Backups are incredibly useful for everything. If you're using Essentials, then an untouched copy of it should be considered your very first backup - keep it around.

I'd recommend making a backup every time you make a significant change to your project. Decide for yourself what "significant" means. Backing up at regular intervals (e.g. weekly) isn't as practical, as one week could have little or no development so there's no point in making a new backup, while another week could have a huge amount of progress which would be that much more of a pain to wade through if you need to.

Record all your changes. For code changes, I recommend that you put a comment on every single line you change, so that you can easily find your changes at a later date (e.g. when you want to update to a new version of Essentials). Ideally, you'd put any new code in their own script sections, rather than blending them into the existing script sections, because again it's easier to distinguish which are yours and which aren't. For file changes, keep a note of them.

Your project isn't the only thing that's worth backing up. Your various documents and graphics that contain designs and ideas can also be backed up.
 
824
Posts
8
Years
I rarely back up. I should probably back up more, but on my computer I have:
1.) My development version, as an un-zipped folder
2.) Either one or two most recent release versions of my game, as zip files.
3.) an untouched version of the Gen VI Pack, both as a un-zipped folder and a zip file. I refer to the former when helping people edit their scripts.

When I edit the game, I try to playtest after every minor change I make and will alter my changes and/or revert back to the old way of doing things if it doesn't work as planned. The exception is when I do something that isn't stable in little half-steps (like Mix-and-Mega Mode), then I'll try to get it stable as I can in a single chunk - like getting one Mega Stone working before even adding any code for the others.

So in this manner, you could say I have "ghost backups"
 
Last edited:

KillerMapper

Helix Follower
200
Posts
9
Years
I often backup, depending of the project I'm working on. For example in 3DSMax I setup a keyboard shortcut to make incremental saves so i can go back quickly and without losing much progress.

As for Essential projects, I do major backups when changing the version, and make backups occasionally without some huge parts like battler graphics. I keep the essential data (data and PBS folders).

All my work is stored on Dropbox, with major backups. I have copies in an external drive too.
 

Delusions of Originality

good night, sleep tight
108
Posts
14
Years
  • Age 35
  • Seen Apr 17, 2024
Version control would be nice for my Essentials work, but as said above I don't know how well that'll pan out. May give it a try at some point just to see what happens, idk.

For now I'm just relying on my computer's general backups and failsafes; I don't have anything specific set up for my game dev/general development. I keep all my files, development and otherwise, on a second internal hard drive that's separate from my OS drive (so if the Windows SSD tanks it doesn't take all my documents and such with it). That drive is automatically backed up every so often both to an external hard drive and to a cloud backup service. That way I've got at least two places to look for my most recent work if something should go wrong. I also make occasional "snapshots" of my projects whenever major changes have been made or milestones have been reached. Not that that's happened very often so far, haha.

I also have several files in which I note most/all of the code changes I make.

To those who don't back up regularly: if you truly can't be bothered to remember to back up manually on a regular basis, you should at least look into Dropbox/some other cloud storage service, or some way to automatically back up to an external drive or another computer (CrashPlan's software does this for free, for example, and I know there are others). It's not going to help in terms of maintaining "major versions" and what have you, but at least you can largely set-and-forget a solution like that. Don't set yourself up for a situation where you're "too lazy" to take care of it now and then regret not being more careful later! Speaking as someone who has both lost and nearly lost data due to various device issues before, it's... not a fun feeling.
 

Derxwna Kapsyla

Derxwna "The Badman" Kapsyla
437
Posts
12
Years
I've been debating, once I can confirm or deny if I can get my latest development build of Faith & Prayer Version back (My external fried a bit and I can't access the data on there, I'm taking it for repair/recovery soon), setting up some sort of git repository for my project. However... everyone here seems to just be wary of Revision Control Software in conjunction with Essentials-made games. Why is that, like is there any specific reason it wouldn't work?
 

TBM_Christopher

Semi-pro Game Dev
448
Posts
14
Years
For myself, I simply haven't tried it, so take this with a grain of salt.That said, the reason it isn't more popular is PROBABLY either that there is an issue with git not playing nice (presumably with files like maps, though I'd imagine that's more an issue of making sure they're tracked as binary files rather than non-binary) or simply put, this is a hobbyist community, and git is a bit higher-powered than most hobbyist folks need given its learning curve.
 

COOLTRAINER♂

Speedball 2: Brutal Vanilluxe
235
Posts
10
Years
  • Seen Jul 1, 2019
Versioned backups saved my life when I broke a 3DS Max scene and saved it three times.
 

FL

Pokémon Island Creator
2,444
Posts
13
Years
  • Seen Apr 22, 2024
I generally use git/hg with SourceTree/TortoiseHg/TortoiseGit (and sometimes line commands) at Bitbucket/GitLab since these two sites allows free private repositories. I generally do a commit around 3-12 hours of work. Generally divided by feature. This is very useful, because I can easily consult an old version, compare differences and even revert/download a single file.

I can't use it for RPG Maker projects until RPG Maker MV, since all scripts are in one source folder and the other files aren't in human readable format like YAML. I generally backup important files like script database once or two times per month. In Essentials I comment changes on the script sections and at the file headers, so I can track the differences from a fresh version of base kit.

I generally do a backup of all my important files once every two/three months, so my projects are backed up as well.

I've been debating, once I can confirm or deny if I can get my latest development build of Faith & Prayer Version back (My external fried a bit and I can't access the data on there, I'm taking it for repair/recovery soon), setting up some sort of git repository for my project. However... everyone here seems to just be wary of Revision Control Software in conjunction with Essentials-made games. Why is that, like is there any specific reason it wouldn't work?
This won't works well since all scripts are keep on one huge file (Scripts.rxdata). I guess that there's no problem with the maps, but there aren't on human readable format. I suggest you to use a extract tool for extracting every script section into a .rb file, like I had done at this post. This is a very better way for keeping track of the changes.
 

Worldslayer608

ಥдಥ
894
Posts
16
Years
I never used a Cloud service to back up my projects. I just did a backup to a flash drive and to the internal drive.

Car was stolen with my things in it.

I now use a cloud backup service...
 

scotchkorean27

Programmer/Pastry Enthusiast
24
Posts
8
Years
For me, it really depends on the project.

I'll usually keep my human readable code on something like github. Makes it really easy to revert without keeping a million copies of everything, and if I'm feeling REALLY lazy, I can use it as a glorified storage medium.
For projects like these, I typically like to commit after I've finished something substantial (finished implementing a function) or I've fixed a critical bug.

Now, if it's something like a ROM Hack, I'll make a copy every time I change anything. ROM hacking tends to go south really fast if you're not careful, and trying to fix something like that without reverting to an older version can be a nightmare (I've actually been set back months because of a spelling error). In this specific example, I don't like to commit to git because it absolutely hates large binary files, so I just keep all of my copied ROMs in a folder somewhere on my computer. It's a couple gigs big, but it makes bugfixing a breeze.
 
3
Posts
8
Years
I'm using git for backups/version control, committing after every significant change (especially if it's a code change).

Now for the binary files this doesn't do much good, in terms of easily seeing the difference between versions, so I'm
also looking for a way to maybe exporting all scripts before committing. Does anyone perhaps know if there's a good
automated way of exporting scripts?
 
Back
Top